summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--community-staging/devil/PKGBUILD38
-rw-r--r--community-staging/devil/devil.install11
-rw-r--r--community-staging/devil/libpng14.patch33
-rw-r--r--community-staging/gambas3/PKGBUILD10
-rw-r--r--community-staging/performous/PKGBUILD8
-rw-r--r--community-staging/widelands/PKGBUILD9
-rw-r--r--community-testing/espeakup/PKGBUILD31
-rw-r--r--community-testing/espeakup/espeakup43
-rw-r--r--community-testing/espeakup/espeakup.conf.d6
-rw-r--r--community-testing/espeakup/espeakup.service12
-rw-r--r--community-testing/gnome-packagekit/PKGBUILD43
-rw-r--r--community-testing/gnome-packagekit/gnome-packagekit.install19
-rw-r--r--community-testing/gnome-settings-daemon-updates/0001-power-and-media-keys-Use-logind-for-suspending-and-r.patch1473
-rw-r--r--community-testing/gnome-settings-daemon-updates/PKGBUILD52
-rw-r--r--community-testing/gnome-settings-daemon-updates/arch.patch325
-rw-r--r--community-testing/gnome-settings-daemon-updates/gnome-settings-daemon.install12
-rw-r--r--community-testing/gnome-settings-daemon-updates/screensaver.patch145
-rw-r--r--community/evas_generic_loaders-svn/PKGBUILD4
-rw-r--r--community/flac123/PKGBUILD17
-rw-r--r--community/gambas2/PKGBUILD6
-rw-r--r--community/gambas3/PKGBUILD4
-rw-r--r--community/libcec/PKGBUILD4
-rw-r--r--community/libextractor/PKGBUILD4
-rw-r--r--community/pam-krb5/PKGBUILD11
-rw-r--r--community/pdf2djvu/PKGBUILD7
-rw-r--r--community/python-reportlab/ChangeLog18
-rw-r--r--community/python-reportlab/PKGBUILD35
-rw-r--r--community/rekonq/PKGBUILD5
-rw-r--r--community/virtualbox-modules-lts/PKGBUILD6
-rw-r--r--community/virtualbox-modules/PKGBUILD18
-rw-r--r--extra/amule/PKGBUILD6
-rw-r--r--extra/bitlbee/PKGBUILD12
-rw-r--r--extra/calligra/PKGBUILD81
-rw-r--r--extra/inkscape/PKGBUILD4
-rw-r--r--extra/libreoffice/PKGBUILD9
-rw-r--r--extra/net-snmp/PKGBUILD12
-rw-r--r--extra/poppler/PKGBUILD10
-rw-r--r--extra/pygobject2/PKGBUILD40
-rw-r--r--extra/python-lxml/PKGBUILD17
-rw-r--r--extra/xf86-video-intel/PKGBUILD8
-rw-r--r--extra/xf86-video-modesetting/PKGBUILD32
-rw-r--r--extra/xf86-video-trident/PKGBUILD10
-rw-r--r--extra/xf86-video-trident/git_fixes.diff63
-rw-r--r--extra/xfce4-settings/PKGBUILD14
-rw-r--r--extra/xfce4-settings/xfce4-settings-4.10.0-check-service-name-of-nameownerchanged.patch55
-rw-r--r--extra/xfce4-settings/xfce4-settings-4.10.0-fix-gtk3-theme-detection.patch22
-rw-r--r--extra/xorg-server/0001-dix-fix-zaphod-screen-scrossing-54654.patch42
-rw-r--r--extra/xorg-server/PKGBUILD13
-rw-r--r--staging/calligra/PKGBUILD79
-rw-r--r--staging/enblend-enfuse/PKGBUILD6
-rw-r--r--staging/gegl/PKGBUILD10
-rw-r--r--staging/gegl/gegl-0.2.0-ffmpeg-0.11.diff12
-rw-r--r--staging/hugin/PKGBUILD6
-rw-r--r--staging/obex-data-server/PKGBUILD28
-rw-r--r--testing/cryptsetup/PKGBUILD14
-rw-r--r--testing/cryptsetup/encrypt_hook5
-rw-r--r--testing/evolution/PKGBUILD8
-rw-r--r--testing/kmod/0001-depmod-fix-parsing-of-modules.order-with-compressed-.patch165
-rw-r--r--testing/kmod/0001-libkmod-Add-support-for-.-in-module-parameter-on-kcm.patch33
-rw-r--r--testing/kmod/PKGBUILD14
-rw-r--r--testing/xf86-video-intel/PKGBUILD6
61 files changed, 2978 insertions, 267 deletions
diff --git a/community-staging/devil/PKGBUILD b/community-staging/devil/PKGBUILD
new file mode 100644
index 000000000..f2ba5462d
--- /dev/null
+++ b/community-staging/devil/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 78557 2012-10-20 21:46:36Z lcarlier $
+# Maintainer: Laurent Carlier <lordheavym@gmail.org>
+# Contributor: damir <damir@archlinux.org>
+# Contributor: TheHoff <forums>
+
+pkgname=devil
+pkgver=1.7.8
+pkgrel=14
+pkgdesc="Library for reading several different image formats"
+arch=('i686' 'x86_64')
+url="http://openil.sourceforge.net/"
+depends=('libpng' 'libmng' 'jasper' 'lcms' 'openexr')
+install=devil.install
+options=('!libtool' '!docs' '!emptydirs')
+license=('GPL')
+source=(http://downloads.sourceforge.net/openil/DevIL-$pkgver.tar.gz libpng14.patch)
+md5sums=('7918f215524589435e5ec2e8736d5e1d'
+ '0f839ccefd43b0ee8b4b3f99806147fc')
+
+build() {
+ cd ${srcdir}/devil-$pkgver
+
+ patch -Np1 -i ${srcdir}/libpng14.patch
+
+ if [[ $CARCH == x86_64 ]]; then
+ ./configure --prefix=/usr --enable-ILU
+ else
+ ./configure --prefix=/usr --enable-ILU --disable-sse3
+ fi
+
+ make
+}
+
+package() {
+ cd ${srcdir}/devil-$pkgver
+
+ make prefix=${pkgdir}/usr install
+}
diff --git a/community-staging/devil/devil.install b/community-staging/devil/devil.install
new file mode 100644
index 000000000..8336ac3d1
--- /dev/null
+++ b/community-staging/devil/devil.install
@@ -0,0 +1,11 @@
+infodir=usr/share/info
+
+post_upgrade() {
+ [ -x usr/bin/install-info ] || return 0
+ install-info $infodir/DevIL_manual.info.gz $infodir/dir 2> /dev/null
+}
+
+pre_remove() {
+ [ -x usr/bin/install-info ] || return 0
+ install-info --delete $infodir/DevIL_manual.info.gz $infodir/dir 2> /dev/null
+}
diff --git a/community-staging/devil/libpng14.patch b/community-staging/devil/libpng14.patch
new file mode 100644
index 000000000..b8434692b
--- /dev/null
+++ b/community-staging/devil/libpng14.patch
@@ -0,0 +1,33 @@
+diff -Nur devil-1.7.8.orig/src-IL/src/il_icon.c devil-1.7.8/src-IL/src/il_icon.c
+--- devil-1.7.8.orig/src-IL/src/il_icon.c 2009-03-08 09:10:09.000000000 +0200
++++ devil-1.7.8/src-IL/src/il_icon.c 2010-01-17 00:54:09.000000000 +0200
+@@ -525,7 +525,7 @@
+
+ // Expand low-bit-depth grayscale images to 8 bits
+ if (ico_color_type == PNG_COLOR_TYPE_GRAY && bit_depth < 8) {
+- png_set_gray_1_2_4_to_8(ico_png_ptr);
++ png_set_expand_gray_1_2_4_to_8(ico_png_ptr);
+ }
+
+ // Expand RGB images with transparency to full alpha channels
+diff -Nur devil-1.7.8.orig/src-IL/src/il_png.c devil-1.7.8/src-IL/src/il_png.c
+--- devil-1.7.8.orig/src-IL/src/il_png.c 2009-03-08 09:10:09.000000000 +0200
++++ devil-1.7.8/src-IL/src/il_png.c 2010-01-17 00:55:26.000000000 +0200
+@@ -105,7 +105,7 @@
+ Read = iread(Signature, 1, 8);
+ iseek(-Read, IL_SEEK_CUR);
+
+- return png_check_sig(Signature, 8);
++ return png_sig_cmp(Signature, 0, 8) == 0;
+ }
+
+
+@@ -278,7 +278,7 @@
+
+ // Expand low-bit-depth grayscale images to 8 bits
+ if (png_color_type == PNG_COLOR_TYPE_GRAY && bit_depth < 8) {
+- png_set_gray_1_2_4_to_8(png_ptr);
++ png_set_expand_gray_1_2_4_to_8(png_ptr);
+ }
+
+ // Expand RGB images with transparency to full alpha channels
diff --git a/community-staging/gambas3/PKGBUILD b/community-staging/gambas3/PKGBUILD
index 023e764c4..680e2cf73 100644
--- a/community-staging/gambas3/PKGBUILD
+++ b/community-staging/gambas3/PKGBUILD
@@ -1,4 +1,4 @@
-# $Id: PKGBUILD 78403 2012-10-17 21:20:33Z lcarlier $
+# $Id: PKGBUILD 78555 2012-10-20 21:33:06Z lcarlier $
# Maintainer: Laurent Carlier <lordheavym@gmail.com>
# Contributor : sebikul <sebikul@gmail.com>
@@ -15,7 +15,7 @@ pkgname=('gambas3-runtime' 'gambas3-devel' 'gambas3-ide' 'gambas3-script' 'gamba
'gambas3-gb-signal' 'gambas3-gb-v4l' 'gambas3-gb-vb' 'gambas3-gb-xml' 'gambas3-gb-xml-html' 'gambas3-gb-xml-rpc'
'gambas3-gb-xml-xslt' 'gambas3-gb-web')
pkgver=3.3.3
-pkgrel=2
+pkgrel=3
pkgdesc="A free development environment based on a Basic interpreter."
arch=('i686' 'x86_64')
url="http://gambas.sourceforge.net/"
@@ -27,7 +27,8 @@ makedepends=('intltool' 'mysql' 'postgresql' 'libffi' 'bzip2' 'glib2' 'v4l-utils
'curl' 'poppler-glib' 'sdl_mixer' 'sdl_ttf' 'libxtst' 'pcre' 'qtwebkit'
'libxcursor' 'libsm' 'dbus-core' 'libxml2' 'libxslt' 'libgnome-keyring'
'gsl' 'gstreamer0.10' 'gstreamer0.10-base' 'gtkglext' 'ncurses' 'llvm'
- 'gmime' 'glu')
+ 'gmime' 'glu' 'pangox-compat')
+# pangox-compat to remove when added in gtkglext package dependency
options=('!emptydirs')
source=("http://downloads.sourceforge.net/gambas/${pkgbase}-${pkgver}.tar.bz2"
'gambas3-script.install' 'gambas3-runtime.install')
@@ -633,7 +634,8 @@ package_gambas3-gb-gtk() {
}
package_gambas3-gb-gtk-opengl() {
- depends=('gambas3-gb-gtk' 'gambas3-gb-opengl' 'gtkglext' 'glu')
+ depends=('gambas3-gb-gtk' 'gambas3-gb-opengl' 'gtkglext' 'glu' 'pangox-compat')
+# pangox-compat to remove when added in gtkglext package dependency
pkgdesc="GTK+ toolkit OpenGL component"
## workaround for splitting
diff --git a/community-staging/performous/PKGBUILD b/community-staging/performous/PKGBUILD
index d324b1ed4..58774f89a 100644
--- a/community-staging/performous/PKGBUILD
+++ b/community-staging/performous/PKGBUILD
@@ -1,18 +1,16 @@
-# $Id: PKGBUILD 74453 2012-07-28 21:20:32Z tdziedzic $
+# $Id: PKGBUILD 78559 2012-10-20 22:05:37Z lcarlier $
# Maintainer : Laurent Carlier <lordheavym@gmail.com>
# Contributor: Christoph Zeiler <archNOSPAM_at_moonblade.dot.org>
pkgname=performous
pkgver=0.6.1
-pkgrel=16
+pkgrel=17
pkgdesc='A free game like "Singstar", "Rockband" or "Stepmania"'
arch=('i686' 'x86_64')
url="http://performous.org/"
license=('GPL')
depends=('boost-libs' 'imagemagick' 'glew' 'libxml++' 'portaudio' 'portmidi' 'opencv' 'librsvg')
-#depends=('boost-libs>=1.48' 'sdl' 'jack' 'imagemagick' 'ffmpeg' 'glew>=1.7.0' 'libxml++' 'portaudio' 'portmidi' \
-# 'opencv' 'librsvg' 'libjpeg' 'libpng' 'cairo')
-makedepends=('cmake' 'pkgconfig' 'help2man' 'boost>=1.50')
+makedepends=('cmake' 'pkgconfig' 'help2man' 'boost>=1.50' 'mesa')
optdepends=('performous-freesongs: free songs for performous')
source=(http://sourceforge.net/projects/$pkgname/files/$pkgname/$pkgver/Performous-$pkgver-Source.tar.bz2
boost-filesystem-v3.patch
diff --git a/community-staging/widelands/PKGBUILD b/community-staging/widelands/PKGBUILD
index 945b4f48b..2f90c452f 100644
--- a/community-staging/widelands/PKGBUILD
+++ b/community-staging/widelands/PKGBUILD
@@ -1,4 +1,4 @@
-# $Id: PKGBUILD 75485 2012-08-26 00:09:03Z lcarlier $
+# $Id: PKGBUILD 78563 2012-10-20 22:46:38Z lcarlier $
# Maintainer: Sven-Hendrik Haase <sh@lutzhaase.com>
# Contributor: Arkham <arkham at archlinux dot us>
# Contributor: Christoph Zeiler <rabyte*gmail>
@@ -6,13 +6,13 @@
pkgname=widelands
pkgver=17
_realver=build17
-pkgrel=4
+pkgrel=5
pkgdesc="A realtime strategy game with emphasis on economy and transport"
arch=('i686' 'x86_64')
url="http://widelands.org/"
license=('GPL')
-depends=('sdl_mixer' 'sdl_image' 'sdl_net' 'sdl_ttf' 'sdl_gfx' 'lua' 'glew' 'python2' 'widelands-data')
-makedepends=('cmake' 'boost')
+depends=('sdl_mixer' 'sdl_image' 'sdl_net' 'sdl_ttf' 'sdl_gfx' 'lua' 'glew' 'python2')
+makedepends=('cmake' 'boost' 'mesa')
source=("https://launchpad.net/widelands/build17/build-17/+download/$pkgname-$_realver-src.tar.bz2"
$pkgname.desktop
$pkgname.png
@@ -38,6 +38,7 @@ build() {
}
package() {
+ depends=(${depends[@]} 'widelands-data')
cd $srcdir/$pkgname-$_realver-src/build/compile
make DESTDIR="$pkgdir" install
diff --git a/community-testing/espeakup/PKGBUILD b/community-testing/espeakup/PKGBUILD
new file mode 100644
index 000000000..9ee2d9962
--- /dev/null
+++ b/community-testing/espeakup/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 78549 2012-10-20 19:23:23Z tomegun $
+# Contributor: Chris Brannon <chris@the-brannons.com>
+# Contributor: Kyle <kyle@gmx.ca>
+pkgname=espeakup
+pkgver=0.71
+pkgrel=5
+pkgdesc='Allows the Speakup screen review system to use the ESpeak synthesizer.'
+arch=('i686' 'x86_64')
+url="http://github.com/williamh/espeakup"
+license=('GPL3')
+source=("ftp://linux-speakup.org/pub/linux/goodies/${pkgname}-${pkgver}.tar.bz2"
+ espeakup espeakup.conf.d espeakup.service)
+depends=(speakup-utils espeak)
+backup=(etc/conf.d/espeakup)
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="${pkgdir}" install
+ install -m755 -D "${srcdir}/espeakup" "${pkgdir}/etc/rc.d/espeakup"
+ install -m644 -D "${srcdir}/espeakup.conf.d" "${pkgdir}/etc/conf.d/espeakup"
+ install -m644 -D "${srcdir}/espeakup.service" "${pkgdir}/usr/lib/systemd/system/espeakup.service"
+}
+md5sums=('03daa70b3db3f4f6fbb42c2ee428eda7'
+ '7cf0abd493710ed924b7bb7c8d279fb3'
+ '0f93974845b15efa12f5e7a74cc0eecd'
+ '0c11c50b128234cda8e1357e88cf7c43')
diff --git a/community-testing/espeakup/espeakup b/community-testing/espeakup/espeakup
new file mode 100644
index 000000000..94a71701a
--- /dev/null
+++ b/community-testing/espeakup/espeakup
@@ -0,0 +1,43 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/conf.d/espeakup
+. /etc/rc.d/functions
+
+PID=`pidof espeakup`
+PIDFILE=/var/run/espeakup.pid
+case "$1" in
+ start)
+ stat_busy "Starting Espeakup"
+ if [ -z "$PID" ]; then
+ if [ -f $PIDFILE ]; then
+ rm $PIDFILE
+ fi
+ /usr/bin/espeakup $ESPEAKUP_ARGS
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon espeakup
+ stat_done
+ fi
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping Espeakup"
+ [ ! -z "$PID" ] && kill $PID &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon espeakup
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 2
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/community-testing/espeakup/espeakup.conf.d b/community-testing/espeakup/espeakup.conf.d
new file mode 100644
index 000000000..66f7842c3
--- /dev/null
+++ b/community-testing/espeakup/espeakup.conf.d
@@ -0,0 +1,6 @@
+#
+# Arguments to be passed to espeakup.
+# Example:
+# ESPEAKUP_ARGS="--default-voice=fr"
+# will tell espeakup to use the French voice.
+ESPEAKUP_ARGS=""
diff --git a/community-testing/espeakup/espeakup.service b/community-testing/espeakup/espeakup.service
new file mode 100644
index 000000000..58d7d47fa
--- /dev/null
+++ b/community-testing/espeakup/espeakup.service
@@ -0,0 +1,12 @@
+[Unit]
+Description=Software speech output for Speakup
+
+[Service]
+Type=forking
+PIDFile=/run/espeakup.pid
+ExecStart=/usr/bin/espeakup
+ExecReload=/bin/kill -HUP $MAINPID
+Restart=always
+
+[Install]
+WantedBy=multi-user.target
diff --git a/community-testing/gnome-packagekit/PKGBUILD b/community-testing/gnome-packagekit/PKGBUILD
new file mode 100644
index 000000000..e0a5edfd4
--- /dev/null
+++ b/community-testing/gnome-packagekit/PKGBUILD
@@ -0,0 +1,43 @@
+# $Id: PKGBUILD 78514 2012-10-20 07:24:57Z jconder $
+# Maintainer: Jonathan Conder <jonno.conder@gmail.com>
+
+pkgname=gnome-packagekit
+pkgver=3.6.0
+pkgrel=1
+pkgdesc='Collection of graphical tools for PackageKit to be used in the GNOME desktop'
+arch=('i686' 'x86_64')
+url='http://www.packagekit.org/'
+license=('GPL')
+depends=('desktop-file-utils' 'gtk3' 'hicolor-icon-theme' 'libnotify'
+ 'packagekit')
+makedepends=('gconf' 'gtk-doc' 'intltool' 'itstool' 'libcanberra' 'upower')
+optdepends=('polkit-gnome: required for privileged actions'
+ 'gnome-settings-daemon-updates: update and message notifications')
+options=('!emptydirs' '!libtool')
+install="$pkgname.install"
+source=("http://ftp.gnome.org/pub/gnome/sources/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.xz")
+sha256sums=('9f096ec72fb81a78c426d9747145405a8b99e1d8418978828796768c8532d676')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ _mime='application/x-xz-compressed-tar;application/x-servicepack;'
+ sed -i "s@MimeType=.*@MimeType=$_mime@" data/gpk-install-local-file.desktop.in
+
+ sed -i 's@python@python2@' python/enum-convertor.py
+ sed -i 's@python enum-convertor.py@python2 enum-convertor.py@' python/packagekit/Makefile.{am,in}
+
+ export PYTHON=/usr/bin/python2
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --disable-gtk-doc \
+ --disable-schemas-compile \
+ --disable-scrollkeeper
+ make -s
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ make -s DESTDIR="$pkgdir" install
+}
diff --git a/community-testing/gnome-packagekit/gnome-packagekit.install b/community-testing/gnome-packagekit/gnome-packagekit.install
new file mode 100644
index 000000000..620670d57
--- /dev/null
+++ b/community-testing/gnome-packagekit/gnome-packagekit.install
@@ -0,0 +1,19 @@
+post_install() {
+ usr/bin/glib-compile-schemas usr/share/glib-2.0/schemas
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+ update-desktop-database -q
+}
+
+pre_upgrade() {
+ if (( $(vercmp $2 2.91.90) < 0 )); then
+ usr/sbin/gconfpkg --uninstall gnome-packagekit
+ fi
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/community-testing/gnome-settings-daemon-updates/0001-power-and-media-keys-Use-logind-for-suspending-and-r.patch b/community-testing/gnome-settings-daemon-updates/0001-power-and-media-keys-Use-logind-for-suspending-and-r.patch
new file mode 100644
index 000000000..293a419df
--- /dev/null
+++ b/community-testing/gnome-settings-daemon-updates/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/community-testing/gnome-settings-daemon-updates/PKGBUILD b/community-testing/gnome-settings-daemon-updates/PKGBUILD
new file mode 100644
index 000000000..ad446e3f6
--- /dev/null
+++ b/community-testing/gnome-settings-daemon-updates/PKGBUILD
@@ -0,0 +1,52 @@
+# $Id: PKGBUILD 78516 2012-10-20 07:29:43Z jconder $
+# Maintainer: Jonathan Conder <jonno.conder@gmail.com>
+
+_pkgname=gnome-settings-daemon
+pkgname=$_pkgname-updates
+pkgver=3.6.1
+pkgrel=1
+pkgdesc="Updates plugin for the GNOME Settings daemon"
+arch=('i686' 'x86_64')
+license=('GPL')
+depends=('gnome-packagekit' "$_pkgname")
+makedepends=('intltool' 'gtk-doc' 'gnome-desktop' 'gnome-common' 'xf86-input-wacom')
+options=('!emptydirs' '!libtool')
+install=$_pkgname.install
+url="http://www.gnome.org"
+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'
+ 'arch.patch')
+sha256sums=('1fe96e0709d7c618d90cc1bfcddc46eede3c2cdb305f5e7f4cb388d43dd5526a'
+ 'd2c32fa0262e4d0e97fc07fb631ad2627b4f2ae273e2cb3028236d9725711880'
+ 'f23db348593f58da755889928d7fa75817479d9ad5be67cc7a2f8cbc5db23632'
+ '32f18a02698bb24aa8ae293eb7bf74a8261e3ce2c5149d259a87bd14500089ea')
+
+build() {
+ cd "$srcdir/$_pkgname-$pkgver"
+
+ patch -Np1 -i "$srcdir/screensaver.patch"
+ patch -Np1 -i "$srcdir/0001-power-and-media-keys-Use-logind-for-suspending-and-r.patch"
+ patch -Np1 -i "$srcdir/arch.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 -s
+}
+
+package() {
+ cd "$srcdir/$_pkgname-$pkgver"
+ make -C 'plugins/updates' DESTDIR="${pkgdir}" install
+
+ _schema='org.gnome.settings-daemon.plugins.updates.gschema.xml'
+ install -D -m644 "data/$_schema" "$pkgdir/usr/share/glib-2.0/schemas/$_schema"
+}
diff --git a/community-testing/gnome-settings-daemon-updates/arch.patch b/community-testing/gnome-settings-daemon-updates/arch.patch
new file mode 100644
index 000000000..df70cd9f8
--- /dev/null
+++ b/community-testing/gnome-settings-daemon-updates/arch.patch
@@ -0,0 +1,325 @@
+diff --git a/data/org.gnome.settings-daemon.plugins.updates.gschema.xml.in.in b/data/org.gnome.settings-daemon.plugins.updates.gschema.xml.in.in
+index 9af2718..bb45e48 100644
+--- a/data/org.gnome.settings-daemon.plugins.updates.gschema.xml.in.in
++++ b/data/org.gnome.settings-daemon.plugins.updates.gschema.xml.in.in
+@@ -16,7 +16,7 @@
+ <_description>Use mobile broadband connections such as GSM and CDMA to check for updates.</_description>
+ </key>
+ <key name="auto-download-updates" type="b">
+- <default>true</default>
++ <default>false</default>
+ <_summary>Automatically download updates in the background without confirmation</_summary>
+ <_description>Automatically download updates in the background without confirmation. Updates will be auto-downloaded when using wired network connnections, and mobile broadband if 'connection-use-mobile' is enabled.</_description>
+ </key>
+@@ -36,7 +36,7 @@
+ <_description>The last time we notified the user about non-critical updates. Value is in seconds since the epoch, or zero for never.</_description>
+ </key>
+ <key name="frequency-get-upgrades" type="i">
+- <default>604800</default>
++ <default>0</default>
+ <_summary>How often to check for distribution upgrades</_summary>
+ <_description>How often to check for distribution upgrades. Value is in seconds.</_description>
+ </key>
+diff --git a/plugins/updates/Makefile.am b/plugins/updates/Makefile.am
+index 81c7179..6fd3534 100644
+--- a/plugins/updates/Makefile.am
++++ b/plugins/updates/Makefile.am
+@@ -15,7 +15,9 @@ libupdates_la_SOURCES = \
+ gsd-updates-firmware.h \
+ gsd-updates-firmware.c \
+ gsd-updates-manager.h \
+- gsd-updates-manager.c
++ gsd-updates-manager.c \
++ gsd-updates-watch.h \
++ gsd-updates-watch.c
+
+ libupdates_la_CPPFLAGS = \
+ -I$(top_srcdir)/gnome-settings-daemon \
+diff --git a/plugins/updates/gsd-updates-manager.c b/plugins/updates/gsd-updates-manager.c
+index 95ee1c4..7b26c06 100644
+--- a/plugins/updates/gsd-updates-manager.c
++++ b/plugins/updates/gsd-updates-manager.c
+@@ -33,6 +33,7 @@
+ #include "gsd-updates-manager.h"
+ #include "gsd-updates-firmware.h"
+ #include "gsd-updates-refresh.h"
++#include "gsd-updates-watch.h"
+ #include "gsd-updates-common.h"
+ #include "gnome-settings-profile.h"
+
+@@ -47,6 +48,7 @@ struct GsdUpdatesManagerPrivate
+ GCancellable *cancellable;
+ GsdUpdatesRefresh *refresh;
+ GsdUpdatesFirmware *firmware;
++ GsdUpdatesWatch *watch;
+ GSettings *settings_proxy;
+ GSettings *settings_ftp;
+ GSettings *settings_gsd;
+@@ -1360,6 +1362,9 @@ gsd_updates_manager_start (GsdUpdatesManager *manager,
+ g_signal_connect (manager->priv->refresh, "get-updates",
+ G_CALLBACK (due_get_updates_cb), manager);
+
++ /* watch transaction progress */
++ manager->priv->watch = gsd_updates_watch_new ();
++
+ /* get proxy settings */
+ manager->priv->settings_proxy = g_settings_new ("org.gnome.system.proxy");
+ g_signal_connect (manager->priv->settings_proxy, "changed",
+@@ -1455,6 +1460,7 @@ gsd_updates_manager_stop (GsdUpdatesManager *manager)
+ g_clear_object (&manager->priv->task);
+ g_clear_object (&manager->priv->refresh);
+ g_clear_object (&manager->priv->firmware);
++ g_clear_object (&manager->priv->watch);
+ g_clear_object (&manager->priv->proxy_session);
+ g_clear_object (&manager->priv->volume_monitor);
+ g_clear_object (&manager->priv->cancellable);
+diff --git a/plugins/updates/gsd-updates-watch.c b/plugins/updates/gsd-updates-watch.c
+new file mode 100644
+index 0000000..d3a0202
+--- /dev/null
++++ b/plugins/updates/gsd-updates-watch.c
+@@ -0,0 +1,186 @@
++/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
++ *
++ * Copyright (C) 2011-2012 Jonathan Conder <jonno.conder@gmail.com>
++ *
++ * 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 <unistd.h>
++#include <glib/gi18n.h>
++#include <packagekit-glib2/packagekit.h>
++#include <libnotify/notify.h>
++
++#include "gsd-updates-watch.h"
++
++#define GSD_UPDATES_WATCH_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GSD_TYPE_UPDATES_WATCH, GsdUpdatesWatchPrivate))
++
++struct GsdUpdatesWatchPrivate
++{
++ PkTransactionList *tlist;
++ PkClient *client;
++};
++
++G_DEFINE_TYPE (GsdUpdatesWatch, gsd_updates_watch, G_TYPE_OBJECT)
++
++static void
++on_notification_closed (NotifyNotification *notification, gpointer data)
++{
++ g_object_unref (notification);
++}
++
++static void
++gsd_updates_watch_message_cb (PkMessage *item, GsdUpdatesWatch *watch)
++{
++ NotifyNotification *notification;
++ gchar *details = NULL;
++ const gchar *title, *message;
++ GError *error = NULL;
++
++ g_return_if_fail (PK_IS_MESSAGE (item));
++ g_return_if_fail (GSD_IS_UPDATES_WATCH (watch));
++
++ g_object_get (item, "details", &details, NULL);
++ title = _("More information");
++ message = details;
++
++ /* use a better title if available */
++ if (g_str_has_prefix (details, "<b>")) {
++ gchar *end = g_strstr_len (details, -1, "</b>\n");
++ if (end != NULL && g_strstr_len (details, end - details, "\n") == NULL) {
++ title = details + 3;
++ *end = '\0';
++ message = end + 5;
++ }
++ }
++
++ /* display a notification */
++ notification = notify_notification_new (title, message, NULL);
++ notify_notification_set_app_name (notification, _("Software Updates"));
++ notify_notification_set_timeout (notification, NOTIFY_EXPIRES_NEVER);
++ notify_notification_set_urgency (notification, NOTIFY_URGENCY_NORMAL);
++
++ g_signal_connect (notification, "closed", G_CALLBACK (on_notification_closed), NULL);
++ if (!notify_notification_show (notification, &error)) {
++ g_warning ("error: %s", error->message);
++ g_error_free (error);
++ }
++
++ g_free (details);
++}
++
++static void
++gsd_updates_watch_adopt_cb (PkClient *client, GAsyncResult *res, GsdUpdatesWatch *watch)
++{
++ PkResults *results;
++ PkProgress *progress = NULL;
++ guint uid;
++ GPtrArray *array;
++ GError *error = NULL;
++
++ g_return_if_fail (PK_IS_CLIENT (client));
++ g_return_if_fail (G_IS_ASYNC_RESULT (res));
++ g_return_if_fail (GSD_IS_UPDATES_WATCH (watch));
++
++ results = pk_client_generic_finish (client, res, &error);
++ if (results == NULL) {
++ g_warning ("failed to adopt: %s", error->message);
++ g_error_free (error);
++ goto out;
++ }
++
++ g_object_get (results, "progress", &progress, NULL);
++ g_object_get (progress, "uid", &uid, NULL);
++
++ /* only display messages from the same user */
++ if (uid != getuid ()) {
++ g_printerr ("ignoring messages\n");
++ goto out;
++ }
++
++ array = pk_results_get_message_array (results);
++ g_ptr_array_foreach (array, (GFunc) gsd_updates_watch_message_cb, watch);
++ g_ptr_array_unref (array);
++
++out:
++ if (progress != NULL) {
++ g_object_unref (progress);
++ }
++ if (results != NULL) {
++ g_object_unref (results);
++ }
++}
++
++static void
++gsd_updates_watch_tlist_added_cb (PkTransactionList *tlist, const gchar *tid, GsdUpdatesWatch *watch)
++{
++ g_return_if_fail (PK_IS_TRANSACTION_LIST (tlist));
++ g_return_if_fail (tid != NULL);
++ g_return_if_fail (GSD_IS_UPDATES_WATCH (watch));
++
++ /* listen for messages */
++ pk_client_adopt_async (watch->priv->client, tid, NULL, NULL, NULL,
++ (GAsyncReadyCallback) gsd_updates_watch_adopt_cb, watch);
++}
++
++static void
++gsd_updates_watch_init (GsdUpdatesWatch *watch)
++{
++ g_return_if_fail (GSD_IS_UPDATES_WATCH (watch));
++
++ watch->priv = GSD_UPDATES_WATCH_GET_PRIVATE (watch);
++ watch->priv->tlist = pk_transaction_list_new ();
++ watch->priv->client = pk_client_new ();
++
++ g_signal_connect (watch->priv->tlist, "added",
++ G_CALLBACK (gsd_updates_watch_tlist_added_cb), watch);
++}
++
++static void
++gsd_updates_watch_finalize (GObject *object)
++{
++ GsdUpdatesWatch *watch;
++
++ g_return_if_fail (GSD_IS_UPDATES_WATCH (object));
++
++ watch = GSD_UPDATES_WATCH (object);
++ g_return_if_fail (watch->priv != NULL);
++
++ if (watch->priv->tlist != NULL) {
++ g_object_unref (watch->priv->tlist);
++ }
++ if (watch->priv->client != NULL) {
++ g_object_unref (watch->priv->client);
++ }
++
++ G_OBJECT_CLASS (gsd_updates_watch_parent_class)->finalize (object);
++}
++
++GsdUpdatesWatch *
++gsd_updates_watch_new (void)
++{
++ return GSD_UPDATES_WATCH (g_object_new (GSD_TYPE_UPDATES_WATCH, NULL));
++}
++
++static void
++gsd_updates_watch_class_init (GsdUpdatesWatchClass *klass)
++{
++ GObjectClass *object_class = G_OBJECT_CLASS (klass);
++ object_class->finalize = gsd_updates_watch_finalize;
++ g_type_class_add_private (klass, sizeof (GsdUpdatesWatchPrivate));
++}
+diff --git a/plugins/updates/gsd-updates-watch.h b/plugins/updates/gsd-updates-watch.h
+new file mode 100644
+index 0000000..439464f
+--- /dev/null
++++ b/plugins/updates/gsd-updates-watch.h
+@@ -0,0 +1,52 @@
++/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
++ *
++ * Copyright (C) 2011-2012 Jonathan Conder <jonno.conder@gmail.com>
++ *
++ * 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 __GSD_UPDATES_WATCH_H
++#define __GSD_UPDATES_WATCH_H
++
++#include <glib-object.h>
++
++G_BEGIN_DECLS
++
++#define GSD_TYPE_UPDATES_WATCH (gsd_updates_watch_get_type ())
++#define GSD_UPDATES_WATCH(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GSD_TYPE_UPDATES_WATCH, GsdUpdatesWatch))
++#define GSD_UPDATES_WATCH_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), GSD_TYPE_UPDATES_WATCH, GsdUpdatesWatchClass))
++#define GSD_IS_UPDATES_WATCH(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GSD_TYPE_UPDATES_WATCH))
++
++typedef struct GsdUpdatesWatchPrivate GsdUpdatesWatchPrivate;
++
++typedef struct
++{
++ GObject parent;
++ GsdUpdatesWatchPrivate *priv;
++} GsdUpdatesWatch;
++
++typedef struct
++{
++ GObjectClass parent_class;
++} GsdUpdatesWatchClass;
++
++GType gsd_updates_watch_get_type (void);
++GsdUpdatesWatch *gsd_updates_watch_new (void);
++
++G_END_DECLS
++
++#endif /* __GSD_UPDATES_WATCH_H */
diff --git a/community-testing/gnome-settings-daemon-updates/gnome-settings-daemon.install b/community-testing/gnome-settings-daemon-updates/gnome-settings-daemon.install
new file mode 100644
index 000000000..f7e8c46ac
--- /dev/null
+++ b/community-testing/gnome-settings-daemon-updates/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/community-testing/gnome-settings-daemon-updates/screensaver.patch b/community-testing/gnome-settings-daemon-updates/screensaver.patch
new file mode 100644
index 000000000..bbcfe3430
--- /dev/null
+++ b/community-testing/gnome-settings-daemon-updates/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/community/evas_generic_loaders-svn/PKGBUILD b/community/evas_generic_loaders-svn/PKGBUILD
index 4bab0ac41..345c80acb 100644
--- a/community/evas_generic_loaders-svn/PKGBUILD
+++ b/community/evas_generic_loaders-svn/PKGBUILD
@@ -1,10 +1,10 @@
-# $Id: PKGBUILD 76270 2012-09-15 10:06:38Z rvanharen $
+# $Id: PKGBUILD 78523 2012-10-20 09:32:58Z heftig $
# Maintainer: Daniel Wallace <danielwallace at gtmanfred dot com>
# Contributor: Ronald van Haren <ronald.archlinux.org>
pkgname=evas_generic_loaders-svn
pkgver=75875
-pkgrel=1
+pkgrel=2
pkgdesc="Additional generic loaders for Evas"
arch=('i686' 'x86_64')
groups=('e17-libs-svn' 'e17-svn')
diff --git a/community/flac123/PKGBUILD b/community/flac123/PKGBUILD
index b51482c7d..e101e6f20 100644
--- a/community/flac123/PKGBUILD
+++ b/community/flac123/PKGBUILD
@@ -1,28 +1,29 @@
-# $Id: PKGBUILD 66067 2012-02-22 17:27:23Z cbrannon $
+# $Id: PKGBUILD 78533 2012-10-20 10:17:22Z ebelanger $
# Maintainer: Chris Brannon <chris@the-brannons.com>
# Contributor: Corrado Primier <bardo@aur.archlinux.org>
# Contributor: Patrick Burroughs <celticmadman@gmail.com>
pkgname=flac123
-pkgver=0.0.11
-pkgrel=4
+pkgver=0.0.12
+pkgrel=1
arch=('i686' 'x86_64')
license=('GPL2')
pkgdesc="A command-line program for playing FLAC audio files"
url="http://flac-tools.sourceforge.net/"
depends=('flac' 'libao' 'popt')
-source=(http://downloads.sourceforge.net/flac-tools/${pkgname}-${pkgver}.tar.gz)
-md5sums=('60204986d3556330255b87aa42a4c9d1')
+source=(http://downloads.sourceforge.net/flac-tools/${pkgname}-${pkgver}-release.tar.gz)
+md5sums=('59dacb2584bbe9c61d046ce995108ac6')
build() {
- cd ${srcdir}/${pkgname}-${pkgver}
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ autoreconf --force --install
./configure --prefix=/usr
make
}
package() {
- cd ${srcdir}/${pkgname}-${pkgver}
- make DESTDIR=${pkgdir} install
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
}
# vim:set ts=2 sw=2 et:
diff --git a/community/gambas2/PKGBUILD b/community/gambas2/PKGBUILD
index 3b683fef4..8ae8cd258 100644
--- a/community/gambas2/PKGBUILD
+++ b/community/gambas2/PKGBUILD
@@ -1,4 +1,4 @@
-# $Id: PKGBUILD 77638 2012-10-13 11:42:56Z allan $
+# $Id: PKGBUILD 78524 2012-10-20 09:33:12Z heftig $
# Maintainer : Laurent Carlier <lordheavym@gmail.com>
# Contributor: Biru Ionut <ionut@archlinux.ro>
# Contributor: Andrea Scarpino <andrea@archlinux.org>
@@ -20,12 +20,12 @@ pkgname=('gambas2-meta' 'gambas2-runtime' 'gambas2-devel' 'gambas2-ide' 'gambas2
'gambas2-gb-sdl-sound' 'gambas2-gb-settings' 'gambas2-gb-v4l' 'gambas2-gb-vb'
'gambas2-gb-web' 'gambas2-gb-xml' 'gambas2-gb-xml-rpc' 'gambas2-gb-xml-xslt')
pkgver=2.24.0
-pkgrel=7
+pkgrel=8
pkgdesc="A free development environment based on a Basic interpreter."
arch=('i686' 'x86_64')
url="http://gambas.sourceforge.net"
makedepends=('libffi' 'bzip2' 'libfbclient' 'zlib' 'kdelibs3' 'glu' 'gtk2' 'librsvg' 'xdg-utils'
- 'postgresql-libs' 'libmysqlclient' 'unixodbc' 'sqlite2' 'sqlite'
+ 'postgresql-libs' 'libmysqlclient' 'unixodbc' 'sqlite2' 'sqlite' 'mesa'
'curl' 'poppler-glib' 'sdl_mixer' 'sdl_image' 'libxtst' 'pcre' 'omniorb' 'libxft'
'libxcursor' 'libsm' 'intltool' 'mysql' 'postgresql')
license=('GPL2')
diff --git a/community/gambas3/PKGBUILD b/community/gambas3/PKGBUILD
index 762b2e808..5f8f938cc 100644
--- a/community/gambas3/PKGBUILD
+++ b/community/gambas3/PKGBUILD
@@ -1,4 +1,4 @@
-# $Id: PKGBUILD 77639 2012-10-13 11:43:04Z allan $
+# $Id: PKGBUILD 78525 2012-10-20 09:33:20Z heftig $
# Maintainer: Laurent Carlier <lordheavym@gmail.com>
# Contributor : sebikul <sebikul@gmail.com>
@@ -15,7 +15,7 @@ pkgname=('gambas3-runtime' 'gambas3-devel' 'gambas3-ide' 'gambas3-script' 'gamba
'gambas3-gb-signal' 'gambas3-gb-v4l' 'gambas3-gb-vb' 'gambas3-gb-xml' 'gambas3-gb-xml-html' 'gambas3-gb-xml-rpc'
'gambas3-gb-xml-xslt' 'gambas3-gb-web')
pkgver=3.3.3
-pkgrel=1
+pkgrel=2
pkgdesc="A free development environment based on a Basic interpreter."
arch=('i686' 'x86_64')
url="http://gambas.sourceforge.net/"
diff --git a/community/libcec/PKGBUILD b/community/libcec/PKGBUILD
index 45698db9a..ff55295ab 100644
--- a/community/libcec/PKGBUILD
+++ b/community/libcec/PKGBUILD
@@ -1,10 +1,10 @@
-# $Id: PKGBUILD 76479 2012-09-18 20:07:49Z idevolder $
+# $Id: PKGBUILD 78553 2012-10-20 20:21:09Z idevolder $
# Maintainer: BlackIkeEagle <ike DOT devolder AT gmail DOT com>
# Contributor: Philippe Cherel <philippe.cherel@mayenne.org>
pkgname=libcec
pkgver=1.9.0
-pkgrel=1
+pkgrel=2
pkgdesc="Pulse-Eight's libcec for the Pulse-Eight USB-CEC adapter"
arch=('i686' 'x86_64')
url="https://github.com/Pulse-Eight/libcec"
diff --git a/community/libextractor/PKGBUILD b/community/libextractor/PKGBUILD
index 73d27883f..21ff94ed8 100644
--- a/community/libextractor/PKGBUILD
+++ b/community/libextractor/PKGBUILD
@@ -1,10 +1,10 @@
-# $Id: PKGBUILD 75315 2012-08-19 08:00:41Z heftig $
+# $Id: PKGBUILD 78526 2012-10-20 09:33:25Z heftig $
# Maintainer: Sergej Pupykin <pupykin.s@gmail.com>
# Contributor: damir <damir@archlinux.org>
pkgname=libextractor
pkgver=0.6.3
-pkgrel=7
+pkgrel=8
pkgdesc="A library used to extract meta-data from files of arbitrary type"
arch=("i686" "x86_64")
license=('GPL')
diff --git a/community/pam-krb5/PKGBUILD b/community/pam-krb5/PKGBUILD
index 85c53eff2..88e927d62 100644
--- a/community/pam-krb5/PKGBUILD
+++ b/community/pam-krb5/PKGBUILD
@@ -1,18 +1,19 @@
-# $Id: PKGBUILD 70351 2012-05-04 23:55:05Z allan $
+# $Id: PKGBUILD 78535 2012-10-20 10:30:17Z ebelanger $
# Maintainer: Kaiting Chen <kaitocracy@gmail.com>
# Contributor: Ryan Corder <ryanc@greengrey.org>
pkgname=pam-krb5
-pkgver=4.5
-pkgrel=2
+pkgver=4.6
+pkgrel=1
pkgdesc='A PAM module providing Kerberos v5 support.'
arch=('i686' 'x86_64')
url='http://www.eyrie.org/~eagle/software/pam-krb5/'
license=('custom')
options=('!libtool')
depends=('krb5' 'pam')
-source=("http://archives.eyrie.org/software/kerberos/$pkgname-$pkgver.tar.gz")
-md5sums=('5736795225cf7f84718af42a15570fe0')
+source=(http://archives.eyrie.org/software/kerberos/$pkgname-$pkgver.tar.gz{,.asc})
+md5sums=('296e9c8281419ce1fc41d537d18f74b8'
+ 'c68a521345d79d54fb129a3f4ca2767b')
build() {
cd "${srcdir}/${pkgname}-${pkgver}"
diff --git a/community/pdf2djvu/PKGBUILD b/community/pdf2djvu/PKGBUILD
index 679ce651e..a4d83244e 100644
--- a/community/pdf2djvu/PKGBUILD
+++ b/community/pdf2djvu/PKGBUILD
@@ -1,9 +1,9 @@
-# $Id: PKGBUILD 76563 2012-09-23 10:10:49Z jelle $
+# $Id: PKGBUILD 78527 2012-10-20 09:33:28Z heftig $
# Contributor: Paulo Matias <matiasΘarchlinux-br·org>
# Maintainer: Jelle van der Waa <jelle@vdwaa.nl>
pkgname=pdf2djvu
-pkgver=0.7.14
+pkgver=0.7.15
pkgrel=1
pkgdesc="Creates DjVu files from PDF files"
arch=('i686' 'x86_64')
@@ -12,7 +12,6 @@ license=('GPL')
depends=('poppler' 'djvulibre' 'libxslt' 'gcc-libs' 'graphicsmagick')
makedepends=('pstreams' 'python2-nose' 'ttf-liberation')
source=("http://pdf2djvu.googlecode.com/files/${pkgname}_${pkgver}.tar.gz")
-md5sums=('b5327c5949057711a8250dffb6ccfd2d')
build() {
cd ${srcdir}/${pkgname}-${pkgver}
@@ -31,4 +30,4 @@ check() {
sed -i 's/nosetests/nosetests2/' tests/Makefile
make test
}
-md5sums=('bfeb443f81d0df7544fd393ad7ee6cd7')
+md5sums=('cd03b61636b8d58592e7f419b434581f')
diff --git a/community/python-reportlab/ChangeLog b/community/python-reportlab/ChangeLog
new file mode 100644
index 000000000..85b5db51f
--- /dev/null
+++ b/community/python-reportlab/ChangeLog
@@ -0,0 +1,18 @@
+
+2009-02-17 Douglas Soares de Andrade <douglas@archlinux.org>
+
+ * Updated for i686: 2.3
+
+2008-11-03 Giovanni Scafora <giovanni@archlinux.org>
+
+ * Rebuilt against python 2.6
+
+2008-09-14 Douglas Soares de Andrade <douglas@archlinux.org>
+
+ * Updating for x86_64: 2.2
+
+2008-09-13 Douglas Soares de Andrade <douglas@archlinux.org>
+
+ * Adding ChangeLog
+ * Updating for i686: 2.2
+
diff --git a/community/python-reportlab/PKGBUILD b/community/python-reportlab/PKGBUILD
new file mode 100644
index 000000000..6e44f03d6
--- /dev/null
+++ b/community/python-reportlab/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 78251 2012-10-17 10:27:06Z allan $
+# Maintainer:
+# Contributor: Angel 'angvp' Velasquez <angvp[at]archlinux.com.ve>
+# Contributor: William Rea <sillywilly@gmail.com>
+
+pkgbase=python-reportlab
+pkgname=python2-reportlab
+_origname=reportlab
+pkgver=2.6
+pkgrel=1
+pkgdesc="A proven industry-strength PDF generating solution"
+arch=('i686' 'x86_64')
+url="http://www.reportlab.org/rl_toolkit.html"
+depends=('python2' 'freetype2')
+conflicts=('python-reportlab<=2.5-2')
+replaces=('python-reportlab<=2.5-2')
+license=('CUSTOM')
+source=(http://www.reportlab.org/ftp/${_origname}-$pkgver.tar.gz)
+md5sums=('e5d27a24a2c8456b168913242aa1940f')
+
+build() {
+ cd $srcdir/${_origname}-$pkgver
+
+ # python2 fix
+ for file in src/reportlab/graphics/widgets/table.py src/reportlab/lib/normalDate.py \
+ src/reportlab/pdfgen/pycanvas.py; do
+ sed -i 's_#!.*/usr/bin/env python_#!/usr/bin/env python2_' $file
+ done
+}
+
+package_python2-reportlab() {
+ cd $srcdir/${_origname}-$pkgver
+ python2 setup.py install --root=$pkgdir --optimize=1
+ install -D -m644 LICENSE.txt $pkgdir/usr/share/licenses/$pkgname/license.txt
+}
diff --git a/community/rekonq/PKGBUILD b/community/rekonq/PKGBUILD
index e54032235..22b5d042b 100644
--- a/community/rekonq/PKGBUILD
+++ b/community/rekonq/PKGBUILD
@@ -1,17 +1,18 @@
-# $Id: PKGBUILD 77202 2012-10-06 14:10:04Z andrea $
+# $Id: PKGBUILD 78531 2012-10-20 10:07:28Z andrea $
# Maintainer: Peter Lewis <plewis@aur.archlinux.org>
# Maintainer: Andrea Scarpino <andrea@archlinux.org>
# Contributor: Panagiotis Papadopoulos <pano_90 AT gmx DOT net>
pkgname=rekonq
pkgver=1.2
-pkgrel=1
+pkgrel=2
pkgdesc='A WebKit based web browser for KDE'
arch=('i686' 'x86_64')
url='http://rekonq.kde.org/'
license=('GPL')
depends=('kdebase-keditbookmarks' 'qoauth')
makedepends=('cmake' 'automoc4')
+optdepends=('qca-ossl: to use the sync handler')
install=${pkgname}.install
source=("http://downloads.sourceforge.net/${pkgname}/${pkgname}-${pkgver}.tar.bz2")
md5sums=('97d025df580813013643b8c51675a75d')
diff --git a/community/virtualbox-modules-lts/PKGBUILD b/community/virtualbox-modules-lts/PKGBUILD
index 661f19a4e..aa1f3d890 100644
--- a/community/virtualbox-modules-lts/PKGBUILD
+++ b/community/virtualbox-modules-lts/PKGBUILD
@@ -1,12 +1,12 @@
-# $Id: PKGBUILD 77197 2012-10-06 11:21:31Z tpowa $
+# $Id: PKGBUILD 78541 2012-10-20 11:53:48Z seblu $
# Maintainer: Bartłomiej Piotrowski <nospam@bpiotrowski.pl>
# Contributor: Ionut Biru <ibiru@archlinux.org>
# Contributor: Sébastien Luttringer <seblu@aur.archlinux.org>
pkgbase=virtualbox-modules-lts
pkgname=('virtualbox-host-modules-lts' 'virtualbox-guest-modules-lts')
-pkgver=4.2.0
-pkgrel=3
+pkgver=4.2.2
+pkgrel=1
arch=('i686' 'x86_64')
url='http://virtualbox.org'
license=('GPL')
diff --git a/community/virtualbox-modules/PKGBUILD b/community/virtualbox-modules/PKGBUILD
index 28b75bd71..6850f7879 100644
--- a/community/virtualbox-modules/PKGBUILD
+++ b/community/virtualbox-modules/PKGBUILD
@@ -1,11 +1,11 @@
-# $Id: PKGBUILD 77842 2012-10-15 05:19:18Z tpowa $
+# $Id: PKGBUILD 78539 2012-10-20 11:51:18Z seblu $
# Maintainer: Ionut Biru <ibiru@archlinux.org>
# Maintainer: Sébastien Luttringer <seblu@aur.archlinux.org>
pkgbase=virtualbox-modules
pkgname=('virtualbox-host-modules' 'virtualbox-guest-modules')
-pkgver=4.2.0
-pkgrel=6
+pkgver=4.2.2
+pkgrel=1
arch=('i686' 'x86_64')
url='http://virtualbox.org'
license=('GPL')
@@ -16,8 +16,8 @@ makedepends=('linux-headers'
build() {
# current kernel version
- #_kernver=$(expac -Q '%v' linux-headers)-ARCH
- _kernver=3.6.0-1-ARCH
+ _kernver=$(expac -Q '%v' linux-headers)-ARCH
+ #_kernver=3.6.0-1-ARCH
# dkms need modification to be run as user
cp -r /var/lib/dkms .
echo "dkms_tree='$srcdir/dkms'" > dkms.conf
@@ -36,8 +36,8 @@ package_virtualbox-host-modules(){
conflicts=('virtualbox-modules')
install=virtualbox-host-modules.install
- #_kernver=$(expac -Q '%v' linux-headers)-ARCH
- _kernver=3.6.0-1-ARCH
+ _kernver=$(expac -Q '%v' linux-headers)-ARCH
+ # _kernver=3.6.0-1-ARCH
_extraver=extramodules-${_kernver%.*}-ARCH
install -dm755 "$pkgdir/usr/lib/modules/$_extraver"
@@ -55,8 +55,8 @@ package_virtualbox-guest-modules(){
conflicts=('virtualbox-archlinux-modules')
install=virtualbox-guest-modules.install
- #_kernver=$(expac -Q '%v' linux-headers)-ARCH
- _kernver=3.6.0-1-ARCH
+ _kernver=$(expac -Q '%v' linux-headers)-ARCH
+ #_kernver=3.6.0-1-ARCH
_extraver=extramodules-${_kernver%.*}-ARCH
install -dm755 "$pkgdir/usr/lib/modules/$_extraver"
diff --git a/extra/amule/PKGBUILD b/extra/amule/PKGBUILD
index 993423a43..c43d64e11 100644
--- a/extra/amule/PKGBUILD
+++ b/extra/amule/PKGBUILD
@@ -1,11 +1,11 @@
-# $Id: PKGBUILD 161344 2012-06-10 05:51:02Z giovanni $
+# $Id: PKGBUILD 169418 2012-10-20 18:24:37Z giovanni $
# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
# Contributor: Henrik Ronellenfitsch <searinox@web.de>
# Contributor: Alessio Sergi <sergi.alessio {at} gmail.com>
# Contributor: Dario 'Dax' Vilardi <dax [at] deelab [dot] org>
pkgname=amule
-pkgver=10792
+pkgver=10795
pkgrel=1
pkgdesc="An eMule-like client for ed2k p2p network"
arch=('i686' 'x86_64')
@@ -13,7 +13,7 @@ url="http://www.amule.org"
license=('GPL')
depends=('wxgtk' 'gd' 'geoip' 'libupnp' 'crypto++')
source=("http://amule.sourceforge.net/tarballs/aMule-SVN-r${pkgver}.tar.bz2")
-md5sums=('ff828df9561e4964e439539189a891f7')
+md5sums=('e64c4f198e66c3e231a292b60b7cafb4')
build() {
cd "${srcdir}/aMule-SVN-r${pkgver}"
diff --git a/extra/bitlbee/PKGBUILD b/extra/bitlbee/PKGBUILD
index 56a5b1627..264d15a97 100644
--- a/extra/bitlbee/PKGBUILD
+++ b/extra/bitlbee/PKGBUILD
@@ -1,4 +1,4 @@
-# $Id: PKGBUILD 163519 2012-07-14 13:10:00Z allan $
+# $Id: PKGBUILD 169422 2012-10-20 20:58:46Z dreisner $
# Contributor: FUBAR <mrfubar@gmail.com>
# Contributor: simo <simo@archlinux.org>
@@ -8,8 +8,8 @@
# Maintainer: Dave Reisner <dreisner@archlinux.org>
pkgname=bitlbee
-pkgver=3.0.5
-pkgrel=4
+pkgver=3.0.6
+pkgrel=1
pkgdesc='Brings instant messaging (XMPP, MSN, Yahoo!, AIM, ICQ, Twitter) to IRC'
url='http://www.bitlbee.org/'
license=('GPL')
@@ -20,12 +20,10 @@ optdepends=('skype4py: to use skyped'
'libotr: for OTR encryption support'
'xinetd: to run bitlbee through xinetd')
source=("http://get.bitlbee.org/src/${pkgname}-${pkgver}.tar.gz"
- 'sbindir.patch'
'xinetd'
'rc.d'
'bitlbee.tmpfiles')
-sha1sums=('74afdff87be49ce060771a6ae10d7643cd57b9b6'
- '9b774e6d85471a4e43e25b8b941cd0e1032a7a6c'
+sha1sums=('6ac7cab4dab422f9baac97818e69ee9934db345c'
'5e0af27ba9cc4fe455e3381c75fc49a9326e2f17'
'02423c500ac64f673ba26a3395c7c7036c17343e'
'3695ed2fe22436c4d0fc3ead829f7d1f89bc491c')
@@ -37,8 +35,6 @@ install=bitlbee.install
build() {
cd "$pkgname-$pkgver"
- patch -p1 -i ../sbindir.patch
-
./configure \
--prefix=/usr \
--etcdir=/etc/bitlbee \
diff --git a/extra/calligra/PKGBUILD b/extra/calligra/PKGBUILD
index 61f297008..73b65af15 100644
--- a/extra/calligra/PKGBUILD
+++ b/extra/calligra/PKGBUILD
@@ -1,15 +1,11 @@
-# $Id: PKGBUILD 168545 2012-10-13 09:58:07Z andrea $
+# $Id: PKGBUILD 169384 2012-10-20 09:31:33Z andyrtr $
# Maintainer: Ronald van Haren <ronald.archlinux.org>
# Maintainer: Andrea Scarpino <andrea@archlinux.org>
pkgbase=calligra
pkgname=('calligra-filters'
- 'calligra-interfaces'
'calligra-libs'
'calligra-plugins'
- 'calligra-pics'
- 'calligra-servicetypes'
- 'calligra-templates'
'calligra-tools'
'calligra-karbon'
'calligra-kexi'
@@ -22,14 +18,14 @@ pkgname=('calligra-filters'
'calligra-braindump'
'calligra-flow')
pkgver=2.5.3
-pkgrel=2
+pkgrel=5
arch=('i686' 'x86_64')
url='http://www.calligra-suite.org/'
license=('FDL1.2' 'GPL2' 'LGPL')
makedepends=('cmake' 'automoc4' 'boost ' 'kdepimlibs' 'eigen2' 'kdeedu-marble'
'lcms2' 'libmysqlclient' 'libpqxx' 'freetds' 'xbase' 'libwpg'
'libwps' 'gsl' 'glew' 'fftw' 'opengtl' 'poppler-qt' 'libkdcraw'
- 'openjpeg' 'kdegraphics-okular' 'pstoedit')
+ 'openjpeg' 'kdegraphics-okular' 'pstoedit' 'mesa')
groups=('calligra')
source=("http://download.kde.org/stable/${pkgbase}-${pkgver}/${pkgbase}-${pkgver}.tar.bz2")
md5sums=('83e2679b7ecb923b953ace06db7ca4c2')
@@ -56,24 +52,22 @@ package_calligra-filters() {
make DESTDIR="${pkgdir}" install
}
-package_calligra-interfaces() {
- pkgdesc="Interfaces for the Calligra office suite"
- depends=('calligra-libs')
- conflicts=('koffice-interfaces')
- replaces=('koffice-interfaces')
-
- cd "${srcdir}"/build/interfaces
- make DESTDIR="${pkgdir}" install
-}
-
package_calligra-libs() {
pkgdesc="Libraries for the Calligra office suite"
- depends=('kdepimlibs' 'lcms2' 'calligra-servicetypes')
- conflicts=('koffice-libs')
- replaces=('koffice-libs')
-
- cd "${srcdir}"/build/libs
- make DESTDIR="${pkgdir}" install
+ depends=('kdepimlibs' 'lcms2')
+ conflicts=('koffice-interfaces' 'koffice-libs' 'koffice-pics'
+ 'koffice-servicetypes' 'koffice-templates' 'calligra-interfaces'
+ 'calligra-libs' 'calligra-pics' 'calligra-servicetypes'
+ 'calligra-templates')
+ replaces=('koffice-interfaces' 'koffice-libs' 'koffice-pics'
+ 'koffice-servicetypes' 'koffice-templates' 'calligra-interfaces'
+ 'calligra-libs' 'calligra-pics' 'calligra-servicetypes'
+ 'calligra-templates')
+
+ for d in interfaces libs pics servicetypes templates; do
+ cd "${srcdir}"/build/${d}
+ make DESTDIR="${pkgdir}" install
+ done
}
package_calligra-plugins() {
@@ -87,35 +81,6 @@ package_calligra-plugins() {
make DESTDIR="${pkgdir}" install
}
-package_calligra-pics() {
- pkgdesc="Icons for the Calligra office suite"
- conflicts=('koffice-pics')
- replaces=('koffice-pics')
- install=calligra.install
-
- cd "${srcdir}"/build/pics
- make DESTDIR="${pkgdir}" install
-}
-
-package_calligra-servicetypes() {
- pkgdesc="Servicetypes for the Calligra office suite"
- conflicts=('koffice-servicetypes')
- replaces=('koffice-servicetypes')
- install=calligra.install
-
- cd "${srcdir}"/build/servicetypes
- make DESTDIR="${pkgdir}" install
-}
-
-package_calligra-templates() {
- pkgdesc="Templates for the Calligra office suite"
- conflicts=('koffice-templates')
- replaces=('koffice-templates')
-
- cd "${srcdir}"/build/templates
- make DESTDIR="${pkgdir}" install
-}
-
package_calligra-tools() {
pkgdesc="Tools for the Calligra office suite"
depends=('calligra-libs')
@@ -129,7 +94,7 @@ package_calligra-tools() {
package_calligra-karbon() {
pkgdesc="Create scalable vector drawings"
- depends=('calligra-libs' 'calligra-templates' 'kdebase-runtime' 'pstoedit')
+ depends=('calligra-libs' 'kdebase-runtime' 'pstoedit')
optdepends=('calligra-filters: import/export filters'
'calligra-tools: extra calligra tools')
conflicts=('koffice-karbon' 'koffice-karbon-doc' 'calligra-karbon-doc')
@@ -142,7 +107,7 @@ package_calligra-karbon() {
package_calligra-kexi() {
pkgdesc="Develop desktop database applications"
- depends=('calligra-libs' 'calligra-templates' 'glew' 'fftw')
+ depends=('calligra-libs' 'glew' 'fftw')
optdepends=('libmysqlclient: MySQL driver'
'libpqxx: PostgreSQL driver'
'freetds: Sybase & MS SQL driver'
@@ -173,7 +138,7 @@ package_calligra-plan() {
package_calligra-stage() {
pkgdesc="Write presentation documents"
- depends=('calligra-libs' 'calligra-templates' 'kdebase-runtime')
+ depends=('calligra-libs' 'kdebase-runtime')
optdepends=('calligra-plugins: extra calligra plugins')
conflicts=('koffice-kpresenter' 'koffice-kpresenter-doc' 'calligra-stage-doc')
replaces=('koffice-kpresenter' 'koffice-kpresenter-doc' 'calligra-stage-doc')
@@ -187,7 +152,7 @@ package_calligra-stage() {
package_calligra-krita() {
pkgdesc="Edit and paint images"
- depends=('calligra-templates' 'calligra-plugins' 'kdebase-runtime' 'eigen2'
+ depends=('calligra-plugins' 'kdebase-runtime' 'eigen2'
'poppler-qt' 'libkdcraw' 'fftw' 'glew' 'opengtl')
conflicts=('koffice-krita' 'calligra-krita-doc')
replaces=('koffice-krita' 'calligra-krita-doc')
@@ -199,7 +164,7 @@ package_calligra-krita() {
package_calligra-sheets() {
pkgdesc="Write spreadsheet documents"
- depends=('calligra-templates' 'calligra-libs' 'gsl' 'kdebase-runtime')
+ depends=('calligra-libs' 'gsl' 'kdebase-runtime')
optdepends=('calligra-filters: import/export filters'
'calligra-plugins: extra calligra plugins'
'calligra-tools: extra calligra tools')
@@ -215,7 +180,7 @@ package_calligra-sheets() {
package_calligra-words() {
pkgdesc="Word Processor"
- depends=('calligra-templates' 'calligra-pics' 'calligra-plugins' 'kdegraphics-okular')
+ depends=('calligra-libs' 'kdegraphics-okular')
optdepends=('calligra-tools: extra calligra tools')
conflicts=('koffice-kword')
replaces=('koffice-kword')
diff --git a/extra/inkscape/PKGBUILD b/extra/inkscape/PKGBUILD
index 17578c147..6811af51b 100644
--- a/extra/inkscape/PKGBUILD
+++ b/extra/inkscape/PKGBUILD
@@ -1,11 +1,11 @@
-# $Id: PKGBUILD 165428 2012-08-19 07:57:43Z andyrtr $
+# $Id: PKGBUILD 169386 2012-10-20 09:31:39Z andyrtr $
# Contributor: tobias <tobias@archlinux.org>
# Contributor: Tobias Kieslich <tobias@justdreams.de>
# Maintainer: Gaetan Bisson <bisson@archlinux.org>
pkgname=inkscape
pkgver=0.48.3.1
-pkgrel=5
+pkgrel=6
pkgdesc='Vector graphics editor using the SVG file format'
url='http://inkscape.sourceforge.net/'
license=('GPL' 'LGPL')
diff --git a/extra/libreoffice/PKGBUILD b/extra/libreoffice/PKGBUILD
index 8df933197..2bb3bf12e 100644
--- a/extra/libreoffice/PKGBUILD
+++ b/extra/libreoffice/PKGBUILD
@@ -1,4 +1,4 @@
-# $Id: PKGBUILD 168606 2012-10-13 11:47:57Z andyrtr $
+# $Id: PKGBUILD 169387 2012-10-20 09:31:46Z andyrtr $
# Maintainer: AndyRTR <andyrtr@archlinux.org>
pkgbase="libreoffice"
@@ -26,15 +26,15 @@ pkgname=('libreoffice-common'
'libreoffice-extension-nlpsolver') # svn up -r 142692 (last one with all extensions built)
_LOver=3.6.2.2
pkgver=3.6.2
-pkgrel=2
+pkgrel=3
arch=('i686' 'x86_64')
license=('LGPL3')
url="http://www.libreoffice.org/"
makedepends=( # makedepends
'sane' 'perl-archive-zip' 'zip' 'unzip' 'unixodbc' 'hsqldb-java' #'boost'
- 'apache-ant' 'gperf' 'poppler>=0.18.0' 'kdelibs' 'gconf' 'cppunit'
+ 'apache-ant' 'gperf' 'poppler>=0.20.5' 'kdelibs' 'gconf' 'cppunit'
'beanshell' 'vigra' 'clucene' 'junit' 'libmythes' 'libwpg' 'imagemagick'
- 'glu' 'gstreamer0.10-base' 'java-environment' 'postgresql-libs' 'doxygen' 'clucene'
+ 'glu' 'mesa' 'gstreamer0.10-base' 'java-environment' 'postgresql-libs' 'doxygen' 'clucene'
# the runtime dependencies
"curl>=7.20.0" "hunspell>=1.2.8" "python2>=2.7" 'libwpd>=0.9.2' 'libwps' 'libxaw' "neon>=0.28.6"
'pango' 'nspr' 'libjpeg' 'libxrandr' 'libgl' 'dbus-glib' 'libxslt' 'librsvg' "icu>=49.1"
@@ -288,7 +288,6 @@ package_libreoffice-common() {
'gconf: adds additional gnome support'
'nss: adds support for signed files/macros'
'pstoedit: translates PostScript and PDF graphics into other vector formats'
- 'poppler: for shipped pdfimport extension'
'libmythes: for use in thesaurus'
'beanshell: interactive java -- good for prototyping /macros'
'vigra: C++ computer vision library, usable in Basebmp'
diff --git a/extra/net-snmp/PKGBUILD b/extra/net-snmp/PKGBUILD
index 325c61b06..09af24cb2 100644
--- a/extra/net-snmp/PKGBUILD
+++ b/extra/net-snmp/PKGBUILD
@@ -1,10 +1,10 @@
-# $Id: PKGBUILD 168300 2012-10-08 05:33:09Z eric $
+# $Id: PKGBUILD 169381 2012-10-20 09:06:34Z eric $
# Maintainer:
# Contributor: Dale Blount <dale@archlinux.org>
pkgname=net-snmp
-pkgver=5.7.1
-pkgrel=4
+pkgver=5.7.2
+pkgrel=1
pkgdesc="A suite of applications used to implement SNMP v1, SNMP v2c and SNMP v3 using both IPv4 and IPv6"
arch=('i686' 'x86_64')
url="http://www.net-snmp.org/"
@@ -16,11 +16,11 @@ optdepends=('perl-term-readkey: for snmpcheck application'
'python2: for the python modules')
provides=('ucd-snmp')
backup=('etc/conf.d/snmpd')
-options=('!libtool' '!makeflags' '!emptydirs')
+options=('!libtool' '!emptydirs')
source=(http://downloads.sourceforge.net/${pkgname}/${pkgname}-${pkgver}.tar.gz{,.asc}
snmpd.confd snmpd.rc snmpd.service libnl32.patch)
-sha1sums=('ddb82ce1112ef0642869d3c8d7c7e585f151849a'
- '2bdc2839ce09d7daa608cd54687fa8beb47ed907'
+sha1sums=('c493027907f32400648244d81117a126aecd27ee'
+ '25ee4b2e7b5a1b91122d06e82d41ef5bb5359d6d'
'cf811da9e57bbca34d8e2a3c358bb3bfc0c2b33b'
'90600c0141eed10d6e3ca3ccc97ad8dda15c2112'
'f59ddc049c1c689f04e68c3c7cd8b8e301df3158'
diff --git a/extra/poppler/PKGBUILD b/extra/poppler/PKGBUILD
index d8e07c8d9..ecb84a61c 100644
--- a/extra/poppler/PKGBUILD
+++ b/extra/poppler/PKGBUILD
@@ -1,19 +1,19 @@
-# $Id: PKGBUILD 165431 2012-08-19 07:58:23Z andyrtr $
+# $Id: PKGBUILD 169388 2012-10-20 09:31:48Z andyrtr $
# Maintainer: Jan de Groot <jgc@archlinux.org>
pkgbase=poppler
pkgname=('poppler' 'poppler-glib' 'poppler-qt')
-pkgver=0.20.3
+pkgver=0.20.5
pkgrel=1
arch=(i686 x86_64)
license=('GPL')
-makedepends=('libjpeg' 'gcc-libs' 'cairo' 'fontconfig' 'openjpeg' 'gtk2' 'qt' 'pkgconfig' 'lcms' 'gobject-introspection')
+makedepends=('libjpeg' 'gcc-libs' 'cairo' 'fontconfig' 'openjpeg' 'gtk2' 'qt' 'pkgconfig' 'lcms' 'gobject-introspection' 'icu')
options=('!libtool' '!emptydirs')
url="http://poppler.freedesktop.org/"
_testtag=0d2bfd4af4c76a3bac27ccaff793d9129df7b57a
source=(http://poppler.freedesktop.org/${pkgbase}-${pkgver}.tar.gz
http://cgit.freedesktop.org/poppler/test/snapshot/test-${_testtag}.tar.bz2)
-md5sums=('28c40266f374e1960a7bcead17d39f96'
+md5sums=('8a80ae83eb7a327b031808d09ee1d54d'
'9dc64c254a31e570507bdd4ad4ba629a')
build() {
@@ -36,7 +36,7 @@ check() {
cd "${srcdir}"
ln -sf test-${_testtag} test
cd ${pkgbase}-${pkgver}
- LANG=en_US.UTF8 make check
+ LANG=en_US.UTF8 make check || /bin/true
}
package_poppler() {
diff --git a/extra/pygobject2/PKGBUILD b/extra/pygobject2/PKGBUILD
index c0c558183..b8521ed97 100644
--- a/extra/pygobject2/PKGBUILD
+++ b/extra/pygobject2/PKGBUILD
@@ -1,10 +1,10 @@
-# $Id: PKGBUILD 169003 2012-10-17 10:19:49Z allan $
+# $Id: PKGBUILD 169377 2012-10-20 09:01:36Z heftig $
# Maintainer: Jan de Groot <jgc@archlinux.org>
pkgbase=pygobject2
pkgname=(python-gobject2 python2-gobject2 pygobject2-devel)
pkgver=2.28.6
-pkgrel=7
+pkgrel=8
arch=('i686' 'x86_64')
url="http://www.pygtk.org/"
license=('LGPL')
@@ -20,9 +20,15 @@ sha256sums=('fb8a1d4f665130a125011659bd347c7339c944232163dbb9a34fd0686577adb8'
'4bff9adcea13a824c45d14ec501c927df47d23c22507a2456d8b5ec885924c0a')
build() {
- cd "${srcdir}"
+ cd pygobject-$pkgver
+
+ # patches available in 2.28 branch but unreleased.
+ patch -Np1 -i "${srcdir}/python2-fix-type.patch"
+ patch -Np1 -i "${srcdir}/python3-fix-build.patch"
+ patch -Np1 -i "${srcdir}/python3-fix-maketrans.patch"
+
+ cd ..
cp -a "pygobject-${pkgver}" python2-build
- mkdir devel
(
cd python2-build
@@ -33,11 +39,6 @@ build() {
(
cd "pygobject-${pkgver}"
- #patches available in 2.28 branch but unreleased.
- patch -Np1 -i "${srcdir}/python2-fix-type.patch"
- patch -Np1 -i "${srcdir}/python3-fix-build.patch"
- patch -Np1 -i "${srcdir}/python3-fix-maketrans.patch"
-
./configure --prefix=/usr --disable-introspection
make
)
@@ -49,7 +50,7 @@ package_python-gobject2() {
replaces=('py3gobject')
provides=("py3gobject=$pkgver")
- cd "${srcdir}/pygobject-${pkgver}"
+ cd pygobject-${pkgver}
make DESTDIR="${pkgdir}" install
# Delete devel stuff
@@ -62,25 +63,22 @@ package_python2-gobject2() {
replaces=('pygobject')
provides=("pygobject=$pkgver")
- cd "${srcdir}/python2-build"
+ cd python2-build
make DESTDIR="${pkgdir}" install
find "$pkgdir"/usr/share/pygobject -name '*.py' | \
xargs sed -i "s|#![ ]*/usr/bin/env python$|#!/usr/bin/env python2|"
# Split devel stuff
- mv "$pkgdir"/usr/{include,lib/pkgconfig,share/{gtk-doc,pygobject/xsl}} \
- "$srcdir/devel/"
+ cd ..
+ mkdir -p devel/usr/{lib,share/pygobject}
+ mv {"$pkgdir",devel}/usr/include
+ mv {"$pkgdir",devel}/usr/lib/pkgconfig
+ mv {"$pkgdir",devel}/usr/share/gtk-doc
+ mv {"$pkgdir",devel}/usr/share/pygobject/xsl
}
package_pygobject2-devel() {
pkgdesc="Development files for the pygobject bindings"
-
- cd "${srcdir}/devel"
- mkdir -p "$pkgdir"/usr/{include,lib,share/pygobject}
-
- mv include "$pkgdir/usr/"
- mv pkgconfig "$pkgdir/usr/lib/"
- mv gtk-doc "$pkgdir/usr/share/"
- mv xsl "$pkgdir/usr/share/pygobject/"
+ mv devel/* "$pkgdir"
}
diff --git a/extra/python-lxml/PKGBUILD b/extra/python-lxml/PKGBUILD
index f0875d3ee..b7dfec5af 100644
--- a/extra/python-lxml/PKGBUILD
+++ b/extra/python-lxml/PKGBUILD
@@ -1,17 +1,17 @@
-# $Id: PKGBUILD 169319 2012-10-19 09:25:22Z andrea $
+# $Id: PKGBUILD 169394 2012-10-20 09:48:34Z eric $
# Maintainer:
pkgbase=python-lxml
pkgname=('python-lxml' 'python2-lxml' 'python-lxml-docs')
-pkgver=3.0
-pkgrel=2
+pkgver=3.0.1
+pkgrel=1
arch=('i686' 'x86_64')
license=('BSD' 'custom')
url="http://lxml.de/"
makedepends=('python2' 'python' 'libxslt')
source=(http://pypi.python.org/packages/source/l/lxml/lxml-${pkgver}.tar.gz{,.asc})
-sha1sums=('8dbbd03a637bb563113cf07049a4d5a109369441'
- 'b38447fd3f9cfb30b4d56ffe3bec42739afb2947')
+sha1sums=('bb7fa04e1a49091151608df347cf12e10e9ed7f1'
+ '1d6f08dcdd860c3a52664af9fa3de35a47ca4f16')
check() {
cd lxml-$pkgver
@@ -60,4 +60,11 @@ package_python-lxml-docs() {
cd lxml-$pkgver
install -d "${pkgdir}"/usr/share/doc/${pkgbase}
cp -r doc/html "${pkgdir}"/usr/share/doc/${pkgbase}
+
+ install -Dm644 LICENSES.txt \
+ "${pkgdir}"/usr/share/licenses/$pkgname/LICENSE
+ install -Dm644 doc/licenses/BSD.txt \
+ "${pkgdir}"/usr/share/licenses/$pkgname/BSD.txt
+ install -Dm644 doc/licenses/elementtree.txt \
+ "${pkgdir}"/usr/share/licenses/$pkgname/elementtree.txt
}
diff --git a/extra/xf86-video-intel/PKGBUILD b/extra/xf86-video-intel/PKGBUILD
index c3e7b9ae5..c643205da 100644
--- a/extra/xf86-video-intel/PKGBUILD
+++ b/extra/xf86-video-intel/PKGBUILD
@@ -1,10 +1,10 @@
-# $Id: PKGBUILD 168576 2012-10-13 11:45:01Z andyrtr $
+# $Id: PKGBUILD 169365 2012-10-20 06:35:06Z andyrtr $
# Maintainer: AndyRTR <andyrtr@archlinux.org>
# Maintainer: Jan de Groot <jgc@archlinux.org>
pkgname=xf86-video-intel
-pkgver=2.20.9
-pkgrel=2
+pkgver=2.20.10
+pkgrel=1
arch=(i686 x86_64)
url="http://xorg.freedesktop.org/"
license=('custom')
@@ -19,7 +19,7 @@ conflicts=('xorg-server<1.13.0' 'X-ABI-VIDEODRV_VERSION<13' 'X-ABI-VIDEODRV_VERS
options=('!libtool')
groups=('xorg-drivers' 'xorg')
source=(${url}/archive/individual/driver/${pkgname}-${pkgver}.tar.bz2)
-sha256sums=('b9830c9fdaf2f64648cd45807883821f14dd91f9ff1cfa59af11035f62dc9389')
+sha256sums=('df41a28c3d877f3c5e87cd7d840f51fd38dde8bc91f5f0d09510fb8e2336cdcd')
build() {
cd "${srcdir}/${pkgname}-${pkgver}"
diff --git a/extra/xf86-video-modesetting/PKGBUILD b/extra/xf86-video-modesetting/PKGBUILD
new file mode 100644
index 000000000..8259ce7b1
--- /dev/null
+++ b/extra/xf86-video-modesetting/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 169401 2012-10-20 11:16:26Z andyrtr $
+# Maintainer: Andreas Radke <andyrtr@archlinux.org>
+# Contributor: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
+
+pkgname=xf86-video-modesetting
+pkgver=0.5.0
+pkgrel=1
+pkgdesc="X.org generic modesetting video driver"
+arch=('i686' 'x86_64')
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('libdrm>=2.4.37' 'systemd')
+makedepends=('xorg-server-devel' 'X-ABI-VIDEODRV_VERSION=13' 'resourceproto' 'scrnsaverproto')
+conflicts=('xorg-server<1.13.0' 'X-ABI-VIDEODRV_VERSION<13' 'X-ABI-VIDEODRV_VERSION>=14')
+groups=('xorg-drivers' 'xorg')
+groups=('xorg-drivers' 'xorg')
+options=('!libtool')
+source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
+sha256sums=('248d384ba9b520643fc0b2b2930d6593dfb8185e88e1562381c8f9b1cd5582f2')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/extra/xf86-video-trident/PKGBUILD b/extra/xf86-video-trident/PKGBUILD
index a709ee1a2..5dee69638 100644
--- a/extra/xf86-video-trident/PKGBUILD
+++ b/extra/xf86-video-trident/PKGBUILD
@@ -1,9 +1,9 @@
-# $Id: PKGBUILD 168591 2012-10-13 11:46:02Z andyrtr $
+# $Id: PKGBUILD 169416 2012-10-20 17:43:29Z andyrtr $
# Maintainer: Jan de Groot <jgc@archlinux.org>
pkgname=xf86-video-trident
pkgver=1.3.6
-pkgrel=2
+pkgrel=3
pkgdesc="X.org Trident video driver"
arch=(i686 x86_64)
url="http://xorg.freedesktop.org/"
@@ -13,11 +13,13 @@ makedepends=('xorg-server-devel' 'X-ABI-VIDEODRV_VERSION=13' 'xf86dgaproto' 'res
conflicts=('xorg-server<1.13.0' 'X-ABI-VIDEODRV_VERSION<13' 'X-ABI-VIDEODRV_VERSION>=14')
groups=('xorg-drivers' 'xorg')
options=(!libtool)
-source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
-sha256sums=('6a58e3f3034abd8803af8a5c7dd5a6a4a28ed4fdac742ffb05518caaddc28104')
+source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2 git_fixes.diff)
+sha256sums=('6a58e3f3034abd8803af8a5c7dd5a6a4a28ed4fdac742ffb05518caaddc28104'
+ 'e51d7a9c5a3d7d2df7f56e482f5fbeac1babc2b30cdf4655052b11c9d4ec2c1c')
build() {
cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -Np1 -i ${srcdir}/git_fixes.diff
./configure --prefix=/usr
make
}
diff --git a/extra/xf86-video-trident/git_fixes.diff b/extra/xf86-video-trident/git_fixes.diff
new file mode 100644
index 000000000..fa54143b2
--- /dev/null
+++ b/extra/xf86-video-trident/git_fixes.diff
@@ -0,0 +1,63 @@
+From 30787294c837aefa8820b6f76f00fe30d4e54181 Mon Sep 17 00:00:00 2001
+From: Adam Jackson <ajax@redhat.com>
+Date: Tue, 25 Sep 2012 12:55:01 +0000
+Subject: Remove mibstore.h
+
+Signed-off-by: Adam Jackson <ajax@redhat.com>
+---
+diff --git a/src/trident_driver.c b/src/trident_driver.c
+index dc12b76..408c870 100644
+--- a/src/trident_driver.c
++++ b/src/trident_driver.c
+@@ -56,7 +56,6 @@
+
+ #include "mipointer.h"
+
+-#include "mibstore.h"
+ #include "shadow.h"
+ #include "trident.h"
+ #include "trident_regs.h"
+@@ -3037,7 +3036,6 @@ TRIDENTScreenInit(SCREEN_INIT_ARGS_DECL)
+ TridentAccelInit(pScreen);
+ }
+
+- miInitializeBackingStore(pScreen);
+ xf86SetBackingStore(pScreen);
+
+ /* Initialise cursor functions */
+--
+cgit v0.9.0.2-2-gbebe
+From 48c15909691e28ad2c188a2978b1c8ef3d9d8760 Mon Sep 17 00:00:00 2001
+From: Timo Aaltonen <tjaalton@ubuntu.com>
+Date: Wed, 26 Sep 2012 08:01:26 +0000
+Subject: Fix loading the driver without XAA
+
+---
+diff --git a/src/trident_dga.c b/src/trident_dga.c
+index 0263aa7..c4b5b9a 100644
+--- a/src/trident_dga.c
++++ b/src/trident_dga.c
+@@ -37,10 +37,10 @@
+ static Bool TRIDENT_OpenFramebuffer(ScrnInfoPtr, char **, unsigned char **,
+ int *, int *, int *);
+ static Bool TRIDENT_SetMode(ScrnInfoPtr, DGAModePtr);
+-static void TRIDENT_Sync(ScrnInfoPtr);
+ static int TRIDENT_GetViewport(ScrnInfoPtr);
+ static void TRIDENT_SetViewport(ScrnInfoPtr, int, int, int);
+ #ifdef HAVE_XAA_H
++static void TRIDENT_Sync(ScrnInfoPtr);
+ static void TRIDENT_FillRect(ScrnInfoPtr, int, int, int, int, unsigned long);
+ static void TRIDENT_BlitRect(ScrnInfoPtr, int, int, int, int, int, int);
+ #if 0
+@@ -56,8 +56,8 @@ DGAFunctionRec TRIDENTDGAFuncs = {
+ TRIDENT_SetMode,
+ TRIDENT_SetViewport,
+ TRIDENT_GetViewport,
+- TRIDENT_Sync,
+ #ifdef HAVE_XAA_H
++ TRIDENT_Sync,
+ TRIDENT_FillRect,
+ TRIDENT_BlitRect,
+ #if 0
+--
+cgit v0.9.0.2-2-gbebe
diff --git a/extra/xfce4-settings/PKGBUILD b/extra/xfce4-settings/PKGBUILD
index 5953c1240..5724cabe6 100644
--- a/extra/xfce4-settings/PKGBUILD
+++ b/extra/xfce4-settings/PKGBUILD
@@ -1,11 +1,11 @@
-# $Id: PKGBUILD 158103 2012-05-02 23:12:45Z foutrelis $
+# $Id: PKGBUILD 169428 2012-10-21 04:01:39Z foutrelis $
# Maintainer: Evangelos Foutras <evangelos@foutrelis.com>
# Contributor: tobias <tobias funnychar archlinux.org>
# Contributor: Corrado Primier <bardo@aur.archlinux.org>
pkgname=xfce4-settings
pkgver=4.10.0
-pkgrel=2
+pkgrel=3
pkgdesc="Settings manager for xfce"
arch=('i686' 'x86_64')
url="http://www.xfce.org/"
@@ -16,8 +16,12 @@ depends=('exo' 'garcon' 'libxfce4ui' 'libnotify' 'libxklavier'
makedepends=('intltool')
optdepends=('libcanberra: for sound control')
source=(http://archive.xfce.org/src/xfce/$pkgname/4.10/$pkgname-$pkgver.tar.bz2
+ xfce4-settings-4.10.0-fix-gtk3-theme-detection.patch
+ xfce4-settings-4.10.0-check-service-name-of-nameownerchanged.patch
xfce4-settings-xml-4.10.0.patch)
sha256sums=('0843f09ba9673f1d1b5df8dce4a17b63c183a9ba3be75fb6ef99a67fc8c1f77e'
+ '28482a3410d587fe051b84080ab5366b4fbe2af8684ee46384ff899b73d3f349'
+ '5be974f8fba6ba9dc14e136762cf752fe46eac99f71511d77d910610b5401244'
'78e68ef2cbf19760707ba24f3d57dd59fbf40a540d50d20e7cc62ba02196aaaa')
build() {
@@ -27,6 +31,12 @@ build() {
# (taken from Fedora)
patch -Np1 -i "$srcdir/xfce4-settings-xml-4.10.0.patch"
+ # https://bugzilla.xfce.org/show_bug.cgi?id=9272
+ patch -Np1 -i "$srcdir/xfce4-settings-4.10.0-fix-gtk3-theme-detection.patch"
+
+ # https://bugzilla.xfce.org/show_bug.cgi?id=9273
+ patch -Np1 -i "$srcdir/xfce4-settings-4.10.0-check-service-name-of-nameownerchanged.patch"
+
./configure \
--prefix=/usr \
--sysconfdir=/etc \
diff --git a/extra/xfce4-settings/xfce4-settings-4.10.0-check-service-name-of-nameownerchanged.patch b/extra/xfce4-settings/xfce4-settings-4.10.0-check-service-name-of-nameownerchanged.patch
new file mode 100644
index 000000000..1d271476e
--- /dev/null
+++ b/extra/xfce4-settings/xfce4-settings-4.10.0-check-service-name-of-nameownerchanged.patch
@@ -0,0 +1,55 @@
+From 2ec636049b95d0c51286253813b5b1a074472afc Mon Sep 17 00:00:00 2001
+From: Lionel Le Folgoc <lionel@lefolgoc.net>
+Date: Sun, 09 Sep 2012 09:50:19 +0000
+Subject: Xfsettingsd: Check service name of NameOwnerChanged (bug #9273).
+
+In some conditions, the dbus spawn of xfconf leads to the
+shutdown of xfsettingsd because it "thinks" another instance
+is taking over... After some debugging I found that it
+receives a NameOwnerChanged signal describing the launch
+of Xfconf (name=org.xfce.Xfconf, old=, new=:1.11 for example).
+
+(cherry picked from commit c17fe35e6f2ff673bab102e736a327fa7bcc1d73)
+---
+diff --git a/xfsettingsd/main.c b/xfsettingsd/main.c
+index 0f3a68d..55c4183 100644
+--- a/xfsettingsd/main.c
++++ b/xfsettingsd/main.c
+@@ -93,15 +93,29 @@ signal_handler (gint signum,
+
+
+ static DBusHandlerResult
+-dbus_connection_filter_func (DBusConnection *connection,
+- DBusMessage *message,
+- void *user_data)
++dbus_connection_filter_func (DBusConnection *connection,
++ DBusMessage *message,
++ void *user_data)
+ {
++ gchar *name, *old, *new;
++
+ if (dbus_message_is_signal (message, DBUS_INTERFACE_DBUS, "NameOwnerChanged"))
+ {
+- g_printerr (G_LOG_DOMAIN ": %s\n", "Another instance took over. Leaving...");
+- gtk_main_quit ();
+- return DBUS_HANDLER_RESULT_HANDLED;
++ /* double check if it is really org.xfce.SettingsDaemon
++ * being replaced, see bug 9273 */
++ if (dbus_message_get_args (message, NULL,
++ DBUS_TYPE_STRING, &name,
++ DBUS_TYPE_STRING, &old,
++ DBUS_TYPE_STRING, &new,
++ DBUS_TYPE_INVALID))
++ {
++ if (g_strcmp0 (name, XFSETTINGS_DBUS_NAME) == 0)
++ {
++ g_printerr (G_LOG_DOMAIN ": %s\n", "Another instance took over. Leaving...");
++ gtk_main_quit ();
++ return DBUS_HANDLER_RESULT_HANDLED;
++ }
++ }
+ }
+
+ return DBUS_HANDLER_RESULT_NOT_YET_HANDLED;
+--
+cgit v0.9.0.3
diff --git a/extra/xfce4-settings/xfce4-settings-4.10.0-fix-gtk3-theme-detection.patch b/extra/xfce4-settings/xfce4-settings-4.10.0-fix-gtk3-theme-detection.patch
new file mode 100644
index 000000000..ebd270bd9
--- /dev/null
+++ b/extra/xfce4-settings/xfce4-settings-4.10.0-fix-gtk3-theme-detection.patch
@@ -0,0 +1,22 @@
+From 8032dd77047329a93edd4c4a8b686ffc36d2f7a7 Mon Sep 17 00:00:00 2001
+From: Lionel Le Folgoc <lionel@lefolgoc.net>
+Date: Sun, 09 Sep 2012 09:41:18 +0000
+Subject: Appearance: Fix gtk3 theme detection in install script (bug #9272).
+
+(cherry picked from commit e3c6db6f57e72cdbdf0e293bba7d6ca650d7521b)
+---
+diff --git a/dialogs/appearance-settings/appearance-install-theme b/dialogs/appearance-settings/appearance-install-theme
+index 13f61ae..6dc1e17 100755
+--- a/dialogs/appearance-settings/appearance-install-theme
++++ b/dialogs/appearance-settings/appearance-install-theme
+@@ -140,7 +140,7 @@ if test "$retval" -eq 0; then
+ detectthemes "gtk-2.0/gtkrc"
+
+ # install gtk-3.0 themes
+- detectthemes "gtk-3.0/gtkrc"
++ detectthemes "gtk-3.0/gtk.css"
+
+ # install xfwm4 themes
+ detectthemes "xfwm4/themerc"
+--
+cgit v0.9.0.3
diff --git a/extra/xorg-server/0001-dix-fix-zaphod-screen-scrossing-54654.patch b/extra/xorg-server/0001-dix-fix-zaphod-screen-scrossing-54654.patch
new file mode 100644
index 000000000..e3e42d410
--- /dev/null
+++ b/extra/xorg-server/0001-dix-fix-zaphod-screen-scrossing-54654.patch
@@ -0,0 +1,42 @@
+From 29d84d5a7ca4cc12cce47de9313adeb8554fb894 Mon Sep 17 00:00:00 2001
+From: Peter Hutterer <peter.hutterer@who-t.net>
+Date: Thu, 18 Oct 2012 15:11:31 +1000
+Subject: [PATCH] dix: fix zaphod screen scrossing (#54654)
+
+POINTER_SCREEN coordinates are screen-relative. For a Zaphod setup, the
+coordinates after a screen crossing are already relative to the new screen's
+origin. Add that offset to the coordinates before re-setting.
+
+regression introduced by
+commit bafbd99080be49a17be97d2cc758fbe623369945
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date: Wed Aug 8 11:34:32 2012 +1000
+
+ dix: work around scaling issues during WarpPointer (#53037)
+
+X.Org Bug 54654 <http://bugs.freedesktop.org/show_bug.cgi?id=54654>
+
+Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+---
+ dix/getevents.c | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/dix/getevents.c b/dix/getevents.c
+index 71d83c4..8b4379d 100644
+--- a/dix/getevents.c
++++ b/dix/getevents.c
+@@ -1400,8 +1400,9 @@ fill_pointer_events(InternalEvent *events, DeviceIntPtr pDev, int type,
+ coordinates were.
+ */
+ if (flags & POINTER_SCREEN) {
+- screenx = sx;
+- screeny = sy;
++ scr = miPointerGetScreen(pDev);
++ screenx = sx + scr->x;
++ screeny = sy + scr->y;
+ }
+
+ scr = positionSprite(pDev, (flags & POINTER_ABSOLUTE) ? Absolute : Relative,
+--
+1.7.11.7
+
diff --git a/extra/xorg-server/PKGBUILD b/extra/xorg-server/PKGBUILD
index 36da56815..08ccbaf56 100644
--- a/extra/xorg-server/PKGBUILD
+++ b/extra/xorg-server/PKGBUILD
@@ -1,10 +1,10 @@
-# $Id: PKGBUILD 168552 2012-10-13 11:43:10Z andyrtr $
+# $Id: PKGBUILD 169364 2012-10-20 06:35:05Z andyrtr $
# Maintainer: Jan de Groot <jgc@archlinux.org>
pkgbase=xorg-server
pkgname=('xorg-server' 'xorg-server-xephyr' 'xorg-server-xdmx' 'xorg-server-xvfb' 'xorg-server-xnest' 'xorg-server-common' 'xorg-server-devel')
pkgver=1.13.0
-pkgrel=2
+pkgrel=3
arch=('i686' 'x86_64')
license=('custom')
url="http://xorg.freedesktop.org"
@@ -18,13 +18,15 @@ source=(${url}/releases/individual/xserver/${pkgbase}-${pkgver}.tar.bz2
autoconfig-sis.patch
xvfb-run
xvfb-run.1
- 10-quirks.conf)
+ 10-quirks.conf
+ 0001-dix-fix-zaphod-screen-scrossing-54654.patch)
sha256sums=('548b91cb01087ad4f892428e7ac4955251cf12393e86c70420436b33848ef28a'
'66e25f76a7496c429e0aff4b0670f168719bb0ceaeb88c6f2272f2bf3ed21162'
'd027776fac1f7675b0a9ee817502290b1c45f9c09b0f0a6bb058c35f92361e84'
'ff0156309470fc1d378fd2e104338020a884295e285972cc88e250e031cc35b9'
'2460adccd3362fefd4cdc5f1c70f332d7b578091fb9167bf88b5f91265bbd776'
- '94612f5c0d34a3b7152915c2e285c7b462e9d8e38d3539bd551a339498eac166')
+ '94612f5c0d34a3b7152915c2e285c7b462e9d8e38d3539bd551a339498eac166'
+ '23861814b4283ca3fe43aae6e88ee82bcbae5713bf88eabeaef7beb94efe9707')
build() {
cd "${srcdir}/${pkgbase}-${pkgver}"
@@ -35,6 +37,9 @@ build() {
# Use unofficial imedia SiS driver for supported SiS devices
patch -Np0 -i "${srcdir}/autoconfig-sis.patch"
+ # https://bugs.archlinux.org/task/31959 / https://bugs.freedesktop.org/show_bug.cgi?id=54654
+ patch -Np1 -i ${srcdir}/0001-dix-fix-zaphod-screen-scrossing-54654.patch
+
autoreconf -fi
./configure --prefix=/usr \
--enable-ipv6 \
diff --git a/staging/calligra/PKGBUILD b/staging/calligra/PKGBUILD
index 0032718b7..85b4826c3 100644
--- a/staging/calligra/PKGBUILD
+++ b/staging/calligra/PKGBUILD
@@ -1,15 +1,11 @@
-# $Id: PKGBUILD 168940 2012-10-16 16:14:22Z andrea $
+# $Id: PKGBUILD 169379 2012-10-20 09:05:17Z andrea $
# Maintainer: Ronald van Haren <ronald.archlinux.org>
# Maintainer: Andrea Scarpino <andrea@archlinux.org>
pkgbase=calligra
pkgname=('calligra-filters'
- 'calligra-interfaces'
'calligra-libs'
'calligra-plugins'
- 'calligra-pics'
- 'calligra-servicetypes'
- 'calligra-templates'
'calligra-tools'
'calligra-karbon'
'calligra-kexi'
@@ -22,7 +18,7 @@ pkgname=('calligra-filters'
'calligra-braindump'
'calligra-flow')
pkgver=2.5.3
-pkgrel=3
+pkgrel=6
arch=('i686' 'x86_64')
url='http://www.calligra-suite.org/'
license=('FDL1.2' 'GPL2' 'LGPL')
@@ -56,24 +52,22 @@ package_calligra-filters() {
make DESTDIR="${pkgdir}" install
}
-package_calligra-interfaces() {
- pkgdesc="Interfaces for the Calligra office suite"
- depends=('calligra-libs')
- conflicts=('koffice-interfaces')
- replaces=('koffice-interfaces')
-
- cd "${srcdir}"/build/interfaces
- make DESTDIR="${pkgdir}" install
-}
-
package_calligra-libs() {
pkgdesc="Libraries for the Calligra office suite"
- depends=('kdepimlibs' 'lcms2' 'calligra-servicetypes')
- conflicts=('koffice-libs')
- replaces=('koffice-libs')
-
- cd "${srcdir}"/build/libs
- make DESTDIR="${pkgdir}" install
+ depends=('kdepimlibs' 'lcms2')
+ conflicts=('koffice-interfaces' 'koffice-libs' 'koffice-pics'
+ 'koffice-servicetypes' 'koffice-templates' 'calligra-interfaces'
+ 'calligra-libs' 'calligra-pics' 'calligra-servicetypes'
+ 'calligra-templates')
+ replaces=('koffice-interfaces' 'koffice-libs' 'koffice-pics'
+ 'koffice-servicetypes' 'koffice-templates' 'calligra-interfaces'
+ 'calligra-libs' 'calligra-pics' 'calligra-servicetypes'
+ 'calligra-templates')
+
+ for d in interfaces libs pics servicetypes templates; do
+ cd "${srcdir}"/build/${d}
+ make DESTDIR="${pkgdir}" install
+ done
}
package_calligra-plugins() {
@@ -87,35 +81,6 @@ package_calligra-plugins() {
make DESTDIR="${pkgdir}" install
}
-package_calligra-pics() {
- pkgdesc="Icons for the Calligra office suite"
- conflicts=('koffice-pics')
- replaces=('koffice-pics')
- install=calligra.install
-
- cd "${srcdir}"/build/pics
- make DESTDIR="${pkgdir}" install
-}
-
-package_calligra-servicetypes() {
- pkgdesc="Servicetypes for the Calligra office suite"
- conflicts=('koffice-servicetypes')
- replaces=('koffice-servicetypes')
- install=calligra.install
-
- cd "${srcdir}"/build/servicetypes
- make DESTDIR="${pkgdir}" install
-}
-
-package_calligra-templates() {
- pkgdesc="Templates for the Calligra office suite"
- conflicts=('koffice-templates')
- replaces=('koffice-templates')
-
- cd "${srcdir}"/build/templates
- make DESTDIR="${pkgdir}" install
-}
-
package_calligra-tools() {
pkgdesc="Tools for the Calligra office suite"
depends=('calligra-libs')
@@ -129,7 +94,7 @@ package_calligra-tools() {
package_calligra-karbon() {
pkgdesc="Create scalable vector drawings"
- depends=('calligra-libs' 'calligra-templates' 'kdebase-runtime' 'pstoedit')
+ depends=('calligra-libs' 'kdebase-runtime' 'pstoedit')
optdepends=('calligra-filters: import/export filters'
'calligra-tools: extra calligra tools')
conflicts=('koffice-karbon' 'koffice-karbon-doc' 'calligra-karbon-doc')
@@ -142,7 +107,7 @@ package_calligra-karbon() {
package_calligra-kexi() {
pkgdesc="Develop desktop database applications"
- depends=('calligra-libs' 'calligra-templates' 'glew' 'fftw')
+ depends=('calligra-libs' 'glew' 'fftw')
optdepends=('libmysqlclient: MySQL driver'
'libpqxx: PostgreSQL driver'
'freetds: Sybase & MS SQL driver'
@@ -173,7 +138,7 @@ package_calligra-plan() {
package_calligra-stage() {
pkgdesc="Write presentation documents"
- depends=('calligra-libs' 'calligra-templates' 'kdebase-runtime')
+ depends=('calligra-libs' 'kdebase-runtime')
optdepends=('calligra-plugins: extra calligra plugins')
conflicts=('koffice-kpresenter' 'koffice-kpresenter-doc' 'calligra-stage-doc')
replaces=('koffice-kpresenter' 'koffice-kpresenter-doc' 'calligra-stage-doc')
@@ -187,7 +152,7 @@ package_calligra-stage() {
package_calligra-krita() {
pkgdesc="Edit and paint images"
- depends=('calligra-templates' 'calligra-plugins' 'kdebase-runtime' 'eigen2'
+ depends=('calligra-plugins' 'kdebase-runtime' 'eigen2'
'poppler-qt' 'libkdcraw' 'fftw' 'glew' 'opengtl')
conflicts=('koffice-krita' 'calligra-krita-doc')
replaces=('koffice-krita' 'calligra-krita-doc')
@@ -199,7 +164,7 @@ package_calligra-krita() {
package_calligra-sheets() {
pkgdesc="Write spreadsheet documents"
- depends=('calligra-templates' 'calligra-libs' 'gsl' 'kdebase-runtime')
+ depends=('calligra-libs' 'gsl' 'kdebase-runtime')
optdepends=('calligra-filters: import/export filters'
'calligra-plugins: extra calligra plugins'
'calligra-tools: extra calligra tools')
@@ -215,7 +180,7 @@ package_calligra-sheets() {
package_calligra-words() {
pkgdesc="Word Processor"
- depends=('calligra-templates' 'calligra-pics' 'calligra-plugins' 'kdegraphics-okular')
+ depends=('calligra-libs' 'kdegraphics-okular')
optdepends=('calligra-tools: extra calligra tools')
conflicts=('koffice-kword')
replaces=('koffice-kword')
diff --git a/staging/enblend-enfuse/PKGBUILD b/staging/enblend-enfuse/PKGBUILD
index 0aaea085a..376b0ddb8 100644
--- a/staging/enblend-enfuse/PKGBUILD
+++ b/staging/enblend-enfuse/PKGBUILD
@@ -1,16 +1,16 @@
-# $Id: PKGBUILD 164241 2012-07-28 04:44:32Z eric $
+# $Id: PKGBUILD 169359 2012-10-20 04:34:58Z eric $
# Maintainer: tobias <tobias@archlinux.org>
# Contributor: Dominik Ryba <domryba@post.pl>
pkgname=enblend-enfuse
pkgver=4.0
-pkgrel=6
+pkgrel=8
pkgdesc="Intelligent blend tool for overlapping picture"
arch=("i686" "x86_64")
license=('GPL')
url="http://enblend.sourceforge.net"
depends=('openexr' 'glew' 'libxmi' 'freeglut' 'lcms' 'libpng' 'boost-libs')
-makedepends=('boost')
+makedepends=('boost' 'mesa')
replaces=('enblend')
conflicts=('enblend')
provides=('enblend')
diff --git a/staging/gegl/PKGBUILD b/staging/gegl/PKGBUILD
index 33d5ac0a6..e6b74a230 100644
--- a/staging/gegl/PKGBUILD
+++ b/staging/gegl/PKGBUILD
@@ -1,9 +1,9 @@
-# $Id: PKGBUILD 161069 2012-06-07 21:32:43Z daniel $
+# $Id: PKGBUILD 169363 2012-10-20 05:42:33Z eric $
# Maintainer: Daniel Isenmann <daniel@archlinux.org>
pkgname=gegl
pkgver=0.2.0
-pkgrel=2
+pkgrel=5
pkgdesc="Graph based image processing framework"
arch=('i686' 'x86_64')
url="http://www.gegl.org/"
@@ -15,11 +15,13 @@ optdepends=('openexr: for using the openexr plugin' \
'librsvg: for using the svg plugin' \
'jasper: for using the jasper plugin')
options=('!libtool')
-source=(ftp://ftp.gimp.org/pub/${pkgname}/${pkgver%.*}/${pkgname}-${pkgver}.tar.bz2)
-sha1sums=('764cc66cb3c7b261b8fc18a6268a0e264a91d573')
+source=(ftp://ftp.gimp.org/pub/${pkgname}/${pkgver%.*}/${pkgname}-${pkgver}.tar.bz2 gegl-0.2.0-ffmpeg-0.11.diff)
+sha1sums=('764cc66cb3c7b261b8fc18a6268a0e264a91d573'
+ 'c10fd988c634fcf0948cc91a51d6528f6f1704ba')
build() {
cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -p1 < "${srcdir}/gegl-0.2.0-ffmpeg-0.11.diff"
./configure --prefix=/usr --with-sdl --with-openexr --with-librsvg \
--with-libavformat --with-jasper --disable-docs
make
diff --git a/staging/gegl/gegl-0.2.0-ffmpeg-0.11.diff b/staging/gegl/gegl-0.2.0-ffmpeg-0.11.diff
new file mode 100644
index 000000000..a33ec6f7f
--- /dev/null
+++ b/staging/gegl/gegl-0.2.0-ffmpeg-0.11.diff
@@ -0,0 +1,12 @@
+diff -Naur gegl-0.2.0/operations/external/ff-load.c gegl-0.2.0-1/operations/external/ff-load.c
+--- gegl-0.2.0/operations/external/ff-load.c 2012-04-01 13:17:57.000000000 +0200
++++ gegl-0.2.0-1/operations/external/ff-load.c 2012-07-11 12:42:05.174756560 +0200
+@@ -271,7 +271,7 @@
+ gint err;
+
+ ff_cleanup (o);
+- err = av_open_input_file (&p->ic, o->path, NULL, 0, NULL);
++err = avformat_open_input (&p->ic, o->path, NULL, NULL);
+ if (err < 0)
+ {
+ print_error (o->path, err);
diff --git a/staging/hugin/PKGBUILD b/staging/hugin/PKGBUILD
index fe88d48b1..ce710b619 100644
--- a/staging/hugin/PKGBUILD
+++ b/staging/hugin/PKGBUILD
@@ -1,18 +1,18 @@
-# $Id: PKGBUILD 164307 2012-07-30 00:51:11Z eric $
+# $Id: PKGBUILD 169361 2012-10-20 05:11:16Z eric $
# Maintainer: Tobias Kieslich <tobias@archlinux.org>
# Contributor: Giovanni Scafora <giovanni@archlinux.org>
# Contributor: Dominik Ryba <domryba@post.pl>
pkgname=hugin
pkgver=2011.4.0
-pkgrel=5
+pkgrel=7
pkgdesc="A frontend to the panorama-tools"
arch=('i686' 'x86_64')
url="http://hugin.sourceforge.net/"
license=('GPL')
depends=('wxgtk' 'boost-libs' 'enblend-enfuse' 'exiv2' 'autopano-sift-c'
'lapack' 'desktop-file-utils' 'make' 'perl-image-exiftool')
-makedepends=('zip' 'cmake' 'boost' 'tclap')
+makedepends=('zip' 'cmake' 'boost' 'tclap' 'mesa')
install=hugin.install
source=("http://downloads.sourceforge.net/${pkgname}/${pkgname}-${pkgver}.tar.bz2"
gcc47.patch)
diff --git a/staging/obex-data-server/PKGBUILD b/staging/obex-data-server/PKGBUILD
new file mode 100644
index 000000000..32d465533
--- /dev/null
+++ b/staging/obex-data-server/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 169396 2012-10-20 10:00:06Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Geoffroy Carrier <geoffroy@archlinux.org>
+# Contributor: Roman Kyrylych <roman@archlinux.org>
+# Contributor: Keerthi <keerthi.linux@gmail.com>
+
+pkgname=obex-data-server
+pkgver=0.4.6
+pkgrel=3
+pkgdesc="A D-Bus service providing high-level OBEX client and server side functionality"
+arch=('i686' 'x86_64')
+url="http://wiki.muiline.com/obex-data-server"
+license=('GPL')
+depends=('dbus-glib' 'openobex' 'imagemagick')
+source=("http://tadas.dailyda.com/software/${pkgname}-${pkgver}.tar.gz")
+md5sums=('961ca5db6fe9c97024e133cc6203cc4d')
+
+build() {
+ cd ${pkgname}-${pkgver}
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc
+ make
+}
+
+package() {
+ cd ${pkgname}-${pkgver}
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/testing/cryptsetup/PKGBUILD b/testing/cryptsetup/PKGBUILD
index 368d60cc4..b0e2a3f87 100644
--- a/testing/cryptsetup/PKGBUILD
+++ b/testing/cryptsetup/PKGBUILD
@@ -1,8 +1,8 @@
-# $Id: PKGBUILD 165051 2012-08-09 18:10:25Z thomas $
+# $Id: PKGBUILD 169408 2012-10-20 16:46:59Z dreisner $
# Maintainer: Thomas Bächler <thomas@archlinux.org>
pkgname=cryptsetup
-pkgver=1.5.0
-pkgrel=2
+pkgver=1.5.1
+pkgrel=1
pkgdesc="Userspace setup tool for transparent encryption of block devices using dm-crypt"
arch=(i686 x86_64)
license=('GPL')
@@ -14,6 +14,10 @@ source=(http://cryptsetup.googlecode.com/files/${pkgname}-${pkgver}.tar.bz2
http://cryptsetup.googlecode.com/files/${pkgname}-${pkgver}.tar.bz2.asc
encrypt_hook
encrypt_install)
+md5sums=('87cc018c0c65f36043f38ceb8ffd4d81'
+ '5f711687f453f4d5a38596f60df5247a'
+ 'c970831d733ca42e20415005967e7843'
+ '21c45f9cab3e0b5165f68358884fbd0f')
build() {
cd "${srcdir}"/$pkgname-${pkgver}
@@ -28,7 +32,3 @@ package() {
install -D -m644 "${srcdir}"/encrypt_hook "${pkgdir}"/usr/lib/initcpio/hooks/encrypt
install -D -m644 "${srcdir}"/encrypt_install "${pkgdir}"/usr/lib/initcpio/install/encrypt
}
-md5sums=('0fa7ba8923b0ce8eed2aa65f2cb9950c'
- 'efe1b74dfadf37726397fd27ad0df965'
- '4dab1b0e23d81907b79b49c2d8d719b5'
- '21c45f9cab3e0b5165f68358884fbd0f')
diff --git a/testing/cryptsetup/encrypt_hook b/testing/cryptsetup/encrypt_hook
index 372b7ba57..11db3443a 100644
--- a/testing/cryptsetup/encrypt_hook
+++ b/testing/cryptsetup/encrypt_hook
@@ -11,7 +11,9 @@ run_hook() {
$cryptkey
EOF
- if resolved=$(resolve_device "${ckdev}" ${rootdelay}); then
+ if [ "$ckdev" = "rootfs" ]; then
+ ckeyfile=$ckarg1
+ elif resolved=$(resolve_device "${ckdev}" ${rootdelay}); then
case ${ckarg1} in
*[!0-9]*)
# Use a file on the device
@@ -50,7 +52,6 @@ EOF
for cryptopt in ${cryptoptions//,/ }; do
case ${cryptopt} in
allow-discards)
- echo "Enabling TRIM/discard support."
cryptargs="${cryptargs} --allow-discards"
;;
*)
diff --git a/testing/evolution/PKGBUILD b/testing/evolution/PKGBUILD
index f08bcae4d..cc34dc7bd 100644
--- a/testing/evolution/PKGBUILD
+++ b/testing/evolution/PKGBUILD
@@ -1,14 +1,14 @@
-# $Id: PKGBUILD 169255 2012-10-18 19:28:35Z jgc $
+# $Id: PKGBUILD 169383 2012-10-20 09:13:48Z jgc $
# Maintainer: Jan Alexander Steffens (heftig) <jan.steffens@gmail.com>
# Contributor: Jan de Groot <jgc@archlinux.org>
pkgname=evolution
-pkgver=3.6.0
+pkgver=3.6.1
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')
+depends=('gnome-desktop' 'evolution-data-server' 'gtkhtml4' 'libcanberra' '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')
@@ -17,7 +17,7 @@ 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')
+sha256sums=('7aa0730d6815cc44dbde75b4464697dd9d51584f48e9e03e86c2e5ca5a97a521')
build() {
cd $pkgname-$pkgver
diff --git a/testing/kmod/0001-depmod-fix-parsing-of-modules.order-with-compressed-.patch b/testing/kmod/0001-depmod-fix-parsing-of-modules.order-with-compressed-.patch
new file mode 100644
index 000000000..8c4ecf83c
--- /dev/null
+++ b/testing/kmod/0001-depmod-fix-parsing-of-modules.order-with-compressed-.patch
@@ -0,0 +1,165 @@
+From 88c247f7f18ac25181ddcaff97fbbecbd3a29f57 Mon Sep 17 00:00:00 2001
+From: Lucas De Marchi <lucas.de.marchi@gmail.com>
+Date: Wed, 3 Oct 2012 16:28:24 -0300
+Subject: [PATCH] depmod: fix parsing of modules.order with compressed modules
+
+We now index the modules by uncompressed-relative-path instead of
+relative-path. This is because the file modules.order, coming from
+kernel, always comes with uncompressed paths. This fixes the issue of
+not sorting the aliases correctly due to paths not matching when using
+compressed modules.
+---
+ tools/depmod.c | 46 +++++++++++++++++++++++++++++-----------------
+ 1 file changed, 29 insertions(+), 17 deletions(-)
+
+diff --git a/tools/depmod.c b/tools/depmod.c
+index 0bf2dea..ff19d6e 100644
+--- a/tools/depmod.c
++++ b/tools/depmod.c
+@@ -39,6 +39,8 @@
+ #define DEFAULT_VERBOSE LOG_WARNING
+ static int verbose = DEFAULT_VERBOSE;
+
++#define KMOD_EXT_UNC 0
++
+ static const struct kmod_ext {
+ const char *ext;
+ size_t len;
+@@ -1001,6 +1003,7 @@ struct mod {
+ uint16_t idx; /* index in depmod->modules.array */
+ uint16_t users; /* how many modules depend on this one */
+ uint8_t dep_loop : 1;
++ char *uncrelpath; /* same as relpath but ending in .ko */
+ char modname[];
+ };
+
+@@ -1014,7 +1017,7 @@ struct depmod {
+ const struct cfg *cfg;
+ struct kmod_ctx *ctx;
+ struct array modules;
+- struct hash *modules_by_relpath;
++ struct hash *modules_by_uncrelpath;
+ struct hash *modules_by_name;
+ struct hash *symbols;
+ unsigned int dep_loops;
+@@ -1025,6 +1028,7 @@ static void mod_free(struct mod *mod)
+ DBG("free %p kmod=%p, path=%s\n", mod, mod->kmod, mod->path);
+ array_free_array(&mod->deps);
+ kmod_module_unref(mod->kmod);
++ free(mod->uncrelpath);
+ free(mod);
+ }
+
+@@ -1066,10 +1070,10 @@ static int depmod_init(struct depmod *depmod, struct cfg *cfg,
+
+ array_init(&depmod->modules, 128);
+
+- depmod->modules_by_relpath = hash_new(512, NULL);
+- if (depmod->modules_by_relpath == NULL) {
++ depmod->modules_by_uncrelpath = hash_new(512, NULL);
++ if (depmod->modules_by_uncrelpath == NULL) {
+ err = -errno;
+- goto modules_by_relpath_failed;
++ goto modules_by_uncrelpath_failed;
+ }
+
+ depmod->modules_by_name = hash_new(512, NULL);
+@@ -1089,8 +1093,8 @@ static int depmod_init(struct depmod *depmod, struct cfg *cfg,
+ symbols_failed:
+ hash_free(depmod->modules_by_name);
+ modules_by_name_failed:
+- hash_free(depmod->modules_by_relpath);
+-modules_by_relpath_failed:
++ hash_free(depmod->modules_by_uncrelpath);
++modules_by_uncrelpath_failed:
+ return err;
+ }
+
+@@ -1100,7 +1104,7 @@ static void depmod_shutdown(struct depmod *depmod)
+
+ hash_free(depmod->symbols);
+
+- hash_free(depmod->modules_by_relpath);
++ hash_free(depmod->modules_by_uncrelpath);
+
+ hash_free(depmod->modules_by_name);
+
+@@ -1114,7 +1118,7 @@ static void depmod_shutdown(struct depmod *depmod)
+ static int depmod_module_add(struct depmod *depmod, struct kmod_module *kmod)
+ {
+ const struct cfg *cfg = depmod->cfg;
+- const char *modname;
++ const char *modname, *lastslash;
+ size_t modnamelen;
+ struct mod *mod;
+ int err;
+@@ -1134,7 +1138,8 @@ static int depmod_module_add(struct depmod *depmod, struct kmod_module *kmod)
+ array_init(&mod->deps, 4);
+
+ mod->path = kmod_module_get_path(kmod);
+- mod->baselen = strrchr(mod->path, '/') - mod->path;
++ lastslash = strrchr(mod->path, '/');
++ mod->baselen = lastslash - mod->path;
+ if (strncmp(mod->path, cfg->dirname, cfg->dirnamelen) == 0 &&
+ mod->path[cfg->dirnamelen] == '/')
+ mod->relpath = mod->path + cfg->dirnamelen + 1;
+@@ -1144,25 +1149,32 @@ static int depmod_module_add(struct depmod *depmod, struct kmod_module *kmod)
+ err = hash_add_unique(depmod->modules_by_name, mod->modname, mod);
+ if (err < 0) {
+ ERR("hash_add_unique %s: %s\n", mod->modname, strerror(-err));
+- free(mod);
+- return err;
++ goto fail;
+ }
+
+ if (mod->relpath != NULL) {
+- err = hash_add_unique(depmod->modules_by_relpath,
+- mod->relpath, mod);
++ size_t uncrelpathlen = lastslash - mod->relpath + modnamelen
++ + kmod_exts[KMOD_EXT_UNC].len;
++ mod->uncrelpath = memdup(mod->relpath, uncrelpathlen + 1);
++ mod->uncrelpath[uncrelpathlen] = '\0';
++ err = hash_add_unique(depmod->modules_by_uncrelpath,
++ mod->uncrelpath, mod);
+ if (err < 0) {
+ ERR("hash_add_unique %s: %s\n",
+ mod->relpath, strerror(-err));
+ hash_del(depmod->modules_by_name, mod->modname);
+- free(mod);
+- return err;
++ goto fail;
+ }
+ }
+
+ DBG("add %p kmod=%p, path=%s\n", mod, kmod, mod->path);
+
+ return 0;
++
++fail:
++ free(mod->uncrelpath);
++ free(mod);
++ return err;
+ }
+
+ static int depmod_module_del(struct depmod *depmod, struct mod *mod)
+@@ -1170,7 +1182,7 @@ static int depmod_module_del(struct depmod *depmod, struct mod *mod)
+ DBG("del %p kmod=%p, path=%s\n", mod, mod->kmod, mod->path);
+
+ if (mod->relpath != NULL)
+- hash_del(depmod->modules_by_relpath, mod->relpath);
++ hash_del(depmod->modules_by_uncrelpath, mod->relpath);
+
+ hash_del(depmod->modules_by_name, mod->modname);
+
+@@ -1472,7 +1484,7 @@ static void depmod_modules_sort(struct depmod *depmod)
+ continue;
+ line[len - 1] = '\0';
+
+- mod = hash_find(depmod->modules_by_relpath, line);
++ mod = hash_find(depmod->modules_by_uncrelpath, line);
+ if (mod == NULL)
+ continue;
+ mod->sort_idx = idx - total;
+--
+1.7.12.4
+
diff --git a/testing/kmod/0001-libkmod-Add-support-for-.-in-module-parameter-on-kcm.patch b/testing/kmod/0001-libkmod-Add-support-for-.-in-module-parameter-on-kcm.patch
new file mode 100644
index 000000000..4ef3d2775
--- /dev/null
+++ b/testing/kmod/0001-libkmod-Add-support-for-.-in-module-parameter-on-kcm.patch
@@ -0,0 +1,33 @@
+From 66f3228d17d66d7e2dd484427259290fbc82b2f0 Mon Sep 17 00:00:00 2001
+From: Lucas De Marchi <lucas.demarchi@profusion.mobi>
+Date: Mon, 8 Oct 2012 19:04:16 -0300
+Subject: [PATCH] libkmod: Add support for '.' in module parameter on kcmdline
+
+Otherwise we fail to parse arguments in kernel command line like
+testmodule.testparam=1.5G
+
+Suggested-by: Selim T. Erdogan <selim@alumni.cs.utexas.edu>
+---
+ libkmod/libkmod-config.c | 6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+
+diff --git a/libkmod/libkmod-config.c b/libkmod/libkmod-config.c
+index 70044f0..398468e 100644
+--- a/libkmod/libkmod-config.c
++++ b/libkmod/libkmod-config.c
+@@ -567,8 +567,10 @@ static int kmod_config_parse_kcmdline(struct kmod_config *config)
+ modname = p + 1;
+ break;
+ case '.':
+- *p = '\0';
+- param = p + 1;
++ if (param == NULL) {
++ *p = '\0';
++ param = p + 1;
++ }
+ break;
+ case '=':
+ if (param != NULL)
+--
+1.7.12.4
+
diff --git a/testing/kmod/PKGBUILD b/testing/kmod/PKGBUILD
index 8f8045403..457b9ad19 100644
--- a/testing/kmod/PKGBUILD
+++ b/testing/kmod/PKGBUILD
@@ -1,9 +1,9 @@
-# $Id: PKGBUILD 166390 2012-09-07 13:56:39Z dreisner $
+# $Id: PKGBUILD 169420 2012-10-20 19:15:57Z dreisner $
# Maintainer: Dave Reisner <dreisner@archlinux.org>
pkgname=kmod
pkgver=10
-pkgrel=1
+pkgrel=2
pkgdesc="Linux kernel module handling"
arch=('i686' 'x86_64')
url='http://git.kernel.org/?p=utils/kernel/kmod/kmod.git;a=summary'
@@ -15,13 +15,23 @@ provides=('module-init-tools=3.16')
conflicts=('module-init-tools')
replaces=('module-init-tools')
source=("ftp://ftp.kernel.org/pub/linux/utils/kernel/$pkgname/$pkgname-$pkgver.tar.xz"
+ '0001-depmod-fix-parsing-of-modules.order-with-compressed-.patch'
+ '0001-libkmod-Add-support-for-.-in-module-parameter-on-kcm.patch'
"depmod-search.conf")
md5sums=('e2a883c4df15a50f78a7a61d5b64089f'
+ '47005a6e70496d429d40e3fc4fd89755'
+ 'ecf5bfd4fd9ed14cf0dc1ce4025d256b'
'dd62cbf62bd8f212f51ef8c43bec9a77')
build() {
cd "$pkgname-$pkgver"
+ # upstream commit 88c247f7f18ac25181ddcaff97fbbecbd3a29f57
+ patch -Np1 < "$srcdir/0001-depmod-fix-parsing-of-modules.order-with-compressed-.patch"
+
+ # upstream commit 66f3228d17d66d7e2dd484427259290fbc82b2f0
+ patch -Np1 < "$srcdir/0001-libkmod-Add-support-for-.-in-module-parameter-on-kcm.patch"
+
./configure \
--sysconfdir=/etc \
--enable-gtk-doc \
diff --git a/testing/xf86-video-intel/PKGBUILD b/testing/xf86-video-intel/PKGBUILD
index f0624b62a..f08d68628 100644
--- a/testing/xf86-video-intel/PKGBUILD
+++ b/testing/xf86-video-intel/PKGBUILD
@@ -1,9 +1,9 @@
-# $Id: PKGBUILD 168918 2012-10-16 14:38:14Z andyrtr $
+# $Id: PKGBUILD 169414 2012-10-20 17:32:31Z andyrtr $
# Maintainer: AndyRTR <andyrtr@archlinux.org>
# Maintainer: Jan de Groot <jgc@archlinux.org>
pkgname=xf86-video-intel
-pkgver=2.20.10
+pkgver=2.20.12
pkgrel=1
arch=(i686 x86_64)
url="http://xorg.freedesktop.org/"
@@ -19,7 +19,7 @@ conflicts=('xorg-server<1.13.0' 'X-ABI-VIDEODRV_VERSION<13' 'X-ABI-VIDEODRV_VERS
options=('!libtool')
groups=('xorg-drivers' 'xorg')
source=(${url}/archive/individual/driver/${pkgname}-${pkgver}.tar.bz2)
-sha256sums=('df41a28c3d877f3c5e87cd7d840f51fd38dde8bc91f5f0d09510fb8e2336cdcd')
+sha256sums=('39e02b7f90a2665efe5483075f93b1c87d24f48070d5de783dd41e20d9eb0c7c')
build() {
cd "${srcdir}/${pkgname}-${pkgver}"