summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--community-staging/blueman/PKGBUILD48
-rw-r--r--community-staging/blueman/blueman.install11
-rw-r--r--community-staging/duplicity/PKGBUILD36
-rw-r--r--community-staging/duplicity/botobackend.patch13
-rw-r--r--community-staging/duplicity/duplicity-0.6.17-fix-memleak.patch29
-rw-r--r--community-staging/gcompris/PKGBUILD36
-rw-r--r--community-staging/guake/PKGBUILD41
-rw-r--r--community-staging/guake/guake-fix-notification.patch42
-rw-r--r--community-staging/guake/guake.install22
-rw-r--r--community-staging/gwibber/PKGBUILD31
-rw-r--r--community-staging/gwibber/gwibber.install12
-rw-r--r--community-staging/ibus/PKGBUILD40
-rw-r--r--community-staging/ibus/ibus.install29
-rw-r--r--community-staging/mezogis/ChangeLog3
-rw-r--r--community-staging/mezogis/PKGBUILD26
-rw-r--r--community-staging/neatx/PKGBUILD39
-rw-r--r--community-staging/neatx/constants.archlinux.patch42
-rw-r--r--community-staging/neatx/neatx.install18
-rw-r--r--community-staging/python-gnupginterface/PKGBUILD21
-rw-r--r--community-staging/python-numarray/LICENSE9
-rw-r--r--community-staging/python-numarray/PKGBUILD33
-rw-r--r--community-staging/python-psycopg1/PKGBUILD34
-rw-r--r--community-staging/python-pyxattr/PKGBUILD33
-rw-r--r--community-staging/python2-imaging/PKGBUILD50
-rw-r--r--community-staging/ubuntuone-client/1339_1338.diff57
-rw-r--r--community-staging/ubuntuone-client/PKGBUILD46
-rw-r--r--community-staging/ubuntuone-client/fix-notify-hint.patch20
-rw-r--r--community-staging/ubuntuone-client/ubuntuone-client.install11
-rw-r--r--community-staging/uniconvertor/PKGBUILD29
-rw-r--r--community/conntrack-tools/PKGBUILD14
-rw-r--r--community/deja-dup/PKGBUILD8
-rw-r--r--community/fox/PKGBUILD7
-rw-r--r--community/freedroidrpg/PKGBUILD10
-rw-r--r--community/freemat/PKGBUILD8
-rw-r--r--community/inputattach/PKGBUILD18
-rw-r--r--community/inputattach/inputattach.service11
-rwxr-xr-xcommunity/inputattach/inputattachctl14
-rw-r--r--community/libnetfilter_cthelper/PKGBUILD26
-rw-r--r--community/nestopia/PKGBUILD8
-rw-r--r--community/netcf/PKGBUILD20
-rw-r--r--community/pptpd/PKGBUILD7
-rw-r--r--community/pptpd/pptpd.service10
-rw-r--r--community/python2-pysqlite-legacy/PKGBUILD25
-rw-r--r--community/rss-glx/PKGBUILD7
-rw-r--r--community/virtualbox-modules/PKGBUILD19
-rwxr-xr-xcommunity/virtualbox-modules/build.sh14
-rw-r--r--community/virtualbox-modules/virtualbox-guest-modules.install6
-rw-r--r--community/virtualbox-modules/virtualbox-host-modules.install6
-rw-r--r--community/xlockmore/PKGBUILD7
-rw-r--r--core/nfs-utils/PKGBUILD10
-rw-r--r--core/nfs-utils/rpc-gssd.service1
-rw-r--r--core/nfs-utils/rpc-idmapd.service1
-rw-r--r--core/nfs-utils/rpc-statd.service1
-rw-r--r--core/pam/PKGBUILD24
-rw-r--r--core/pam/pam_namespace-build-1.1.6.patch11
-rw-r--r--core/pam/pam_unix2-glibc216.patch20
-rw-r--r--core/util-linux/PKGBUILD39
-rw-r--r--core/wpa_supplicant/PKGBUILD7
-rw-r--r--core/wpa_supplicant/config14
-rw-r--r--extra/akonadi/PKGBUILD11
-rw-r--r--extra/foobillard++/PKGBUILD7
-rw-r--r--extra/ftgl/PKGBUILD3
-rw-r--r--extra/gnuplot/PKGBUILD8
-rw-r--r--extra/miro/PKGBUILD6
-rw-r--r--extra/perl-sdl/PKGBUILD6
-rw-r--r--extra/qrencode/PKGBUILD6
-rw-r--r--extra/xfce4-xkb-plugin/PKGBUILD46
-rw-r--r--extra/xfce4-xkb-plugin/xfce4-xkb-plugin-0.5.4.3-2-fix-memory-corruption.patch59
-rw-r--r--libre/linux-libre-kmod-alx/PKGBUILD36
-rw-r--r--libre/linux-libre-kmod-alx/linux-libre-kmod-alx.install33
-rw-r--r--libre/linux-libre-lts-kmod-alx/PKGBUILD36
-rw-r--r--libre/linux-libre-lts-kmod-alx/linux-libre-lts-kmod-alx.install33
-rw-r--r--libre/virtualbox-libre/PKGBUILD9
-rw-r--r--staging/bzr/PKGBUILD33
-rw-r--r--staging/gnome-python-desktop/PKGBUILD107
-rw-r--r--staging/gnome-python-desktop/gnome-python-desktop-2.32.0-metacity-build.patch42
-rw-r--r--staging/miro/PKGBUILD49
-rw-r--r--staging/miro/ffmpeg.patch63
-rw-r--r--staging/miro/miro.install17
-rw-r--r--staging/pygobject/PKGBUILD58
-rw-r--r--staging/pygobject2/PKGBUILD86
-rw-r--r--staging/pygobject2/python2-fix-type.patch50
-rw-r--r--staging/pygobject2/python3-fix-build.patch34
-rw-r--r--staging/pygobject2/python3-fix-maketrans.patch36
-rw-r--r--staging/pyqt/PKGBUILD10
-rw-r--r--staging/python-pyspi/PKGBUILD32
-rw-r--r--staging/python-pyspi/pyspi-build.patch1693
-rw-r--r--staging/twisted/PKGBUILD37
-rw-r--r--staging/twisted/twisted.install11
-rw-r--r--staging/vde2/PKGBUILD50
-rw-r--r--staging/vde2/dhcpd.conf.sample12
-rw-r--r--staging/vde2/iptables.rules.sample5
-rw-r--r--staging/vde2/vde-config.sample35
-rw-r--r--staging/vde2/vde-connection.sample6
-rw-r--r--staging/vde2/vde.conf11
-rwxr-xr-xstaging/vde2/vde.rc113
-rw-r--r--staging/vde2/vde2.install10
-rw-r--r--staging/xfce4-session/PKGBUILD5
-rw-r--r--testing/e2fsprogs/PKGBUILD6
-rw-r--r--testing/iproute2/PKGBUILD8
-rw-r--r--testing/iptables/PKGBUILD7
-rw-r--r--testing/lvm2/PKGBUILD12
-rw-r--r--testing/lvm2/lvm-on-crypt.service2
-rw-r--r--testing/lvm2/lvm.service2
104 files changed, 3989 insertions, 186 deletions
diff --git a/community-staging/blueman/PKGBUILD b/community-staging/blueman/PKGBUILD
new file mode 100644
index 000000000..72471ce4f
--- /dev/null
+++ b/community-staging/blueman/PKGBUILD
@@ -0,0 +1,48 @@
+# $Id: PKGBUILD 78012 2012-10-16 03:31:53Z allan $
+# Maintainer : Ionut Biru <ibiru@archlinux.org
+# Contributor: Abhishek Dasgupta <abhidg@gmail.com>
+
+pkgname=blueman
+pkgver=1.23
+pkgrel=5
+pkgdesc="GTK+ bluetooth manager"
+arch=('i686' 'x86_64')
+license=('GPL')
+url="http://blueman-project.org"
+depends=('python2-notify' 'bluez' 'python2-dbus' 'gtk2' 'python2-gobject2' 'startup-notification'
+ 'obex-data-server' 'polkit-gnome' 'xdg-utils' 'hicolor-icon-theme' 'libpulse'
+ 'notification-daemon')
+makedepends=('pyrex' 'intltool')
+optdepends=('dnsmasq: For creating PAN network'
+ 'gconf: For gconf configuration support'
+ 'pulseaudio: To use the pulseaudio plugin'
+ 'notification-daemon: for desktop notifications'
+ 'libnotify: for desktop notifications'
+ 'modemmanager: for modem management service'
+ 'gnome-icon-theme: icon theme')
+options=('!libtool')
+install=$pkgname.install
+source=(http://download.tuxfamily.org/blueman/${pkgname}-${pkgver}.tar.gz)
+md5sums=('f0bee59589f4c23e35bf08c2ef8acaef')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ export PYTHON=python2
+ for file in apps/blueman*; do
+ sed -i 's_#!/usr/bin/python_#!/usr/bin/python2_' $file
+ done
+ sed -i 's|"blueman-tray"|"blueman"|' blueman/plugins/applet/StatusIcon.py
+
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --libexecdir=/usr/lib/blueman \
+ --with-no-runtime-deps-check
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+ echo "OnlyShowIn=GNOME;XFCE;" >> ${pkgdir}/etc/xdg/autostart/blueman.desktop
+}
diff --git a/community-staging/blueman/blueman.install b/community-staging/blueman/blueman.install
new file mode 100644
index 000000000..8bf021487
--- /dev/null
+++ b/community-staging/blueman/blueman.install
@@ -0,0 +1,11 @@
+post_install() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ post_install $1
+}
diff --git a/community-staging/duplicity/PKGBUILD b/community-staging/duplicity/PKGBUILD
new file mode 100644
index 000000000..9fc900326
--- /dev/null
+++ b/community-staging/duplicity/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 77932 2012-10-15 23:29:05Z allan $
+# Maintainer: Kaiting Chen <kaitocracy@gmail.com>
+# Contributor: Aaron Schaefer <aaron@elasticdog.com>
+
+pkgname=duplicity
+pkgver=0.6.19
+pkgrel=2
+pkgdesc='A utility for encrypted, bandwidth-efficient backups using the rsync algorithm.'
+arch=('i686' 'x86_64')
+url='http://www.nongnu.org/duplicity/'
+license=('GPL')
+depends=('librsync' 'ncftp' 'python2' 'python2-boto' 'python2-gnupginterface' 'python2-paramiko')
+source=("http://savannah.nongnu.org/download/$pkgname/$pkgname-$pkgver.tar.gz"{,.sig})
+md5sums=('c88122d0b651f84f3bfa42e55591c36b'
+ 'df672ed47b8eb4fd8ffa99711623b6b5')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ # python2 fix
+ for file in $(find . -name '*.py' -print); do
+ sed -i 's_^#!.*/usr/bin/python_#!/usr/bin/python2_' $file
+ sed -i 's_^#!.*/usr/bin/env.*python_#!/usr/bin/env python2_' $file
+ done
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ python2 setup.py install --root="$pkgdir" --optimize=1
+
+ # fix broken documentation permissions until upstream does (FS#27301)
+ chmod 644 "$pkgdir/usr/share/man/man1/$pkgname.1"
+ chmod 644 "$pkgdir/usr/share/man/man1/rdiffdir.1"
+ chmod 644 "$pkgdir/usr/share/doc/$pkgname-$pkgver"/*
+}
diff --git a/community-staging/duplicity/botobackend.patch b/community-staging/duplicity/botobackend.patch
new file mode 100644
index 000000000..302e1e2b1
--- /dev/null
+++ b/community-staging/duplicity/botobackend.patch
@@ -0,0 +1,13 @@
+=== modified file duplicity/backends/botobackend.py
+--- duplicity/backends/botobackend.py 2011-11-25 17:47:57 +0000
++++ duplicity/backends/botobackend.py 2011-12-01 16:15:25 +0000
+@@ -26,6 +26,6 @@
+ if sys.version_info[:2] < (2,6):
+ print "Sorry, S3 multiprocessing requires version 2.6 or later of python"
+ sys.exit(1)
+- import _boto_multi.py
++ import _boto_multi
+ else:
+- import _boto_single.py
++ import _boto_single
+
diff --git a/community-staging/duplicity/duplicity-0.6.17-fix-memleak.patch b/community-staging/duplicity/duplicity-0.6.17-fix-memleak.patch
new file mode 100644
index 000000000..1c4c8daff
--- /dev/null
+++ b/community-staging/duplicity/duplicity-0.6.17-fix-memleak.patch
@@ -0,0 +1,29 @@
+=== modified file 'duplicity/util.py'
+--- duplicity/util.py 2011-08-23 18:14:17 +0000
++++ duplicity/util.py 2012-01-20 21:50:01 +0000
+@@ -71,6 +71,10 @@
+ else:
+ raise
+
++class BlackHoleList(list):
++ def append(self, x):
++ pass
++
+ class FakeTarFile:
+ debug = 0
+ def __iter__(self):
+@@ -83,7 +87,12 @@
+ # yet. So we want to ignore ReadError exceptions, which are used to signal
+ # this.
+ try:
+- return tarfile.TarFile("arbitrary", mode, fp)
++ tf = tarfile.TarFile("arbitrary", mode, fp)
++ # Now we cause TarFile to not cache TarInfo objects. It would end up
++ # consuming a lot of memory over the lifetime of our long-lasting
++ # signature files otherwise.
++ tf.members = BlackHoleList()
++ return tf
+ except tarfile.ReadError:
+ return FakeTarFile()
+
+
diff --git a/community-staging/gcompris/PKGBUILD b/community-staging/gcompris/PKGBUILD
new file mode 100644
index 000000000..0abcbc74f
--- /dev/null
+++ b/community-staging/gcompris/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 77950 2012-10-16 01:06:55Z foutrelis $
+# Maintainer: Evangelos Foutras <evangelos@foutrelis.com>
+# Contributor: Daniel Isenmann <daniel.isenmann [at] gmx.de>
+
+pkgname=gcompris
+pkgver=12.05
+pkgrel=2
+pkgdesc="Educational software suite comprising of numerous activities for children aged 2 to 10"
+arch=('i686' 'x86_64')
+url="http://gcompris.net/"
+license=('GPL3')
+depends=('pygtk' 'pyxml' 'librsvg' 'gnet' 'python2-pysqlite'
+ 'gstreamer0.10-base-plugins')
+optdepends=('gnucap: for computer simulation within the electricity activity'
+ 'tuxpaint: for the painting activity'
+ 'gnuchess: for the chess activity')
+makedepends=('texinfo' 'texi2html' 'intltool' 'gettext' 'gnuchess')
+options=('!libtool')
+source=(http://downloads.sourceforge.net/project/$pkgname/$pkgver/$pkgname-$pkgver.tar.bz2)
+sha256sums=('a4e9b9d04fd405c4b9ddc30f84a5f521f7ad1966c5f66c3e873bb84269ef55d0')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ depends+=('gcompris-data')
+
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install-exec
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community-staging/guake/PKGBUILD b/community-staging/guake/PKGBUILD
new file mode 100644
index 000000000..dfa432504
--- /dev/null
+++ b/community-staging/guake/PKGBUILD
@@ -0,0 +1,41 @@
+# $Id: PKGBUILD 77984 2012-10-16 02:10:51Z bgyorgy $
+# Maintainer: Balló György <ballogyor+arch at gmail dot com>
+# Contributor: Angel Velasquez <angvp@archlinux.org>
+# Contributor: Wilson Pinto Júnior (N3RD3X) <n3rd3x@linuxmail.org>
+
+pkgname=guake
+pkgver=0.4.4
+pkgrel=2
+pkgdesc='Drop-down terminal for GNOME'
+arch=('i686' 'x86_64')
+url="http://guake.org/"
+license=('GPL')
+depends=('python2-notify' 'vte' 'python2-gconf' 'python2-dbus' 'python2-xdg' 'hicolor-icon-theme' 'xdg-utils')
+makedepends=('intltool')
+options=('!libtool')
+install=$pkgname.install
+source=(http://guake.org/files/$pkgname-$pkgver.tar.gz
+ guake-fix-notification.patch)
+md5sums=('532adada29b8f0bb79dc15904aa6b70c'
+ '0b57227e6869dd84dd4fb0794ed0d082')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ sed -i 's|schemadir = $(sysconfdir)/gconf/schemas|schemadir = $(GCONF_SCHEMA_FILE_DIR)|' data/Makefile.in
+ sed -i 's|/usr/bin/env python|/usr/bin/python2|' src/{guake{,-prefs},prefs.py}
+
+ # http://guake.org/ticket/416
+ patch -Np1 -i "$srcdir/guake-fix-notification.patch"
+
+ ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var \
+ --disable-static --disable-schemas-install \
+ --with-gconf-schema-file-dir=/usr/share/gconf/schemas \
+ PYTHON=python2
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ make DESTDIR="$pkgdir" install
+}
diff --git a/community-staging/guake/guake-fix-notification.patch b/community-staging/guake/guake-fix-notification.patch
new file mode 100644
index 000000000..847dac10e
--- /dev/null
+++ b/community-staging/guake/guake-fix-notification.patch
@@ -0,0 +1,42 @@
+--- a/src/guake 2011-02-09 20:00:35.000000000 +0100
++++ b/src/guake 2012-02-25 00:55:28.513075769 +0100
+@@ -46,7 +46,10 @@
+ TERMINAL_MATCH_EXPRS, TERMINAL_MATCH_TAGS, \
+ ALIGN_LEFT, ALIGN_RIGHT, ALIGN_CENTER
+
+-pynotify.init('Guake!')
++popup_works = True
++if not pynotify.init('Guake!') or pynotify.get_server_info() == None :
++ popup_works = False
++ print "WARNING: could not use popup notification"
+
+ GNOME_FONT_PATH = '/desktop/gnome/interface/monospace_font_name'
+
+@@ -637,7 +640,12 @@
+ 'Please use Guake Preferences dialog to choose another '
+ 'key (The trayicon was enabled)') % label, filename)
+ self.client.set_bool(KEY('/general/use_trayicon'), True)
+- notification.show()
++ if popup_works :
++ notification.show()
++ else :
++ print _('A problem happened when binding <b>%s</b> key.\n'
++ 'Please use Guake Preferences dialog to choose another '
++ 'key (The trayicon was enabled)') % label
+
+ elif self.client.get_bool(KEY('/general/use_popup')):
+ # Pop-up that shows that guake is working properly (if not
+@@ -646,7 +654,11 @@
+ _('Guake!'),
+ _('Guake is now running,\n'
+ 'press <b>%s</b> to use it.') % label, filename)
+- notification.show()
++ if popup_works :
++ notification.show()
++ else :
++ print _('Guake is now running,\n'
++ 'press <b>%s</b> to use it.') % label
+
+ def execute_command(self, command, tab=None):
+ """Execute the `command' in the `tab'. If tab is None, the
+
diff --git a/community-staging/guake/guake.install b/community-staging/guake/guake.install
new file mode 100644
index 000000000..8084333b1
--- /dev/null
+++ b/community-staging/guake/guake.install
@@ -0,0 +1,22 @@
+pkgname=guake
+
+post_install() {
+ usr/sbin/gconfpkg --install ${pkgname}
+ xdg-icon-resource forceupdate
+}
+
+pre_upgrade() {
+ pre_remove $1
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ usr/sbin/gconfpkg --uninstall ${pkgname}
+}
+
+post_remove() {
+ xdg-icon-resource forceupdate
+}
diff --git a/community-staging/gwibber/PKGBUILD b/community-staging/gwibber/PKGBUILD
new file mode 100644
index 000000000..f664c770e
--- /dev/null
+++ b/community-staging/gwibber/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 78004 2012-10-16 03:01:00Z bgyorgy $
+# Maintainer: Balló György <ballogyor+arch at gmail dot com>
+
+pkgname=gwibber
+pkgver=3.4.2
+pkgrel=2
+pkgdesc="Microblogging client for GNOME, which supports Twitter, Identi.ca, StatusNet, Facebook, Flickr, Digg, FriendFeed and Qaiku"
+arch=('i686' 'x86_64')
+url="http://gwibber.com/"
+license=('GPL')
+depends=('libgee' 'libnotify' 'dee>=1.0.0' 'json-glib' 'gtkspell3' 'python2-gobject' 'libwnck3' 'libwebkit3' 'libgnome-keyring>=3.3' 'python2-dbus' 'python2-httplib2' 'python2-egenix-mx-base' 'python2-oauth' 'python2-imaging' 'python2-xdg' 'dconf' 'hicolor-icon-theme' 'xdg-utils')
+makedepends=('intltool' 'vala>=0.15.0')
+options=('!libtool')
+install=$pkgname.install
+source=(http://launchpad.net/$pkgname/${pkgver%.*}/$pkgver/+download/$pkgname-$pkgver.tar.gz)
+md5sums=('0ac544f8e626547312b9d0da0b57358e')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ find . -type f | xargs sed -i 's@^#!.*python$@#!/usr/bin/python2@'
+
+ ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var \
+ --disable-static --disable-schemas-compile --disable-unity
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ make DESTDIR="$pkgdir" install
+}
diff --git a/community-staging/gwibber/gwibber.install b/community-staging/gwibber/gwibber.install
new file mode 100644
index 000000000..d973d53f7
--- /dev/null
+++ b/community-staging/gwibber/gwibber.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate
+ glib-compile-schemas usr/share/glib-2.0/schemas
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ post_install $1
+}
diff --git a/community-staging/ibus/PKGBUILD b/community-staging/ibus/PKGBUILD
new file mode 100644
index 000000000..177d0c901
--- /dev/null
+++ b/community-staging/ibus/PKGBUILD
@@ -0,0 +1,40 @@
+# $Id: PKGBUILD 77920 2012-10-15 21:34:04Z ebelanger $
+# Contributor: Rainy <rainylau(at)gmail(dot)com>
+# Contributor: Lee.MaRS <leemars at gmail dot com>
+# Contributor: Daniel J Griffiths <ghost1227@archlinux.us>
+# Maintainer: Brad Fanella <bradfanella@archlinux.us>
+
+pkgname=ibus
+pkgver=1.4.2
+pkgrel=2
+pkgdesc="Next Generation Input Bus for Linux"
+arch=('i686' 'x86_64')
+url="http://ibus.googlecode.com"
+license=('LGPL')
+depends=('python2-dbus' 'gconf' 'dconf' 'python2-xdg' \
+ 'iso-codes' 'librsvg' 'python2-notify' 'hicolor-icon-theme')
+makedepends=('intltool' 'gobject-introspection')
+optdepends=('notification-daemon')
+options=('!libtool')
+install=ibus.install
+source=(http://ibus.googlecode.com/files/${pkgname}-${pkgver}.tar.gz)
+sha1sums=('a2d11d8bb64761691df918e9e50f0b35c711760d')
+
+build() {
+ cd ${pkgname}-${pkgver}
+ export PYTHON=python2
+ ./configure \
+ --prefix=/usr \
+ --libexecdir=/usr/lib/ibus \
+ --sysconfdir=/etc \
+ --with-gconf-schema-file-dir=/usr/share/gconf/schemas \
+ --enable-gtk3
+ make
+}
+
+package() {
+ cd ${pkgname}-${pkgver}
+ make DESTDIR="${pkgdir}" install
+ install -d "${pkgdir}/etc/xdg/autostart"
+ ln -s /usr/share/applications/ibus.desktop "${pkgdir}/etc/xdg/autostart/ibus.desktop"
+}
diff --git a/community-staging/ibus/ibus.install b/community-staging/ibus/ibus.install
new file mode 100644
index 000000000..f44e3be1d
--- /dev/null
+++ b/community-staging/ibus/ibus.install
@@ -0,0 +1,29 @@
+post_install() {
+ gtk-query-immodules-2.0 > etc/gtk-2.0/gtk.immodules
+
+ gconfpkg --install ibus
+ gtk-update-icon-cache -fq -t usr/share/icons/hicolor
+
+ # update for gkt3
+ gtk-query-immodules-3.0 --update-cache
+}
+
+pre_upgrade() {
+ pre_remove $1
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ gconfpkg --uninstall ibus
+}
+
+post_remove() {
+ gtk-query-immodules-2.0 > etc/gtk-2.0/gtk.immodules
+ gtk-update-icon-cache -fq -t usr/share/icons/hicolor
+
+ # update for gkt3
+ gtk-query-immodules-3.0 --update-cache
+}
diff --git a/community-staging/mezogis/ChangeLog b/community-staging/mezogis/ChangeLog
new file mode 100644
index 000000000..dba4cf7ec
--- /dev/null
+++ b/community-staging/mezogis/ChangeLog
@@ -0,0 +1,3 @@
+2007-06-27 tardo <tardo@nagi-fanboi.net>
+* Built for x86_64
+
diff --git a/community-staging/mezogis/PKGBUILD b/community-staging/mezogis/PKGBUILD
new file mode 100644
index 000000000..be14bb8c1
--- /dev/null
+++ b/community-staging/mezogis/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 78010 2012-10-16 03:23:52Z allan $
+# Maintainer: Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+# Contributor: William Rea <sillywilly@gmail.com>
+
+pkgname=mezogis
+pkgver=0.1.5
+pkgrel=6
+pkgdesc="A GIS application to query and analyse spatial data"
+arch=('i686' 'x86_64')
+url="http://www.mezogis.org"
+license=('GPL')
+depends=('pygtk' 'python2-geotypes' 'postgis')
+source=("http://www.mezogis.org/files/mezogis-$pkgver.tar.gz")
+md5sums=('1f886b849109a1a1bd3e165353b82368')
+
+package() {
+ cd $srcdir/mezogis-$pkgver
+
+ # python2 fix
+ for file in $(find . -name '*.py' -print); do
+ sed -i 's_#!.*/usr/bin/python_#!/usr/bin/python2_' $file
+ sed -i 's_#!.*/usr/bin/env.*python_#!/usr/bin/env python2_' $file
+ done
+
+ python2 setup.py install --root=$pkgdir
+}
diff --git a/community-staging/neatx/PKGBUILD b/community-staging/neatx/PKGBUILD
new file mode 100644
index 000000000..c11e76546
--- /dev/null
+++ b/community-staging/neatx/PKGBUILD
@@ -0,0 +1,39 @@
+# $Id: PKGBUILD 78006 2012-10-16 03:10:35Z allan $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Nicolas Doualot <packages@slubman.info>
+
+pkgname=neatx
+pkgver=0.3.1
+pkgrel=13
+pkgdesc="A free NX server by google"
+arch=('i686' 'x86_64')
+url="http://code.google.com/p/neatx/"
+license=('GPL')
+depends=('nxserver' 'python2-pexpect' 'python2-simplejson' 'netcat' 'pygtk')
+makedepends=('docutils')
+optdepends=('xorg-xdm: if you want to use KDE or GNOME session'
+ 'xorg-fonts-misc: to use default font'
+ 'xterm: if you want console session')
+install=neatx.install
+source=(http://neatx.googlecode.com/files/$pkgname-$pkgver.tar.gz
+ constants.archlinux.patch)
+md5sums=('5748656738d5f04fef1af01b9fe5ef20'
+ 'a5ca4aa399cc25fa8435280e8b03c5a3')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ patch -i "$srcdir/constants.archlinux.patch" -p2
+
+ ./configure --prefix=/usr --localstatedir=/var RST2HTML=/usr/bin/rst2html2
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ make DESTDIR="$pkgdir/" install
+ chmod 777 "$pkgdir/var/lib/neatx/sessions"
+
+ install -d -m755 ${pkgdir}/etc/ld.so.conf.d/
+ echo -e '/usr/lib\n/opt/NX/lib' > ${pkgdir}/etc/ld.so.conf.d/neatx.conf
+}
diff --git a/community-staging/neatx/constants.archlinux.patch b/community-staging/neatx/constants.archlinux.patch
new file mode 100644
index 000000000..dff5e2415
--- /dev/null
+++ b/community-staging/neatx/constants.archlinux.patch
@@ -0,0 +1,42 @@
+--- a/neatx-0.3.1/lib/constants.py 2009-06-24 21:19:55.000000000 +0200
++++ b/neatx-0.3.1/lib/constants.py 2009-07-08 10:50:30.000000000 +0200
+@@ -25,19 +25,19 @@
+ from neatx import _autoconf
+
+
+-NXDIR = "/usr/lib/nx"
++NXDIR = "/opt/NX/bin"
+
+ SYSLOG_ADDRESS = "/dev/log"
+ BASH = "/bin/bash"
+-NETCAT = "/bin/netcat"
++NETCAT = "/usr/bin/netcat"
+ XRDB = "/usr/bin/xrdb"
+ SU = "/bin/su"
+ SSH = "/usr/bin/ssh"
+ XAUTH = "/usr/bin/xauth"
+-XSESSION = "/etc/X11/Xsession"
++XSESSION = "/etc/X11/xdm/Xsession"
+
+ START_CONSOLE_COMMAND = "/usr/bin/xterm"
+-START_KDE_COMMAND = XSESSION + " startkde"
++START_KDE_COMMAND = " startkde"
+ START_GNOME_COMMAND = XSESSION + " gnome-session"
+
+ NXUSER = "nx"
+@@ -47,12 +47,13 @@
+ NXNC = _autoconf.PKGLIBDIR + "/nxnc"
+ NXDIALOG = _autoconf.PKGLIBDIR + "/nxdialog"
+ NXAGENT = NXDIR + "/nxagent"
+-NXAGENT_PKGNAME = "nxagent"
++#NXAGENT_PKGNAME = "nxagent"
++NXAGENT_PKGNAME = "nxserver"
+ FDCOPY = _autoconf.PKGLIBDIR + "/fdcopy"
+ TTYSETUP = _autoconf.PKGLIBDIR + "/ttysetup"
+
+ # Extract nxagent version using the following command.
+-NXAGENT_VERSION_COMMAND = ("dpkg-query -W --showformat='${Version}' %s" %
++NXAGENT_VERSION_COMMAND = ("pacman -Qi %s | grep Version | awk '{print $3}'" %
+ NXAGENT_PKGNAME)
+ NXAGENT_VERSION_SEP = ".-~"
+
diff --git a/community-staging/neatx/neatx.install b/community-staging/neatx/neatx.install
new file mode 100644
index 000000000..89356878c
--- /dev/null
+++ b/community-staging/neatx/neatx.install
@@ -0,0 +1,18 @@
+post_install() {
+ useradd -d /opt/NX/home/nx -s /usr/lib/neatx/nxserver-login-wrapper nx &> /dev/null
+ mkdir -p ~nx/.ssh
+ cp /usr/share/neatx/authorized_keys.nomachine ~nx/.ssh/authorized_keys
+ chmod 600 ~nx/.ssh/authorized_keys
+ chown -R nx ~nx
+ post_remove
+}
+
+pre_remove() {
+ userdel nx > /dev/null 2>&1
+ rm -rf ~nx
+}
+
+post_remove() {
+ sed -e '/\/opt\/NX\/lib/d' -i etc/ld.so.conf
+ ldconfig
+}
diff --git a/community-staging/python-gnupginterface/PKGBUILD b/community-staging/python-gnupginterface/PKGBUILD
new file mode 100644
index 000000000..33446e9b3
--- /dev/null
+++ b/community-staging/python-gnupginterface/PKGBUILD
@@ -0,0 +1,21 @@
+# Maintainer: Lukas Fleischer <archlinux at cryptocrack dot de>
+# Contributor: Aaron Schaefer <aaron@elasticdog.com>
+
+pkgbase=python-gnupginterface
+pkgname=python2-gnupginterface
+pkgver=0.3.2
+pkgrel=1
+pkgdesc='A Python interface to GNU Privacy Guard (GnuPG).'
+arch=('i686' 'x86_64')
+url='http://py-gnupg.sourceforge.net/'
+license=('GPL')
+depends=('gnupg' 'python2')
+conflicts=('python-gnupginterface<=0.3.2-6')
+replaces=('python-gnupginterface<=0.3.2-6')
+source=("http://downloads.sourceforge.net/sourceforge/py-gnupg/GnuPGInterface-$pkgver.tar.gz")
+md5sums=('d4627d83446f96bd8c22f8d15db3f7c2')
+
+package_python2-gnupginterface() {
+ cd "$srcdir/GnuPGInterface-$pkgver"
+ python2 setup.py install --root="$pkgdir" -O1
+}
diff --git a/community-staging/python-numarray/LICENSE b/community-staging/python-numarray/LICENSE
new file mode 100644
index 000000000..30ff57fc4
--- /dev/null
+++ b/community-staging/python-numarray/LICENSE
@@ -0,0 +1,9 @@
+Copyright (C) 2005 Association of Universities for Research in Astronomy (AURA)
+
+Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
+
+1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
+2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
+3. The name of AURA and its representatives may not be used to endorse or promote products derived from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY AURA ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL AURA BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/community-staging/python-numarray/PKGBUILD b/community-staging/python-numarray/PKGBUILD
new file mode 100644
index 000000000..813d2a700
--- /dev/null
+++ b/community-staging/python-numarray/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 77974 2012-10-16 01:49:29Z allan $
+# Maintainer: Lukas Fleischer <archlinux at cryptocrack dot de>
+# Contributor: Douglas Soares de Andrade <dsandrade@gmail.com>
+
+pkgbase=python-numarray
+pkgname=python2-numarray
+pkgver=1.5.2
+pkgrel=6
+pkgdesc='Provides array manipulation and computational capabilities.'
+arch=('i686' 'x86_64')
+url='http://numpy.scipy.org/'
+license=('BSD')
+depends=('python2')
+conflicts=('python2-numarray<=1.5.2-6')
+replaces=('python2-numarray<=1.5.2-6')
+source=("http://downloads.sourceforge.net/sourceforge/numpy/numarray-${pkgver}.tar.gz"
+ 'LICENSE')
+md5sums=('d2ecfc60fe4869c328b872540d04e0f7'
+ 'e32b4466453e530d7fb0dbeee0ca1044')
+
+build() {
+ cd "${srcdir}/numarray-${pkgver}"
+
+ # python2 fix
+ sed -i 's_#! /usr/bin/env python_#! /usr/bin/env python2_' Examples/convolve/benchmark.py
+}
+
+package_python2-numarray() {
+ cd "${srcdir}/numarray-${pkgver}"
+
+ python2 setup.py install --root="${pkgdir}"
+ install -D ../LICENSE "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+}
diff --git a/community-staging/python-psycopg1/PKGBUILD b/community-staging/python-psycopg1/PKGBUILD
new file mode 100644
index 000000000..be5d7e8c2
--- /dev/null
+++ b/community-staging/python-psycopg1/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 77980 2012-10-16 02:05:02Z allan $
+# Contributor: William Rea <sillywilly@gmail.com>
+
+pkgbase=python-psycopg1
+pkgname=python2-psycopg1
+pkgver=1.1.21
+pkgrel=8
+pkgdesc="A PostgreSQL database adapter for Python"
+arch=('i686' 'x86_64')
+url="http://initd.org/projects/psycopg1"
+license=('GPL')
+depends=('python2-egenix-mx-base' 'postgresql')
+conflicts=('python-psycopg1<=1.1.21-7')
+replaces=('python-psycopg1<=1.1.21-7')
+source=(http://initd.org/psycopg/tarballs/PSYCOPG-1-1/psycopg-$pkgver.tar.gz)
+md5sums=('a31f79f68d6d32898d6f24e11369a106')
+sha1sums=('02d8a8b5dd682306117896c7c63a9a1b518997b6')
+
+build() {
+ cd "$srcdir/psycopg-$pkgver"
+
+ ./configure --prefix=/usr --with-python=/usr/bin/python2 \
+ --with-mxdatetime-includes=/usr/lib/python2.7/site-packages/mx/DateTime/mxDateTime
+ sed -e 's:\(echo " install -m 555 $$mod \)\($(PY_MOD_DIR)\)\("; \\\):\1${DESTDIR}\2/$$mod\3:' \
+ -e 's:\($(INSTALL) -m 555 $$mod \)\($(PY_MOD_DIR)\)\(; \\\):\1${DESTDIR}\2/$$mod\3:' \
+ -i Makefile
+ make
+}
+
+package_python2-psycopg1() {
+ cd "$srcdir/psycopg-$pkgver"
+
+ make DESTDIR="$pkgdir" install
+}
diff --git a/community-staging/python-pyxattr/PKGBUILD b/community-staging/python-pyxattr/PKGBUILD
new file mode 100644
index 000000000..b2a40177d
--- /dev/null
+++ b/community-staging/python-pyxattr/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 77978 2012-10-16 01:55:36Z allan $
+# Maintainer: Lukas Fleischer <archlinux at cryptocrack dot de>
+# Contributor: Jon Bergli Heier <snakebite@jvnv.net>
+
+pkgname=('python2-pyxattr' 'python-pyxattr')
+pkgbase=python-pyxattr
+_pkgname=pyxattr
+pkgver=0.5.0
+pkgrel=4
+pkgdesc='A python extension module that allows you to manipulate the extended attributes.'
+arch=('i686' 'x86_64')
+url='http://pyxattr.sourceforge.net/'
+license=('GPL')
+makedepends=('python2' 'python' 'python2-distribute' 'python-distribute')
+source=("http://downloads.sourceforge.net/${_pkgname}/${_pkgname}-${pkgver}.tar.gz")
+md5sums=('0f7ab1e185087329e40f7de218517c84')
+
+package_python2-pyxattr() {
+ depends=('python2')
+ provides=('pyxattr')
+ conflicts=('pyxattr')
+ replaces=('pyxattr')
+
+ cd "${srcdir}/${_pkgname}-${pkgver}"
+ python2 setup.py install --root="${pkgdir}"
+}
+
+package_python-pyxattr() {
+ depends=('python')
+
+ cd "${srcdir}/${_pkgname}-${pkgver}"
+ python setup.py install --root="${pkgdir}"
+}
diff --git a/community-staging/python2-imaging/PKGBUILD b/community-staging/python2-imaging/PKGBUILD
new file mode 100644
index 000000000..2bb3ec9ab
--- /dev/null
+++ b/community-staging/python2-imaging/PKGBUILD
@@ -0,0 +1,50 @@
+# $Id: PKGBUILD 77972 2012-10-16 01:48:17Z kkeen $
+# Maintainer: Kyle Keen <keenerd@gmail.com>
+# Contributor: Stéphane Gaudreault <stephane@archlinux.org>
+# Contributor: Allan McRae <allan@archlinux.org>
+# Contributor: simo <simo@archlinux.org>
+
+pkgname=python2-imaging
+pkgver=1.1.7
+pkgrel=5
+pkgdesc="PIL. Provides image processing capabilities for python"
+arch=('i686' 'x86_64')
+url="http://www.pythonware.com/products/pil/index.htm"
+license=('custom:"pil"')
+depends=('python2' 'libjpeg' 'freetype2' 'lcms')
+makedepends=('tk' 'sane')
+optdepends=('tk: for the ImageTK module'
+ 'sane: for the ImageSane module')
+provides=("pil=${pkgver}" "python-imaging=${pkgver}")
+conflicts=('pil' 'python-imaging')
+replaces=('pil' 'python-imaging')
+source=(http://effbot.org/downloads/Imaging-${pkgver}.tar.gz)
+md5sums=('fc14a54e1ce02a0225be8854bfba478e')
+
+build() {
+ cd "${srcdir}/Imaging-${pkgver}"
+ python2 setup.py build_ext
+ cd Sane
+ python2 setup.py build_ext
+}
+
+package() {
+ cd "${srcdir}/Imaging-${pkgver}"
+ python2 setup.py install --root="${pkgdir}" --optimize=1
+
+ pushd Sane
+ python2 setup.py install --root="${pkgdir}" --optimize=1
+ popd
+
+ install -dm755 "${pkgdir}/usr/include/python2.7/"
+ install -m644 -t "${pkgdir}/usr/include/python2.7/" libImaging/*.h
+
+ # do not have files ending in .py in /usr/bin
+ for f in pildriver pilprint pilconvert pilfile pilfont; do
+ mv "${pkgdir}"/usr/bin/${f}{.py,}
+ done
+
+ # Install license
+ install -Dm644 "${srcdir}/Imaging-${pkgver}/README" \
+ "${pkgdir}/usr/share/licenses/${pkgname}/README"
+}
diff --git a/community-staging/ubuntuone-client/1339_1338.diff b/community-staging/ubuntuone-client/1339_1338.diff
new file mode 100644
index 000000000..cbd966a70
--- /dev/null
+++ b/community-staging/ubuntuone-client/1339_1338.diff
@@ -0,0 +1,57 @@
+=== modified file 'tests/platform/sync_menu/test_linux.py'
+--- tests/platform/sync_menu/test_linux.py 2012-10-10 14:54:49 +0000
++++ tests/platform/sync_menu/test_linux.py 2012-10-11 12:01:27 +0000
+@@ -124,6 +124,7 @@
+ """Check that the dummy has the proper methods required by the API."""
+ dummy = linux.DummySyncMenu('random', 'args')
+ self.assertIsInstance(dummy.update_transfers, Callable)
++ self.assertIsInstance(dummy.sync_status_changed, Callable)
+
+
+ class SyncMenuTestCase(TestCase):
+
+=== modified file 'ubuntuone/platform/sync_menu/linux.py'
+--- ubuntuone/platform/sync_menu/linux.py 2012-10-10 17:06:14 +0000
++++ ubuntuone/platform/sync_menu/linux.py 2012-10-11 13:00:10 +0000
+@@ -183,7 +183,7 @@
+ self.timer.addCallback(self._timeout)
+
+
+-class TransfersMenu(Dbusmenu.Menuitem):
++class TransfersMenu(Dbusmenu.Menuitem if use_syncmenu else object):
+ """Menu that handles the recent and current transfers."""
+
+ def __init__(self, status_frontend):
+@@ -227,7 +227,7 @@
+ items_added = 0
+ remove = []
+ for item in self._uploading_items:
+- if item in uploading_data:
++ if item in uploading_data.keys():
+ size, written = uploading_data[item]
+ percentage = written * 100 / size
+ upload_item = self._uploading_items[item]
+@@ -243,7 +243,7 @@
+ for item in remove:
+ self._uploading_items.pop(item)
+ if items_added < 5:
+- for item in uploading_data:
++ for item in uploading_data.keys():
+ if item not in self._uploading_items and items_added < 5:
+ size, written = uploading_data[item]
+ percentage = written * 100 / size
+@@ -270,4 +270,12 @@
+ def update_transfers(self):
+ """Do nothing."""
+
+-UbuntuOneSyncMenu = UbuntuOneSyncMenuLinux if use_syncmenu else DummySyncMenu
++ def sync_status_changed(self):
++ """Do nothing."""
++
++
++if use_syncmenu:
++ UbuntuOneSyncMenu = UbuntuOneSyncMenuLinux
++else:
++ UbuntuOneSyncMenu = DummySyncMenu
++ TransfersMenu = None
+
diff --git a/community-staging/ubuntuone-client/PKGBUILD b/community-staging/ubuntuone-client/PKGBUILD
new file mode 100644
index 000000000..8829e86d9
--- /dev/null
+++ b/community-staging/ubuntuone-client/PKGBUILD
@@ -0,0 +1,46 @@
+# $Id: PKGBUILD 77990 2012-10-16 02:30:37Z bgyorgy $
+# Maintainer: Balló György <ballogyor+arch at gmail dot com>
+
+pkgname=ubuntuone-client
+pkgver=4.0.0
+pkgrel=2
+pkgdesc="Ubuntu One helps you store, sync and share files between your computers"
+arch=('i686' 'x86_64')
+url="https://launchpad.net/ubuntuone-client"
+license=('GPL')
+depends=('dbus-glib' 'python2-configglue' 'python2-distribute' 'libnotify' 'python2-gobject2' 'python2-pyinotify' 'python2-simplejson' 'ubuntu-sso-client' 'python2-ubuntuone-storageprotocol' 'hicolor-icon-theme' 'xdg-utils')
+makedepends=('intltool' 'imake' 'gobject-introspection')
+options=('!libtool')
+install=$pkgname.install
+source=(http://launchpad.net/ubuntuone-client/stable-4-0/$pkgver/+download/$pkgname-$pkgver.tar.gz
+ 1339_1338.diff
+ fix-notify-hint.patch)
+md5sums=('738039703d4dcf54518a725f8ffbc4de'
+ 'e82e80c229de06692988c1f938a34fb9'
+ '54dfeb2be011f0a12ea7cfa0f0c19bec')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ sed -i 's@^#!.*python$@#!/usr/bin/python2@' bin/*
+
+ # Improve TransfersMenu declaration to avoid problems
+ patch -Np0 -i "$srcdir/1339_1338.diff"
+
+ # Workaround for crash in notification-daemon
+ # https://bugzilla.gnome.org/show_bug.cgi?id=665166
+ patch -Np1 -i "$srcdir/fix-notify-hint.patch"
+
+ ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var --libexecdir=/usr/lib/$pkgname \
+ --disable-static \
+ PYTHON=python2
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ make DESTDIR="$pkgdir/" install
+
+ # We don't have Apport in Arch Linux
+ rm -r "$pkgdir"/{etc/apport,usr/share/apport}
+}
diff --git a/community-staging/ubuntuone-client/fix-notify-hint.patch b/community-staging/ubuntuone-client/fix-notify-hint.patch
new file mode 100644
index 000000000..f32280de9
--- /dev/null
+++ b/community-staging/ubuntuone-client/fix-notify-hint.patch
@@ -0,0 +1,20 @@
+diff -Naur ubuntuone-client-4.0.0.orig/ubuntuone/platform/notification/linux.py ubuntuone-client-4.0.0/ubuntuone/platform/notification/linux.py
+--- ubuntuone-client-4.0.0.orig/ubuntuone/platform/notification/linux.py 2012-06-19 15:51:01.000000000 +0200
++++ ubuntuone-client-4.0.0/ubuntuone/platform/notification/linux.py 2012-10-15 01:14:01.019476818 +0200
+@@ -40,7 +40,7 @@
+
+ if 'gi' in sys.modules and sys.modules['gi'] is not None:
+ try:
+- from gi.repository import Notify
++ from gi.repository import GLib, Notify
+ Notify # pyflakes
+ NOTIFY_MODULE = 'gi'
+ except ImportError:
+@@ -85,5 +85,6 @@
+ if append:
+ self.notification.set_hint_string('x-canonical-append', '')
+
+- self.notification.set_hint_int32('transient', int(True))
++ if NOTIFY_MODULE == 'gi':
++ self.notification.set_hint('transient', GLib.Variant.new_boolean(1))
+ self.notification.show()
diff --git a/community-staging/ubuntuone-client/ubuntuone-client.install b/community-staging/ubuntuone-client/ubuntuone-client.install
new file mode 100644
index 000000000..2c455e952
--- /dev/null
+++ b/community-staging/ubuntuone-client/ubuntuone-client.install
@@ -0,0 +1,11 @@
+post_install() {
+ xdg-icon-resource forceupdate
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ post_install $1
+}
diff --git a/community-staging/uniconvertor/PKGBUILD b/community-staging/uniconvertor/PKGBUILD
new file mode 100644
index 000000000..da1175e90
--- /dev/null
+++ b/community-staging/uniconvertor/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 77994 2012-10-16 02:42:54Z allan $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Roberto Alsina <ralsina@kde.org>
+
+pkgname=uniconvertor
+pkgver=1.1.5
+pkgrel=6
+pkgdesc="A universal vector graphics translator using sK1 engine."
+arch=('i686' 'x86_64')
+url="http://sk1project.org/modules.php?name=Products&product=uniconvertor"
+license=('GPL')
+depends=('python2' 'python2-imaging' 'python2-reportlab' 'sk1libs')
+makedepends=('gcc')
+source=(http://uniconvertor.googlecode.com/files/uniconvertor-$pkgver.tar.gz)
+md5sums=('d1272315a58304ece2ff588834e23f72')
+
+build() {
+ cd "$srcdir/uniconvertor-$pkgver"
+
+ # python2 fix
+ sed -i 's_#! /usr/bin/python_#! /usr/bin/python2_' src/__init__.py
+
+ python2 setup.py build
+}
+
+package() {
+ cd "$srcdir/uniconvertor-$pkgver"
+ python2 setup.py install --root="$pkgdir"
+}
diff --git a/community/conntrack-tools/PKGBUILD b/community/conntrack-tools/PKGBUILD
index ef1d82740..d82489e0a 100644
--- a/community/conntrack-tools/PKGBUILD
+++ b/community/conntrack-tools/PKGBUILD
@@ -1,25 +1,29 @@
-# $Id: PKGBUILD 74777 2012-08-04 01:09:31Z seblu $
+# $Id: PKGBUILD 77959 2012-10-16 01:20:20Z seblu $
# Maintainer: Sébastien Luttringer <seblu@aur.archlinux.org>
# Contributor: Valere Monseur <valere_monseur@hotmail.com>
# Contributor: Alessandro Sagratini <ale_sagra@hotmail.com>
# Contributor: Kevin Edmonds <edmondskevin@hotmail.com>
pkgname=conntrack-tools
-pkgver=1.2.2
+pkgver=1.4.0
pkgrel=1
pkgdesc='Userspace tools to interact with the Netfilter connection tracking system'
arch=('i686' 'x86_64')
url='http://www.netfilter.org/projects/conntrack-tools'
license=('GPL2')
-depends=('libnetfilter_conntrack' 'libnetfilter_cttimeout')
+depends=('libnetfilter_conntrack'
+ 'libnetfilter_cttimeout'
+ 'libnetfilter_cthelper'
+ 'libnetfilter_queue')
backup=('etc/conntrackd.conf' 'etc/conf.d/conntrackd')
-install=$pkgname.install
+options=('!libtool')
source=("http://www.netfilter.org/projects/$pkgname/files/$pkgname-$pkgver.tar.bz2"
'conntrackd.rc'
'conntrackd.conf'
'conntrackd.service'
'01-config-file-path.patch')
-md5sums=('a8afc813e16265655f83991fc0df35b6'
+install=$pkgname.install
+md5sums=('ee737c774e01349f75e935228a2d851b'
'478fe76da0202fcb5249bf65968d1c26'
'd3e73e81b54e3e8166d357d434680684'
'bd135eaefb47923bb8e8d26f084d3e9d'
diff --git a/community/deja-dup/PKGBUILD b/community/deja-dup/PKGBUILD
index 76e4f4d65..1f9815897 100644
--- a/community/deja-dup/PKGBUILD
+++ b/community/deja-dup/PKGBUILD
@@ -1,20 +1,20 @@
-# $Id: PKGBUILD 69507 2012-04-17 14:32:37Z bgyorgy $
+# $Id: PKGBUILD 77901 2012-10-15 17:33:17Z bgyorgy $
# Maintainer: Balló György <ballogyor+arch at gmail dot com>
pkgname=deja-dup
-pkgver=22.1
+pkgver=24.0
pkgrel=1
pkgdesc="Simple backup tool, that hides the complexity of backing up the Right Way and uses duplicity as the backend"
arch=('i686' 'x86_64')
url="https://launchpad.net/deja-dup"
license=('GPL')
-depends=('duplicity' 'gtk3' 'libgnome-keyring' 'libnotify' 'dconf' 'hicolor-icon-theme' 'xdg-utils')
+depends=('duplicity' 'libgnome-keyring' 'libpeas' 'libnotify' 'python2-gobject2' 'dconf' 'xdg-utils')
makedepends=('vala' 'intltool' 'itstool' 'nautilus')
optdepends=('nautilus: backup extension')
options=('!libtool')
install=$pkgname.install
source=(http://launchpad.net/$pkgname/${pkgver%.*}/$pkgver/+download/$pkgname-$pkgver.tar.xz)
-md5sums=('cbf7af6f0392ab9ef355a3aeb74c8a79')
+md5sums=('335131d1f3c85615339fa8b212db50ae')
build() {
cd "$srcdir/$pkgname-$pkgver"
diff --git a/community/fox/PKGBUILD b/community/fox/PKGBUILD
index 5225f4927..cd8506fd0 100644
--- a/community/fox/PKGBUILD
+++ b/community/fox/PKGBUILD
@@ -1,15 +1,16 @@
-# $Id: PKGBUILD 77632 2012-10-13 11:42:15Z allan $
+# $Id: PKGBUILD 77870 2012-10-15 10:22:54Z spupykin $
# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
# Contributor: Ben <ben@benmazer.net>
pkgname=fox
pkgver=1.6.46
-pkgrel=2
+pkgrel=3
pkgdesc="Free Objects for X: GUI Toolkit for C++"
arch=('i686' 'x86_64')
url="http://www.fox-toolkit.org/"
license=('LGPL' 'custom')
-depends=('bzip2' 'libxcursor' 'libxft' 'libxrandr' 'mesa' 'libxi' 'libpng' 'libtiff' 'glu')
+depends=('bzip2' 'libxcursor' 'libxft' 'libxrandr' 'libxi' 'libpng' 'libtiff' 'glu')
+makedepends=('mesa')
optdepends=('perl')
options=('!libtool')
source=(http://ftp.fox-toolkit.org/pub/fox-$pkgver.tar.gz)
diff --git a/community/freedroidrpg/PKGBUILD b/community/freedroidrpg/PKGBUILD
index b3c2fb45d..38c9ce56d 100644
--- a/community/freedroidrpg/PKGBUILD
+++ b/community/freedroidrpg/PKGBUILD
@@ -1,15 +1,13 @@
-# $Id: PKGBUILD 75817 2012-09-01 20:39:32Z heftig $
+# $Id: PKGBUILD 77877 2012-10-15 10:55:20Z spupykin $
# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
# Contributor: nut543 <kfs1@online.no>
-#pkgbase=freedroidrpg
-#pkgname=('freedroidrpg' 'freedroidrpg-data')
pkgname='freedroidrpg'
pkgver=0.15.1
-pkgrel=2
+pkgrel=3
arch=('i686' 'x86_64')
-# depends=('sdl_mixer' 'sdl_image' 'libogg' 'libvorbis' 'libgl' 'freedroidrpg-data')
-depends=('sdl_mixer' 'sdl_image' 'sdl_gfx' 'libogg' 'libvorbis' 'libgl' 'mesa')
+depends=('sdl_mixer' 'sdl_image' 'sdl_gfx' 'libogg' 'libvorbis' 'libgl' 'glu')
+makedepends=('mesa')
optdepends=('python2' 'espeak')
pkgdesc="a mature science fiction role playing game set in the future"
url="http://freedroid.sourceforge.net"
diff --git a/community/freemat/PKGBUILD b/community/freemat/PKGBUILD
index 7fa884dca..02d57a273 100644
--- a/community/freemat/PKGBUILD
+++ b/community/freemat/PKGBUILD
@@ -1,16 +1,16 @@
-# $Id: PKGBUILD 77633 2012-10-13 11:42:24Z allan $
+# $Id: PKGBUILD 77872 2012-10-15 10:33:45Z spupykin $
# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
# Contributor: William Rea <sillywilly@gmail.com>
pkgname=freemat
pkgver=4.1
-pkgrel=5
+pkgrel=6
pkgdesc="A free environment for rapid engineering, scientific prototyping and data processing"
arch=('i686' 'x86_64')
url="http://freemat.sourceforge.net"
license=('GPL')
-depends=('qt' 'ffcall' 'fftw' 'mesa' 'portaudio' 'libffi' 'mesa' 'glu')
-makedepends=('arpack' 'lapack' 'umfpack' 'blas' 'libmatio' 'cmake' 'python2')
+depends=('qt' 'ffcall' 'fftw' 'portaudio' 'libffi' 'glu')
+makedepends=('arpack' 'lapack' 'umfpack' 'blas' 'libmatio' 'cmake' 'python2' 'mesa')
install=freemat.install
source=(http://downloads.sourceforge.net/project/freemat/FreeMat4/FreeMat-$pkgver-Source.tar.gz
build-fix.patch)
diff --git a/community/inputattach/PKGBUILD b/community/inputattach/PKGBUILD
index 53879697c..ea6fca2b6 100644
--- a/community/inputattach/PKGBUILD
+++ b/community/inputattach/PKGBUILD
@@ -1,10 +1,10 @@
-# $Id: PKGBUILD 65570 2012-02-21 09:01:06Z spupykin $
+# $Id: PKGBUILD 77899 2012-10-15 16:07:24Z spupykin $
# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
# Contributor: Mark Smith <markzzzsmith@yahoo.com.au>
pkgname=inputattach
pkgver=1.24
-pkgrel=5
+pkgrel=6
pkgdesc="Attach serial mice, keyboards and other input devices to the kernel input system"
arch=('i686' 'x86_64')
url="http://linuxconsole.sourceforge.net/"
@@ -19,26 +19,38 @@ source=('http://arch.p5n.pp.ru/~sergej/dl/2011/inputattach.c'
'http://arch.p5n.pp.ru/~sergej/dl/2011/serio-ids.h'
'inputattach.conf.d'
'inputattach.rc.d'
+ 'inputattach.service'
+ 'inputattachctl'
'0001-Add-w8001-flag.patch'
'0002-Allow-for-custom-baud-rates.patch')
md5sums=('eb595a766ca363edb3b14c25404596ce'
'93d34d96cd3ad19ea1aeca7f68a66b4a'
'7ca903e54829764c8241233af5069216'
'aa2e404fc113abdd2ab14e2a6352c331'
+ 'c19b9ed38b243191cf5378b87a42a4cc'
+ '84c6463660c10bd34c0390102da087d5'
'f1b3ddae308351357f557cbd5c6cda81'
'8f76908449cae24a95adbf0bc0a17721')
build() {
cd "$srcdir"
+
+ mkdir src
+ cp inputattach.c serio-ids.h src/
+ cd src
+
# Add support for serial wacom tablets
patch -Np1 -i "$srcdir/0001-Add-w8001-flag.patch"
patch -Np1 -i "$srcdir/0002-Allow-for-custom-baud-rates.patch"
+
cc $CFLAGS inputattach.c -o inputattach
}
package() {
- cd "$srcdir"
+ cd "$srcdir/src"
install -Dm755 inputattach "$pkgdir/usr/sbin/inputattach"
install -Dm644 $srcdir/inputattach.conf.d "$pkgdir/etc/conf.d/inputattach"
install -Dm755 $srcdir/inputattach.rc.d "$pkgdir/etc/rc.d/inputattach"
+ install -Dm755 $srcdir/inputattachctl $pkgdir/usr/bin/inputattachctl
+ install -Dm644 $srcdir/inputattach.service $pkgdir/usr/lib/systemd/system/inputattach.service
}
diff --git a/community/inputattach/inputattach.service b/community/inputattach/inputattach.service
new file mode 100644
index 000000000..2ec902c09
--- /dev/null
+++ b/community/inputattach/inputattach.service
@@ -0,0 +1,11 @@
+[Unit]
+Description=Attach serial input devices to kernel input subsystem
+After=syslog.target
+
+[Service]
+Type=forking
+ExecStart=/usr/bin/inputattachctl start
+ExecStop=/usr/bin/inputattachctl stop
+
+[Install]
+WantedBy=multi-user.target
diff --git a/community/inputattach/inputattachctl b/community/inputattach/inputattachctl
new file mode 100755
index 000000000..291c531ae
--- /dev/null
+++ b/community/inputattach/inputattachctl
@@ -0,0 +1,14 @@
+#!/bin/bash
+
+. /etc/conf.d/inputattach
+
+case "$1" in
+ start)
+ for i in "${IAPARAMS[@]}"; do
+ /usr/sbin/inputattach --daemon $i || exit 1
+ done
+ ;;
+ stop)
+ killall inputattach || exit 1
+ ;;
+esac
diff --git a/community/libnetfilter_cthelper/PKGBUILD b/community/libnetfilter_cthelper/PKGBUILD
new file mode 100644
index 000000000..0cca5f479
--- /dev/null
+++ b/community/libnetfilter_cthelper/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 77960 2012-10-16 01:20:23Z seblu $
+# Maintainer: Sébastien Luttringer <seblu@aur.archlinux.org>
+
+pkgname=libnetfilter_cthelper
+pkgver=1.0.0
+pkgrel=1
+pkgdesc='Library for the connection tracking helper infrastructure'
+arch=('i686' 'x86_64')
+url='http://www.netfilter.org/projects/libnetfilter_cthelper/'
+license=('GPL2')
+depends=('libmnl')
+options=('!libtool')
+source=("http://www.netfilter.org/projects/$pkgname/files/$pkgname-$pkgver.tar.bz2")
+md5sums=('b2efab1a3a198a5add448960ba011acd')
+
+build() {
+ cd $pkgname-$pkgver
+ ./configure --prefix=/usr
+}
+
+package() {
+ cd $pkgname-$pkgver
+ make DESTDIR="$pkgdir" install
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community/nestopia/PKGBUILD b/community/nestopia/PKGBUILD
index f9238d3f5..d03528a26 100644
--- a/community/nestopia/PKGBUILD
+++ b/community/nestopia/PKGBUILD
@@ -1,17 +1,17 @@
-# $Id: PKGBUILD 77652 2012-10-13 11:44:15Z allan $
+# $Id: PKGBUILD 77858 2012-10-15 10:08:57Z spupykin $
# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
# Contributor: Tiago Pierezan Camargo <tcamargo@gmail.com>
# Contributor: robb_force <robb_force@holybuffalo.net>
pkgname=nestopia
pkgver=1.42
-pkgrel=3
+pkgrel=4
pkgdesc='An NES emulator featuring cycle exact emulation, a ridiculous number of mappers, and lots of custom sound chips.'
url='http://0ldsk00l.ca/nestopia.html'
license=('GPL')
arch=('i686' 'x86_64')
-depends=('sdl' 'alsa-lib' 'gtk3' 'mesa' 'glu')
-makedepends=('unzip')
+depends=('sdl' 'alsa-lib' 'gtk3' 'glu')
+makedepends=('unzip' 'mesa')
source=("$pkgname-$pkgver.tar.gz::https://github.com/rdanbrook/nestopia/tarball/$pkgver"
"build-fix.patch")
md5sums=('ce7ffba59f19c764f08546e015777172'
diff --git a/community/netcf/PKGBUILD b/community/netcf/PKGBUILD
index 9c26ba270..9e1d02240 100644
--- a/community/netcf/PKGBUILD
+++ b/community/netcf/PKGBUILD
@@ -1,10 +1,10 @@
-# $Id: PKGBUILD 70813 2012-05-16 21:38:44Z spupykin $
+# $Id: PKGBUILD 77847 2012-10-15 09:41:41Z spupykin $
# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
# Contributor: Aurélien Wailly <aurelien.wailly@gmail.com>
pkgname=netcf
-pkgver=0.1.9
-pkgrel=2
+pkgver=0.2.2
+pkgrel=1
pkgdesc="A library for configuring network interfaces"
arch=('i686' 'x86_64')
license=('LGPL')
@@ -12,25 +12,23 @@ url="https://fedorahosted.org/netcf/"
depends=('augeas>=0.7.4' 'netcfg' 'libxslt' 'libxml2' 'libnl')
makedepends=('gcc')
options=(!libtool)
-source=("https://fedorahosted.org/released/netcf/$pkgname-$pkgver.tar.gz"
- "netcf-libnl3.patch::https://bugs.archlinux.org/task/29908?getfile=8775")
-md5sums=('4d62010a79d56c12438969da9035b63c'
- 'a509be4b819f669fac21e1eaa621e3e0')
+source=("https://fedorahosted.org/released/netcf/$pkgname-$pkgver.tar.gz")
+md5sums=('fbcd47101797b8fcd9519e22002cd200')
build() {
cd "${srcdir}/${pkgname}-${pkgver}"
- patch -Np1 -i ${srcdir}/netcf-libnl3.patch
aclocal
automake --add-missing || true
autoreconf
-# CFLAGS="`pkg-config --cflags libnl-3.0` -DRTNL_LINK_NOT_FOUND=-1"
- CFLAGS="-DNETCF_TRANSACTION=\"true\"" ./configure --prefix=/usr \
+ ./configure --prefix=/usr \
--disable-static \
- --with-init-script=none
+ --with-init-script=none \
+ --with-driver=redhat
make
}
package() {
cd "${srcdir}/${pkgname}-${pkgver}"
make DESTDIR=${pkgdir} install
+ rm -rf $pkgdir/etc/rc.d/init.d
}
diff --git a/community/pptpd/PKGBUILD b/community/pptpd/PKGBUILD
index c3e97bec9..d7e98e032 100644
--- a/community/pptpd/PKGBUILD
+++ b/community/pptpd/PKGBUILD
@@ -1,9 +1,9 @@
-# $Id: PKGBUILD 74350 2012-07-25 10:18:29Z spupykin $
+# $Id: PKGBUILD 77852 2012-10-15 09:47:33Z spupykin $
# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
pkgname=pptpd
pkgver=1.3.4
-pkgrel=10
+pkgrel=11
pkgdesc="Poptop server"
arch=(i686 x86_64)
url="http://poptop.sourceforge.net/"
@@ -12,9 +12,11 @@ depends=(ppp glibc)
backup=(etc/pptpd.conf)
source=(http://downloads.sourceforge.net/sourceforge/poptop/pptpd-$pkgver.tar.gz
pptpd
+ pptpd.service
unrecognized-opt.patch)
md5sums=('b38df9c431041922c997c1148bedf591'
'e09f81beb5d59a0fdfba94e3a60d992b'
+ '144c17c7d5c1b95cfb3450eb73aa2e50'
'cfa02c86d0413eb94fac15599986f54c')
build() {
@@ -38,6 +40,7 @@ package() {
mkdir -p $pkgdir/etc/
echo -e "# Read man pptpd.conf, see samples in /usr/share/doc/pptpd\n# and write your pptpd configuration here" >$pkgdir/etc/pptpd.conf
install -Dm0755 ../pptpd $pkgdir/etc/rc.d/pptpd
+ install -Dm0644 $srcdir/$pkgname.service $pkgdir/usr/lib/systemd/system/$pkgname.service
mkdir -p $pkgdir/usr/share/doc/pptpd
cp -a samples $pkgdir/usr/share/doc/pptpd/
}
diff --git a/community/pptpd/pptpd.service b/community/pptpd/pptpd.service
new file mode 100644
index 000000000..739508b60
--- /dev/null
+++ b/community/pptpd/pptpd.service
@@ -0,0 +1,10 @@
+[Unit]
+Description=PPTP Server
+After=network.target
+
+[Service]
+ExecStart=/usr/sbin/pptpd -c /etc/pptpd.conf -p /var/run/pptpd.pid -f
+StandardOutput=null
+
+[Install]
+WantedBy=multi-user.target
diff --git a/community/python2-pysqlite-legacy/PKGBUILD b/community/python2-pysqlite-legacy/PKGBUILD
new file mode 100644
index 000000000..6fdb5bb66
--- /dev/null
+++ b/community/python2-pysqlite-legacy/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 77909 2012-10-15 19:54:27Z rvanharen $
+# Maintainer: Ronald van Haren <ronald.archlinux.org>
+# Contributor : Aaron Griffin <aaron.archlinux.org>
+
+pkgname=python2-pysqlite-legacy
+pkgver=1.0.1
+pkgrel=1
+pkgdesc="A Python DB-API 2.0 interface for the legacy SQLite 2"
+arch=('i686' 'x86_64')
+url="http://initd.org/tracker/pysqlite"
+replaces=('python-pysqlite-legacy')
+license=('custom')
+depends=('python2' 'sqlite2')
+source=(http://www.mirrorservice.org/sites/www.ibiblio.org/gentoo/distfiles/pysqlite-$pkgver.tar.gz)
+md5sums=('4797b5ea7a3d96b87333e6b5af7b9979')
+
+build()
+{
+ cd ${srcdir}/pysqlite
+ python2 setup.py install --root=${pkgdir} -O1
+
+ # install custom license
+ install -Dm644 ${srcdir}/pysqlite/LICENSE \
+ ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
+}
diff --git a/community/rss-glx/PKGBUILD b/community/rss-glx/PKGBUILD
index 8822cdff5..3886c1660 100644
--- a/community/rss-glx/PKGBUILD
+++ b/community/rss-glx/PKGBUILD
@@ -1,16 +1,17 @@
-# $Id: PKGBUILD 77659 2012-10-13 11:44:58Z allan $
+# $Id: PKGBUILD 77864 2012-10-15 10:12:56Z spupykin $
# Maintainer : Ionut Biru <ibiru@archlinux.org>
# Contributor: Corrado 'bardo' Primier <corrado.primier@mail.polimi.it>
# Contributor: Tate "Tatey" Johnson <tatey86@tpg.com.au>
pkgname=rss-glx
pkgver=0.9.1
-pkgrel=10
+pkgrel=11
pkgdesc="The Really Slick Screensavers port to GLX"
arch=('i686' 'x86_64')
url="http://rss-glx.sourceforge.net/"
license=('GPL')
-depends=('desktop-file-utils' 'freealut' 'glew' 'imagemagick' 'glu' 'mesa')
+depends=('desktop-file-utils' 'freealut' 'glew' 'imagemagick' 'glu')
+makedepends=('mesa')
optdepends=('xscreensaver: xscreensaver integration')
install=rss-glx.install
options=('!libtool')
diff --git a/community/virtualbox-modules/PKGBUILD b/community/virtualbox-modules/PKGBUILD
index eff2034da..28b75bd71 100644
--- a/community/virtualbox-modules/PKGBUILD
+++ b/community/virtualbox-modules/PKGBUILD
@@ -1,11 +1,11 @@
-# $Id: PKGBUILD 77194 2012-10-06 11:13:30Z tpowa $
+# $Id: PKGBUILD 77842 2012-10-15 05:19:18Z tpowa $
# 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=5
+pkgrel=6
arch=('i686' 'x86_64')
url='http://virtualbox.org'
license=('GPL')
@@ -16,7 +16,8 @@ makedepends=('linux-headers'
build() {
# current kernel version
- _kernver=$(expac -Q '%v' linux-headers)-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
@@ -30,12 +31,13 @@ build() {
package_virtualbox-host-modules(){
pkgdesc='Host kernel modules for VirtualBox'
- depends=('linux>=3.5' 'linux<3.6')
+ depends=('linux>=3.6' 'linux<3.7')
replaces=('virtualbox-modules')
conflicts=('virtualbox-modules')
install=virtualbox-host-modules.install
- _kernver=$(expac -Q '%v' linux-headers)-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"
@@ -48,19 +50,20 @@ package_virtualbox-host-modules(){
package_virtualbox-guest-modules(){
pkgdesc='Guest kernel modules for VirtualBox'
license=('GPL')
- depends=('linux>=3.5' 'linux<3.6')
+ depends=('linux>=3.6' 'linux<3.7')
replaces=('virtualbox-archlinux-modules')
conflicts=('virtualbox-archlinux-modules')
install=virtualbox-guest-modules.install
- _kernver=$(expac -Q '%v' linux-headers)-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"
cd "dkms/vboxguest/$pkgver/$_kernver/$CARCH/module"
install -m644 * "$pkgdir/usr/lib/modules/$_extraver"
find "$pkgdir" -name '*.ko' -exec gzip -9 {} +
- sed -ie "s/EXTRAMODULES='.*'/EXTRAMODULES='$_extraver'/" "$startdir/virtualbox-host-modules.install"
+ sed -ie "s/EXTRAMODULES='.*'/EXTRAMODULES='$_extraver'/" "$startdir/virtualbox-guest-modules.install"
}
# vim:set ts=2 sw=2 et:
diff --git a/community/virtualbox-modules/build.sh b/community/virtualbox-modules/build.sh
index 9b0e6fca8..828448cab 100755
--- a/community/virtualbox-modules/build.sh
+++ b/community/virtualbox-modules/build.sh
@@ -1,8 +1,8 @@
#!/bin/bash
-if (( $# != 2 )); then
- echo "usage: $0 extra multilib"
- echo " $0 testing multilib-testing"
+if (( $# != 1 )); then
+ echo "usage: $0 extra"
+ echo " $0 testing"
exit 1
fi
@@ -11,10 +11,10 @@ linux32 makechrootpkg -I ../../virtualbox/trunk/virtualbox-host-source-*-i686.pk
linux32 makechrootpkg -I ../../virtualbox/trunk/virtualbox-guest-source-*-i686.pkg.tar.xz -r /var/lib/archbuild/$1-i686
linux32 makechrootpkg -r /var/lib/archbuild/$1-i686
-$2-build
-makechrootpkg -I ../../virtualbox/trunk/virtualbox-host-source-*-x86_64.pkg.tar.xz -r /var/lib/archbuild/$2-x86_64
-makechrootpkg -I ../../virtualbox/trunk/virtualbox-guest-source-*-x86_64.pkg.tar.xz -r /var/lib/archbuild/$2-x86_64
-makechrootpkg -r /var/lib/archbuild/$2-x86_64
+$1-x86_64-build
+makechrootpkg -I ../../virtualbox/trunk/virtualbox-host-source-*-x86_64.pkg.tar.xz -r /var/lib/archbuild/$1-x86_64
+makechrootpkg -I ../../virtualbox/trunk/virtualbox-guest-source-*-x86_64.pkg.tar.xz -r /var/lib/archbuild/$1-x86_64
+makechrootpkg -r /var/lib/archbuild/$1-x86_64
# vim:set ts=2 sw=2 ft=sh et:
diff --git a/community/virtualbox-modules/virtualbox-guest-modules.install b/community/virtualbox-modules/virtualbox-guest-modules.install
index 15d536b7f..e5d1038af 100644
--- a/community/virtualbox-modules/virtualbox-guest-modules.install
+++ b/community/virtualbox-modules/virtualbox-guest-modules.install
@@ -2,16 +2,16 @@ post_install() {
cat << EOF
===> You may want to load vboxguest, vboxsf and vboxvideo
EOF
- EXTRAMODULES='extramodules-3.5-ARCH'
+ EXTRAMODULES='extramodules-3.6-ARCH'
depmod $(cat /usr/lib/modules/$EXTRAMODULES/version)
}
post_upgrade() {
- EXTRAMODULES='extramodules-3.5-ARCH'
+ EXTRAMODULES='extramodules-3.6-ARCH'
depmod $(cat /usr/lib/modules/$EXTRAMODULES/version)
}
post_remove() {
- EXTRAMODULES='extramodules-3.5-ARCH'
+ EXTRAMODULES='extramodules-3.6-ARCH'
depmod $(cat /usr/lib/modules/$EXTRAMODULES/version)
}
diff --git a/community/virtualbox-modules/virtualbox-host-modules.install b/community/virtualbox-modules/virtualbox-host-modules.install
index 9b7b8c444..3f2ed4a10 100644
--- a/community/virtualbox-modules/virtualbox-host-modules.install
+++ b/community/virtualbox-modules/virtualbox-host-modules.install
@@ -3,17 +3,17 @@ cat << EOF
===> You must load vboxdrv module before starting VirtualBox:
===> # modprobe vboxdrv
EOF
- EXTRAMODULES='extramodules-3.5-ARCH'
+ EXTRAMODULES='extramodules-3.6-ARCH'
depmod $(cat /usr/lib/modules/$EXTRAMODULES/version)
}
post_upgrade() {
- EXTRAMODULES='extramodules-3.5-ARCH'
+ EXTRAMODULES='extramodules-3.6-ARCH'
depmod $(cat /usr/lib/modules/$EXTRAMODULES/version)
echo 'In order to use the new version, reload all virtualbox modules manually.'
}
post_remove() {
- EXTRAMODULES='extramodules-3.5-ARCH'
+ EXTRAMODULES='extramodules-3.6-ARCH'
depmod $(cat /usr/lib/modules/$EXTRAMODULES/version)
}
diff --git a/community/xlockmore/PKGBUILD b/community/xlockmore/PKGBUILD
index afcbb9752..a0e8e4380 100644
--- a/community/xlockmore/PKGBUILD
+++ b/community/xlockmore/PKGBUILD
@@ -1,14 +1,15 @@
-# $Id: PKGBUILD 77669 2012-10-13 11:46:09Z allan $
+# $Id: PKGBUILD 77869 2012-10-15 10:22:11Z spupykin $
# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
# Maintainer: dorphell <dorphell@archlinux.org>
pkgname=xlockmore
pkgver=5.40
-pkgrel=2
+pkgrel=3
pkgdesc="screen saver / locker for the X Window System"
arch=(i686 x86_64)
license=('BSD')
-depends=(freetype2 gtk2 libxpm lesstif pam mesa libxmu glu)
+depends=(freetype2 gtk2 libxpm lesstif pam libxmu glu)
+makedepends=(mesa)
url="http://www.tux.org/~bagleyd/xlockmore.html"
options=('!makeflags')
source=(http://www.tux.org/~bagleyd/xlock/xlockmore-$pkgver/xlockmore-$pkgver.tar.bz2
diff --git a/core/nfs-utils/PKGBUILD b/core/nfs-utils/PKGBUILD
index a6ac7ff9d..caf4229c1 100644
--- a/core/nfs-utils/PKGBUILD
+++ b/core/nfs-utils/PKGBUILD
@@ -1,4 +1,4 @@
-# $Id: PKGBUILD 160027 2012-05-28 10:26:22Z tpowa $
+# $Id: PKGBUILD 168765 2012-10-15 19:16:00Z thomas $
# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
# Contributor: John Proctor <jproctor@prium.net>
# Contributor: dibblethewrecker <dibblethewrecker.at.jiwe.org>
@@ -7,7 +7,7 @@
pkgname=nfs-utils
pkgver=1.2.6
-pkgrel=1
+pkgrel=2
pkgdesc="Support programs for Network File Systems"
arch=('i686' 'x86_64')
url='http://nfs.sourceforge.net'
@@ -48,11 +48,11 @@ md5sums=('8be543ca270c2234ff18f8c8d35e0d37'
'f5e7bba09a46c5c5d7007cac6eff9df5'
'7674106eaaa4c149bccd4f05fe3604e9'
'4f4827dfc93008dfadd0a530ad0872b2'
- '38855936dc55a5afe37d84edc0f11066'
+ '3694619813cebc5b4502b58f1992b442'
'965311784d49a7d126d512cadbe91deb'
'e05705d9ccccaeaeb1ecaee20adc05bc'
- 'd7df7bc311fd95c5b80017dd1741570d'
- '2e72ee082cba5d3ec6f51d2a105664da'
+ '359d84a85f8781dc3f45f4cf1dbe4b53'
+ 'c82ef7b238efe62af3d5e263e1ba1c5c'
'5d33d2e754fd37280365b287603bac90'
'1cd65909fa0983047f3f06a3ab352401'
'02a34835aa077146a90eb7d191e612d0'
diff --git a/core/nfs-utils/rpc-gssd.service b/core/nfs-utils/rpc-gssd.service
index 446864d18..da4c71307 100644
--- a/core/nfs-utils/rpc-gssd.service
+++ b/core/nfs-utils/rpc-gssd.service
@@ -2,6 +2,7 @@
Description=RPC GSS-API client-side daemon
After=rpcbind.service var-lib-nfs-rpc_pipefs.mount
Requires=rpcbind.service var-lib-nfs-rpc_pipefs.mount
+Before=remote-fs-pre.target
[Service]
Type=forking
diff --git a/core/nfs-utils/rpc-idmapd.service b/core/nfs-utils/rpc-idmapd.service
index 72cd26a93..7785c1bd5 100644
--- a/core/nfs-utils/rpc-idmapd.service
+++ b/core/nfs-utils/rpc-idmapd.service
@@ -2,6 +2,7 @@
Description=NFSv4 ID-name mapping daemon
After=var-lib-nfs-rpc_pipefs.mount nfsd.service
Requires=var-lib-nfs-rpc_pipefs.mount
+Before=remote-fs-pre.target
[Service]
Type=forking
diff --git a/core/nfs-utils/rpc-statd.service b/core/nfs-utils/rpc-statd.service
index 983b4044f..97d397faf 100644
--- a/core/nfs-utils/rpc-statd.service
+++ b/core/nfs-utils/rpc-statd.service
@@ -2,6 +2,7 @@
Description=NFSv2/3 Network Status Monitor Daemon
After=rpcbind.service
Requires=rpcbind.service
+Before=remote-fs-pre.service
[Service]
Type=forking
diff --git a/core/pam/PKGBUILD b/core/pam/PKGBUILD
index 42c6663c9..1e7c611b7 100644
--- a/core/pam/PKGBUILD
+++ b/core/pam/PKGBUILD
@@ -1,10 +1,10 @@
-# $Id: PKGBUILD 161792 2012-06-14 10:14:53Z tpowa $
+# $Id: PKGBUILD 168736 2012-10-15 05:13:56Z tpowa $
# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
# Contributor: judd <jvinet@zeroflux.org>
pkgname=pam
-pkgver=1.1.5
-pkgrel=4
+pkgver=1.1.6
+pkgrel=1
pkgdesc="PAM (Pluggable Authentication Modules) library"
arch=('i686' 'x86_64')
license=('GPL2')
@@ -14,28 +14,34 @@ makedepends=('flex' 'w3m' 'docbook-xml>=4.4' 'docbook-xsl')
backup=(etc/security/{access.conf,group.conf,limits.conf,namespace.conf,namespace.init,pam_env.conf,time.conf} etc/default/passwd etc/environment)
source=(https://fedorahosted.org/releases/l/i/linux-pam/Linux-PAM-$pkgver.tar.bz2
#http://www.kernel.org/pub/linux/libs/pam/library/Linux-PAM-$pkgver.tar.bz2
- ftp://ftp.suse.com/pub/people/kukuk/pam/pam_unix2/pam_unix2-2.6.tar.bz2)
+ ftp://ftp.archlinux.org/other/pam_unix2/pam_unix2-2.9.1.tar.bz2
+ pam_unix2-glibc216.patch
+ pam_namespace-build-1.1.6.patch)
options=('!libtool' '!emptydirs')
-md5sums=('927ee5585bdec5256c75117e9348aa47'
- 'e2788389a6c59224110a45fcff30e02b')
+md5sums=('7b73e58b7ce79ffa321d408de06db2c4'
+ 'da6a46e5f8cd3eaa7cbc4fc3a7e2b555'
+ 'dac109f68e04a4df37575fda6001ea17'
+ '440a510164ba5eb69bf41e129746ff44')
build() {
cd $srcdir/Linux-PAM-$pkgver
./configure --libdir=/usr/lib
+ patch -Np0 -i ../pam_namespace-build-1.1.6.patch
make
- cd $srcdir/pam_unix2-2.6
+ cd $srcdir/pam_unix2-2.9.1
+ patch -Np1 -i ../pam_unix2-glibc216.patch
./configure --libdir=/usr/lib
make
}
package() {
cd $srcdir/Linux-PAM-$pkgver
- make DESTDIR=$pkgdir install
+ make DESTDIR=$pkgdir SCONFIGDIR=/etc/security install
# build pam_unix2 module
# source ftp://ftp.suse.com/pub/people/kukuk/pam/pam_unix2
- cd $srcdir/pam_unix2-2.6
+ cd $srcdir/pam_unix2-2.9.1
make DESTDIR=$pkgdir install
# add the realtime permissions for audio users
diff --git a/core/pam/pam_namespace-build-1.1.6.patch b/core/pam/pam_namespace-build-1.1.6.patch
new file mode 100644
index 000000000..aeabc234c
--- /dev/null
+++ b/core/pam/pam_namespace-build-1.1.6.patch
@@ -0,0 +1,11 @@
+--- modules/pam_namespace/Makefile~ 2012-10-12 10:59:13.557550706 +0200
++++ modules/pam_namespace/Makefile 2012-10-12 10:59:13.564217270 +0200
+@@ -869,7 +869,7 @@
+
+
+ install-data-local:
+- mkdir -p $(namespaceddir)
++ mkdir -p $(DESTDIR)$(namespaceddir)
+ README: pam_namespace.8.xml namespace.conf.5.xml
+ -include $(top_srcdir)/Make.xml.rules
+
diff --git a/core/pam/pam_unix2-glibc216.patch b/core/pam/pam_unix2-glibc216.patch
new file mode 100644
index 000000000..faa6a235f
--- /dev/null
+++ b/core/pam/pam_unix2-glibc216.patch
@@ -0,0 +1,20 @@
+Index: pam_unix2-2.9.1/src/read-files.c
+===================================================================
+--- pam_unix2-2.9.1.orig/src/read-files.c
++++ pam_unix2-2.9.1/src/read-files.c
+@@ -30,8 +30,14 @@
+ #include <errno.h>
+ #include <fcntl.h>
+ #include <nss.h>
+-#include <bits/libc-lock.h>
++#include <pthread.h>
+ #define __libc_lock_t pthread_mutex_t
++#define __libc_lock_define_initialized(CLASS,NAME) \
++ CLASS __libc_lock_t NAME = PTHREAD_MUTEX_INITIALIZER;
++#define __libc_lock_lock(NAME) \
++ pthread_mutex_lock, (&(NAME))
++#define __libc_lock_unlock(NAME) \
++ pthread_mutex_unlock, (&(NAME))
+
+ #include "read-files.h"
+
diff --git a/core/util-linux/PKGBUILD b/core/util-linux/PKGBUILD
index deba92866..4280c06fa 100644
--- a/core/util-linux/PKGBUILD
+++ b/core/util-linux/PKGBUILD
@@ -1,10 +1,10 @@
-# $Id: PKGBUILD 168016 2012-10-05 10:13:37Z tomegun $
+# $Id: PKGBUILD 168750 2012-10-15 14:14:40Z tomegun $
# Maintainer: Tom Gundersen <teg@jklm.no>
# Contributor: judd <jvinet@zeroflux.org>
pkgname=util-linux
-pkgver=2.22
-pkgrel=7
+pkgver=2.22.1
+pkgrel=1
pkgdesc="Miscellaneous system utilities for Linux"
url="http://www.kernel.org/pub/linux/utils/util-linux/"
arch=('i686' 'x86_64')
@@ -16,12 +16,10 @@ provides=("util-linux-ng=${pkgver}" 'eject')
license=('GPL2')
options=('!libtool')
source=(ftp://ftp.kernel.org/pub/linux/utils/${pkgname}/v2.22/${pkgname}-${pkgver}.tar.xz
- su.1
uuidd.tmpfiles
pam-login
pam-common
- pam-su
- hwclock-systz.patch)
+ pam-su)
backup=(etc/pam.d/chfn
etc/pam.d/chsh
etc/pam.d/login
@@ -32,13 +30,6 @@ install=util-linux.install
build() {
cd "${srcdir}/${pkgname}-${pkgver}"
- patch -p1 -i ../hwclock-systz.patch
-
- # unbreak --localstatedir
- # TODO(dreisner): find out what sami had in mind with these heuristics
- sed -i '71,75d' configure.ac
- ./autogen.sh
-
./configure --prefix=/usr \
--libdir=/usr/lib \
--localstatedir=/run \
@@ -52,15 +43,16 @@ build() {
--enable-socket-activation
# --enable-reset \ # part of ncurses
-# --enable-last \ # not part of any package
-# --enable-line \ # not compat
+# --enable-line \ # not part of any package
+# --enable-last \ # not compat
make
}
-check() {
- make -C "$pkgname-$pkgver" check
-}
+#check() {
+# fails for some reason in chroot, works outside
+# make -C "$pkgname-$pkgver" check
+#}
package() {
cd "${srcdir}/${pkgname}-${pkgver}"
@@ -79,19 +71,12 @@ package() {
install -m644 "$srcdir/pam-su" "${pkgdir}/etc/pam.d/su"
install -m644 "$srcdir/pam-su" "${pkgdir}/etc/pam.d/su-l"
- # broken buildsys doesn't include su(1), which means it
- # isn't even in the dist tarball
- # TODO(dreisner): patched upstream
- install -m644 "$srcdir/su.1" "$pkgdir/usr/share/man/man1/su.1"
-
# include tmpfiles fragment for uuidd
# TODO(dreisner): offer this upstream?
install -Dm644 "$srcdir/uuidd.tmpfiles" "$pkgdir/usr/lib/tmpfiles.d/uuidd.conf"
}
-md5sums=('ba2d8cc12a937231c80a04f7f7149303'
- '7f524538dcf57284a86f03a98e624f04'
+md5sums=('730cf9932531ed09b53a04ca30fcb4c9'
'a39554bfd65cccfd8254bb46922f4a67'
'4368b3f98abd8a32662e094c54e7f9b1'
'a31374fef2cba0ca34dfc7078e2969e4'
- 'fa85e5cce5d723275b14365ba71a8aad'
- '19eaa197a0cfb046661dede2e991120b')
+ 'fa85e5cce5d723275b14365ba71a8aad')
diff --git a/core/wpa_supplicant/PKGBUILD b/core/wpa_supplicant/PKGBUILD
index 5a7db187f..83ced8ab1 100644
--- a/core/wpa_supplicant/PKGBUILD
+++ b/core/wpa_supplicant/PKGBUILD
@@ -1,21 +1,20 @@
-# $Id: PKGBUILD 162909 2012-07-03 19:16:48Z dreisner $
+# $Id: PKGBUILD 168766 2012-10-15 19:16:03Z thomas $
# Maintainer: Thomas Bächler <thomas@archlinux.org>
pkgname=wpa_supplicant
pkgver=1.0
-pkgrel=1
+pkgrel=2
pkgdesc="A utility providing key negotiation for WPA wireless networks"
url="http://hostap.epitest.fi/wpa_supplicant"
arch=('i686' 'x86_64')
depends=('openssl' 'dbus-core' 'readline' 'libnl')
optdepends=('wpa_supplicant_gui: wpa_gui program')
license=('GPL')
-groups=('base')
backup=('etc/wpa_supplicant/wpa_supplicant.conf')
source=("http://w1.fi/releases/${pkgname}-${pkgver}.tar.gz"
config hostap_allow-linking-with-libnl-3.2.patch)
md5sums=('8650f6aa23646ef634402552d0669640'
- '380d8d1fe24bccb2a2636cb2a6038c39'
+ 'c035e45e8e240239eecd7402f235fb3b'
'473fb6b77909ec5a50b6f4d91370e86b')
build() {
diff --git a/core/wpa_supplicant/config b/core/wpa_supplicant/config
index 59da1e27e..5e6dfedc8 100644
--- a/core/wpa_supplicant/config
+++ b/core/wpa_supplicant/config
@@ -466,3 +466,17 @@ CONFIG_NO_RANDOM_POOL=y
#CONFIG_INTERWORKING=y
CONFIG_LIBNL32=y
+
+# More options that are not in defconfig:
+
+# Lightweight AP mode
+CONFIG_AP=y
+
+# P2P (WiFi Direct)
+CONFIG_P2P=y
+
+# RSN IBSS/AdHoc support
+CONFIG_IBSS_RSN=y
+
+# Simple background scan
+CONFIG_BGSCAN_SIMPLE=y
diff --git a/extra/akonadi/PKGBUILD b/extra/akonadi/PKGBUILD
index d539ce3fa..a5225c3a6 100644
--- a/extra/akonadi/PKGBUILD
+++ b/extra/akonadi/PKGBUILD
@@ -1,22 +1,21 @@
-# $Id: PKGBUILD 164827 2012-08-06 23:06:21Z andrea $
+# $Id: PKGBUILD 168740 2012-10-15 06:35:45Z andrea $
# Maintainer: Andrea Scarpino <andrea@archlinux.org>
# Contributor: Pierre Schmitz <pierre@archlinux.de>
pkgname=akonadi
-pkgver=1.8.0
+pkgver=1.8.1
pkgrel=1
pkgdesc="PIM layer, which provides an asynchronous API to access all kind of PIM data"
arch=('i686' 'x86_64')
-url='http://pim.kde.org/akonadi'
+url='http://community.kde.org/KDE_PIM/Akonadi'
license=('LGPL')
depends=('shared-mime-info' 'boost-libs' 'mysql' 'soprano')
makedepends=('pkgconfig' 'cmake' 'automoc4' 'boost')
install="${pkgname}.install"
source=("http://download.kde.org/stable/${pkgname}/src/${pkgname}-${pkgver}.tar.bz2")
-md5sums=('81156d883b40241cfc0ddb885f55bcfe')
+md5sums=('39411abc7bec8a485362ea7460e7e3d7')
build() {
- cd "${srcdir}"
mkdir build
cd build
cmake ../${pkgname}-${pkgver} \
@@ -27,6 +26,6 @@ build() {
}
package() {
- cd "${srcdir}/build"
+ cd build
make DESTDIR="${pkgdir}" install
}
diff --git a/extra/foobillard++/PKGBUILD b/extra/foobillard++/PKGBUILD
index 5cedf397f..13dcd633e 100644
--- a/extra/foobillard++/PKGBUILD
+++ b/extra/foobillard++/PKGBUILD
@@ -1,14 +1,15 @@
-# $Id: PKGBUILD 148666 2012-02-05 11:46:13Z ibiru $
+# $Id: PKGBUILD 168755 2012-10-15 17:52:10Z eric $
# Maintainer: Eric Bélanger <eric@archlinux.org>
pkgname=foobillard++
pkgver=3.42beta
-pkgrel=3
+pkgrel=4
pkgdesc="An OpenGL billiard game"
arch=('i686' 'x86_64')
url="http://foobillardplus.sourceforge.net/"
license=('GPL2')
-depends=('freetype2' 'libpng' 'mesa' 'sdl_net' 'sdl_mixer')
+depends=('freetype2' 'libpng' 'glu' 'sdl_net' 'sdl_mixer')
+makedepends=('mesa')
replaces=('foobillard')
source=(http://downloads.sourceforge.net/foobillardplus/foobillardplus-${pkgver}.tar.gz)
sha1sums=('51507efab0f595cfff26149003faf669c0a42f32')
diff --git a/extra/ftgl/PKGBUILD b/extra/ftgl/PKGBUILD
index ecc5e938a..279f616a2 100644
--- a/extra/ftgl/PKGBUILD
+++ b/extra/ftgl/PKGBUILD
@@ -1,4 +1,4 @@
-# $Id: PKGBUILD 168600 2012-10-13 11:46:59Z andyrtr $
+# $Id: PKGBUILD 168802 2012-10-16 03:14:27Z heftig $
# Maintainer: Jan Alexander Steffens (heftig) <jan.steffens@gmail.com>
# Contributor: Alexander Baldeck <alexander@archlinux.org>
# Contributor: tobias <tobias@archlinux.org>
@@ -19,6 +19,7 @@ md5sums=('c7879018cde844059495b3029b0b6503')
build() {
cd "$srcdir/$pkgname-${_pkgver/-/~}"
+ sed -i '/^SUBDIRS =/s/demo//' Makefile.in
./configure --prefix=/usr --with-pic --disable-static
make
}
diff --git a/extra/gnuplot/PKGBUILD b/extra/gnuplot/PKGBUILD
index 432dff742..80183ab73 100644
--- a/extra/gnuplot/PKGBUILD
+++ b/extra/gnuplot/PKGBUILD
@@ -1,11 +1,11 @@
-# $Id: PKGBUILD 155689 2012-04-04 18:17:55Z ronald $
+# $Id: PKGBUILD 168770 2012-10-15 19:50:22Z ronald $
# Maintainer: Ronald van Haren <ronald.archlinux.org>
# Contributor: damir <damir@archlinux.org>
# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
pkgname=gnuplot
-pkgver=4.6.0
-pkgrel=3
+pkgver=4.6.1
+pkgrel=1
pkgdesc="Plotting package which outputs to X11, PostScript, PNG, GIF, and others"
arch=('i686' 'x86_64')
url="http://www.gnuplot.info"
@@ -14,7 +14,7 @@ depends=('readline' 'gd' 'wxgtk' 'cairo' 'libjpeg' 'lua')
makedepends=('texinfo' 'emacs' 'texlive-core' 'texlive-latexextra')
install=gnuplot.install
source=("http://downloads.sourceforge.net/sourceforge/$pkgname/$pkgname-$pkgver.tar.gz")
-sha1sums=('9a43ae13546d97d4b174533ddac31a14e0edc9b2')
+sha1sums=('1ea21a628223159b0297ae65fe8293afd5aab3c0')
build() {
cd $srcdir/$pkgname-$pkgver
diff --git a/extra/miro/PKGBUILD b/extra/miro/PKGBUILD
index 73d430778..4972e01e9 100644
--- a/extra/miro/PKGBUILD
+++ b/extra/miro/PKGBUILD
@@ -1,8 +1,8 @@
-# $Id: PKGBUILD 164751 2012-08-04 17:46:43Z ronald $
+# $Id: PKGBUILD 168768 2012-10-15 19:27:04Z ronald $
# Maintainer: Ronald van Haren <ronald.archlinux.org>
pkgname=miro
-pkgver=5.0.2
+pkgver=5.0.4
pkgrel=1
pkgdesc="The free and open source internet TV platform"
arch=('i686' 'x86_64')
@@ -18,7 +18,7 @@ makedepends=('pkg-config' 'boost')
install=miro.install
source=("http://ftp.osuosl.org/pub/pculture.org/${pkgname}/src/${pkgname}-${pkgver}.tar.gz"
'ffmpeg.patch')
-sha1sums=('67babcf76cc08b72b8f55d425b1372ae0a979805'
+sha1sums=('1144f98149ff07208b994a7cedb45a4beaaa451f'
'ce0f42be2a0a3ac99f07b5abfabf0975928c841c')
build() {
diff --git a/extra/perl-sdl/PKGBUILD b/extra/perl-sdl/PKGBUILD
index 0a71a319c..d8273a34e 100644
--- a/extra/perl-sdl/PKGBUILD
+++ b/extra/perl-sdl/PKGBUILD
@@ -1,17 +1,17 @@
-# $Id: PKGBUILD 165864 2012-09-01 20:41:29Z heftig $
+# $Id: PKGBUILD 168746 2012-10-15 12:11:10Z heftig $
# Maintainer: Jan Alexander Steffens (heftig) <jan.steffens@gmail.com>
# Contributor: Allan McRae <allan@archlinux.org>
# Contributor: Sarah Hay <sarahhay@mb.sympatico.ca>
pkgname=perl-sdl
pkgver=2.540
-pkgrel=2
+pkgrel=3
pkgdesc="Simple DirectMedia Layer for Perl"
arch=(i686 x86_64)
license=(LGPL)
url="http://sdl.perl.org"
depends=(perl-alien-sdl perl-tie-simple
- sdl_net sdl_ttf sdl_image sdl_mixer sdl_gfx sdl_pango mesa smpeg)
+ sdl_net sdl_ttf sdl_image sdl_mixer sdl_gfx sdl_pango smpeg)
makedepends=('perl-module-build>=0.40')
options=('!emptydirs')
replaces=(sdl_perl)
diff --git a/extra/qrencode/PKGBUILD b/extra/qrencode/PKGBUILD
index 7caabccb0..fa809653c 100644
--- a/extra/qrencode/PKGBUILD
+++ b/extra/qrencode/PKGBUILD
@@ -1,9 +1,9 @@
-# $Id: PKGBUILD 156492 2012-04-19 15:59:03Z bluewind $
+# $Id: PKGBUILD 168742 2012-10-15 07:00:19Z bluewind $
# Maintainer: Florian Pritz< flo@xinu.at>
# Contributor: Dany Martineau <dany.luc.martineau@gmail.com>
pkgname=qrencode
-pkgver=3.3.1
+pkgver=3.4.0
pkgrel=1
pkgdesc="C library for encoding data in a QR Code symbol."
arch=(i686 x86_64)
@@ -13,7 +13,7 @@ url="http://megaui.net/fukuchi/works/qrencode/index.en.html"
license=('GPL')
options=(!libtool)
source=(http://megaui.net/fukuchi/works/${pkgname}/${pkgname}-${pkgver}.tar.bz2)
-md5sums=('14920ba9d0515bddcaebfbd728229c5d')
+md5sums=('5af7879ab5b300663f2076c287c09030')
build() {
cd "${srcdir}/$pkgname-$pkgver"
diff --git a/extra/xfce4-xkb-plugin/PKGBUILD b/extra/xfce4-xkb-plugin/PKGBUILD
index ee0f53873..1ed492de2 100644
--- a/extra/xfce4-xkb-plugin/PKGBUILD
+++ b/extra/xfce4-xkb-plugin/PKGBUILD
@@ -1,34 +1,46 @@
-# $Id: PKGBUILD 157903 2012-04-30 04:21:40Z foutrelis $
-# Maintainer: AndyRTR <andyrtr@archlinux.org>
+# $Id: PKGBUILD 168753 2012-10-15 14:42:49Z foutrelis $
+# Maintainer: Evangelos Foutras <evangelos@foutrelis.com>
+# Contributor: AndyRTR <andyrtr@archlinux.org>
# Contributor: Tobias Kieslich <tobias (at) archlinux.org>
pkgname=xfce4-xkb-plugin
pkgver=0.5.4.3
-pkgrel=2
+pkgrel=3
pkgdesc="Plugin to switch keyboard layouts for the Xfce4 panel"
arch=('i686' 'x86_64')
-license=('custom')
url="http://goodies.xfce.org/projects/panel-plugins/xfce4-xkb-plugin"
+license=('custom')
groups=('xfce4-goodies')
-depends=('xfce4-panel' 'libxklavier>=5.0' 'librsvg')
+depends=('xfce4-panel' 'libxklavier' 'librsvg')
makedepends=('intltool')
options=('!libtool')
-source=(http://archive.xfce.org/src/panel-plugins/${pkgname}/${pkgver%.*.*}/${pkgname}-${pkgver}.tar.bz2)
-sha1sums=('4dc42f96dc16a3bd78f86454ea3a931464e18497')
+source=(http://archive.xfce.org/src/panel-plugins/$pkgname/0.5/$pkgname-$pkgver.tar.bz2
+ xfce4-xkb-plugin-0.5.4.3-2-fix-memory-corruption.patch)
+sha256sums=('ca4801bb2edfe04eeceb71879b3cf79a0674e8311c39117efdb9d3521307396d'
+ 'f5e6e5964df897045ed8c3443f632033689409459acdc54c0351264edc11b4ce')
build() {
- cd "${srcdir}/${pkgname}-${pkgver}"
- ./configure --prefix=/usr \
- --sysconfdir=/etc \
- --libexecdir=/usr/lib \
- --localstatedir=/var \
- --disable-static \
- --disable-debug
+ cd "$srcdir/$pkgname-$pkgver"
+
+ # https://bugs.archlinux.org/task/31880
+ patch -Np1 -i "$srcdir/xfce4-xkb-plugin-0.5.4.3-2-fix-memory-corruption.patch"
+
+ ./configure \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --libexecdir=/usr/lib \
+ --localstatedir=/var \
+ --disable-static \
+ --disable-debug
make
}
package() {
- cd "${srcdir}/${pkgname}-${pkgver}"
- make DESTDIR="${pkgdir}" install
- install -Dm644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/COPYING"
+ cd "$srcdir/$pkgname-$pkgver"
+
+ make DESTDIR="$pkgdir" install
+
+ install -Dm644 COPYING "$pkgdir/usr/share/licenses/$pkgname/COPYING"
}
+
+# vim:set ts=2 sw=2 et:
diff --git a/extra/xfce4-xkb-plugin/xfce4-xkb-plugin-0.5.4.3-2-fix-memory-corruption.patch b/extra/xfce4-xkb-plugin/xfce4-xkb-plugin-0.5.4.3-2-fix-memory-corruption.patch
new file mode 100644
index 000000000..16f684b12
--- /dev/null
+++ b/extra/xfce4-xkb-plugin/xfce4-xkb-plugin-0.5.4.3-2-fix-memory-corruption.patch
@@ -0,0 +1,59 @@
+From ac73bc9de624d322b318c2eda0ace7f0bee97a64 Mon Sep 17 00:00:00 2001
+From: Igor Slepchin <igor.slepchin@gmail.com>
+Date: Thu, 19 Jul 2012 05:59:40 +0000
+Subject: Fix memory corruption.
+
+g_free(c) in the original code was freeing memory at the pointer
+that was incremented a few times since the allocation.
+
+This is similar to ubuntu bug #899290 and fedora bug 589898.
+---
+diff --git a/panel-plugin/xkb-util.c b/panel-plugin/xkb-util.c
+index d0d0230..324928f 100644
+--- a/panel-plugin/xkb-util.c
++++ b/panel-plugin/xkb-util.c
+@@ -66,11 +66,10 @@ xkb_util_get_layout_string (const gchar *group_name, const gchar *variant)
+ gchar*
+ xkb_util_normalize_group_name (const gchar* group_name)
+ {
+- gchar *c;
++ const gchar *c;
+ gchar *result;
+ gint cut_length;
+ gint index_of_na = -1;
+- gint index_tmp = -1;
+
+ if (!group_name)
+ return NULL;
+@@ -78,27 +77,19 @@ xkb_util_normalize_group_name (const gchar* group_name)
+ if (strlen (group_name) <= 3)
+ return g_strdup (group_name);
+
+- c = g_strdup (group_name);
+-
+- while (*c)
++ for (c = group_name; *c; c++)
+ {
+- index_tmp++;
+-
+ if (!((*c >= 'a' && *c <= 'z') || (*c >= 'A' && *c <= 'Z')))
+ {
+- index_of_na = index_tmp;
++ index_of_na = group_name - c;
+ break;
+ }
+-
+- c++;
+ }
+
+ cut_length = (index_of_na != -1 && index_of_na <= 3) ? index_of_na : 3;
+
+ result = g_strndup (group_name, cut_length);
+
+- g_free (c);
+-
+ return result;
+ }
+
+--
+cgit v0.9.0.3
diff --git a/libre/linux-libre-kmod-alx/PKGBUILD b/libre/linux-libre-kmod-alx/PKGBUILD
new file mode 100644
index 000000000..fc86511e9
--- /dev/null
+++ b/libre/linux-libre-kmod-alx/PKGBUILD
@@ -0,0 +1,36 @@
+# Maintainer: André Silva <emulatorman@lavabit.com>
+
+_kernver=3.6.2
+pkgname=('linux-libre-kmod-alx')
+pkgver=20121003
+pkgrel=1
+pkgdesc='Atheros alx ethernet device driver for linux-libre kernel'
+arch=('i686' 'x86_64')
+url='http://linuxwireless.org/'
+license=('GPL2')
+depends=("linux-libre=$_kernver")
+makedepends=("linux-libre-headers=$_kernver")
+install=linux-libre-kmod-alx.install
+source=(http://linuxwireless.org/download/compat-wireless-2.6/compat-wireless-2012-10-03-pc.tar.bz2)
+
+md5sums=('7d541af2ae06eeaaadaba5b4fbcbfb13')
+
+
+build() {
+ # current extramodules version
+ _extraver=extramodules-3.6-LIBRE
+
+ cd ${srcdir}/compat-wireless-2012-10-03-pc
+
+ # replacing to specific linux-libre kernel version
+ sed -i -e 's/lib\/modules\/\$(shell uname -r)/usr\/lib\/modules\/3.6.2-1-LIBRE/' Makefile
+
+ ./scripts/driver-select alx
+ make
+ cd ${srcdir}/compat-wireless-2012-10-03-pc/compat
+ gzip -9 compat.ko
+ install -D -m 0644 compat.ko.gz ${pkgdir}/lib/modules/$_extraver/compat.ko.gz
+ cd ${srcdir}/compat-wireless-2012-10-03-pc/drivers/net/ethernet/atheros/alx
+ gzip -9 alx.ko
+ install -D -m 0644 alx.ko.gz ${pkgdir}/lib/modules/$_extraver/alx.ko.gz
+}
diff --git a/libre/linux-libre-kmod-alx/linux-libre-kmod-alx.install b/libre/linux-libre-kmod-alx/linux-libre-kmod-alx.install
new file mode 100644
index 000000000..aad4270cd
--- /dev/null
+++ b/libre/linux-libre-kmod-alx/linux-libre-kmod-alx.install
@@ -0,0 +1,33 @@
+generic() {
+ echo " > Running depmod now..."
+ depmod -a
+}
+
+unload() {
+ lsmod | grep alx > /dev/null
+ if [ "$?" = "0" ]; then
+ rmmod alx
+ fi
+}
+
+post_install() {
+ generic
+ echo " > Reloading alx module..."
+ echo " Please note that you may REBOOT your system to get it works!"
+ unload
+ sleep 0.5
+ modprobe alx
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ generic
+ echo " > Unloading memory resident module..."
+ unload
+ rmmod compat
+ echo " Module unloaded!."
+}
+
diff --git a/libre/linux-libre-lts-kmod-alx/PKGBUILD b/libre/linux-libre-lts-kmod-alx/PKGBUILD
new file mode 100644
index 000000000..646b3658a
--- /dev/null
+++ b/libre/linux-libre-lts-kmod-alx/PKGBUILD
@@ -0,0 +1,36 @@
+# Maintainer: André Silva <emulatorman@lavabit.com>
+
+_kernver=3.0.46
+pkgname=('linux-libre-lts-kmod-alx')
+pkgver=20121003
+pkgrel=1
+pkgdesc='Atheros alx ethernet device driver for linux-libre-lts kernel'
+arch=('i686' 'x86_64')
+url='http://linuxwireless.org/'
+license=('GPL2')
+depends=("linux-libre-lts=$_kernver")
+makedepends=("linux-libre-lts-headers=$_kernver")
+install=linux-libre-lts-kmod-alx.install
+source=(http://linuxwireless.org/download/compat-wireless-2.6/compat-wireless-2012-10-03-pc.tar.bz2)
+
+md5sums=('7d541af2ae06eeaaadaba5b4fbcbfb13')
+
+
+build() {
+ # current extramodules version
+ _extraver=extramodules-3.0-LIBRE-LTS
+
+ cd ${srcdir}/compat-wireless-2012-10-03-pc
+
+ # replacing to specific linux-libre-lts kernel version
+ sed -i -e 's/lib\/modules\/\$(shell uname -r)/usr\/lib\/modules\/3.0.46-1-LIBRE-LTS/' Makefile
+
+ ./scripts/driver-select alx
+ make
+ cd ${srcdir}/compat-wireless-2012-10-03-pc/compat
+ gzip -9 compat.ko
+ install -D -m 0644 compat.ko.gz ${pkgdir}/lib/modules/$_extraver/compat.ko.gz
+ cd ${srcdir}/compat-wireless-2012-10-03-pc/drivers/net/ethernet/atheros/alx
+ gzip -9 alx.ko
+ install -D -m 0644 alx.ko.gz ${pkgdir}/lib/modules/$_extraver/alx.ko.gz
+}
diff --git a/libre/linux-libre-lts-kmod-alx/linux-libre-lts-kmod-alx.install b/libre/linux-libre-lts-kmod-alx/linux-libre-lts-kmod-alx.install
new file mode 100644
index 000000000..aad4270cd
--- /dev/null
+++ b/libre/linux-libre-lts-kmod-alx/linux-libre-lts-kmod-alx.install
@@ -0,0 +1,33 @@
+generic() {
+ echo " > Running depmod now..."
+ depmod -a
+}
+
+unload() {
+ lsmod | grep alx > /dev/null
+ if [ "$?" = "0" ]; then
+ rmmod alx
+ fi
+}
+
+post_install() {
+ generic
+ echo " > Reloading alx module..."
+ echo " Please note that you may REBOOT your system to get it works!"
+ unload
+ sleep 0.5
+ modprobe alx
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ generic
+ echo " > Unloading memory resident module..."
+ unload
+ rmmod compat
+ echo " Module unloaded!."
+}
+
diff --git a/libre/virtualbox-libre/PKGBUILD b/libre/virtualbox-libre/PKGBUILD
index 8bd1c2022..81ba99ec8 100644
--- a/libre/virtualbox-libre/PKGBUILD
+++ b/libre/virtualbox-libre/PKGBUILD
@@ -13,7 +13,7 @@ pkgname=('virtualbox-libre'
'virtualbox-libre-guest-utils'
'virtualbox-libre-guest-source')
pkgver=4.2.0
-pkgrel=3.2
+pkgrel=4
arch=('i686' 'x86_64')
url='http://virtualbox.org'
license=('GPL' 'custom')
@@ -38,6 +38,7 @@ makedepends=('alsa-lib'
'libxtst'
'linux-libre-headers'
'mesa'
+ 'glu'
'python2'
'qt'
'sdl-libre'
@@ -264,7 +265,7 @@ package_virtualbox-libre-sdk() {
}
package_virtualbox-libre-host-source() {
- pkgdesc='VirtualBox Host kernel libre modules source'
+ pkgdesc='VirtualBox Host kernel libre modules source (DKMS)'
depends=('dkms' 'gcc' 'make')
provides=("virtualbox-host-source=$pkgver" 'virtualbox-libre-host-modules')
replaces=('virtualbox-host-source' 'virtualbox-source' 'virtualbox-libre-source')
@@ -280,7 +281,7 @@ package_virtualbox-libre-host-source() {
}
package_virtualbox-libre-guest-source() {
- pkgdesc='VirtualBox Guest kernel libre modules source'
+ pkgdesc='VirtualBox Guest kernel libre modules source (DKMS)'
depends=('dkms' 'gcc' 'make')
provides=("virtualbox-guest-source=$pkgver" 'virtualbox-libre-guest-modules')
replaces=('virtualbox-guest-source' 'virtualbox-archlinux-source' 'virtualbox-parabola-source')
@@ -314,7 +315,7 @@ package_virtualbox-libre-guest-utils(){
"$pkgdir"/usr/bin/VBoxClient-all
install -m755 -D "$srcdir"/VirtualBox-$pkgver/src/VBox/Additions/x11/Installer/vboxclient.desktop \
"$pkgdir"/etc/xdg/autostart/vboxclient.desktop
- install -D vboxvideo_drv_112.so \
+ install -D vboxvideo_drv_113.so \
"$pkgdir/usr/lib/xorg/modules/drivers/vboxvideo.so"
install -d "$pkgdir/usr/lib/xorg/modules/dri"
install -m755 VBoxOGL*.so "$pkgdir/usr/lib"
diff --git a/staging/bzr/PKGBUILD b/staging/bzr/PKGBUILD
new file mode 100644
index 000000000..22244baf0
--- /dev/null
+++ b/staging/bzr/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 168772 2012-10-15 21:04:59Z eric $
+# Maintainer :
+# Contributor: Hugo Doria <hugo@archlinux.org>
+
+pkgname=bzr
+pkgver=2.5.1
+pkgrel=2
+pkgdesc="A decentralized revision control system (bazaar)"
+arch=('i686' 'x86_64')
+url="http://bazaar.canonical.com/en/"
+license=('GPL')
+depends=('python2')
+optdepends=('python2-paramiko: for sftp support')
+source=("http://launchpad.net/${pkgname}/${pkgver%.*}/${pkgver}/+download/${pkgname}-${pkgver}.tar.gz"{,.sig})
+md5sums=('ac5079858364a046071000d5cdccb67b'
+ 'c83dd08dd2c3e27edbab873500d7d6eb')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ sed -i 's|man/man1|share/man/man1|' setup.py
+ sed -i 's|/usr/bin/env python|/usr/bin/env python2|' \
+ bzrlib/{plugins/bash_completion/bashcomp.py,tests/ssl_certs/create_ssls.py,patiencediff.py,_patiencediff_py.py}
+ python2 setup.py build
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ python2 setup.py install --prefix=/usr --root="${pkgdir}" --optimize=1
+
+ # bash-completion
+ install -D -m644 contrib/bash/bzr \
+ "${pkgdir}/usr/share/bash-completion/completions/bzr"
+}
diff --git a/staging/gnome-python-desktop/PKGBUILD b/staging/gnome-python-desktop/PKGBUILD
new file mode 100644
index 000000000..4788632d1
--- /dev/null
+++ b/staging/gnome-python-desktop/PKGBUILD
@@ -0,0 +1,107 @@
+# $Id: PKGBUILD 168784 2012-10-16 00:01:27Z allan $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Arjan Timmerman <arjan@soulfly.nl>
+# Contributor: Wael Nasreddine <gandalf@siemens-mobiles.org>
+
+pkgbase=gnome-python-desktop
+pkgname=('gnome-python-desktop' 'python2-gnomedesktop' 'python2-gnomekeyring' 'python2-gtop' 'python2-metacity' 'python2-rsvg' 'python2-totem-plparser' 'python2-wnck')
+pkgver=2.32.0
+pkgrel=11
+arch=(i686 x86_64)
+license=('GPL' 'LGPL')
+options=('!libtool')
+makedepends=('intltool' 'pkg-config' 'gnome-python' 'libgtop' 'totem-plparser' 'gnome-desktop2' 'metacity' 'librsvg' 'libwnck')
+url="http://www.gnome.org"
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgbase}/2.32/${pkgbase}-${pkgver}.tar.bz2
+ gnome-python-desktop-2.32.0-metacity-build.patch)
+sha256sums=('09dbd580bf3b0ef60f91b090eafe6d08ddcc50a609e2b425a7f8eca46d4e0ee9'
+ 'f012f9bd2f9baa527f07ad2f6e312c875bb6f2d3204270a1b053278a3a0c86b3')
+
+build() {
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+ patch -p1 -i ../gnome-python-desktop-2.32.0-metacity-build.patch
+ PYTHON=/usr/bin/python2 ./configure --prefix=/usr --enable-metacity
+ make
+}
+
+package_gnome-python-desktop() {
+ depends=('python2-gnomedesktop' 'python2-gnomekeyring' 'python2-gtop' 'python2-metacity' 'python2-rsvg' 'python2-totem-plparser' 'python2-wnck' 'gnome2-python')
+ pkgdesc="Python bindings for the GNOME desktop environment"
+
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+ make install-pkgconfigDATA DESTDIR="${pkgdir}"
+}
+
+package_python2-gnomedesktop() {
+ depends=('pygtk' 'gnome-desktop2' 'python2-gnomevfs')
+ pkgdesc="Python bindings for gnome-desktop 2.x"
+ conflicts=('python-gnomedesktop<=2.32.0-10')
+ replaces=('python-gnomedesktop<=2.32.0-10')
+
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+ make -C gnomedesktop install DESTDIR="${pkgdir}"
+}
+
+package_python2-gnomekeyring() {
+ depends=('pygtk' 'libgnome-keyring')
+ pkgdesc="Python bindings for libgnome-keyring"
+ conflicts=('python-gnomekeyring<=2.32.0-10')
+ replaces=('python-gnomekeyring<=2.32.0-10')
+
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+ make -C gnomekeyring install DESTDIR="${pkgdir}"
+}
+
+package_python2-gtop() {
+ depends=('pygtk' 'libgtop')
+ pkgdesc="Python bindings for libgtop"
+ conflicts=('python-gtop<=2.32.0-10')
+ replaces=('python-gtop<=2.32.0-10')
+
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+ make -C gtop install DESTDIR="${pkgdir}"
+}
+
+package_python2-metacity() {
+ depends=('pygtk' 'metacity')
+ pkgdesc="Python bindings for metacity"
+ conflicts=('python-metacity<=2.32.0-10')
+ replaces=('python-metacity<=2.32.0-10')
+
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+ make -C metacity install DESTDIR="${pkgdir}"
+}
+
+package_python2-rsvg() {
+ depends=('pygtk' 'librsvg')
+ pkgdesc="Python bindings for librsvg"
+ conflicts=('python-rsvg<=2.32.0-10')
+ replaces=('python-rsvg<=2.32.0-10')
+
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+ make -C rsvg install DESTDIR="${pkgdir}"
+ install -m755 -d "${pkgdir}/usr/share/pygtk/2.0/defs"
+ install -m644 rsvg/rsvg.defs "${pkgdir}/usr/share/pygtk/2.0/defs/"
+}
+
+package_python2-totem-plparser() {
+ depends=('pygtk' 'totem-plparser' 'python2-gnomevfs')
+ pkgdesc="Python bindings for totem-plparser"
+ conflicts=('python-totem-plparser<=2.32.0-10')
+ replaces=('python-totem-plparser<=2.32.0-10')
+
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+ make -C totem install DESTDIR="${pkgdir}"
+ install -m755 -d "${pkgdir}/usr/share/pygtk/2.0/defs"
+ install -m644 totem/plparser.defs "${pkgdir}/usr/share/pygtk/2.0/defs/"
+}
+
+package_python2-wnck() {
+ depends=('pygtk' 'libwnck')
+ pkgdesc="Python bindings for libwnck"
+ conflicts=('python-wnck<=2.32.0-10')
+ replaces=('python-wnck<=2.32.0-10')
+
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+ make -C wnck install DESTDIR="${pkgdir}"
+}
diff --git a/staging/gnome-python-desktop/gnome-python-desktop-2.32.0-metacity-build.patch b/staging/gnome-python-desktop/gnome-python-desktop-2.32.0-metacity-build.patch
new file mode 100644
index 000000000..5054dd2bd
--- /dev/null
+++ b/staging/gnome-python-desktop/gnome-python-desktop-2.32.0-metacity-build.patch
@@ -0,0 +1,42 @@
+From: Daniel Drake <dsd@laptop.org>
+
+Fix build against metacity-2.34.2. The port to GSettings
+removed these constants from the codebase.
+
+Index: gnome-python-desktop-2.32.0/metacity/metacity.defs
+===================================================================
+--- gnome-python-desktop-2.32.0.orig/metacity/metacity.defs
++++ gnome-python-desktop-2.32.0/metacity/metacity.defs
+@@ -120,32 +120,6 @@
+ )
+ )
+
+-(define-enum FocusMode
+- (in-module "Meta")
+- (c-name "MetaFocusMode")
+-; (gtype-id "META_TYPE_FOCUS_MODE")
+- (values
+- '("click" "META_FOCUS_MODE_CLICK")
+- '("sloppy" "META_FOCUS_MODE_SLOPPY")
+- '("mouse" "META_FOCUS_MODE_MOUSE")
+- )
+-)
+-
+-(define-enum ActionTitlebar
+- (in-module "Meta")
+- (c-name "MetaActionTitlebar")
+-; (gtype-id "META_TYPE_ACTION_TITLEBAR")
+- (values
+- '("toggle-shade" "META_ACTION_TITLEBAR_TOGGLE_SHADE")
+- '("toggle-maximize" "META_ACTION_TITLEBAR_TOGGLE_MAXIMIZE")
+- '("minimize" "META_ACTION_TITLEBAR_MINIMIZE")
+- '("none" "META_ACTION_TITLEBAR_NONE")
+- '("lower" "META_ACTION_TITLEBAR_LOWER")
+- '("menu" "META_ACTION_TITLEBAR_MENU")
+- '("last" "META_ACTION_TITLEBAR_LAST")
+- )
+-)
+-
+ (define-enum FrameType
+ (in-module "Meta")
+ (c-name "MetaFrameType")
diff --git a/staging/miro/PKGBUILD b/staging/miro/PKGBUILD
new file mode 100644
index 000000000..1b4c5711a
--- /dev/null
+++ b/staging/miro/PKGBUILD
@@ -0,0 +1,49 @@
+# $Id: PKGBUILD 168800 2012-10-16 01:40:22Z eric $
+# Maintainer: Ronald van Haren <ronald.archlinux.org>
+
+pkgname=miro
+pkgver=5.0.4
+pkgrel=2
+pkgdesc="The free and open source internet TV platform"
+arch=('i686' 'x86_64')
+url="http://www.getmiro.com"
+license=('GPL2')
+depends=('python2-dbus' 'pyrex' 'pygtk' 'gstreamer0.10' 'python2-gconf'
+ 'python2-pysqlite' 'pywebkitgtk' 'shared-mime-info'
+ 'desktop-file-utils' 'gstreamer0.10' 'hicolor-icon-theme'
+ 'gstreamer0.10-python' 'python2-notify' 'libtorrent-rasterbar'
+ 'gstreamer0.10-base-plugins' 'gstreamer0.10-good-plugins' 'python2-pycurl'
+ 'gstreamer0.10-ffmpeg' 'ffmpeg' 'mutagen' 'xdg-utils')
+makedepends=('pkg-config' 'boost')
+install=miro.install
+source=("http://ftp.osuosl.org/pub/pculture.org/${pkgname}/src/${pkgname}-${pkgver}.tar.gz"
+ 'ffmpeg.patch')
+sha1sums=('1144f98149ff07208b994a7cedb45a4beaaa451f'
+ 'ce0f42be2a0a3ac99f07b5abfabf0975928c841c')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ cd linux
+ patch -p2 -i "${srcdir}"/ffmpeg.patch
+
+ python2 setup.py install --root="${pkgdir}"
+
+ # fix miro startup script so --debug works with python2
+ sed -i "s|which python|which python2|" "${pkgdir}/usr/bin/miro"
+ sed -i "s|./miro.real|/usr/bin/miro.real|" "${pkgdir}/usr/bin/miro"
+
+ # fix python scripts for python2
+ sed -i "s|/usr/bin/env python|/usr/bin/env python2|" "${pkgdir}"/usr/share/miro/resources/searchengines/update-icons.py
+ for i in usr/share/miro/resources/testdata/echonest-replies/generate.py usr/share/miro/resources/searchengines/update-icons.py \
+ usr/share/miro/resources/testdata/7digital-replies/generate.py; do
+ sed -i "s|/usr/bin/python|/usr/bin/python2|" "${pkgdir}"/${i}
+ done
+
+ # Fakeroot segfaults on these; remove
+ if [ ${CARCH} == "i686" ]; then
+ rm -f "${pkgdir}"/usr/bin/codegen.Linux-x86_64 || true
+ else
+ rm -f "${pkgdir}"/usr/bin/codegen.Linux-i686 || true
+ fi
+}
diff --git a/staging/miro/ffmpeg.patch b/staging/miro/ffmpeg.patch
new file mode 100644
index 000000000..99c14107d
--- /dev/null
+++ b/staging/miro/ffmpeg.patch
@@ -0,0 +1,63 @@
+--- miro-5.0.1/linux/miro-segmenter.c~ 2012-07-06 14:33:24.618082171 +0000
++++ miro-5.0.1/linux/miro-segmenter.c 2012-07-06 15:10:19.564146117 +0000
+@@ -156,7 +156,7 @@
+ exit(1);
+ }
+
+- ret = av_open_input_file(&ic, input, ifmt, 0, NULL);
++ ret = avformat_open_input(&ic, input, ifmt, 0);
+ if (ret != 0) {
+ fprintf(stderr, "Could not open input file, make sure it is an mpegts file: %d\n", ret);
+ exit(1);
+@@ -215,12 +215,7 @@
+ }
+ }
+
+- if (av_set_parameters(oc, NULL) < 0) {
+- fprintf(stderr, "Invalid output format parameters\n");
+- exit(1);
+- }
+-
+- dump_format(oc, 0, input, 1);
++ av_dump_format(oc, 0, input, 1);
+
+ if (video_st) {
+ codec = avcodec_find_decoder(video_st->codec->codec_id);
+@@ -233,12 +228,12 @@
+ }
+ }
+
+- if (url_fopen(&oc->pb, output_filename, URL_WRONLY) < 0) {
++ if (avio_open(&oc->pb, output_filename, AVIO_FLAG_WRITE) < 0) {
+ fprintf(stderr, "Could not open '%s'\n", output_filename);
+ exit(1);
+ }
+
+- if (av_write_header(oc)) {
++ if (avformat_write_header(oc, NULL)) {
+ fprintf(stderr, "Could not write mpegts header to first output file\n");
+
+ exit(1);
+@@ -274,10 +269,10 @@
+ }
+
+ if (segment_time - prev_segment_time >= segment_duration) {
+- put_flush_packet(oc->pb);
+- url_fclose(oc->pb);
++ avio_flush(oc->pb);
++ avio_close(oc->pb);
+
+- if (url_fopen(&oc->pb, output_filename, URL_WRONLY) < 0) {
++ if (avio_open(&oc->pb, output_filename, AVIO_FLAG_WRITE) < 0) {
+ fprintf(stderr, "Could not open '%s'\n", output_filename);
+ break;
+ }
+@@ -307,7 +302,7 @@
+ av_freep(&oc->streams[i]);
+ }
+
+- url_fclose(oc->pb);
++ avio_close(oc->pb);
+ av_free(oc);
+
+ /* End-of-transcode marker. */
diff --git a/staging/miro/miro.install b/staging/miro/miro.install
new file mode 100644
index 000000000..a5ee228aa
--- /dev/null
+++ b/staging/miro/miro.install
@@ -0,0 +1,17 @@
+post_install() {
+ update-desktop-database -q
+ xdg-icon-resource forceupdate --theme hicolor
+ update-mime-database usr/share/mime > /dev/null
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ update-desktop-database -q
+ xdg-icon-resource forceupdate --theme hicolor
+ update-mime-database usr/share/mime > /dev/null
+}
+
+
diff --git a/staging/pygobject/PKGBUILD b/staging/pygobject/PKGBUILD
new file mode 100644
index 000000000..c5b861096
--- /dev/null
+++ b/staging/pygobject/PKGBUILD
@@ -0,0 +1,58 @@
+# $Id: PKGBUILD 168794 2012-10-16 00:45:16Z allan $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+
+pkgbase=pygobject
+pkgname=(python-gobject python2-gobject pygobject-devel)
+pkgver=3.2.2
+pkgrel=2
+arch=('i686' 'x86_64')
+url="https://live.gnome.org/PyGObject"
+license=('LGPL')
+makedepends=('python' 'python2' 'python-cairo' 'python2-cairo' 'gobject-introspection')
+source=(http://ftp.gnome.org/pub/gnome/sources/$pkgbase/${pkgver%.*}/$pkgbase-$pkgver.tar.xz)
+options=('!libtool')
+sha256sums=('4653790baaff0176fd814b88cfb5378c45906a120b25d01be2554f423b726eb0')
+
+build() {
+ cp -a "$pkgbase-$pkgver" python2-build
+ mkdir devel
+
+ (
+ cd python2-build
+ export PYTHON=/usr/bin/python2
+ ./configure --prefix=/usr
+ make
+ )
+
+ (
+ cd "$pkgbase-$pkgver"
+ ./configure --prefix=/usr
+ make
+ )
+}
+
+package_python-gobject() {
+ pkgdesc="Python 3 bindings for GObject"
+ depends=('gobject-introspection' 'python-cairo' "pygobject-devel=$pkgver")
+
+ cd "$pkgbase-$pkgver"
+ make DESTDIR="$pkgdir" install
+ rm -r "$pkgdir"/usr/{include,lib/pkgconfig}
+}
+
+package_python2-gobject() {
+ pkgdesc="Python 2 bindings for GObject"
+ depends=('gobject-introspection' 'python2-cairo' "pygobject-devel=$pkgver")
+
+ cd "python2-build"
+ make DESTDIR="$pkgdir" install
+ mv "$pkgdir"/usr/{include,lib/pkgconfig} "$srcdir/devel"
+}
+
+package_pygobject-devel() {
+ pkgdesc="Development files for the pygobject bindings"
+ cd "devel"
+ mkdir -p "$pkgdir"/usr/{include,lib}
+ mv include "$pkgdir/usr/"
+ mv pkgconfig "$pkgdir/usr/lib/"
+}
diff --git a/staging/pygobject2/PKGBUILD b/staging/pygobject2/PKGBUILD
new file mode 100644
index 000000000..4ba2bfa2a
--- /dev/null
+++ b/staging/pygobject2/PKGBUILD
@@ -0,0 +1,86 @@
+# $Id: PKGBUILD 168792 2012-10-16 00:40:21Z allan $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgbase=pygobject2
+pkgname=(python-gobject2 python2-gobject2 pygobject2-devel)
+pkgver=2.28.6
+pkgrel=7
+arch=('i686' 'x86_64')
+url="http://www.pygtk.org/"
+license=('LGPL')
+makedepends=('python' 'python2')
+source=(http://ftp.gnome.org/pub/gnome/sources/pygobject/${pkgver%.*}/pygobject-${pkgver}.tar.xz
+ python2-fix-type.patch
+ python3-fix-build.patch
+ python3-fix-maketrans.patch)
+options=('!libtool')
+sha256sums=('fb8a1d4f665130a125011659bd347c7339c944232163dbb9a34fd0686577adb8'
+ 'b7b415499ffc0817cf551edf76a3fe47938db2c9f6240046eae681e6ef9b37ea'
+ 'feafd4664f8455edf0bf8407ac45e219bb550df806ce0d601baae951e8c188ca'
+ '4bff9adcea13a824c45d14ec501c927df47d23c22507a2456d8b5ec885924c0a')
+
+build() {
+ cd "${srcdir}"
+ cp -a "pygobject-${pkgver}" python2-build
+ mkdir devel
+
+ (
+ cd python2-build
+ export PYTHON=/usr/bin/python2
+ ./configure --prefix=/usr --disable-introspection
+ make
+ )
+
+ (
+ 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
+ )
+}
+
+package_python-gobject2() {
+ pkgdesc="Python 3 bindings for GObject2"
+ depends=('glib2' 'pygobject2-devel' 'python')
+ replaces=('py3gobject')
+ provides=("py3gobject=$pkgver")
+
+ cd "${srcdir}/pygobject-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+
+ # Delete devel stuff
+ rm -r "$pkgdir"/usr/{bin,include,lib/pkgconfig,share/{gtk-doc,pygobject/{2.0/codegen,xsl}}}
+}
+
+package_python2-gobject2() {
+ pkgdesc="Python 2 bindings for GObject2"
+ depends=('glib2' 'pygobject2-devel' 'python2')
+ replaces=('pygobject')
+ provides=("pygobject=$pkgver")
+
+ cd "${srcdir}/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/"
+}
+
+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/"
+}
diff --git a/staging/pygobject2/python2-fix-type.patch b/staging/pygobject2/python2-fix-type.patch
new file mode 100644
index 000000000..78e7ddfd5
--- /dev/null
+++ b/staging/pygobject2/python2-fix-type.patch
@@ -0,0 +1,50 @@
+From 42d01f060c5d764baa881d13c103d68897163a49 Mon Sep 17 00:00:00 2001
+From: Ryan Lortie <desrt@desrt.ca>
+Date: Mon, 12 Mar 2012 16:44:14 -0400
+Subject: gio-types.defs: change some enums to flags
+
+These flags types were originally incorrectly handled in glib as being
+enums. That bug was fixed, but they're still enums here, leading to
+warnings about the mismatch.
+
+Change them to flags.
+
+https://bugzilla.gnome.org/show_bug.cgi?id=668522
+---
+ gio/gio-types.defs | 6 +++---
+ 1 files changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/gio/gio-types.defs b/gio/gio-types.defs
+index 331e0bc..7eee5c8 100644
+--- a/gio/gio-types.defs
++++ b/gio/gio-types.defs
+@@ -526,7 +526,7 @@
+ )
+ )
+
+-(define-enum MountMountFlags
++(define-flags MountMountFlags
+ (in-module "gio")
+ (c-name "GMountMountFlags")
+ (gtype-id "G_TYPE_MOUNT_MOUNT_FLAGS")
+@@ -545,7 +545,7 @@
+ )
+ )
+
+-(define-enum DriveStartFlags
++(define-flags DriveStartFlags
+ (in-module "gio")
+ (c-name "GDriveStartFlags")
+ (gtype-id "G_TYPE_DRIVE_START_FLAGS")
+@@ -770,7 +770,7 @@
+ )
+ )
+
+-(define-enum SocketMsgFlags
++(define-flags SocketMsgFlags
+ (in-module "gio")
+ (c-name "GSocketMsgFlags")
+ (gtype-id "G_TYPE_SOCKET_MSG_FLAGS")
+--
+1.7.9.1
+
diff --git a/staging/pygobject2/python3-fix-build.patch b/staging/pygobject2/python3-fix-build.patch
new file mode 100644
index 000000000..4cb8cfe57
--- /dev/null
+++ b/staging/pygobject2/python3-fix-build.patch
@@ -0,0 +1,34 @@
+From e2dc4ac346a16b6976b92e84819c7203629beb4a Mon Sep 17 00:00:00 2001
+From: Ignacio Casal Quinteiro <icq@gnome.org>
+Date: Thu, 21 Apr 2011 14:52:20 +0000
+Subject: [python3] fix build. PYcairo_IMPORT doesn't exists anymore
+
+---
+diff --git a/gi/pygi-foreign-cairo.c b/gi/pygi-foreign-cairo.c
+index 81b9865..edf52d7 100644
+--- a/gi/pygi-foreign-cairo.c
++++ b/gi/pygi-foreign-cairo.c
+@@ -30,7 +30,7 @@
+ #include <pycairo/py3cairo.h>
+ #endif
+
+-Pycairo_CAPI_t *Pycairo_CAPI;
++static Pycairo_CAPI_t *Pycairo_CAPI;
+
+ #include "pygi-foreign.h"
+
+@@ -117,7 +117,12 @@ cairo_surface_release (GIBaseInfo *base_info,
+ static PyMethodDef _gi_cairo_functions[] = {0,};
+ PYGLIB_MODULE_START(_gi_cairo, "_gi_cairo")
+ {
++#if PY_VERSION_HEX < 0x03000000
+ Pycairo_IMPORT;
++#else
++ Pycairo_CAPI = (Pycairo_CAPI_t*) PyCObject_Import("cairo", "CAPI");
++#endif
++
+ if (Pycairo_CAPI == NULL)
+ return PYGLIB_MODULE_ERROR_RETURN;
+
+--
+cgit v0.9
diff --git a/staging/pygobject2/python3-fix-maketrans.patch b/staging/pygobject2/python3-fix-maketrans.patch
new file mode 100644
index 000000000..f5bc0e77c
--- /dev/null
+++ b/staging/pygobject2/python3-fix-maketrans.patch
@@ -0,0 +1,36 @@
+From 667bec76ccbc85cc1d54a0e68977dbda241c028c Mon Sep 17 00:00:00 2001
+From: Martin Pitt <martin.pitt@ubuntu.com>
+Date: Wed, 13 Jul 2011 06:42:22 +0000
+Subject: [python3] Fix maketrans import
+
+Python3 moved the maketrans() function from the string module to a str method.
+This unbreaks gi/module.py for Python 3 again.
+---
+diff --git a/gi/module.py b/gi/module.py
+index 70df76c..d56bdaf 100644
+--- a/gi/module.py
++++ b/gi/module.py
+@@ -24,7 +24,11 @@ from __future__ import absolute_import
+
+ import os
+ import gobject
+-import string
++try:
++ maketrans = ''.maketrans
++except AttributeError:
++ # fallback for Python 2
++ from string import maketrans
+
+ import gi
+ from .overrides import registry
+@@ -124,7 +128,7 @@ class IntrospectionModule(object):
+ # Don't use upper() here to avoid locale specific
+ # identifier conversion (e. g. in Turkish 'i'.upper() == 'i')
+ # see https://bugzilla.gnome.org/show_bug.cgi?id=649165
+- ascii_upper_trans = string.maketrans(
++ ascii_upper_trans = maketrans(
+ 'abcdefgjhijklmnopqrstuvwxyz',
+ 'ABCDEFGJHIJKLMNOPQRSTUVWXYZ')
+ for value_info in info.get_values():
+--
+cgit v0.9
diff --git a/staging/pyqt/PKGBUILD b/staging/pyqt/PKGBUILD
index 8fba65343..6f3b1a230 100644
--- a/staging/pyqt/PKGBUILD
+++ b/staging/pyqt/PKGBUILD
@@ -1,4 +1,4 @@
-# $Id: PKGBUILD 167324 2012-10-01 06:53:33Z andrea $
+# $Id: PKGBUILD 168744 2012-10-15 09:20:47Z andrea $
# Maintainer: Andrea Scarpino <andrea@archlinux.org>
# Contributor: Douglas Soares de Andrade <douglas@archlinux.org>
# Contributor: riai <riai@bigfoot.com> Ben <ben@benmazer.net>
@@ -6,13 +6,13 @@
pkgbase=pyqt
pkgname=('pyqt-common' 'pyqt' 'python2-pyqt')
pkgver=4.9.5
-pkgrel=1
+pkgrel=2
arch=('i686' 'x86_64')
url="http://riverbankcomputing.co.uk/software/pyqt/intro"
license=('GPL')
makedepends=('qt' 'python-sip' 'python-dbus' 'python2-sip' 'phonon'
'python2-opengl' 'qt-assistant-compat' 'qtwebkit' 'python2-dbus')
- source=("http://downloads.sourceforge.net/${pkgbase}/PyQt-x11-gpl-${pkgver}.tar.gz")
+source=("http://downloads.sourceforge.net/${pkgbase}/PyQt-x11-gpl-${pkgver}.tar.gz")
md5sums=('e4cdd6619c63655f7510efb4df8462fb')
build() {
@@ -47,7 +47,6 @@ package_pyqt-common(){
cd PyQt-x11-gpl-${pkgver}
make -C pyrcc DESTDIR="${pkgdir}" install
make -C pylupdate DESTDIR="${pkgdir}" install
- make -C designer INSTALL_ROOT="${pkgdir}" install
install -Dm644 PyQt4.api "${pkgdir}"/usr/share/qt/qsci/api/python/PyQt4.api
}
@@ -65,7 +64,6 @@ package_pyqt(){
# Provided by pyqt-common
rm "${pkgdir}"/usr/bin/{pylupdate4,pyrcc4}
- rm "${pkgdir}"/usr/lib/qt/plugins/designer/libpythonplugin.so
rm "${pkgdir}"/usr/share/qt/qsci/api/python/PyQt4.api
}
@@ -85,7 +83,7 @@ package_python2-pyqt(){
# Fix conflicts with pyqt
mv "${pkgdir}"/usr/bin/{,python2-}pyuic4
- # Provided by pyqt-common
+ # Provided by pyqt
rm "${pkgdir}"/usr/bin/{pylupdate4,pyrcc4}
rm "${pkgdir}"/usr/lib/qt/plugins/designer/libpythonplugin.so
rm "${pkgdir}"/usr/share/qt/qsci/api/python/PyQt4.api
diff --git a/staging/python-pyspi/PKGBUILD b/staging/python-pyspi/PKGBUILD
new file mode 100644
index 000000000..e230fd562
--- /dev/null
+++ b/staging/python-pyspi/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 168788 2012-10-16 00:26:49Z allan $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: William Rea <sillywilly@gmail.com>
+
+pkgbase=python-pyspi
+pkgname=python2-pyspi
+pkgver=0.6.1
+pkgrel=1
+pkgdesc="Python AT-SPI bindings"
+arch=('i686' 'x86_64')
+url="http://people.redhat.com/zcerza/dogtail"
+license=('LGPL')
+depends=('python2' 'at-spi')
+makedepends=('pyrex')
+conflicts=('python-pyspi<=0.6.1-5')
+conflicts=('python-pyspi<=0.6.1-5')
+source=("http://dlc.sun.com/osol/jds/downloads/sources/pyspi-${pkgver}.tar.gz"
+ 'pyspi-build.patch')
+md5sums=('def336bd566ea688a06ec03db7ccf1f4'
+ '721f74cbae653a258c00b83acf7dd1da')
+
+build() {
+ cd ${srcdir}/pyspi-${pkgver}
+ patch -Np1 -i ${srcdir}/pyspi-build.patch
+ # Pyrex tells us to use __cinit__ instead of __new__
+ sed -i 's/__new__/__cinit__/' pyspi.pyx
+}
+
+package_python2-pyspi() {
+ cd ${srcdir}/pyspi-${pkgver}
+ python2 setup.py install --root=${pkgdir}
+}
diff --git a/staging/python-pyspi/pyspi-build.patch b/staging/python-pyspi/pyspi-build.patch
new file mode 100644
index 000000000..3d12c5ed5
--- /dev/null
+++ b/staging/python-pyspi/pyspi-build.patch
@@ -0,0 +1,1693 @@
+diff -Naur pyspi-0.6.1-old/cspi.pxd pyspi-0.6.1/cspi.pxd
+--- pyspi-0.6.1-old/cspi.pxd 2006-08-04 06:27:10.000000000 +1000
++++ pyspi-0.6.1/cspi.pxd 2009-05-09 15:24:31.000000000 +1000
+@@ -14,9 +14,7 @@
+
+ ctypedef struct AccessibleTextRange
+ ctypedef struct AccessibleKeySet
+- ctypedef enum SPIBoolean:
+- FALSE = 0,
+- TRUE
++ ctypedef unsigned int SPIBoolean
+
+ ctypedef struct AccessibleEvent:
+ char *type
+diff -Naur pyspi-0.6.1-old/pyspi.pyx pyspi-0.6.1/pyspi.pyx
+--- pyspi-0.6.1-old/pyspi.pyx 2006-10-03 02:46:41.000000000 +1000
++++ pyspi-0.6.1/pyspi.pyx 2009-05-09 15:24:31.000000000 +1000
+@@ -25,9 +25,15 @@
+ cdef class Event (EventBase)
+ cdef class DeviceEvent
+
+-ctypedef enum bool:
++ctypedef unsigned int bool
++
++import __builtin__
++try:
++ False = __builtin__.False
++ True = __builtin__.True
++except AttributeError:
+ False = 0
+- True
++ True = 1
+
+ # SPIExceptionCode values:
+ (SPI_EXCEPTION_UNSPECIFIED, SPI_EXCEPTION_DISCONNECT, SPI_EXCEPTION_NO_IMPL, SPI_EXCEPTION_IO, SPI_EXCEPTION_BAD_DATA)=range(5)
+@@ -731,7 +737,7 @@
+ Wrapper around the low-level cspi.AccessibleComponent_ functions,
+ giving an OO-style API.
+ """
+- def getExtents (self, type=0):
++ def getExtents (self, key_type=0):
+ """
+ Wraps cspi.AccessibleComponent_getExtents, returning an
+ (x,y,w,h) tuple.
+@@ -741,7 +747,7 @@
+ cspi.AccessibleComponent_getExtents (self.__item, &x, &y, &w, &h, type)
+ return (x, y, w, h)
+
+- def getPosition (self, type = 0):
++ def getPosition (self, key_type = 0):
+ """
+ Wraps cspi.AccessibleComponent_getPosition, returning an
+ (x,y) tuple.
+@@ -991,11 +997,11 @@
+ Wraps cspi.AccessibleHyperlink_getObject
+ """
+ self.__checkSelf ()
+- cdef Accessible object
+- object = Accessible ()
+- object.__setItem (cspi.AccessibleHyperlink_getObject (self.__item, i))
+- object.__checkSelf ()
+- return object
++ cdef Accessible obj
++ obj = Accessible ()
++ obj.__setItem (cspi.AccessibleHyperlink_getObject (self.__item, i))
++ obj.__checkSelf ()
++ return obj
+
+ def getURI (self, i):
+ """
+@@ -1032,7 +1038,7 @@
+ cspi.AccessibleImage_getImageSize(self.__item, &w, &h);
+ return [w, h]
+
+- def getImagePosition (self, type=0):
++ def getImagePosition (self, key_type=0):
+ """
+ Wraps cspi.AccessibleImage_getImagePosition, returning a (x,y)
+ pair
+@@ -1042,7 +1048,7 @@
+ cspi.AccessibleImage_getImagePosition(self.__item, &x, &y, type)
+ return [x, y]
+
+- def getImageExtents (self, type=0):
++ def getImageExtents (self, key_type=0):
+ """
+ Wraps cspi.AccessibleImage_getImageExtents, returning a
+ (x,y,w,h) tuple
+@@ -1551,7 +1557,7 @@
+ cdef cspi.AccessibleDeviceListener *__item
+ cdef public object modMasks
+
+- def __init__ (self, callback, eventMask = cspi.SPI_KEY_PRESSED | cspi.SPI_KEY_RELEASED):
++ def __init__ (self, callback, eventMask = <int> cspi.SPI_KEY_PRESSED | <int> cspi.SPI_KEY_RELEASED):
+ """
+ Registers a python callback function to be called.
+
+diff -Naur pyspi-0.6.1-old/pyspi.pyx.orig pyspi-0.6.1/pyspi.pyx.orig
+--- pyspi-0.6.1-old/pyspi.pyx.orig 1970-01-01 10:00:00.000000000 +1000
++++ pyspi-0.6.1/pyspi.pyx.orig 2006-10-03 02:46:41.000000000 +1000
+@@ -0,0 +1,1592 @@
++# Authors:
++# Zack Cerza <zcerza@redhat.com>
++# Chris Lee <clee@redhat.com>
++# Lawrence Lim <llim@redhat.com>
++# David Malcolm <dmalcolm@redhat.com>
++
++cdef class Registry
++
++cdef class Base
++cdef class EventBase
++cdef class StateSet
++cdef class Accessible (Base)
++cdef class Desktop (Accessible)
++cdef class Application (Accessible)
++cdef class Component (Accessible)
++cdef class Action (Base)
++cdef class Text (Base)
++cdef class EditableText (Text)
++cdef class Hypertext (Text)
++cdef class Hyperlink (Base)
++cdef class Image (Base)
++cdef class Value (Base)
++cdef class Selection (Base)
++cdef class Table (Base)
++cdef class Event (EventBase)
++cdef class DeviceEvent
++
++ctypedef enum bool:
++ False = 0
++ True
++
++# SPIExceptionCode values:
++(SPI_EXCEPTION_UNSPECIFIED, SPI_EXCEPTION_DISCONNECT, SPI_EXCEPTION_NO_IMPL, SPI_EXCEPTION_IO, SPI_EXCEPTION_BAD_DATA)=range(5)
++
++# SPIExceptionType values:
++(SPI_EXCEPTION_SOURCE_UNSPECIFIED, SPI_EXCEPTION_SOURCE_ACCESSIBLE, SPI_EXCEPTION_SOURCE_REGISTRY, SPI_EXCEPTION_SOURCE_DEVICE)=range(4)
++
++# Accessible roles
++(SPI_ROLE_INVALID, SPI_ROLE_ACCEL_LABEL, SPI_ROLE_ALERT, SPI_ROLE_ANIMATION, SPI_ROLE_ARROW, SPI_ROLE_CALENDAR, SPI_ROLE_CANVAS, SPI_ROLE_CHECK_BOX, SPI_ROLE_CHECK_MENU_ITEM, SPI_ROLE_COLOR_CHOOSER, SPI_ROLE_COLUMN_HEADER, SPI_ROLE_COMBO_BOX, SPI_ROLE_DATE_EDITOR, SPI_ROLE_DESKTOP_ICON, SPI_ROLE_DESKTOP_FRAME, SPI_ROLE_DIAL, SPI_ROLE_DIALOG, SPI_ROLE_DIRECTORY_PANE, SPI_ROLE_DRAWING_AREA, SPI_ROLE_FILE_CHOOSER, SPI_ROLE_FILLER, SPI_ROLE_FONT_CHOOSER, SPI_ROLE_FRAME, SPI_ROLE_GLASS_PANE, SPI_ROLE_HTML_CONTAINER, SPI_ROLE_ICON, SPI_ROLE_IMAGE, SPI_ROLE_INTERNAL_FRAME, SPI_ROLE_LABEL, SPI_ROLE_LAYERED_PANE, SPI_ROLE_LIST, SPI_ROLE_LIST_ITEM, SPI_ROLE_MENU, SPI_ROLE_MENU_BAR, SPI_ROLE_MENU_ITEM, SPI_ROLE_OPTION_PANE, SPI_ROLE_PAGE_TAB, SPI_ROLE_PAGE_TAB_LIST, SPI_ROLE_PANEL, SPI_ROLE_PASSWORD_TEXT, SPI_ROLE_POPUP_MENU, SPI_ROLE_PROGRESS_BAR, SPI_ROLE_PUSH_BUTTON, SPI_ROLE_RADIO_BUTTON, SPI_ROLE_RADIO_MENU_ITEM, SPI_ROLE_ROOT_PANE, SPI_ROLE_ROW_HEADER, SPI_ROLE_SCROLL_BAR, SPI_ROLE_SCROLL_PANE, SPI_ROLE_SEPARATOR, SPI_ROLE_SLIDER, SPI_ROLE_SPIN_BUTTON, SPI_ROLE_SPLIT_PANE, SPI_ROLE_STATUS_BAR, SPI_ROLE_TABLE, SPI_ROLE_TABLE_CELL, SPI_ROLE_TABLE_COLUMN_HEADER, SPI_ROLE_TABLE_ROW_HEADER, SPI_ROLE_TEAROFF_MENU_ITEM, SPI_ROLE_TERMINAL, SPI_ROLE_TEXT, SPI_ROLE_TOGGLE_BUTTON, SPI_ROLE_TOOL_BAR, SPI_ROLE_TOOL_TIP, SPI_ROLE_TREE, SPI_ROLE_TREE_TABLE, SPI_ROLE_UNKNOWN, SPI_ROLE_VIEWPORT, SPI_ROLE_WINDOW, SPI_ROLE_EXTENDED, SPI_ROLE_HEADER, SPI_ROLE_FOOTER, SPI_ROLE_PARAGRAPH, SPI_ROLE_RULER, SPI_ROLE_APPLICATION, SPI_ROLE_AUTOCOMPLETE, SPI_ROLE_EDITBAR, SPI_ROLE_EMBEDDED, SPI_ROLE_LAST_DEFINED)=range(79)
++
++# Accessible states
++(SPI_STATE_INVALID, SPI_STATE_ACTIVE, SPI_STATE_ARMED, SPI_STATE_BUSY, SPI_STATE_CHECKED, SPI_STATE_COLLAPSED, SPI_STATE_DEFUNCT, SPI_STATE_EDITABLE, SPI_STATE_ENABLED, SPI_STATE_EXPANDABLE, SPI_STATE_EXPANDED, SPI_STATE_FOCUSABLE, SPI_STATE_FOCUSED, SPI_STATE_HORIZONTAL, SPI_STATE_ICONIFIED, SPI_STATE_MODAL, SPI_STATE_MULTI_LINE, SPI_STATE_MULTISELECTABLE, SPI_STATE_OPAQUE, SPI_STATE_PRESSED, SPI_STATE_RESIZABLE, SPI_STATE_SELECTABLE, SPI_STATE_SELECTED, SPI_STATE_SENSITIVE, SPI_STATE_SHOWING, SPI_STATE_SINGLE_LINE, SPI_STATE_STALE, SPI_STATE_TRANSIENT, SPI_STATE_VERTICAL, SPI_STATE_VISIBLE, SPI_STATE_MANAGES_DESCENDANTS, SPI_STATE_INDETERMINATE) = range(32);
++
++# Accessible relation types
++(SPI_RELATION_NULL, SPI_RELATION_LABEL_FOR, SPI_RELATION_LABELED_BY, SPI_RELATION_CONTROLLER_FOR, SPI_RELATION_CONTROLLED_BY, SPI_RELATION_MEMBER_OF, SPI_RELATION_NODE_CHILD_OF, SPI_RELATION_EXTENDED, SPI_RELATION_FLOWS_TO, SPI_RELATION_FLOWS_FROM, SPI_RELATION_SUBWINDOW_OF, SPI_RELATION_EMBEDS, SPI_RELATION_EMBEDDED_BY, SPI_RELATION_POPUP_FOR, SPI_RELATION_LAST_DEFINED) = range (15);
++
++# AccessibleComponent layers
++(SPI_LAYER_INVALID, SPI_LAYER_BACKGROUND, SPI_LAYER_CANVAS, SPI_LAYER_WIDGET, SPI_LAYER_MDI, SPI_LAYER_POPUP, SPI_LAYER_OVERLAY, SPI_LAYER_WINDOW, SPI_LAYER_LAST_DEFINED) = range(9)
++
++#AccessibleKeySynthType
++(SPI_KEY_PRESS, SPI_KEY_RELEASE, SPI_KEY_PRESSRELEASE, SPI_KEY_SYM, SPI_KEY_STRING) = range(5)
++
++# AccessibleKeyListenerSyncType
++(SPI_KEYLISTENER_NOSYNC, SPI_KEYLISTENER_SYNCHRONOUS, SPI_KEYLISTENER_CANCONSUME, SPI_KEYLISTENER_ALL_WINDOWS) = range(4)
++
++# AccessibleDeviceEventType
++SPI_KEY_PRESSED = 1<<0
++SPI_KEY_RELEASED = 1<<1
++SPI_BUTTON_PRESSED = 1<<2
++SPI_BUTTON_RELEASED = 1<<3
++
++cdef cspi.AccessibleKeySet *SPI_KEYSET_ALL_KEYS
++SPI_KEYSET_ALL_KEYS = NULL
++
++Accessibility_MODIFIER_SHIFT = 1 << 0
++Accessibility_MODIFIER_SHIFTLOCK = 1 << 1
++Accessibility_MODIFIER_CONTROL = 1 << 2
++Accessibility_MODIFIER_ALT = 1 << 3
++Accessibility_MODIFIER_META = 1 << 4
++Accessibility_MODIFIER_META2 = 1 << 5
++Accessibility_MODIFIER_META3 = 1 << 6
++Accessibility_MODIFIER_NUMLOCK = 1 << 7
++
++
++cdef object string(char * string):
++ cdef object pyString
++ pyString = string
++ cspi.SPI_freeString(string)
++ return pyString
++
++import os
++class X11Exception(Exception):
++ def __init__(self, display = os.environ.get('DISPLAY', None)):
++ self.display = display
++ def __str__(self):
++ msg = "Cannot open display"
++ if self.display: return msg + ': ' + self.display
++ else: return msg
++
++class AtspiException(Exception):
++ """
++ Exceptions raised when calls to the AT-SPI C bindings return FALSE to
++ indicate failure.
++ """
++ def __init__(self, message):
++ self.message = message
++
++ def __str__(self):
++ return "AtspiException: %s"%self.message
++
++class SpiException(Exception):
++ """
++ Exceptions to be raised in response to an installed
++ SPIExceptionHandler, corresponding to a SPIException. These appear to
++ be short-lived structs, so we gather all applicable data immediately
++ """
++ def __init__(self, is_fatal, sourceType, exceptionCode, description):
++ # print "got to __init__"
++ self.fatal = is_fatal
++ self.sourceType = sourceType
++ self.exceptionCode = exceptionCode
++ self.description = description
++
++ # print "leaving __init__"
++ # print self.fatal
++ # print self.sourceType
++ # print self.exceptionCode
++ # print self.description
++
++ def __str__(self):
++ if self.fatal:
++ fatalStr = "Fatal"
++ else:
++ fatalStr = "Non-fatal"
++ result = '%s SPIException: type:%s source:%s "%s"'%(fatalStr, self.sourceType, self.exceptionCode, self.description)
++ return result
++
++cdef make_exception(cspi.SPIException *err, cspi.SPIBoolean is_fatal):
++ # Don't attempt to use SPIAccessibleException_getSource; this is error
++ # handling code, we don't want to introduce further complications
++ return SpiException(is_fatal,
++ cspi.SPIException_getSourceType (err),
++ cspi.SPIException_getExceptionCode (err),
++ cspi.SPIException_getDescription (err))
++
++
++def event_main():
++ cspi.SPI_event_main()
++
++def event_quit():
++ cspi.SPI_event_quit()
++
++cdef cspi.SPIBoolean exception_handler (cspi.SPIException *err, cspi.SPIBoolean is_fatal) except *:
++ # print "got exception!!!"
++ e = make_exception(err, is_fatal)
++ raise e
++
++# at-spi-<version>/cpsi.h contains:
++# typedef SPIBoolean (*SPIExceptionHandler) (SPIException *err, SPIBoolean is_fatal);
++# and
++# SPIBoolean SPI_exceptionHandlerPush (SPIExceptionHandler *handler);
++# There's thus an extra unnecessary level of indirection.
++# We have to jump through the following hoops to get pyrex to deal with this:
++cdef cspi.SPIExceptionHandler exception_handler_as_type
++cdef cspi.SPIExceptionHandler* exception_handler_ptr
++exception_handler_as_type = exception_handler
++exception_handler_ptr = &exception_handler_as_type
++
++global_exception = None
++
++cdef class Registry:
++ def __init__ (self):
++ cdef Xlib.Display *display
++ display = Xlib.XOpenDisplay(NULL)
++ if display == NULL:
++ raise X11Exception
++ else:
++ Xlib.XCloseDisplay(display)
++
++ result = cspi.SPI_init ()
++ #if result!=0:
++ # raise AtspiException("SPI_init: exit code %s" % str(result))
++
++ result = cspi.SPI_exceptionHandlerPush (exception_handler_ptr)
++ if not result:
++ raise AtspiException("Unable to install SPI exception handler")
++
++ def __dealloc (self):
++ result = cspi.SPI_exit ()
++ if result!=0:
++ raise AtspiException("SPI_init: exit code %s" % str(result))
++
++ def getDesktopCount (self):
++ return cspi.SPI_getDesktopCount()
++
++ def getDesktop (self, index = 0):
++ cdef Desktop desktop
++ desktop = Desktop ()
++ if not desktop.__setItem (cspi.SPI_getDesktop (index)):
++ return False
++ return desktop
++
++ def getDesktopList (self):
++ # Using the bonobo.activation bindings, getDesktopList() returns a
++ # Python list of Desktop objects. The C bindings seem to do it differently,
++ # and Pyrex doesn't like that method. So we're re-implementing the function
++ # using getDesktopCount() and getDesktop() to work around that.
++ # Yay for Zack!
++ #
++ # -Zack
++ cdef Desktop desktop
++ desktops = []
++ desktop = Desktop ()
++ for i in xrange (cspi.SPI_getDesktopCount ()):
++ desktop.__setItem (cspi.SPI_getDesktop (i))
++ desktops = desktops + [desktop]
++ return desktops
++
++registry = Registry()
++
++cdef class Base:
++ """
++ Wrapper around a cspi.Accessible
++ """
++
++ cdef cspi.Accessible *__item
++
++ def __new__ (self):
++ self.__item = NULL
++
++ def __dealloc__ (self):
++ if self.__item != NULL:
++ cspi.Accessible_unref (self.__item)
++
++ cdef bool __setItem (self, cspi.Accessible *obj):
++ if self.__item != NULL:
++ cspi.Accessible_unref (self.__item)
++ if obj != NULL:
++ self.__item = obj
++ cspi.Accessible_ref (self.__item)
++ return True
++ else:
++ return False
++
++ def __checkSelf (self):
++ assert self.__item != NULL
++
++# WHY OH WHY won't this work? :(
++# I need to be able to find out of two Accessible classes contain
++# the same cspi.Accessible objects.
++#
++# def isSameAs (self, base):
++# cdef bool foo
++# foo = self.__item == base.__item
++# return foo
++
++cdef class EventBase:
++ """
++ Wrapper around a cspi.AccessibleEvent
++ """
++ cdef cspi.AccessibleEvent *__item
++
++ def __new__ (self):
++ self.__item = NULL
++
++ def __dealloc__ (self):
++ if self.__item != NULL:
++ cspi.AccessibleEvent_unref (self.__item)
++
++ cdef bool __setItem (self, cspi.AccessibleEvent *obj):
++ if self.__item != NULL:
++ cspi.AccessibleEvent_unref (self.__item)
++ if obj != NULL:
++ self.__item = obj
++ cspi.AccessibleEvent_ref (self.__item)
++ return True
++ else:
++ return False
++
++ def __checkSelf (self):
++ if self.__item == NULL:
++ raise AttributeError, "__item must not be NULL"
++
++ def __getattr__ (self, attrName):
++ cdef cspi.Accessible* acc
++ cdef Accessible result
++ if attrName == "source":
++ acc = self.__item.source
++ if acc!=NULL:
++ result = Accessible ()
++ result.__setItem (acc)
++ return result
++ elif attrName == "detail1":
++ detail1 = self.__item.detail1
++ return detail1
++ elif attrName == "detail2":
++ detail1 = self.__item.detail2
++ return detail1
++ elif attrName == "type":
++ return self.__item.type
++
++cdef class StateSet:
++ """
++ Wrapper around a cspi.AccessibleStateSet
++ """
++ cdef cspi.AccessibleStateSet *__item
++
++ def __new__ (self):
++ self.__item = NULL
++
++ def __dealloc__ (self):
++ if self.__item != NULL:
++ cspi.AccessibleStateSet_unref (self.__item)
++
++ def __checkSelf (self):
++ if self.__item == NULL:
++ raise AttributeError, "__item must not be NULL"
++
++ cdef bool __setItem (self, cspi.AccessibleStateSet *obj):
++ if self.__item != NULL:
++ cspi.AccessibleStateSet_unref (self.__item)
++ if obj != NULL:
++ self.__item = obj
++ cspi.AccessibleStateSet_ref (self.__item)
++ return True
++ else:
++ return False
++
++ cdef bool __contains (self, cspi.AccessibleState s):
++ self.__checkSelf ()
++ return cspi.AccessibleStateSet_contains (self.__item, s)
++
++ def contains (self, state):
++ self.__checkSelf ()
++ return self.__contains(state)
++
++ cdef void __add (self, cspi.AccessibleState s):
++ self.__checkSelf ()
++ cspi.AccessibleStateSet_add(self.__item, s)
++
++ def add (self, state):
++ self.__checkSelf ()
++ self.__add (state)
++
++ cdef void __remove (self, cspi.AccessibleState s):
++ self.__checkSelf ()
++ cspi.AccessibleStateSet_remove (self.__item, s)
++
++ def remove (self, state):
++ self.__checkSelf ()
++ self.__remove (state)
++
++ def __str__ (self):
++ self.__checkSelf ()
++ return str(self.states)
++
++ def __getattr__(self, name):
++ if name == "states":
++ result = []
++ for state in range(SPI_STATE_INVALID, SPI_STATE_INDETERMINATE):
++ if self.contains(state):
++ result.append(state)
++ return result
++ else:
++ raise AttributeError, name
++
++cdef class Relation:
++ """
++ Wrapper around a cspi.AccessibleRelation
++ """
++ cdef cspi.AccessibleRelation *__item
++
++ def __new__ (self):
++ self.__item = NULL
++
++ def __dealloc__ (self):
++ if self.__item != NULL:
++ cspi.AccessibleRelation_unref (self.__item)
++
++ def __checkSelf (self):
++ if self.__item == NULL:
++ raise AttributeError, "__item must not be NULL"
++
++ def __str__ (self):
++ self.__checkSelf ()
++ return "relation %s -> %s"%(self.getRelationType (), self.getTargets())
++
++ def __repr__ (self):
++ self.__checkSelf ()
++ return "relation %s -> %s"%(self.getRelationType (), self.getTargets())
++
++ cdef bool __setItem (self, cspi.AccessibleRelation *obj):
++ if self.__item != NULL:
++ cspi.AccessibleRelation_unref (self.__item)
++ if obj != NULL:
++ self.__item = obj
++ cspi.AccessibleRelation_ref (self.__item)
++ return True
++ else:
++ return False
++
++ def getNTargets (self):
++ """
++ Wrapper around cspi.AccessibleRelation_getNTargets
++ """
++ self.__checkSelf ()
++ return cspi.AccessibleRelation_getNTargets (self.__item)
++
++ def getTarget (self, i):
++ """
++ Wrapper around cspi.AccessibleRelation_getTarget
++ """
++ self.__checkSelf ()
++ cdef Accessible target
++ target = Accessible ()
++ target.__setItem (cspi.AccessibleRelation_getTarget (self.__item, i))
++ target.__checkSelf ()
++ return target
++
++ def getTargets (self):
++ """
++ Gets the targets of this AccessibleRelation as a list of atspi.Accessible
++ """
++ self.__checkSelf ()
++ result = []
++ count = self.getNTargets()
++ for i in range(count):
++ result.append(self.getTarget(i))
++ return result
++
++ def getRelationType (self):
++ """
++ Wrapper around cspi.AccessibleRelation_getRelationType
++ """
++ self.__checkSelf ()
++ return cspi.AccessibleRelation_getRelationType (self.__item)
++
++cdef class Accessible (Base):
++ """
++ Wrapper around cspi.Accessible
++ """
++ def __getattr__ (self, name):
++ if name == "name":
++ return self.getName ()
++ elif name == "role":
++ return self.getRole ()
++ elif name == "roleName":
++ return self.getRoleName ()
++ elif name == "description":
++ return self.getDescription ()
++ elif name == "parent":
++ return self.getParent ()
++ elif name == "childCount":
++ return self.getChildCount ()
++ elif name == "indexInParent":
++ return self.getIndexInParent ()
++ elif name == "stateSet":
++ return self.getStateSet ()
++ else:
++ raise AttributeError, name
++
++ def getName (self):
++ """
++ Wrapper around cspi.Accessible_getName
++ """
++ self.__checkSelf()
++ return string(cspi.Accessible_getName(self.__item))
++
++ def getDescription (self):
++ """
++ Wrapper around cspi.Accessible_getDescription
++ """
++ self.__checkSelf()
++ return string(cspi.Accessible_getDescription(self.__item))
++
++ def getParent (self):
++ """
++ Wrapper around cspi.Accessible_getParent, returning an
++ atspi.Accessible or None
++ """
++ self.__checkSelf()
++ cdef Accessible parent
++ cdef cspi.Accessible* spiParent
++
++ spiParent = cspi.Accessible_getParent (self.__item)
++ if spiParent!=NULL:
++ parent = Accessible ()
++ parent.__setItem (spiParent)
++ parent.__checkSelf ()
++ return parent
++ else:
++ return None
++
++ def getChildAtIndex (self, index):
++ """
++ Wrapper around cspi.Accessible_getChildAtIndex, returning an
++ atspi.Accessible, atspi.Application, or None
++ """
++ self.__checkSelf()
++ cdef int i
++ i = index
++
++ # This hairiness is due to the fact that Pyrex doesn't allow cdefs
++ # inside if blocks.
++
++ cdef cspi.Accessible* spiChild
++ spiChild = cspi.Accessible_getChildAtIndex (self.__item, i)
++ # Workaround for GNOME bug #321273
++ # http://bugzilla.gnome.org/show_bug.cgi?id=321273
++ if spiChild == NULL: return None
++
++ cdef object child
++ cdef Application app
++ cdef Accessible acc
++ cdef Text text
++
++ if cspi.Accessible_isApplication (spiChild):
++ app = Application ()
++ app.__setItem (spiChild)
++ child = app
++ else:
++ acc = Accessible ()
++ acc.__setItem (spiChild)
++ child = acc
++
++ return child
++
++ def getIndexInParent (self):
++ """
++ Wrapper around cspi.Accessible_getIndexInParent
++ """
++ self.__checkSelf()
++ return cspi.Accessible_getIndexInParent (self.__item)
++
++ def getRole (self):
++ """
++ Wrapper around cspi.Accessible_getRole
++ """
++ self.__checkSelf()
++ return cspi.Accessible_getRole (self.__item)
++
++ def getRoleName (self):
++ """
++ Wrapper around cspi.Accessible_getRoleName
++ """
++ self.__checkSelf()
++ return string(cspi.Accessible_getRoleName (self.__item))
++
++ def getChildCount (self):
++ """
++ Wrapper around cspi.Accessible_getChildCount
++ """
++ self.__checkSelf()
++ return cspi.Accessible_getChildCount (self.__item)
++
++ def getStateSet (self):
++ """
++ Wrapper around cspi.Accessible_getStateSet, returning an
++ atspi.StateSet
++ """
++ self.__checkSelf()
++ cdef StateSet set
++ set = StateSet()
++ set.__setItem (cspi.Accessible_getStateSet (self.__item))
++ return set
++
++ def getInterface (self, interface):
++ """
++ This is NOT part of cspi, it is just for compatibility with
++ the bonobo bindings and will probably go away soon.
++ """
++ self.__checkSelf()
++ return getattr(self, "get%s" % interface) ()
++
++ def getAction (self):
++ """
++ Wrapper around cspi.Accessible_getAction, returning
++ an atspi.Action or None
++ """
++ self.__checkSelf()
++ cdef Action action
++ action = Action ()
++ action.__setItem (cspi.Accessible_getAction (self.__item))
++ if action.__item != NULL:
++ return action
++
++ def getText (self):
++ """
++ Wrapper around cspi.Accessible_getText, returning an atspi.Text
++ or None
++ """
++ self.__checkSelf ()
++ cdef Text text
++ text = Text ()
++ text.__setItem (cspi.Accessible_getText (self.__item))
++ if text.__item != NULL:
++ return text
++
++ def getEditableText (self):
++ """
++ Wrapper around cspi.Accessible_getText, returning an
++ atspi.EditableText or None
++ """
++ self.__checkSelf ()
++ cdef EditableText etext
++ etext = EditableText ()
++ etext.__setItem (cspi.Accessible_getEditableText (self.__item))
++ if etext.__item != NULL:
++ return etext
++
++ def getHypertext (self):
++ """
++ Wrapper around cspi.Accessible_getHypertext, returning an
++ atspi.Hypertext or None
++ """
++ self.__checkSelf ()
++ cdef Hypertext hypertext
++ hypertext = Hypertext ()
++ hypertext.__setItem (cspi.Accessible_getHypertext (self.__item))
++ if hypertext.__item != NULL:
++ return hypertext
++
++ def getImage (self):
++ """
++ Wrapper around cspi.Accessible_getImage, returning an
++ atspi.Image or None
++ """
++ self.__checkSelf ()
++ cdef Image image
++ image = Image ()
++ image.__setItem (cspi.Accessible_getImage (self.__item))
++ if image.__item != NULL:
++ return image
++
++ def getValue (self):
++ """
++ Wrapper around cspi.Accessible_getValue, returning an
++ atspi.Value or None
++ """
++ self.__checkSelf ()
++ cdef Value value
++ value = Value ()
++ value.__setItem (cspi.Accessible_getValue (self.__item))
++ if value.__item != NULL:
++ return value
++
++ def getSelection (self):
++ """
++ Wrapper around cspi.Accessible_getSelection, returning an
++ atspi.Selection or None
++ """
++ self.__checkSelf ()
++ cdef Selection selection
++ selection = Selection ()
++ selection.__setItem (cspi.Accessible_getSelection (self.__item))
++ if selection.__item != NULL:
++ return selection
++
++ def getComponent (self):
++ """
++ Wrapper around cspi.Accessible_getComponent, returning an
++ atspi.Component or None
++ """
++ self.__checkSelf ()
++ cdef Component component
++ component = Component ()
++ component.__setItem (cspi.Accessible_getComponent (self.__item))
++ if component.__item != NULL:
++ return component
++
++ def getRelationSet (self):
++ """
++ Wraps Accessible_getRelationSet, returning a list
++ of atspi.Relation
++ """
++ # looking at at-poke, result from C API appears to be a NULL-terminated list of pointers, and that we should free the buffer
++ self.__checkSelf ()
++ cdef Relation relation
++
++ relations = []
++ cdef cspi.AccessibleRelation **relationSet
++ relationSet = cspi.Accessible_getRelationSet (self.__item)
++
++ i=0
++ while relationSet[i]:
++ relation = Relation ()
++ relation.__setItem (relationSet[i])
++ relations.append(relation)
++ i=i+1
++ cspi.free (relationSet)
++
++ return relations
++
++
++cdef class Desktop (Accessible):
++ pass
++
++
++cdef class Application (Accessible):
++ """
++ Wrapper around the low-level cspi.AccessibleApplication_ functions,
++ giving an OO-style API.
++ """
++ def getToolkit (self):
++ """
++ Wraps AccessibleApplication_getToolkitName, returning a string
++ """
++ self.__checkSelf ()
++ return cspi.AccessibleApplication_getToolkitName (self.__item)
++
++ def getVersion (self):
++ """
++ Wraps AccessibleApplication_getVersion, returning a string
++ """
++ self.__checkSelf ()
++ return cspi.AccessibleApplication_getVersion(self.__item)
++
++ def getID (self):
++ """
++ Wraps AccessibleApplication_getID, returning a string
++ """
++ self.__checkSelf ()
++ return cspi.AccessibleApplication_getID (self.__item)
++
++ def pause (self):
++ """
++ Wraps AccessibleApplication_pause
++ """
++ self.__checkSelf ()
++ return cspi.AccessibleApplication_pause (self.__item)
++
++ def resume (self):
++ """
++ Wraps AccessibleApplication_resume
++ """
++ self.__checkSelf ()
++ return cspi.AccessibleApplication_resume (self.__item)
++
++cdef class Component (Accessible):
++ """
++ Wrapper around the low-level cspi.AccessibleComponent_ functions,
++ giving an OO-style API.
++ """
++ def getExtents (self, type=0):
++ """
++ Wraps cspi.AccessibleComponent_getExtents, returning an
++ (x,y,w,h) tuple.
++ """
++ self.__checkSelf ()
++ cdef long x, y, w, h
++ cspi.AccessibleComponent_getExtents (self.__item, &x, &y, &w, &h, type)
++ return (x, y, w, h)
++
++ def getPosition (self, type = 0):
++ """
++ Wraps cspi.AccessibleComponent_getPosition, returning an
++ (x,y) tuple.
++ """
++ self.__checkSelf ()
++ cdef long x, y
++ cspi.AccessibleComponent_getPosition (self.__item, &x, &y, type)
++ return (x, y)
++
++ def getSize (self):
++ """
++ Wraps cspi.AccessibleComponent_getSize, returning a
++ (w,h) tuple.
++ """
++ self.__checkSelf ()
++ cdef long w, h
++ cspi.AccessibleComponent_getSize (self.__item, &w, &h)
++ return (w, h)
++
++ def getLayer (self):
++ """
++ Wraps cspi.AccessibleComponent_getLayer, returning an
++ AccessibleComponentLayer.
++ """
++ self.__checkSelf ()
++ return cspi.AccessibleComponent_getLayer (self.__item)
++
++ def grabFocus (self):
++ """
++ Wraps cspi.AccessibleComponent_grabFocus, raising AtspiException
++ if it fails
++ """
++ self.__checkSelf ()
++ if not cspi.AccessibleComponent_grabFocus (self.__item):
++ raise AtspiException("AccessibleComponent_grabFocus")
++
++ def getMDIZOrder (self):
++ """
++ Wraps cspi.AccessibleComponent_getMDIZOrder, returning an integer.
++ """
++ self.__checkSelf ()
++ return cspi.AccessibleComponent_getMDIZOrder(self.__item)
++
++cdef class Action (Base):
++ """
++ Wrapper around the low-level cspi.AccessibleAction_ functions,
++ giving an OO-style API.
++ """
++ def __getattr__ (self, name):
++ if name == "nActions":
++ return self.getNActions ()
++ else:
++ raise AttributeError, name
++
++ def getNActions (self):
++ """
++ Wraps cspi.AccessibleAction_getNActions
++ """
++ self.__checkSelf ()
++ return cspi.AccessibleAction_getNActions (self.__item)
++
++ def doAction (self, index):
++ """
++ Wraps cspi.AccessibleAction_doAction
++ """
++ self.__checkSelf ()
++ return cspi.AccessibleAction_doAction (self.__item, index)
++
++ def getKeyBinding (self, index):
++ """
++ Wraps cspi.AccessibleAction_getKeyBinding
++ """
++ self.__checkSelf ()
++ return cspi.AccessibleAction_getKeyBinding (self.__item, index)
++
++ def getName (self, index):
++ """
++ Wraps cspi.AccessibleAction_getName
++ """
++ self.__checkSelf ()
++ return string(cspi.AccessibleAction_getName (self.__item, index))
++
++ def getDescription (self, index):
++ """
++ Wraps cspi.AccessibleAction_getDescription
++ """
++ self.__checkSelf ()
++ return string(cspi.AccessibleAction_getDescription (self.__item, index))
++
++
++cdef class Text (Base):
++ """
++ Wrapper around the low-level cspi.AccessibleText_ functions,
++ giving an OO-style API.
++ """
++ def addSelection (self, startOffset, endOffset):
++ """
++ Wraps cspi.AccessibleText_addSelection
++ """
++ self.__checkSelf ()
++ if not cspi.AccessibleText_addSelection (self.__item, startOffset, endOffset):
++ raise AtspiException("AccessibleText_addSelection")
++
++
++ #def getAttributes (self, offset, startOffset, endOffset):
++ # self.__checkSelf ()
++ # return cspi.AccessibleText_getAttributes (self.__item, offset, startOffset, endOffset)
++ def getCaretOffset (self):
++ """
++ Wraps cspi.AccessibleText_getCaretOffset
++ """
++ self.__checkSelf ()
++ return cspi.AccessibleText_getCaretOffset (self.__item)
++
++ def getCharacterCount (self):
++ """
++ Wraps cspi.AccessibleText_getCharacterCount
++ """
++ self.__checkSelf ()
++ return cspi.AccessibleText_getCharacterCount (self.__item)
++
++ def getNSelections (self):
++ """
++ Wraps cspi.AccessibleText_getNSelections
++ """
++ self.__checkSelf ()
++ return cspi.AccessibleText_getNSelections (self.__item)
++
++ #def getSelection (self, selectionNum, startOffset, endOffset):
++ # self.__checkSelf ()
++ # return cspi.AccessibleText_getSelection (self.__item, selectionNum, startOffset, endOffset)
++
++ def getText (self, startOffset, endOffset):
++ """
++ Wraps cspi.AccessibleText_getText
++ """
++ self.__checkSelf ()
++ return string(cspi.AccessibleText_getText (self.__item, startOffset, endOffset))
++
++ def removeSelection (self, selectionNum):
++ """
++ Wraps cspi.AccessibleText_removeSelection, raising AtspiException if it fails
++ """
++ self.__checkSelf ()
++ if not cspi.AccessibleText_removeSelection (self.__item, selectionNum):
++ raise AtspiException("AccessibleText_removeSelection")
++
++ def setSelection (self, selectionNum, startOffset, endOffset):
++ """
++ Wraps cspi.AccessibleText_setSelection, raising AtspiException if it fails
++ """
++ self.__checkSelf ()
++ if not cspi.AccessibleText_setSelection (self.__item, selectionNum, startOffset, endOffset):
++ raise AtspiException("AccessibleText_setSelection")
++
++ def setCaretOffset (self, position):
++ """
++ Wraps cspi.AccessibleText_setCaretOffset, raising AtspiException if it fails
++ """
++ self.__checkSelf ()
++ if not cspi.AccessibleText_setCaretOffset (self.__item, position):
++ raise AtspiException("AccessibleText_setCaretOffset")
++
++cdef class EditableText (Text):
++ """
++ Wrapper around the low-level cspi.AccessibleEditableText_ functions,
++ giving an OO-style API.
++ """
++ def setTextContents (self, newContents):
++ """
++ Wraps cspi.AccessibleEditableText_setTextContents, raising AtspiException if it fails
++ """
++ self.__checkSelf ()
++ if not cspi.AccessibleEditableText_setTextContents (self.__item, newContents):
++ raise AtspiException("AccessibleEditableText_setTextContents")
++
++ def setAttributes (self, attributes, startOffset, endOffset):
++ """
++ Wraps cspi.AccessibleEditableText_setAttributes, raising AtspiException if it fails
++ """
++ self.__checkSelf ()
++ if not cspi.AccessibleEditableText_setAttributes (self.__item, attributes, startOffset, endOffset):
++ raise AtspiException("AccessibleEditableText_setAttributes")
++
++ def insertText (self, position, text):
++ """
++ Wraps cspi.AccessibleEditableText_insertText, raising AtspiException if it fails
++ """
++ self.__checkSelf ()
++ if not cspi.AccessibleEditableText_insertText (self.__item, position, text, cspi.strlen(text)):
++ raise AtspiException("AccessibleEditableText_insertText")
++
++cdef class Hypertext (Text):
++ """
++ Wrapper around the low-level cspi.AccessibleHypertext_ functions,
++ giving an OO-style API.
++ """
++ def getNLinks (self):
++ """
++ Wraps cspi.AccessibleHypertext_getNLinks, raising AtspiException if it fails
++ """
++ self.__checkSelf ()
++ return cspi.AccessibleHypertext_getNLinks (self.__item)
++
++ def getLink (self, linkIndex):
++ """
++ Wraps cspi.AccessibleHypertext_getLink, raising AtspiException if it fails
++ """
++ self.__checkSelf ()
++ cdef Hyperlink hyperlink
++ hyperlink = Hyperlink ()
++ hyperlink.__setItem (cspi.AccessibleHypertext_getLink (self.__item, linkIndex))
++ if hyperlink.__item != NULL:
++ return hyperlink
++
++ def getLinkIndex (self, characterOffset):
++ """
++ Wraps cspi.AccessibleHypertext_getLinkIndex, raising AtspiException if it fails
++ """
++ self.__checkSelf ()
++ return cspi.AccessibleHypertext_getLinkIndex (self.__item, characterOffset)
++
++cdef class Hyperlink (Base):
++ """
++ Wrapper around the low-level cspi.AccessibleHyperlink_ functions,
++ giving an OO-style API.
++ """
++ def getNAnchors (self):
++ """
++ Wraps cspi.AccessibleHyperlink_getNAnchors, raising AtspiException if it fails
++ """
++ self.__checkSelf ()
++ return cspi.AccessibleHyperlink_getNAnchors (self.__item)
++
++ def getIndexRange (self):
++ """
++ Wraps cspi.AccessibleHyperlink_getIndexRange, returning [startIndex, endIndex] pair
++ """
++ self.__checkSelf ()
++ cdef long startIndex, endIndex
++ cspi.AccessibleHyperlink_getIndexRange(self.__item, &startIndex, &endIndex)
++ return [startIndex, endIndex]
++
++
++ def getObject (self, i):
++ """
++ Wraps cspi.AccessibleHyperlink_getObject
++ """
++ self.__checkSelf ()
++ cdef Accessible object
++ object = Accessible ()
++ object.__setItem (cspi.AccessibleHyperlink_getObject (self.__item, i))
++ object.__checkSelf ()
++ return object
++
++ def getURI (self, i):
++ """
++ Wraps cspi.AccessibleHyperlink_getURI, raising AtspiException if it fails
++ """
++ self.__checkSelf ()
++ return cspi.AccessibleHyperlink_getURI (self.__item, i)
++
++ def isValid (self):
++ """
++ Wraps cspi.AccessibleHyperlink_isValid, raising AtspiException if it fails
++ """
++ self.__checkSelf ()
++ return cspi.AccessibleHyperlink_isValid (self.__item)
++
++cdef class Image (Base):
++ """
++ Wrapper around the low-level cspi.AccessibleImage_ functions,
++ giving an OO-style API.
++ """
++ def getImageDescription (self):
++ """
++ Wraps cspi.AccessibleImage_getImageDescription
++ """
++ self.__checkSelf ()
++ return cspi.AccessibleImage_getImageDescription (self.__item)
++
++ def getImageSize (self):
++ """
++ Wraps cspi.AccessibleImage_getImageSize, returning a (w,h) pair
++ """
++ self.__checkSelf ()
++ cdef long w, h
++ cspi.AccessibleImage_getImageSize(self.__item, &w, &h);
++ return [w, h]
++
++ def getImagePosition (self, type=0):
++ """
++ Wraps cspi.AccessibleImage_getImagePosition, returning a (x,y)
++ pair
++ """
++ self.__checkSelf ()
++ cdef long x, y
++ cspi.AccessibleImage_getImagePosition(self.__item, &x, &y, type)
++ return [x, y]
++
++ def getImageExtents (self, type=0):
++ """
++ Wraps cspi.AccessibleImage_getImageExtents, returning a
++ (x,y,w,h) tuple
++ """
++ self.__checkSelf ()
++ cdef long x, y, w, h
++ cspi.AccessibleImage_getImageExtents(self.__item, &x, &y, &w, &h, type)
++ return [x, y, w, h]
++
++cdef class Value (Base):
++ """
++ Wrapper around the low-level cspi.AccessibleValue_ functions,
++ giving an OO-style API.
++ """
++ def getMinimumValue (self):
++ """
++ Wraps cspi.AccessibleValue_getMinimumValue
++ """
++ self.__checkSelf ()
++ return cspi.AccessibleValue_getMinimumValue(self.__item)
++
++ def getCurrentValue (self):
++ """
++ Wraps cspi.AccessibleValue_getMinimumValue
++ """
++ self.__checkSelf ()
++ return cspi.AccessibleValue_getCurrentValue(self.__item)
++
++ def getMaximumValue (self):
++ """
++ Wraps cspi.AccessibleValue_getMinimumValue
++ """
++ self.__checkSelf ()
++ return cspi.AccessibleValue_getMaximumValue(self.__item)
++
++ def setCurrentValue (self, newValue):
++ """
++ Wraps cspi.AccessibleValue_setCurrentValue
++ """
++ self.__checkSelf ()
++ if not cspi.AccessibleValue_setCurrentValue (self.__item, newValue):
++ raise AtspiException("AccessibleValue_setCurrentValue")
++
++cdef class Selection (Base):
++ """
++ Wrapper around the low-level cspi.AccessibleSelection_ functions,
++ giving an OO-style API.
++ """
++
++ def getNSelectedChildren (self):
++ """
++ Wraps cspi.AccessibleSelection_getNSelectedChildren
++ """
++ self.__checkSelf ()
++ return cspi.AccessibleSelection_getNSelectedChildren (self.__item)
++
++ def getSelectedChild (self, index):
++ """
++ Wraps cspi.AccessibleSelection_getSelectedChild
++ """
++ self.__checkSelf ()
++
++ cdef cspi.Accessible* spiChild
++ spiChild = cspi.AccessibleSelection_getSelectedChild (self.__item, index)
++
++ assert spiChild != NULL
++
++ cdef object child
++ cdef Application app
++ cdef Accessible acc
++ cdef Text text
++
++ if cspi.Accessible_isApplication (spiChild):
++ app = Application ()
++ app.__setItem (spiChild)
++ child = app
++ else:
++ acc = Accessible ()
++ acc.__setItem (spiChild)
++ child = acc
++
++ return child
++
++ def selectChild (self, index):
++ """
++ Wraps cspi.AccessibleSelection_selectChild
++ """
++ self.__checkSelf ()
++ return cspi.AccessibleSelection_selectChild (self.__item, index)
++
++ def deselectSelectedChild (self, index):
++ """
++ Wraps cspi.AccessibleSelection_deselectSelectedChild
++ """
++ self.__checkSelf ()
++ return cspi.AccessibleSelection_deselectSelectedChild (self.__item, index)
++
++ def isChildSelected (self, index):
++ """
++ Wraps cspi.AccessibleSelection_isChildSelected
++ """
++ self.__checkSelf ()
++ return cspi.AccessibleSelection_isChildSelected (self.__item, index)
++
++ def selectAll (self):
++ """
++ Wraps cspi.AccessibleSelection_selectAll
++ """
++ self.__checkSelf ()
++ return cspi.AccessibleSelection_selectAll( self.__item)
++
++ def clearSelection (self):
++ """
++ Wraps cspi.AccessibleSelection_clearSelection
++ """
++ self.__checkSelf ()
++ return cspi.AccessibleSelection_clearSelection (self.__item)
++
++cdef class Table (Base):
++ """
++ Wrapper around the low-level cspi.AccessibleTable_ functions,
++ giving an OO-style API.
++ """
++
++ # def getTableAccessibleAt (self, row, column):
++ # def getTableCaption (self):
++
++ def getTableColumnAtIndex (self, index):
++ """
++ Wraps cspi.AccessibleTable_getColumnAtIndex
++ """
++ self.__checkSelf ()
++ return cspi.AccessibleTable_getColumnAtIndex(self.__item, index)
++
++ def getTableColumnDescription (self, column):
++ """
++ Wraps cspi.AccessibleTable_getColumnDescription
++ """
++ self.__checkSelf ()
++ return cspi.AccessibleTable_getColumnDescription(self.__item, column)
++
++ def getTableColumnExtentAt (self, row, column):
++ """
++ Wraps cspi.AccessibleTable_getColumnExtentAt
++ """
++ self.__checkSelf ()
++ return cspi.AccessibleTable_getColumnExtentAt(self.__item, row, column)
++
++ # def getTableColumnHeader (self, column):
++
++ def getTableIndexAt (self, row, column):
++ """
++ Wraps cspi.AccessibleTable_getIndexAt
++ """
++ self.__checkSelf ()
++ return cspi.AccessibleTable_getIndexAt(self.__item, row, column)
++
++ def getTableNColumns (self):
++ """
++ Wraps cspi.AccessibleTable_getNColumns
++ """
++ self.__checkSelf ()
++ return cspi.AccessibleTable_getNColumns(self.__item)
++
++ def getTableNRows (self):
++ """
++ Wraps cspi.AccessibleTable_getNRows
++ """
++ self.__checkSelf ()
++ return cspi.AccessibleTable_getNRows(self.__item)
++
++ def getTableNSelectedColumns (self):
++ """
++ Wraps cspi.AccessibleTable_getNSelectedColumns
++ """
++ self.__checkSelf ()
++ return cspi.AccessibleTable_getNSelectedColumns(self.__item)
++
++ def getTableNSelectedRows (self):
++ """
++x Wraps cspi.AccessibleTable_getNSelectedRows
++ """
++ self.__checkSelf ()
++ return cspi.AccessibleTable_getNSelectedRows(self.__item)
++
++ def getTableRowAtIndex (self, index):
++ """
++ Wraps cspi.AccessibleTable_getRowAtIndex
++ """
++ self.__checkSelf ()
++ return cspi.AccessibleTable_getRowAtIndex(self.__item, index)
++
++ def getTableRowDescription (self, row):
++ """
++ Wraps cspi.AccessibleTable_getRowDescription
++ """
++ self.__checkSelf ()
++ return cspi.AccessibleTable_getRowDescription(self.__item, row)
++
++ def getTableRowExtentAt (self, row, column):
++ """
++ Wraps cspi.AccessibleTable_getRowExtentAt
++ """
++ self.__checkSelf ()
++ return cspi.AccessibleTable_getRowExtentAt(self.__item, row, column)
++
++ # def getTableRowHeader (self, row):
++ # def getTableSelectedRows (self, **selectedRows): - Not sure if the variable which is a pointer to a pointer is acceptable
++ # def getTableSelectedColumns (self, **selectedColumns): - Same issue as above
++ # def getTableSummary (self):
++
++ def isTableColumnSelected (self, column):
++ """
++ Wraps cspi.AccessibleTable_isColumnSelected
++ """
++ self.__checkSelf ()
++ return cspi.AccessibleTable_isColumnSelected(self.__item, column)
++
++ def isTableRowSelected (self, row):
++ """
++ Wraps cspi.AccessibleTable_isRowSelected
++ """
++ self.__checkSelf ()
++ return cspi.AccessibleTable_isRowSelected(self.__item, row)
++
++ def isTableSelected (self, row, column):
++ """
++ Wraps cspi.AccessibleTable_isSelected
++ """
++ self.__checkSelf ()
++ return cspi.AccessibleTable_isSelected(self.__item, row, column)
++
++
++cdef class Event (EventBase):
++ #def AccessibleEventListener* SPI_createAccessibleEventListener (AccessibleEventListenerCB callback, void *user_data)
++ #void AccessibleEventListener_unref (AccessibleEventListener *listener)
++ #SPIBoolean AccessibleEventListener_addCallback (AccessibleEventListener *listener, AccessibleEventListenerCB callback, void *user_data)
++ #SPIBoolean AccessibleEventListener_removeCallback (AccessibleEventListener *listener, AccessibleEventListenerCB callback)
++
++ #Accessible* AccessibleActiveDescendantChangedEvent_getActiveDescendant (AccessibleEvent *event)
++ #Accessible* AccessibleChildChangedEvent_getChildAccessible (AccessibleEvent *event)
++
++ def getDescriptionChangedEventDescriptionString (self):
++ self.__checkSelf()
++ return string(cspi.AccessibleDescriptionChangedEvent_getDescriptionString(self.__item))
++
++ def getNameChangedEventNameString (self):
++ self.__checkSelf()
++ return string(cspi.AccessibleNameChangedEvent_getNameString(self.__item))
++
++ # Accessible* AccessibleParentChangedEvent_getParentAccessible (AccessibleEvent *event)
++
++ def getTableCaptionChangedEventCaptionString(self):
++ self.__checkSelf()
++ return string(cspi.AccessibleTableCaptionChangedEvent_getCaptionString(self.__item))
++
++ def getTableColumnDescriptionChangedEventDescriptionString(self):
++ self.__checkSelf ()
++ return string(cspi.AccessibleTableColumnDescriptionChangedEvent_getDescriptionString(self.__item))
++
++ # Accessible* AccessibleTableHeaderChangedEvent_getHeaderAccessible (AccessibleEvent *event)
++
++ def getTableRowDescriptionChangedEventDescriptionString(self):
++ self.__checkSelf ()
++ return string(cspi.AccessibleTableRowDescriptionChangedEvent_getDescriptionString(self.__item))
++
++ #Accessible* AccessibleTableSummaryChangedEvent_getSummaryAccessible (AccessibleEvent *event)
++
++ def getTextChangedEventChangeString (self):
++ self.__checkSelf ()
++ return string(cspi.AccessibleTextChangedEvent_getChangeString(self.__item))
++
++ def getTextSelectionChangedEventSelectionString (self):
++ self.__checkSelf ()
++ return string(cspi.AccessibleTextSelectionChangedEvent_getSelectionString(self.__item))
++
++ def getWindowEventTitleString (self):
++ self.__checkSelf ()
++ return string(cspi.AccessibleWindowEvent_getTitleString(self.__item))
++
++class EventGenerator:
++ """
++ Wrapper layer around SPI_generateKeyboardEvent and
++ SPI_generateMouseEvent, used for generating input events.
++
++ Use AccessibleAction in preference to this.
++ """
++ def injectKeyboardString (self, string):
++ """
++ Inject a string as if it had been typed using an input method.
++ """
++ # Seems to only work if you do it one character at a time...
++ for char in string:
++ self.__generateKeystringEvent (str(char), cspi.SPI_KEY_STRING)
++
++ def __keyStringToKeyCode(self, keyString):
++ cdef Xlib.Display *display
++ display = Xlib.XOpenDisplay(NULL)
++
++ cdef Xlib.KeySym sym
++ sym = Xlib.XStringToKeysym(keyString)
++ cdef Xlib.KeyCode code
++ code = Xlib.XKeysymToKeycode(display, sym)
++
++ #print str(keyString), str(int(sym)), code
++
++ Xlib.XCloseDisplay(display)
++ return int(code)
++
++ def generateKeyCombo (self, keyStrings):
++ modifiers = keyStrings[:-1]
++ finalKey = keyStrings[-1]
++
++ for modifier in modifiers:
++ code = self.__keyStringToKeyCode(modifier)
++ self.generateKeyboardEvent(code, '', cspi.SPI_KEY_PRESS)
++
++ code = self.__keyStringToKeyCode(finalKey)
++ self.generateKeyboardEvent(code, '', cspi.SPI_KEY_PRESSRELEASE)
++
++ for modifier in modifiers:
++ code = self.__keyStringToKeyCode(modifier)
++ self.generateKeyboardEvent(code, '', cspi.SPI_KEY_RELEASE)
++
++
++ def __generateKeyvalEvent (self, keyval, synthType):
++ self.generateKeyboardEvent (keyval, None, synthType)
++
++ def __generateKeystringEvent (self, keystring, synthType):
++ self.generateKeyboardEvent (0, keystring, synthType)
++
++ def generateKeyboardEvent (self, keyval, keystring, synthType):
++ if not cspi.SPI_generateKeyboardEvent (keyval, keystring, synthType):
++ raise AtspiException("SPI_generateKeyboardEvent")
++
++ def click (self, x, y, button):
++ """
++ Synthesize a mouse button click at (x,y)
++ """
++ self.__generateButtonEvent (x, y, button, "c")
++
++ def doubleClick (self, x, y, button):
++ """
++ Synthesize a mouse button double-click at (x,y)
++ """
++ self.__generateButtonEvent (x, y, button, "d")
++
++ def press (self, x, y, button):
++ """
++ Synthesize a mouse button press at (x,y)
++ """
++ self.__generateButtonEvent (x, y, button, "p")
++
++ def release (self, x, y, button):
++ """
++ Synthesize a mouse button release at (x,y)
++ """
++ self.__generateButtonEvent (x, y, button, "r")
++
++ def absoluteMotion (self, x, y):
++ """
++ Synthesize mouse absolute motion to (x,y)
++ """
++ self.__generateEvent (x, y, "abs")
++
++ def relativeMotion (self, x, y):
++ """
++ Synthesize mouse relative motion of (x,y)
++ """
++ self.__generateEvent (x, y, "rel")
++
++ def drag (self, fromXY, toXY, button):
++ """
++ Synthesize a drag (press, move and release) from (x,y) to (x,y).
++
++ These are absolute screen coordinates
++ """
++ (x,y) = fromXY
++ self.press (x, y, button)
++
++ (x,y) = toXY
++ self.absoluteMotion(x,y)
++
++ self.release (x, y, button)
++
++ def __generateEvent (self, x, y, name):
++ """
++ Thin wrapper around SPI_generateMouseEvent.
++
++ Event names: b1p = button 1 press; b2r = button 2 release;
++ b3c = button 3 click; b2d = button 2 double-click;
++ abs = absolute motion; rel = relative motion.
++ """
++ if not cspi.SPI_generateMouseEvent (x, y, name):
++ raise AtspiException("Error generating mouse event")
++
++ def __generateButtonEvent (self, x, y, button, suffix):
++ self.__generateEvent (x, y, self.__generateButtonName(button)+suffix)
++
++ def __generateButtonName(self, button):
++ if button==1:
++ return "b1"
++ elif button==2:
++ return "b2"
++ elif button==3:
++ return "b3"
++ else: raise ValueError, "Unknown button"
++
++# We use this C function to marshal a call to a python function. The Python callback
++# function is installed as the userdata of this C callback function. See the
++# "cheesefinder" demo in the Pyrex sources.
++# We ignore the "const"ness of the AccessibleEvent
++cdef void marshalAccessibleEventCallback (cspi.AccessibleEvent *event, void *python_fn) except *:
++ e = Event()
++ EventBase.__setItem(e, event)
++ (<object>python_fn) (e)
++
++cdef class EventListener:
++ """
++ Wrapper around the low-level cspi.AccessibleEventListener_ functions,
++ giving an OO-style API.
++ """
++ cdef cspi.AccessibleEventListener *__item
++ cdef public object eventTypes
++
++ def __init__ (self, callback, eventTypes):
++ """
++ Registers a python callback function to be called.
++ The callback is expected to have one input, of type atspi.Event, and no return value.
++ See documentation of SPI_registerGlobalEventListener for the event names
++ """
++ self.eventTypes = eventTypes
++ self.__item = cspi.SPI_createAccessibleEventListener (marshalAccessibleEventCallback, <void*>callback)
++ for eventType in self.eventTypes:
++ #char *e
++ e = eventType
++ if not cspi.SPI_registerGlobalEventListener (self.__item, e):
++ raise AtspiException("Unable to register event listener")
++
++ def deregister(self):
++ for eventType in self.eventTypes:
++ cspi.SPI_deregisterGlobalEventListener(self.__item, eventType)
++
++ def __dealloc__ (self):
++ if self.__item != NULL:
++ self.deregister()
++ cspi.AccessibleEventListener_unref (self.__item)
++
++ def __checkSelf (self):
++ if self.__item == NULL:
++ raise AttributeError, "__item must not be NULL"
++
++cdef class DeviceEvent:
++ """
++ Wrapper around a cspi.AccessibleDeviceEvent
++ """
++ cdef cspi.AccessibleDeviceEvent *__item
++ cdef public object keyID
++ cdef public object keyCode
++ cdef public object keyString
++ cdef public object timeStamp
++ cdef public object type
++ cdef public object modifiers
++ cdef public object isText
++
++ def __new__ (self):
++ self.__item = NULL
++
++ cdef bool __setItem (self, cspi.AccessibleDeviceEvent *obj):
++ if obj != NULL:
++ self.__item = obj
++ self.keyID = self.__item.keyID
++ self.keyCode = self.__item.keycode
++ self.keyString = self.__item.keystring
++ self.timeStamp = self.__item.timestamp
++ self.type = self.__item.type
++ self.modifiers = self.__item.modifiers
++ if self.__item.is_text: self.isText = True
++ else: self.isText = False
++ return True
++ else:
++ return False
++
++ def __checkSelf (self):
++ if self.__item == NULL:
++ raise AttributeError, "__item must not be NULL"
++
++# def __dealloc__ (self):
++# if self.__item != NULL:
++# cspi.AccessibleDeviceEvent_unref (self.__item)
++
++
++cdef cspi.SPIBoolean marshalAccessibleDeviceEventCallback (cspi.AccessibleDeviceEvent *event, void *python_fn) except 1:
++ k = DeviceEvent()
++ #k.__setItem(event)
++ DeviceEvent.__setItem(k, event)
++ k.__checkSelf()
++ (<object>python_fn) (k)
++ return False
++
++cdef class DeviceListener:
++ """
++ Wrapper around the low-level cspi.AccessibleDeviceListener_ functions,
++ giving an OO-style API.
++ """
++ cdef cspi.AccessibleDeviceListener *__item
++ cdef public object modMasks
++
++ def __init__ (self, callback, eventMask = cspi.SPI_KEY_PRESSED | cspi.SPI_KEY_RELEASED):
++ """
++ Registers a python callback function to be called.
++
++ eventMask may be one of the following:
++ key pressed: 1
++ key released: 2
++ key pressed or released (default): 3
++ """
++ self.__item = cspi.SPI_createAccessibleDeviceListener (marshalAccessibleDeviceEventCallback, <void*>callback)
++ cdef cspi.AccessibleKeySet *keySet
++ keySet = SPI_KEYSET_ALL_KEYS
++ self.modMasks = []
++ cdef short int modMask
++ syncType = SPI_KEYLISTENER_SYNCHRONOUS | SPI_KEYLISTENER_CANCONSUME
++ #syncType = SPI_KEYLISTENER_NOSYNC
++ for modMask from 0 <= modMask < (1 << 8):
++ self.modMasks.append(modMask)
++ desc = "keySet "+str(<int> keySet)+" modMask "+str(modMask)+" eventMask "+str(eventMask)+" syncType "+str(syncType)
++ desc = str(desc)
++ if not cspi.SPI_registerAccessibleKeystrokeListener (self.__item, keySet, modMask, eventMask, syncType):
++ raise AtspiException("Unable to register keystroke listener", desc)
++
++ def deregister(self):
++ if self.__item != NULL:
++ for modMask in self.modMasks:
++ cspi.SPI_deregisterAccessibleKeystrokeListener(self.__item, modMask)
++
++ def __dealloc__ (self):
++ if self.__item != NULL:
++ self.deregister()
++ cspi.AccessibleDeviceListener_unref (self.__item)
++
++ def __checkSelf (self):
++ if self.__item == NULL:
++ raise AttributeError, "__item must not be NULL"
++
++
++# vim: sw=4 ts=4 sts=4 noet ai
diff --git a/staging/twisted/PKGBUILD b/staging/twisted/PKGBUILD
new file mode 100644
index 000000000..35bf73958
--- /dev/null
+++ b/staging/twisted/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 168774 2012-10-15 21:19:51Z eric $
+# Maintainer : Ionut Biru <ibiru@archlinux.org>
+# Contributor: Juergen Hoetzel <juergen@archlinux.org>
+# Contributor: Douglas Soares de Andrade <douglas@archlinux.org>
+
+pkgname=twisted
+pkgver=12.2.0
+pkgrel=2
+pkgdesc="Asynchronous networking framework written in Python."
+arch=('i686' 'x86_64')
+url="http://twistedmatrix.com/"
+license=('MIT')
+depends=('python2-crypto' 'python2-zope-interface')
+optdepends=('python2-pyopenssl'
+ 'python2-soappy: for twisted.web.soap'
+ 'python2-pyasn1: for using conch'
+ 'pygtk: for using manhole'
+ 'tk: for using tkconch')
+install=twisted.install
+source=(http://twistedmatrix.com/Releases/Twisted/${pkgver%.*}/Twisted-$pkgver.tar.bz2)
+sha1sums=('c51834c1270e7a4bb0de9190056e4317413920f9')
+
+build() {
+ cd "$srcdir/Twisted-$pkgver"
+ python2 setup.py build
+}
+
+package() {
+ cd "$srcdir/Twisted-$pkgver"
+ python2 setup.py install --prefix=/usr --root="$pkgdir" --optimize=1
+ install -D -m644 LICENSE "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
+
+ sed -i 's:^#!.*bin.*python:#!/usr/bin/python2:' \
+ "$pkgdir"/usr/lib/python2.7/site-packages/twisted/trial/test/scripttest.py \
+ "$pkgdir"/usr/lib/python2.7/site-packages/twisted/mail/test/pop3testserver.py \
+ "$pkgdir"/usr/lib/python2.7/site-packages/twisted/python/test/pullpipe.py
+}
diff --git a/staging/twisted/twisted.install b/staging/twisted/twisted.install
new file mode 100644
index 000000000..8e93ffd3c
--- /dev/null
+++ b/staging/twisted/twisted.install
@@ -0,0 +1,11 @@
+post_install() {
+ python2 -c 'from twisted.plugin import IPlugin, getPlugins; list(getPlugins(IPlugin))' >/dev/null 2>&1 || return 1
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ find /usr/lib/python2.7/site-packages/twisted/plugins -name dropin.cache | xargs -r rm -f
+}
diff --git a/staging/vde2/PKGBUILD b/staging/vde2/PKGBUILD
new file mode 100644
index 000000000..b4646d06e
--- /dev/null
+++ b/staging/vde2/PKGBUILD
@@ -0,0 +1,50 @@
+# $Id: PKGBUILD 168790 2012-10-16 00:34:59Z allan $
+# Contributor: Sergej Pupykin
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+pkgname=vde2
+pkgver=2.3.2
+pkgrel=2
+pkgdesc="Virtual Distributed Ethernet for emulators like qemu"
+url="http://sourceforge.net/projects/vde/"
+license=("GPL" "LGPL" "CUSTOM")
+arch=('i686' 'x86_64')
+depends=('bash' 'libpcap' 'openssl')
+makedepends=('python')
+backup=(etc/conf.d/vde)
+source=(http://downloads.sourceforge.net/vde/$pkgname-$pkgver.tar.bz2
+ dhcpd.conf.sample
+ iptables.rules.sample
+ vde-config.sample
+ vde-connection.sample
+ vde.conf
+ vde.rc)
+install=vde2.install
+options=(!libtool !makeflags)
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ ./configure --prefix=/usr --sysconfdir=/etc --libexecdir=/usr/lib/vde2 \
+ --enable-experimental
+ make
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ make prefix=$pkgdir/usr sysconfdir=$pkgdir/etc libexecdir=$pkgdir/usr/lib/vde2 install
+ install -D -m 755 ../vde.rc $pkgdir/etc/rc.d/vde
+ install -D -m 644 ../vde.conf $pkgdir/etc/conf.d/vde
+ install -D -m 644 ../vde-config.sample $pkgdir/etc/vde/vde-config.sample
+ install -D -m 644 ../vde-connection.sample $pkgdir/etc/vde/vde-connection.sample
+ install -D -m 644 ../dhcpd.conf.sample $pkgdir/usr/share/vde2/dhcpd.conf.sample
+ install -D -m 644 ../iptables.rules.sample $pkgdir/usr/share/vde2/iptables.rules.sample
+ # install slirp license
+ install -D -m 644 COPYING.slirpvde $pkgdir/usr/share/licenses/vde2/COPYING.slirpvde
+}
+
+md5sums=('46fbc5f97f03dc517aa3b2c9d9ea6628'
+ '7d9bc56d2e561d849e915000d1c0f269'
+ 'a920123fc620bcedbccb703a8d1bdc55'
+ 'cb8ace28e8efd4dad128be4be71b3b07'
+ '63033c33565e2030541c5e05e9d9b063'
+ 'a22730f051f4840da4a3162a88ff8156'
+ '6c7dc01bc2f039f0ff1682ee70d3d1da')
diff --git a/staging/vde2/dhcpd.conf.sample b/staging/vde2/dhcpd.conf.sample
new file mode 100644
index 000000000..565a78b27
--- /dev/null
+++ b/staging/vde2/dhcpd.conf.sample
@@ -0,0 +1,12 @@
+ddns-update-style none;
+
+subnet 192.168.254.0 netmask 255.255.255.0 {
+ range 192.168.254.1 192.168.254.253;
+ option routers 192.168.254.254;
+ option domain-name "virtual.example.com";
+ # find your DNS servers from /etc/resolv.conf
+ # otherwise only pure IP addresses will work
+ option domain-name-servers 192.168.254.254;
+ option broadcast-address 192.168.254.255;
+ default-lease-time 86400;
+}
diff --git a/staging/vde2/iptables.rules.sample b/staging/vde2/iptables.rules.sample
new file mode 100644
index 000000000..ac712ee21
--- /dev/null
+++ b/staging/vde2/iptables.rules.sample
@@ -0,0 +1,5 @@
+*filter
+-A INPUT -i tun -j ACCEPT
+-A FORWARD -s 192.168.254.0/255.255.255.0 -j ACCEPT
+*nat
+-A POSTROUTING -s 192.168.254.0/24 -j MASQUERADE
diff --git a/staging/vde2/vde-config.sample b/staging/vde2/vde-config.sample
new file mode 100644
index 000000000..c5a5b7d88
--- /dev/null
+++ b/staging/vde2/vde-config.sample
@@ -0,0 +1,35 @@
+# Set options vde_switch program
+# To activate this vde profile add it to /etc/conf.d/vde
+
+# Global options
+VDE_NUMPORTS="32" # Number of ports (default 32)
+VDE_HUB="no" # [yes|no] Make the switch act as a hub
+VDE_FSTP="no" # [yes|no] Activate the fast spanning tree protocol
+VDE_MAC="" # Set the Switch MAC address
+VDE_PRIOTIRY="" # Set the priority for FST (MAC extension)
+VDE_HASHSIZE="" # Hash table size
+
+# Options from datasock module
+VDE_SOCK="/var/run/vde/sample.sock" # control directory pathname
+VDE_SOCK_MODE="660" # Standard access mode for comm sockets (octal)
+VDE_SOCK_GROUP="root" # Group owner for comm sockets
+
+# Options from consmgmt module
+VDE_MANAGEMENT_SOCK="/var/run/vde/sample.mgmt" # path of the management UNIX socket
+VDE_MANAGEMENT_SOCK_MODE="660" # management UNIX socket access mode (octal)
+
+# Other options to parse to vde_switch
+VDE_OPTIONS=""
+
+# VDE with internet support
+# You can use either tuntap method or slirpvde method.
+
+# Options from tuntap module
+VDE_TAP="" # Enable routing through TAP tap interface (comma separated array eg.:"tap0,tap1").
+
+# slirpvde daemon support
+SLIRP="no" # [yes|no] enable/disable SLIRP daemon support
+SLIRP_DHCP="no" # [yes|no] turn on the DHCP server for the network autoconfiguration of all the units connected to the VDE
+SLIRP_NETWORK="" # specify the network address (default 10.0.2.0)
+# other options to parse to slirpvde
+SLIRP_OPTIONS="" \ No newline at end of file
diff --git a/staging/vde2/vde-connection.sample b/staging/vde2/vde-connection.sample
new file mode 100644
index 000000000..4a75e1f52
--- /dev/null
+++ b/staging/vde2/vde-connection.sample
@@ -0,0 +1,6 @@
+# You can add vde switch connections below
+# just without the # at the beginning:
+# vde_plug /var/run/vde/sample.sock = vde_plug /var/run/vde/sample2.sock
+# or if hosts are different use this syntax:
+# vde_plug /var/run/vde/sample.sock = ssh host2 vde_plug /var/run/vde/sample.sock
+
diff --git a/staging/vde2/vde.conf b/staging/vde2/vde.conf
new file mode 100644
index 000000000..bc61dceda
--- /dev/null
+++ b/staging/vde2/vde.conf
@@ -0,0 +1,11 @@
+# Set options for a vde daemon script
+#
+# Array for your vde config files, eg.: "internal-net external-net"
+# You need a config file in /etc/vde/ with the same name.
+# Sample config file provided: /etc/vde/vde-config.sample
+VDE_CONFIG=""
+
+# Array for your dpipe connections, eg.: "connect-switches"
+# You need a config file in /etc/vde/ with the same name.
+# Sample config file provided: /etc/vde/vde-connection.sample
+VDE_CONNECTION="" \ No newline at end of file
diff --git a/staging/vde2/vde.rc b/staging/vde2/vde.rc
new file mode 100755
index 000000000..b368f9955
--- /dev/null
+++ b/staging/vde2/vde.rc
@@ -0,0 +1,113 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+. /etc/conf.d/vde
+
+case "$1" in
+ start)
+ # bring up all defined profiles
+ for i in $VDE_CONFIG; do
+ [ -e /etc/vde/$i ] && . /etc/vde/$i
+ stat_busy "Starting vde_switch $i"
+ # get options from profile
+ [ -n "$VDE_NUMPORTS" ] && OPTIONS="-n $VDE_NUMPORTS"
+ [ "$VDE_HUB" = "yes" ] && OPTIONS="$OPTIONS -x"
+ [ "$VDE_FSTP" = "yes" ] && OPTIONS="$OPTIONS -F"
+ [ -n "$VDE_MAC" ] && OPTIONS="$OPTIONS --macaddr $VDE_MAC"
+ [ -n "$VDE_PRIORITY" ] && OPTIONS="$OPTIONS --priority $VDE_PRIORITY"
+ [ -n "$VDE_HASH" ] && OPTIONS="$OPTIONS --hashsize $VDE_HASH"
+ [ -n "$VDE_SOCK" ] && OPTIONS="$OPTIONS -s $VDE_SOCK"
+ [ -n "$VDE_SOCK_MODE" ] && OPTIONS="$OPTIONS -m $VDE_SOCK_MODE"
+ [ -n "$VDE_SOCK_GROUP" ] && OPTIONS="$OPTIONS -g $VDE_SOCK_GROUP"
+ [ -n "$VDE_MANAGEMENT_SOCK" ] && OPTIONS="$OPTIONS -M $VDE_MANAGEMENT_SOCK"
+ [ -n "$VDE_MANAGEMENT_SOCK_MODE" ] && OPTIONS="$OPTIONS --mgmtmode $VDE_MANAGEMENT_SOCK_MODE"
+ [ -n "$VDE_TAP" ] && OPTIONS="$OPTIONS -t $VDE_TAP"
+ [ -n "$VDE_OPTIONS" ] && OPTIONS="$OPTIONS $VDE_OPTIONS"
+ vde_switch $OPTIONS -p /var/run/vde-$i.pid -daemon &>/dev/null
+ [ -n "$VDE_SOCK" -a -n "$VDE_SOCK_GROUP" ] && chgrp "$VDE_SOCK_GROUP" "$VDE_SOCK"
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ stat_done
+ fi
+ if [ "$SLIRP" = "yes" ]; then
+ stat_busy "Starting slirpvde for $i"
+ [ "$SLIRP_DHCP" = "yes" ] && SP_OPTIONS="-D"
+ [ -n "$SLIRP_NETWORK" ] && SP_OPTIONS="$SP_OPTIONS -n $SLIRP_NETWORK"
+ [ -n "$SLIRP_OPTIONS" ] && SP_OPTIONS="$SP_OPTIONS $SLIRP_OPTIONS"
+ [ -n "$VDE_SOCK" ] && SP_OPTIONS="$SP_OPTIONS -s $VDE_SOCK"
+ [ -n "$VDE_SOCK_MODE" ] && SP_OPTIONS="$SP_OPTIONS -m $VDE_SOCK_MODE"
+ [ -n "$VDE_SOCK_GROUP" ] && SP_OPTIONS="$SP_OPTIONS -g $VDE_SOCK_GROUP"
+ slirpvde $SP_OPTIONS -p /var/run/slirpvde-$i.pid -daemon &>/dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ stat_done
+ fi
+ unset OPTIONS
+ unset SP_OPTIONS
+ fi
+ done
+ for i in $VDE_CONNECTION; do
+ # connect specified vde_switches
+ if [ "$(grep ^vde_plug /etc/vde/$i)" ]; then
+ stat_busy "Connecting VDE switches $i together..."
+ while read j; do
+ switch="$(echo $j | grep ^vde_plug)"
+ [ -n "$switch" ] && (dpipe $switch &)
+ done </etc/vde/$i
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ stat_done
+ fi
+ fi
+ done
+ add_daemon vde
+ ;;
+ stop)
+ # kill vde_plug if switches are connected
+ [ -n "$VDE_CONNECTION" ] && killall vde_plug >/dev/null 2>&1
+ for i in $VDE_CONFIG; do
+ [ -e /etc/vde/$i ] && . /etc/vde/$i
+ if [ "$SLIRP" = "yes" ]; then
+ stat_busy "Stopping slirpvde for $i"
+ kill $(cat /var/run/slirpvde-$i.pid) &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ stat_done
+ fi
+ rm /var/run/slirpvde-$i.pid &> /dev/null
+ fi
+ stat_busy "Stopping vde_switch $i"
+ kill $(cat /var/run/vde-$i.pid) &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ stat_done
+ fi
+ rm /var/run/vde-$i.pid &> /dev/null
+ stat_busy "Removing $i vde sockets"
+ rm -rf $VDE_SOCK $VDE_MANAGEMENT_SOCK
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ stat_done
+ fi
+ done
+ unset OPTIONS
+ unset SP_OPTIONS
+ [ -e /var/run/vde/gmon.out ] && rm /var/run/vde/gmon.out
+ rm_daemon vde
+ ;;
+ restart)
+ $0 stop
+ sleep 3
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/staging/vde2/vde2.install b/staging/vde2/vde2.install
new file mode 100644
index 000000000..74e1710ff
--- /dev/null
+++ b/staging/vde2/vde2.install
@@ -0,0 +1,10 @@
+post_install() {
+ echo "Change /etc/conf.d/vde to your needs."
+ echo "vde config files should be placed in /etc/vde, sample files are provided."
+ echo "iptables and dhcpd sample files have been installed to '/usr/share/vde2'."
+ echo "Merge those examples, if needed to the according config files."
+}
+
+post_upgrade() {
+ post_install $1
+}
diff --git a/staging/xfce4-session/PKGBUILD b/staging/xfce4-session/PKGBUILD
index c3fccce41..1a320ff4a 100644
--- a/staging/xfce4-session/PKGBUILD
+++ b/staging/xfce4-session/PKGBUILD
@@ -1,10 +1,10 @@
-# $Id: PKGBUILD 168729 2012-10-14 23:01:20Z foutrelis $
+# $Id: PKGBUILD 168748 2012-10-15 13:21:21Z foutrelis $
# Maintainer: Evangelos Foutras <evangelos@foutrelis.com>
# Contributor: tobias <tobias funnychar archlinux.org>
pkgname=xfce4-session
pkgver=4.10.0
-pkgrel=5
+pkgrel=6
pkgdesc="A session manager for Xfce"
arch=('i686' 'x86_64')
url="http://www.xfce.org/"
@@ -39,7 +39,6 @@ build() {
--libexecdir=/usr/lib/xfce4 \
--localstatedir=/var \
--disable-static \
- --disable-legacy-sm \
--disable-debug
make
}
diff --git a/testing/e2fsprogs/PKGBUILD b/testing/e2fsprogs/PKGBUILD
index b9eafd672..2b9b9f152 100644
--- a/testing/e2fsprogs/PKGBUILD
+++ b/testing/e2fsprogs/PKGBUILD
@@ -1,9 +1,9 @@
-# $Id: PKGBUILD 164382 2012-07-31 20:39:10Z ronald $
+# $Id: PKGBUILD 168762 2012-10-15 19:04:27Z ronald $
# Maintainer: Ronald van Haren <ronald.archlinux.org>
# Contributor: judd <jvinet@zeroflux.org>
pkgname=e2fsprogs
-pkgver=1.42.5
+pkgver=1.42.6
pkgrel=1
pkgdesc="Ext2/3/4 filesystem utilities"
arch=('i686' 'x86_64')
@@ -16,7 +16,7 @@ source=("http://downloads.sourceforge.net/sourceforge/${pkgname}/${pkgname}-${pk
'MIT-LICENSE')
backup=('etc/mke2fs.conf')
install=${pkgname}.install
-sha1sums=('41bc6d247238eac65864193e6de941956da493cb'
+sha1sums=('cd05cd4205a00d01a6da821660cff386788e9be3'
'f4a0d5b0cdb980e3fedd6f5e7dde0b0ffb7bbdfb')
build() {
diff --git a/testing/iproute2/PKGBUILD b/testing/iproute2/PKGBUILD
index 425808741..42f4a58fa 100644
--- a/testing/iproute2/PKGBUILD
+++ b/testing/iproute2/PKGBUILD
@@ -1,15 +1,15 @@
-# $Id: PKGBUILD 165268 2012-08-14 18:56:21Z ronald $
+# $Id: PKGBUILD 168760 2012-10-15 18:55:23Z ronald $
# Maintainer: Ronald van Haren <ronald.archlinux.org>
# Contributor: Judd Vinet <jvinet@zeroflux.org>
pkgname=iproute2
-pkgver=3.5.1
+pkgver=3.6.0
pkgrel=1
pkgdesc="IP Routing Utilities"
arch=('i686' 'x86_64')
license=('GPL2')
url="http://www.linuxfoundation.org/collaborate/workgroups/networking/iproute2"
-depends=('glibc' 'db')
+depends=('glibc' 'db' 'iptables')
makedepends=('linux-atm')
optdepends=('linux-atm: ATM support')
provides=('iproute')
@@ -20,7 +20,7 @@ backup=('etc/iproute2/ematch_map' 'etc/iproute2/rt_dsfield' 'etc/iproute2/rt_pro
'etc/iproute2/rt_realms' 'etc/iproute2/rt_scopes' 'etc/iproute2/rt_tables')
source=(http://www.kernel.org/pub/linux/utils/net/$pkgname/$pkgname-$pkgver.tar.xz
iproute2-fhs.patch)
-sha1sums=('461f3e97d84264a597176de3ba94633114959df5'
+sha1sums=('6fa16fd2158d0f289ef454cad46555ead1c33c2d'
'35b8cf2dc94b73eccad427235c07596146cd6f6c')
build() {
diff --git a/testing/iptables/PKGBUILD b/testing/iptables/PKGBUILD
index f6d2c8e13..a97879edc 100644
--- a/testing/iptables/PKGBUILD
+++ b/testing/iptables/PKGBUILD
@@ -1,9 +1,9 @@
-# $Id: PKGBUILD 164378 2012-07-31 20:17:23Z ronald $
+# $Id: PKGBUILD 168758 2012-10-15 18:45:48Z ronald $
# Maintainer: Ronald van Haren <ronald.archlinux.org>
# Contributor: Thomas Baechler <thomas@archlinux.org>
pkgname=iptables
-pkgver=1.4.15
+pkgver=1.4.16.2
pkgrel=1
pkgdesc='Linux kernel packet control tool'
arch=('i686' 'x86_64')
@@ -28,7 +28,7 @@ source=("http://www.iptables.org/projects/iptables/files/${pkgname}-${pkgver}.ta
ip6tables.service
iptables-flush)
backup=(etc/conf.d/iptables)
-sha1sums=('56ab3b143af2ad443c9652db3a38ef8869cd2207'
+sha1sums=('6fd368c4f6c31752011a716cccd951601157a493'
'5bb6fa526665cdd728c26f0f282f5a51f220cf88'
'2db68906b603e5268736f48c8e251f3a49da1d75'
'83b3363878e3660ce23b2ad325b53cbd6c796ecf'
@@ -43,7 +43,6 @@ sha1sums=('56ab3b143af2ad443c9652db3a38ef8869cd2207'
'5c4eb4ea88c302e8ff98f435a11dd59b00f4d8b9'
'f1f16f44c6a5547b6f251d13007fe6585761e8b0'
'e7abda09c61142121b6695928d3b71ccd8fdf73a')
-
build() {
cd "${srcdir}/${pkgname}-${pkgver}"
diff --git a/testing/lvm2/PKGBUILD b/testing/lvm2/PKGBUILD
index 0467d11bd..184226746 100644
--- a/testing/lvm2/PKGBUILD
+++ b/testing/lvm2/PKGBUILD
@@ -1,10 +1,10 @@
-# $Id: PKGBUILD 165057 2012-08-09 22:06:25Z eric $
+# $Id: PKGBUILD 168776 2012-10-15 21:23:50Z thomas $
# Maintainer: Eric Bélanger <eric@archlinux.org>
# Maintainer: Thomas Bächler <thomas@archlinux.org>
pkgbase=lvm2
pkgname=('lvm2' 'device-mapper')
-pkgver=2.02.97
+pkgver=2.02.98
pkgrel=1
arch=('i686' 'x86_64')
url="http://sourceware.org/lvm2/"
@@ -17,13 +17,13 @@ source=(ftp://sources.redhat.com/pub/lvm2/LVM2.${pkgver}.tgz{,.asc}
lvm.service
lvm-on-crypt.service
lvm2.conf)
-sha1sums=('ca92d976628246745f0981d1514a79a4a8e32314'
- '9f0c6047fe3c275db7af20f383bd41744fcafc33'
+sha1sums=('077425115b164c335a9930df745943e9ea666a8a'
+ '4713c852fc668e6fbd36ff7c6b5675b10a95a0f8'
'3e1680f9b76ce9150d08865d99db90fd15532271'
'cedc9948123c870f9c5aa3357d0075b41a9c8135'
'f6a554eea9557c3c236df2943bb6e7e723945c41'
- '17df8689630a77e46899a8bd56997d9db896d5af'
- '7336aa1d53db9c843916b2cbb433434e4e354a24'
+ 'edce6b6e8d03f7cbad4bfff49fab01d618415be8'
+ '652fb58dd7676caa0515f0a06d537744e071c6cf'
'ccefad65fde3d50331a42b0e90a1539dc7c8b9e4')
build() {
diff --git a/testing/lvm2/lvm-on-crypt.service b/testing/lvm2/lvm-on-crypt.service
index 4ade6c5b0..346c5ac8e 100644
--- a/testing/lvm2/lvm-on-crypt.service
+++ b/testing/lvm2/lvm-on-crypt.service
@@ -7,7 +7,7 @@ Before=shutdown.target
Conflicts=shutdown.target
[Service]
-ExecStart=/sbin/vgchange --sysinit --available y
+ExecStart=/sbin/vgchange --available y
Type=oneshot
TimeoutSec=0
RemainAfterExit=yes
diff --git a/testing/lvm2/lvm.service b/testing/lvm2/lvm.service
index 277d5a773..14269b1be 100644
--- a/testing/lvm2/lvm.service
+++ b/testing/lvm2/lvm.service
@@ -7,7 +7,7 @@ Before=basic.target shutdown.target
Conflicts=shutdown.target
[Service]
-ExecStart=/sbin/vgchange --sysinit --available y
+ExecStart=/sbin/vgchange --available y
Type=oneshot
TimeoutSec=0
RemainAfterExit=yes