diff options
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 |