diff options
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 ()), ++ ¤t_server_timeout, ++ ¤t_server_interval, ++ ¤t_prefer_blank, ++ ¤t_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}" |