summaryrefslogtreecommitdiff
path: root/community
diff options
context:
space:
mode:
Diffstat (limited to 'community')
-rw-r--r--community/abe/PKGBUILD42
-rw-r--r--community/abe/abe.desktop8
-rw-r--r--community/abe/abe.patch24
-rw-r--r--community/alex/PKGBUILD8
-rw-r--r--community/avr-gcc/PKGBUILD8
-rw-r--r--community/bullet/PKGBUILD19
-rw-r--r--community/connman/PKGBUILD8
-rw-r--r--community/devil/PKGBUILD4
-rw-r--r--community/enet/PKGBUILD6
-rw-r--r--community/glabels/PKGBUILD17
-rw-r--r--community/gtk2hs-buildtools/0001-fix-for-ghc-7.6.1-changes.patch69
-rw-r--r--community/gtk2hs-buildtools/PKGBUILD15
-rw-r--r--community/haddock/0001-fix-incorrect-types-in-documentation-haddock.patch33
-rw-r--r--community/haddock/PKGBUILD37
-rw-r--r--community/happy/PKGBUILD16
-rw-r--r--community/haskell-bytestring-show/PKGBUILD14
-rw-r--r--community/haskell-cairo/PKGBUILD6
-rw-r--r--community/haskell-dataenc/0001-update-build-deps-for-ghc-7.6.1.patch25
-rw-r--r--community/haskell-dataenc/PKGBUILD16
-rw-r--r--community/haskell-extensible-exceptions/PKGBUILD39
-rw-r--r--community/haskell-extensible-exceptions/haskell-extensible-exceptions.install19
-rw-r--r--community/haskell-ghc-paths/PKGBUILD5
-rw-r--r--community/haskell-glib/0001-compatibility-with-ghc-7.6.1.patch55
-rw-r--r--community/haskell-glib/PKGBUILD17
-rw-r--r--community/haskell-gtk/PKGBUILD48
-rw-r--r--community/haskell-gtk/ghc-7.6.1.patch574
-rw-r--r--community/haskell-haskeline/PKGBUILD8
-rw-r--r--community/haskell-hslogger/PKGBUILD6
-rw-r--r--community/haskell-html/PKGBUILD4
-rw-r--r--community/haskell-pango/PKGBUILD45
-rw-r--r--community/haskell-quickcheck/0001-update-code-to-support-extensible-exceptions-no-long.patch50
-rw-r--r--community/haskell-quickcheck/PKGBUILD7
-rw-r--r--community/haskell-regex-base/PKGBUILD4
-rw-r--r--community/haskell-regex-compat/PKGBUILD4
-rw-r--r--community/haskell-regex-posix/PKGBUILD4
-rw-r--r--community/haskell-stm/PKGBUILD6
-rw-r--r--community/haskell-syb/PKGBUILD6
-rw-r--r--community/haskell-tar/0001-update-changed-time-code-for-ghc-7.6.1.patch50
-rw-r--r--community/haskell-tar/PKGBUILD16
-rw-r--r--community/haskell-terminfo/PKGBUILD10
-rw-r--r--community/haskell-utf8-string/PKGBUILD6
-rw-r--r--community/haskell-x11-xft/PKGBUILD6
-rw-r--r--community/haskell-x11/PKGBUILD8
-rw-r--r--community/haskell-xhtml/PKGBUILD53
-rw-r--r--community/hedgewars/PKGBUILD15
-rw-r--r--community/hitori/PKGBUILD8
-rw-r--r--community/lazarus/PKGBUILD8
-rw-r--r--community/libcryptui/PKGBUILD6
-rw-r--r--community/libnetfilter_acct/PKGBUILD15
-rw-r--r--community/libnetfilter_conntrack/PKGBUILD28
-rw-r--r--community/libnetfilter_queue/PKGBUILD27
-rw-r--r--community/libnfnetlink/PKGBUILD21
-rw-r--r--community/lilypond/PKGBUILD6
-rw-r--r--community/oath-toolkit/PKGBUILD9
-rw-r--r--community/pam_mount/PKGBUILD15
-rw-r--r--community/pam_mount/pam_mount-git.patch1345
-rw-r--r--community/puzzles/PKGBUILD4
-rw-r--r--community/qtractor/PKGBUILD6
-rw-r--r--community/rawtherapee/PKGBUILD5
-rw-r--r--community/rsyslog/PKGBUILD10
-rw-r--r--community/rsyslog/rsyslog.conf.d2
-rw-r--r--community/scratch/PKGBUILD7
-rw-r--r--community/scratch/scratch.install8
-rw-r--r--community/scummvm/PKGBUILD28
-rw-r--r--community/sfk/PKGBUILD6
-rw-r--r--community/spring/PKGBUILD4
-rw-r--r--community/sysstat/PKGBUILD10
-rw-r--r--community/sysstat/sysstat.service5
-rw-r--r--community/ulogd/PKGBUILD65
-rw-r--r--community/ulogd/ulogd.conf20
-rw-r--r--community/ulogd/ulogd.logrotate10
-rw-r--r--community/ulogd/ulogd.rc54
-rw-r--r--community/ulogd/ulogd.service5
-rw-r--r--community/warsow/PKGBUILD8
-rw-r--r--community/wt/PKGBUILD12
-rw-r--r--community/xmobar/0001-Update-usage-of-catch-to-catchIOError-since-catch-ha.patch34
-rw-r--r--community/xmobar/PKGBUILD28
-rw-r--r--community/xmonad-contrib/PKGBUILD6
-rw-r--r--community/xmonad/PKGBUILD9
79 files changed, 2911 insertions, 363 deletions
diff --git a/community/abe/PKGBUILD b/community/abe/PKGBUILD
new file mode 100644
index 000000000..9f646794f
--- /dev/null
+++ b/community/abe/PKGBUILD
@@ -0,0 +1,42 @@
+# Maintainer: jsteel <mail at jsteel dot org>
+# Contributor: Daniel J Griffiths <ghost1227@archlinux.us>
+
+pkgname=abe
+pkgver=1.1
+pkgrel=9
+pkgdesc="A scrolling, platform-jumping, key-collecting, ancient pyramid exploring game"
+arch=('i686' 'x86_64')
+url="http://abe.sourceforge.net"
+license=('GPL')
+depends=('sdl_mixer')
+source=(http://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.gz
+ $pkgname.patch
+ $pkgname.desktop)
+md5sums=('5537920e1746708e1a631d84d3500f5c'
+ '74802a45e21b59d3e3d34f35ade252a4'
+ '6ff678e781290bff780da154a32b9767')
+
+build() {
+ cd "$srcdir"/$pkgname-$pkgver
+
+ patch -Np1 -i "$srcdir"/$pkgname.patch
+
+ ./configure --prefix=/usr
+
+ make
+}
+
+package() {
+ cd "$srcdir"/$pkgname-$pkgver
+
+ make DESTDIR="$pkgdir" install
+
+ install -Dm644 "$srcdir"/$pkgname.desktop "$pkgdir"/usr/share/applications/$pkgname.desktop
+ install -dm755 "$pkgdir"/usr/share/$pkgname/images
+
+ cp -r images/ maps/ sounds/ "$pkgdir"/usr/share/$pkgname/
+
+ cd "$pkgdir"/usr/share/$pkgname/images
+ tar -xf "$srcdir"/$pkgname-$pkgver/images/images.tar abe.bmp
+ chown root:root abe.bmp
+}
diff --git a/community/abe/abe.desktop b/community/abe/abe.desktop
new file mode 100644
index 000000000..8c452e7af
--- /dev/null
+++ b/community/abe/abe.desktop
@@ -0,0 +1,8 @@
+[Desktop Entry]
+Type=Application
+Name=Abe
+GenericName=Platform Game
+Comment=Retro Platform Game
+Icon=/usr/share/abe/images/abe.bmp
+Exec=abe
+Categories=Game;
diff --git a/community/abe/abe.patch b/community/abe/abe.patch
new file mode 100644
index 000000000..33b0b1af0
--- /dev/null
+++ b/community/abe/abe.patch
@@ -0,0 +1,24 @@
+diff -ur abe-1.1.orig/src/Directories.h abe-1.1/src/Directories.h
+--- abe-1.1.orig/src/Directories.h 2012-08-25 16:43:45.194974618 +0100
++++ abe-1.1/src/Directories.h 2012-08-25 16:48:07.489030577 +0100
+@@ -27,7 +27,7 @@
+
+ // BASE_DIR has not " arround it.
+ #ifndef BASE_DIR
+-#define BASE_DIR .
++#define BASE_DIR /usr/share/abe
+ #endif
+
+ #define IMAGES_DIR "images"
+diff -ur abe-1.1.orig/src/Menu.c abe-1.1/src/Menu.c
+--- abe-1.1.orig/src/Menu.c 2012-08-25 16:43:45.198307908 +0100
++++ abe-1.1/src/Menu.c 2012-08-25 16:45:00.319469631 +0100
+@@ -116,7 +116,7 @@
+ if(n == SOUND_ENABLED || n == MUSIC_ENABLED)
+ return sound_loaded;
+ else
+- return 0;
++ return 1;
+ }
+
+ void
diff --git a/community/alex/PKGBUILD b/community/alex/PKGBUILD
index b7cc2cb52..380db3bd6 100644
--- a/community/alex/PKGBUILD
+++ b/community/alex/PKGBUILD
@@ -1,17 +1,17 @@
-# $Id: PKGBUILD 72380 2012-06-13 13:45:40Z tdziedzic $
+# $Id: PKGBUILD 77336 2012-10-09 04:16:39Z tdziedzic $
# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
# Maintainer: Vesa Kaihlavirta <vegai@iki.fi>
# Contributor: Philip Nilsson <pnilsson@nullref.se>
pkgname=alex
pkgver=3.0.2
-pkgrel=1
+pkgrel=2
pkgdesc='a lexical analyser generator for Haskell'
arch=('i686' 'x86_64')
-url='http://www.haskell.org/alex/'
+url='http://hackage.haskell.org/package/alex'
license=('custom:BSD3')
depends=('gmp')
-makedepends=('ghc=7.4.2-1' 'haskell-quickcheck=2.4.2-2')
+makedepends=('ghc=7.6.1-1' 'haskell-quickcheck=2.5-2')
source=("http://hackage.haskell.org/packages/archive/$pkgname/$pkgver/$pkgname-$pkgver.tar.gz")
md5sums=('b8f0d831b65d05e5f54ff08bd3d9d10d')
diff --git a/community/avr-gcc/PKGBUILD b/community/avr-gcc/PKGBUILD
index 2b28e0904..36ed19ef1 100644
--- a/community/avr-gcc/PKGBUILD
+++ b/community/avr-gcc/PKGBUILD
@@ -1,4 +1,4 @@
-# $Id: PKGBUILD 75204 2012-08-16 01:56:23Z allan $
+# $Id: PKGBUILD 77419 2012-10-09 18:03:26Z schuay $
# Maintainer: schuay <jakob.gruber@gmail.com>
# Contributor: Brad Fanella <bradfanella@archlinux.us>
# Contributor: Corrado Primier <bardo@aur.archlinux.org>
@@ -8,8 +8,8 @@
pkgname=avr-gcc
_pkgname=gcc
-pkgver=4.7.1
-pkgrel=2
+pkgver=4.7.2
+pkgrel=1
pkgdesc="The GNU AVR Compiler Collection"
arch=('i686' 'x86_64')
license=('GPL' 'LGPL' 'custom')
@@ -69,4 +69,4 @@ package() {
rm -rf ${pkgdir}/usr/share/info
}
-md5sums=('933e6f15f51c031060af64a9e14149ff')
+md5sums=('cc308a0891e778cfda7a151ab8a6e762')
diff --git a/community/bullet/PKGBUILD b/community/bullet/PKGBUILD
index 5e24f32ea..f6ec83a31 100644
--- a/community/bullet/PKGBUILD
+++ b/community/bullet/PKGBUILD
@@ -1,10 +1,11 @@
-# $Id: PKGBUILD 68719 2012-04-01 00:16:22Z svenstaro $
+# $Id: PKGBUILD 77520 2012-10-11 13:39:07Z svenstaro $
# Maintainer: Sven-Hendrik Haase <sh@lutzhaase.com>
# Contributor: Christoph Zeiler <archNOSPAM_at_moonblade.dot.org>
pkgbase=bullet
pkgname=('bullet' 'bullet-docs')
-pkgver=2.80
+_rev=2613
+pkgver=2.81
pkgrel=1
pkgdesc="A 3D Collision Detection and Rigid Body Dynamics Library for games and animation"
arch=('i686' 'x86_64' 'mips64el')
@@ -12,13 +13,13 @@ url="http://www.bulletphysics.com/Bullet/"
license=('custom:zlib')
depends=('freeglut')
makedepends=('cmake' 'doxygen' 'graphviz' 'ttf-dejavu')
-source=(http://bullet.googlecode.com/files/${pkgbase}-${pkgver}-rev2531.tgz
+source=(http://bullet.googlecode.com/files/${pkgbase}-${pkgver}-rev${_rev}.tgz
${pkgbase}.pc)
-md5sums=('d1eec0332110264a21d0fc0f2fb127c3'
+md5sums=('cec9c9a79c2804dbf6385dd7d061346c'
'd1da06deba3b08b884d2212f6838905c')
build() {
- cd ${pkgbase}-${pkgver}-rev2531
+ cd ${pkgbase}-${pkgver}-rev${_rev}
# get a clean build dir
[[ -d build ]] && rm -rf build
@@ -46,15 +47,11 @@ build() {
package_bullet() {
optdepends=('bullet-docs: documentation')
- cd ${pkgbase}-${pkgver}-rev2531/build
+ cd ${pkgbase}-${pkgver}-rev${_rev}/build
# install it
make DESTDIR=${pkgdir} install
- # fix #29012
- install -Dm644 ../Extras/HACD/hacdVector.inl ${pkgdir}/usr/include/bullet/HACD/hacdVector.inl
- install -Dm644 ../Extras/HACD/hacdCircularList.inl ${pkgdir}/usr/include/bullet/HACD/hacdCircularList.inl
-
# manually handle pkgconfig file
mkdir -p "${pkgdir}"/usr/lib/pkgconfig
sed "s|VERSION|${pkgver}|g" ${srcdir}/bullet.pc > ${pkgdir}/usr/lib/pkgconfig/bullet.pc
@@ -67,7 +64,7 @@ package_bullet-docs() {
pkgdesc="Documentation for bullet"
depends=()
- cd ${pkgbase}-${pkgver}-rev2531
+ cd ${pkgbase}-${pkgver}-rev${_rev}
# install docs
install -Dm644 Bullet_User_Manual.pdf ${pkgdir}/usr/share/doc/bullet/Bullet_User_Manual.pdf
diff --git a/community/connman/PKGBUILD b/community/connman/PKGBUILD
index 3d02d9512..b6ca46685 100644
--- a/community/connman/PKGBUILD
+++ b/community/connman/PKGBUILD
@@ -1,9 +1,9 @@
-$Id: PKGBUILD 76664 2012-09-25 22:41:38Z dwallace $
+#$Id: PKGBUILD 77533 2012-10-11 21:23:35Z dwallace $
# Maintainer: Daniel Wallace <danielwallace at gtmanfred dot com>
# Contributor: Lucas De Marchi <lucas.de.marchi@gmail.com>
pkgname=connman
-pkgver=1.7
+pkgver=1.8
pkgrel=1
pkgdesc="Wireless LAN network manager"
url="http://connman.net/"
@@ -18,10 +18,10 @@ options=('!libtool')
source=('connmand-daemon'
"http://www.kernel.org/pub/linux/network/${pkgname}/${pkgname}-${pkgver}.tar.bz2"
'allow_group_network.diff')
+
md5sums=('88ece7cbf1d0d289545ce4f8553fdab8'
- '9c6cf5a95989ae72d90b270ac7c6e38c'
+ '689468f92a1dcb2c0e30d7d00410ad87'
'a8d22ee089fb0ed725130d16ad393047')
-
build() {
cd "${srcdir}/${pkgname}-${pkgver}"
diff --git a/community/devil/PKGBUILD b/community/devil/PKGBUILD
index 5fc650a59..221ca1ab8 100644
--- a/community/devil/PKGBUILD
+++ b/community/devil/PKGBUILD
@@ -1,11 +1,11 @@
-# $Id: PKGBUILD 70147 2012-04-30 19:17:33Z lcarlier $
+# $Id: PKGBUILD 77572 2012-10-12 17:47:07Z svenstaro $
# Maintainer: Laurent Carlier <lordheavym@gmail.org>
# Contributor: damir <damir@archlinux.org>
# Contributor: TheHoff <forums>
pkgname=devil
pkgver=1.7.8
-pkgrel=11
+pkgrel=12
pkgdesc="Library for reading several different image formats"
arch=('i686' 'x86_64' 'mips64el')
url="http://openil.sourceforge.net/"
diff --git a/community/enet/PKGBUILD b/community/enet/PKGBUILD
index b3603c9f1..ee6e2d97f 100644
--- a/community/enet/PKGBUILD
+++ b/community/enet/PKGBUILD
@@ -1,9 +1,9 @@
-# $Id: PKGBUILD 71720 2012-06-01 18:47:54Z ebelanger $
+# $Id: PKGBUILD 77516 2012-10-11 13:14:20Z svenstaro $
# Maintainer: Mateusz Herych <heniekk@gmail.com>
# Contributor: Bj?indeijer <bjorn@lindeijer.nl>
pkgname=enet
-pkgver=1.3.4
+pkgver=1.3.5
pkgrel=1
pkgdesc='A relatively thin, simple and robust network communication layer on top of UDP.'
arch=('i686' 'x86_64' 'mips64el')
@@ -12,7 +12,7 @@ license=('custom')
depends=('glibc')
options=('!libtool')
source=("http://enet.bespin.org/download/${pkgname}-${pkgver}.tar.gz")
-md5sums=('e5fb0ca3fd3a9fe7eadbcde4d6af1517')
+md5sums=('c75d0be31b6f23330839a68ee66e00f9')
build() {
cd "${pkgname}-${pkgver}"
diff --git a/community/glabels/PKGBUILD b/community/glabels/PKGBUILD
index 37d4a74fb..baad6680c 100644
--- a/community/glabels/PKGBUILD
+++ b/community/glabels/PKGBUILD
@@ -1,30 +1,27 @@
-# $Id: PKGBUILD 69806 2012-04-23 09:47:01Z ibiru $
+# $Id: PKGBUILD 77545 2012-10-12 03:02:27Z bgyorgy $
# Maintainer: Balló György <ballogyor+arch at gmail dot com>
# Contributor: yugrotavele <yugrotavele at archlinux dot us>
# Contributor: Damir Perisa <damir@archlinux.org>
pkgname=glabels
-pkgver=3.0.0
-pkgrel=3
+pkgver=3.0.1
+pkgrel=1
pkgdesc="Creating labels and business cards the very easy way"
arch=('i686' 'x86_64')
-url="http://glabels.sourceforge.net/"
+url="http://glabels.org/"
license=('GPL' 'LGPL')
depends=('librsvg' 'evolution-data-server>=3.4.0' 'qrencode' 'iec16022' 'dconf' 'desktop-file-utils' 'xdg-utils')
makedepends=('barcode' 'intltool' 'gnome-doc-utils')
options=('!libtool')
install=$pkgname.install
-source=(http://ftp.gnome.org/pub/GNOME/sources/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.bz2
- fix-gschema.patch)
-sha256sums=('a3a3db4dd25bfb1a03f4008f01c5d9045174e78e13ae77438b81bfe4bf14e64a'
- 'ef4f368b49fe66fb7e9c1c4edabb96e1f10fd3e8502d695aef6b89388c38cd94')
+source=(http://ftp.gnome.org/pub/GNOME/sources/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.xz)
+sha256sums=('99810705b9fcb234f085ed4ac6dbea50cc5b232c6d8ca05ab2c0634673fb9bd2')
build() {
cd "$srcdir/$pkgname-$pkgver"
- patch -Np1 -i "$srcdir/fix-gschema.patch"
./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var \
- --disable-static --disable-scrollkeeper --disable-schemas-compile
+ --disable-static --disable-schemas-compile
make
}
diff --git a/community/gtk2hs-buildtools/0001-fix-for-ghc-7.6.1-changes.patch b/community/gtk2hs-buildtools/0001-fix-for-ghc-7.6.1-changes.patch
new file mode 100644
index 000000000..1c6a7dd65
--- /dev/null
+++ b/community/gtk2hs-buildtools/0001-fix-for-ghc-7.6.1-changes.patch
@@ -0,0 +1,69 @@
+From 7d94bcd36eb1d5a2feae182fcb74f9d6ca439a80 Mon Sep 17 00:00:00 2001
+From: Thomas Dziedzic <gostrc@gmail.com>
+Date: Wed, 12 Sep 2012 03:29:46 -0700
+Subject: [PATCH] fix for ghc 7.6.1 changes
+
+---
+ c2hs/base/general/FileOps.hs | 3 ++-
+ c2hs/base/state/StateTrans.hs | 3 ++-
+ c2hs/toplevel/C2HSConfig.hs | 2 +-
+ 3 files changed, 5 insertions(+), 3 deletions(-)
+
+diff --git a/c2hs/base/general/FileOps.hs b/c2hs/base/general/FileOps.hs
+index 83ac70c..4914c4b 100644
+--- a/c2hs/base/general/FileOps.hs
++++ b/c2hs/base/general/FileOps.hs
+@@ -39,6 +39,7 @@ import Control.Monad (liftM)
+ import System.Random (newStdGen, randomRs)
+
+ import FNameOps (dirname, stripDirname, addPath)
++import System.IO.Error (catchIOError)
+
+
+ -- search for the given file in the given list of directories (EXPORTED)
+@@ -89,7 +90,7 @@ mktemp pre post =
+ in do
+ h <- openFile fname ReadWriteMode
+ return (h, fname)
+- `catch` \_ -> createLoop (attempts - 1) rs'
++ `catchIOError` \_ -> createLoop (attempts - 1) rs'
+ --
+ sixChars :: [Int] -> ([Int], String)
+ sixChars is =
+diff --git a/c2hs/base/state/StateTrans.hs b/c2hs/base/state/StateTrans.hs
+index ada62f4..2ab0ad1 100644
+--- a/c2hs/base/state/StateTrans.hs
++++ b/c2hs/base/state/StateTrans.hs
+@@ -84,6 +84,7 @@ import System.IO (fixIO)
+ import Data.IORef (IORef, newIORef, readIORef, writeIORef)
+
+ import Errors (interr)
++import System.IO.Error (catchIOError)
+
+ infixr 1 +>=, +>
+
+@@ -337,7 +338,7 @@ fatalsHandledBy m handler =
+ ioError err
+ Right a -> return state
+ )
+- `catch` (\err -> let
++ `catchIOError` (\err -> let
+ STB handler' = handler err
+ in
+ handler' bs gs)
+diff --git a/c2hs/toplevel/C2HSConfig.hs b/c2hs/toplevel/C2HSConfig.hs
+index e8deddf..af32886 100644
+--- a/c2hs/toplevel/C2HSConfig.hs
++++ b/c2hs/toplevel/C2HSConfig.hs
+@@ -46,7 +46,7 @@ import Data.Array (Array, array)
+
+ import Foreign (Ptr, FunPtr)
+ import Foreign (Storable(sizeOf, alignment), toBool)
+-import Foreign.C (CInt)
++import Foreign.C (CInt(..))
+ import System.Info (os)
+
+ -- program settings
+--
+1.7.12
+
diff --git a/community/gtk2hs-buildtools/PKGBUILD b/community/gtk2hs-buildtools/PKGBUILD
index 2d83c6a52..18ce2b97d 100644
--- a/community/gtk2hs-buildtools/PKGBUILD
+++ b/community/gtk2hs-buildtools/PKGBUILD
@@ -1,22 +1,27 @@
-# $Id: PKGBUILD 72381 2012-06-13 13:45:43Z tdziedzic $
+# $Id: PKGBUILD 77337 2012-10-09 04:16:44Z tdziedzic $
# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
pkgname=gtk2hs-buildtools
pkgver=0.12.3.1
-pkgrel=1
+pkgrel=2
pkgdesc="Tools to build the Gtk2Hs suite of User Interface libraries."
url="http://hackage.haskell.org/package/gtk2hs-buildtools"
license=('GPL2')
arch=('i686' 'x86_64' 'mips64el')
-makedepends=('ghc' 'alex' 'happy' 'haskell-random')
+makedepends=('ghc=7.6.1-1' 'alex=3.0.2-2' 'happy=1.18.9-6' 'haskell-random=1.0.1.1-3')
depends=('gmp')
options=('strip')
provides=('haskell-gtk2hs-buildtools')
-source=(http://hackage.haskell.org/packages/archive/gtk2hs-buildtools/$pkgver/gtk2hs-buildtools-$pkgver.tar.gz)
-md5sums=('612611d831635024c953d2817b124e29')
+source=(http://hackage.haskell.org/packages/archive/gtk2hs-buildtools/$pkgver/gtk2hs-buildtools-$pkgver.tar.gz
+ '0001-fix-for-ghc-7.6.1-changes.patch')
+md5sums=('612611d831635024c953d2817b124e29'
+ 'b6551d8085c97bc2c6600ab397833101')
build() {
cd ${srcdir}/gtk2hs-buildtools-$pkgver
+
+ patch -Np1 -i ${srcdir}/0001-fix-for-ghc-7.6.1-changes.patch
+
runhaskell Setup configure --prefix=/usr --docdir=/usr/share/doc/${pkgname}
runhaskell Setup build
}
diff --git a/community/haddock/0001-fix-incorrect-types-in-documentation-haddock.patch b/community/haddock/0001-fix-incorrect-types-in-documentation-haddock.patch
new file mode 100644
index 000000000..2e687db21
--- /dev/null
+++ b/community/haddock/0001-fix-incorrect-types-in-documentation-haddock.patch
@@ -0,0 +1,33 @@
+From c60f2ab90f6e39fdb515cc0305467e534f718a7d Mon Sep 17 00:00:00 2001
+From: Thomas Dziedzic <gostrc@gmail.com>
+Date: Tue, 11 Sep 2012 07:43:41 -0700
+Subject: [PATCH] fix incorrect types in documentation/haddock
+
+---
+ src/Documentation/Haddock.hs | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/src/Documentation/Haddock.hs b/src/Documentation/Haddock.hs
+index 60bb314..8fd9674 100644
+--- a/src/Documentation/Haddock.hs
++++ b/src/Documentation/Haddock.hs
+@@ -59,6 +59,7 @@ import Haddock.Types
+ import Haddock.Options
+ import Haddock.Utils
+ import Main
++import GHC (Ghc)
+
+
+ -- | Create 'Interface' structures from a given list of Haddock command-line
+@@ -68,7 +69,7 @@ import Main
+ createInterfaces
+ :: [Flag] -- ^ A list of command-line flags
+ -> [String] -- ^ File or module names
+- -> IO [Interface] -- ^ Resulting list of interfaces
++ -> Ghc [Interface] -- ^ Resulting list of interfaces
+ createInterfaces flags modules = do
+ (_, ifaces, _) <- readPackagesAndProcessModules flags modules
+ return ifaces
+--
+1.7.12
+
diff --git a/community/haddock/PKGBUILD b/community/haddock/PKGBUILD
index 10cf419f9..c57706999 100644
--- a/community/haddock/PKGBUILD
+++ b/community/haddock/PKGBUILD
@@ -1,31 +1,30 @@
-# Maintainer:
-# Contributor: Alexander Rødseth <rodseth@gmail.com>
+# Maintainer: Alexander Rødseth <rodseth@gmail.com>
# Contributor: Vesa Kaihlavirta <vesa@archlinux.org>
# Contributor: Arch Haskell Team <arch-haskell@haskell.org>
pkgname=haddock
-pkgver=2.10.0
-pkgrel=2
+pkgver=2.12.0
+pkgrel=1
pkgdesc="Tool for generating documentation for Haskell libraries"
url="http://hackage.haskell.org/package/haddock"
license=('custom:BSD3')
arch=('i686' 'x86_64' 'mips64el')
-makedepends=('alex' 'happy')
-depends=('ghc=7.4.2-1' 'haskell-xhtml=3000.2.1-1' 'haskell-ghc-paths=0.1.0.8-8')
+makedepends=('alex=3.0.2-2' 'happy=1.18.9-6')
+depends=('ghc=7.6.1-1' 'haskell-xhtml=3000.2.1-2' 'haskell-ghc-paths=0.1.0.8-9')
install=$pkgname.install
-source=("http://hackage.haskell.org/packages/archive/$pkgname/$pkgver/$pkgname-$pkgver.tar.gz")
-sha256sums=('d107dba15e8aee5abcb540b818b5dcb8ced98bae7d0714f50192dba26cadb410')
+source=("http://hackage.haskell.org/packages/archive/$pkgname/$pkgver/$pkgname-$pkgver.tar.gz"
+ '0001-fix-incorrect-types-in-documentation-haddock.patch')
+sha256sums=('b6c53c3c2dcfc7604941f81acd8954c7deb101b1341003d2e9c6c26dd4ad6d02'
+ 'a260b828ddf6e56440209d9631efcd6e1530b8996859528feee37638cc26e92a')
build() {
cd "$srcdir/$pkgname-$pkgver"
-
- # These doesn't make haddock work for ghc 7.4.1
- #sed -i 's:ghc >= 7.2 && < 7.4:ghc:' haddock.cabal
- #sed -i 's:base >= 4.3 && < 4.5:base:' haddock.cabal
- #sed -i 's:#elif __GLASGOW_HASKELL__ == 703:#elif __GLASGOW_HASKELL__ == 704:' src/Haddock/InterfaceFile.hs
- runhaskell Setup configure -O -p --enable-split-objs --enable-shared --prefix=/usr \
- --docdir=/usr/share/doc/"$pkgname" --libsubdir=\$compiler/site-local/\$pkgid
+ patch -Np1 -i ${srcdir}/0001-fix-incorrect-types-in-documentation-haddock.patch
+
+ runhaskell Setup configure -O -p --enable-split-objs --enable-shared \
+ --prefix=/usr --docdir=/usr/share/doc/"$pkgname" \
+ --libsubdir=\$compiler/site-local/\$pkgid
runhaskell Setup build
runhaskell Setup haddock
runhaskell Setup register --gen-script
@@ -37,11 +36,15 @@ package() {
cd "$srcdir/$pkgname-$pkgver"
install -Dm744 register.sh "$pkgdir/usr/share/haskell/$pkgname/register.sh"
- install -m744 unregister.sh "$pkgdir/usr/share/haskell/$pkgname/unregister.sh"
+ install -m744 unregister.sh \
+ "$pkgdir/usr/share/haskell/$pkgname/unregister.sh"
install -dm755 "$pkgdir/usr/share/doc/ghc/html/libraries"
- ln -s "/usr/share/doc/$pkgname/html" "$pkgdir/usr/share/doc/ghc/html/libraries/$pkgname"
+ ln -s "/usr/share/doc/$pkgname/html" \
+ "$pkgdir/usr/share/doc/ghc/html/libraries/$pkgname"
runhaskell Setup copy --destdir="$pkgdir"
install -Dm644 LICENSE "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
rm -f "$pkgdir/usr/share/doc/$pkgname/LICENSE"
mv "$pkgdir/usr/bin/haddock" "$pkgdir/usr/bin/haddock-cabal"
}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community/happy/PKGBUILD b/community/happy/PKGBUILD
index fb8ecf1f5..99e4581d9 100644
--- a/community/happy/PKGBUILD
+++ b/community/happy/PKGBUILD
@@ -1,23 +1,27 @@
-# $Id: PKGBUILD 72383 2012-06-13 13:45:51Z tdziedzic $
+# $Id: PKGBUILD 77339 2012-10-09 04:16:54Z tdziedzic $
# Maintainer: Thomas Dziedzic <gostrc@gmail.com>
# Contributor: simo <simo@archlinux.org>
# Contributor: Vesa Kaihlavirta <vegai@iki.fi>
pkgname=happy
-pkgver=1.18.9
-pkgrel=5
+pkgver=1.18.10
+pkgrel=1
pkgdesc="The Parser Generator for Haskell"
-url="http://www.haskell.org/happy/"
+url="http://hackage.haskell.org/package/happy"
arch=('i686' 'x86_64')
license=("custom:BSD3")
depends=('gmp')
-makedepends=('ghc=7.4.2-1' 'haskell-mtl=2.1.1-1')
+makedepends=('ghc=7.6.1-1' 'haskell-mtl=2.1.2-1')
source=(http://hackage.haskell.org/packages/archive/$pkgname/$pkgver/$pkgname-$pkgver.tar.gz)
-md5sums=('aeb565fe572f979f15a24db0df2de37d')
+md5sums=('a1638e89434427e57f68ef311761dc30')
build() {
cd "${srcdir}/${pkgname}-${pkgver}"
+ # try was deprecated and removed into control.exception
+ # we really want tryIOError
+ #sed 's/try/&IOError/' -i Setup.lhs
+
runhaskell Setup.lhs configure -O --prefix=/usr
runhaskell Setup.lhs build
}
diff --git a/community/haskell-bytestring-show/PKGBUILD b/community/haskell-bytestring-show/PKGBUILD
index 081f77510..3f0ee6008 100644
--- a/community/haskell-bytestring-show/PKGBUILD
+++ b/community/haskell-bytestring-show/PKGBUILD
@@ -1,22 +1,24 @@
-# $Id: PKGBUILD 75911 2012-09-05 10:26:10Z spupykin $
+# $Id: PKGBUILD 77340 2012-10-09 04:16:59Z tdziedzic $
# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
pkgname=haskell-bytestring-show
-pkgver=0.3.5.2
+pkgver=0.3.5.3
pkgrel=1
pkgdesc="Efficient conversion of values into readable byte strings."
-#url="http://code.haskell.org/~dolio/"
-url="http://hackage.haskell.org/cgi-bin/hackage-scripts/package/bytestring-show"
+url="http://hackage.haskell.org/package/bytestring-show"
license=("BSD3")
arch=('i686' 'x86_64')
-depends=("ghc=7.4.2-1")
+depends=("ghc=7.6.1-1")
install="${pkgname}.install"
source=("http://hackage.haskell.org/packages/archive/bytestring-show/${pkgver}/bytestring-show-${pkgver}.tar.gz")
-md5sums=('bd7cc8c9da04814d5c81041f8f087a8c')
+md5sums=('cbcc94f57fc754685f428aba003ba058')
build() {
cd ${srcdir}/bytestring-show-${pkgver}
+ # update outdated dependency
+ sed 's/build-depends: integer-gmp >= 0.2 && < 0.5/build-depends: integer-gmp >= 0.2 \&\& < 0.6/' -i bytestring-show.cabal
+
runhaskell Setup configure -O -p --enable-split-objs --enable-shared \
--prefix=/usr --docdir=/usr/share/doc/${pkgname} \
--libsubdir=\$compiler/site-local/\$pkgid
diff --git a/community/haskell-cairo/PKGBUILD b/community/haskell-cairo/PKGBUILD
index a292c37c8..f5053689a 100644
--- a/community/haskell-cairo/PKGBUILD
+++ b/community/haskell-cairo/PKGBUILD
@@ -1,14 +1,14 @@
-# $Id: PKGBUILD 72385 2012-06-13 13:46:01Z tdziedzic $
+# $Id: PKGBUILD 77341 2012-10-09 04:17:04Z tdziedzic $
# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
pkgname=haskell-cairo
pkgver=0.12.3.1
-pkgrel=1
+pkgrel=2
pkgdesc="Binding to the cairo library for Gtk2Hs."
url="http://hackage.haskell.org/package/cairo"
license=('LGPL2.1')
arch=('i686' 'x86_64')
-depends=('ghc=7.4.2-1' 'cairo' 'haskell-mtl=2.1.1-1')
+depends=('ghc=7.6.1-1' 'cairo' 'haskell-mtl=2.1.2-1')
makedepends=("gtk2hs-buildtools")
options=('strip')
conflicts=('gtk2hs-cairo')
diff --git a/community/haskell-dataenc/0001-update-build-deps-for-ghc-7.6.1.patch b/community/haskell-dataenc/0001-update-build-deps-for-ghc-7.6.1.patch
new file mode 100644
index 000000000..9f544bb27
--- /dev/null
+++ b/community/haskell-dataenc/0001-update-build-deps-for-ghc-7.6.1.patch
@@ -0,0 +1,25 @@
+From 961892779b5f5a2f46d6baa44c31d06c39e56470 Mon Sep 17 00:00:00 2001
+From: Thomas Dziedzic <gostrc@gmail.com>
+Date: Tue, 11 Sep 2012 05:06:59 -0700
+Subject: [PATCH] update build deps for ghc 7.6.1
+
+---
+ dataenc.cabal | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/dataenc.cabal b/dataenc.cabal
+index 1ad42ca..3a4f5bb 100644
+--- a/dataenc.cabal
++++ b/dataenc.cabal
+@@ -21,7 +21,7 @@ flag BuildTests
+
+ library
+ hs-source-dirs: src
+- build-depends: array >= 0.1.0 && < 0.5, base >= 3.0.0 && < 4.6, containers >= 0.1.0 && < 0.5
++ build-depends: array >= 0.1.0 && < 0.5, base >= 3.0.0 && < 4.7, containers >= 0.1.0 && < 0.6
+ exposed-modules:
+ Codec.Binary.Base16
+ Codec.Binary.Base32
+--
+1.7.12
+
diff --git a/community/haskell-dataenc/PKGBUILD b/community/haskell-dataenc/PKGBUILD
index aa3d36b36..34a0373b3 100644
--- a/community/haskell-dataenc/PKGBUILD
+++ b/community/haskell-dataenc/PKGBUILD
@@ -1,4 +1,4 @@
-# $Id: PKGBUILD 72386 2012-06-13 13:46:06Z tdziedzic $
+# $Id: PKGBUILD 77342 2012-10-09 04:17:11Z tdziedzic $
# Maintainer: Vesa Kaihlavirta <vesa@archlinux.org>
# Contributor: Arch Haskell Team <arch-haskell@haskell.org>
# Package generated by cabal2arch 0.7.5
@@ -6,18 +6,24 @@
_hkgname=dataenc
pkgname=haskell-dataenc
pkgver=0.14.0.3
-pkgrel=2
+pkgrel=3
pkgdesc="Data encoding library"
url="http://hackage.haskell.org/package/dataenc"
license=('custom:BSD3')
arch=('i686' 'x86_64' 'mips64el')
-depends=('ghc=7.4.2-1' sh)
-source=(http://hackage.haskell.org/packages/archive/${_hkgname}/${pkgver}/${_hkgname}-${pkgver}.tar.gz)
+depends=('ghc=7.6.1-1' sh)
+source=(http://hackage.haskell.org/packages/archive/${_hkgname}/${pkgver}/${_hkgname}-${pkgver}.tar.gz
+ '0001-update-build-deps-for-ghc-7.6.1.patch')
install=${pkgname}.install
-md5sums=('643a8c022b9c840f801faf9a661fe637')
+md5sums=('643a8c022b9c840f801faf9a661fe637'
+ '662056adcb79efe8898298c271b49600')
build() {
cd ${srcdir}/${_hkgname}-${pkgver}
+
+ # update build deps for ghc 7.6.1
+ patch -Np1 -i ${srcdir}/0001-update-build-deps-for-ghc-7.6.1.patch
+
runhaskell Setup configure -O -p --enable-split-objs --enable-shared \
--prefix=/usr --docdir=/usr/share/doc/${pkgname} \
--libsubdir=\$compiler/site-local/\$pkgid
diff --git a/community/haskell-extensible-exceptions/PKGBUILD b/community/haskell-extensible-exceptions/PKGBUILD
new file mode 100644
index 000000000..2f2fbaa3c
--- /dev/null
+++ b/community/haskell-extensible-exceptions/PKGBUILD
@@ -0,0 +1,39 @@
+# $Id: PKGBUILD 77370 2012-10-09 08:29:13Z foutrelis $
+# Maintainer: Jelle van der Waa <jelle@vdwaa.nl>
+
+_hkgname=extensible-exceptions
+pkgname=haskell-${_hkgname}
+pkgver=0.1.1.4
+pkgrel=3
+pkgdesc="extensible exceptions for both new and old versions of GHC"
+url="http://hackage.haskell.org/package/extensible-exceptions"
+license=('custom:BSD3')
+arch=('i686' 'x86_64')
+depends=('ghc=7.6.1-1' sh)
+source=(http://hackage.haskell.org/packages/archive/${_hkgname}/${pkgver}/${_hkgname}-${pkgver}.tar.gz)
+install=$pkgname.install
+md5sums=('fa1cadd15c1c7aa362618d41c6e17d8b')
+
+build() {
+ cd ${srcdir}/${_hkgname}-${pkgver}
+
+ runhaskell Setup configure -O -p --enable-split-objs --enable-shared \
+ --prefix=/usr --docdir=/usr/share/doc/${pkgname} \
+ --libsubdir=\$compiler/site-local/\$pkgid
+ runhaskell Setup build
+ runhaskell Setup haddock
+ runhaskell Setup register --gen-script
+ runhaskell Setup unregister --gen-script
+ sed -i -r -e "s|ghc-pkg.*unregister[^ ]* |&'--force' |" unregister.sh
+}
+
+package() {
+ cd ${srcdir}/${_hkgname}-${pkgver}
+ install -D -m744 register.sh ${pkgdir}/usr/share/haskell/${pkgname}/register.sh
+ install -m744 unregister.sh ${pkgdir}/usr/share/haskell/${pkgname}/unregister.sh
+ install -d -m755 ${pkgdir}/usr/share/doc/ghc/html/libraries
+ ln -s /usr/share/doc/${pkgname}/html ${pkgdir}/usr/share/doc/ghc/html/libraries/${_hkgname}
+ runhaskell Setup copy --destdir=${pkgdir}
+ install -D -m644 LICENSE ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
+ rm -f ${pkgdir}/usr/share/doc/${pkgname}/LICENSE
+}
diff --git a/community/haskell-extensible-exceptions/haskell-extensible-exceptions.install b/community/haskell-extensible-exceptions/haskell-extensible-exceptions.install
new file mode 100644
index 000000000..20c7dce30
--- /dev/null
+++ b/community/haskell-extensible-exceptions/haskell-extensible-exceptions.install
@@ -0,0 +1,19 @@
+HS_DIR=usr/share/haskell/haskell-extensible-exceptions
+post_install() {
+ ${HS_DIR}/register.sh
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
+pre_upgrade() {
+ ${HS_DIR}/unregister.sh
+}
+post_upgrade() {
+ ${HS_DIR}/register.sh
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
+pre_remove() {
+ ${HS_DIR}/unregister.sh
+}
+post_remove() {
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
+
diff --git a/community/haskell-ghc-paths/PKGBUILD b/community/haskell-ghc-paths/PKGBUILD
index b9a2f1e68..8afbfc68f 100644
--- a/community/haskell-ghc-paths/PKGBUILD
+++ b/community/haskell-ghc-paths/PKGBUILD
@@ -4,12 +4,13 @@
pkgname=haskell-ghc-paths
pkgver=0.1.0.8
-pkgrel=8
+pkgrel=9
pkgdesc="Knowledge of GHC's installation directories"
url="http://hackage.haskell.org/package/ghc-paths"
license=('custom:BSD3')
arch=('i686' 'x86_64' 'mips64el')
-depends=('ghc=7.4.2-1')
+arch=('x86_64' 'i686')
+depends=('ghc=7.6.1-1')
source=("http://hackage.haskell.org/packages/archive/ghc-paths/$pkgver/ghc-paths-$pkgver.tar.gz")
install=haskell-ghc-paths.install
md5sums=('d2b23dc563888e380588501d2ce1d82b')
diff --git a/community/haskell-glib/0001-compatibility-with-ghc-7.6.1.patch b/community/haskell-glib/0001-compatibility-with-ghc-7.6.1.patch
new file mode 100644
index 000000000..845beb2bd
--- /dev/null
+++ b/community/haskell-glib/0001-compatibility-with-ghc-7.6.1.patch
@@ -0,0 +1,55 @@
+From 7e677b1c633d2b426fc956fcfa084a82ef6df861 Mon Sep 17 00:00:00 2001
+From: Thomas Dziedzic <gostrc@gmail.com>
+Date: Thu, 27 Sep 2012 04:48:10 -0700
+Subject: [PATCH] compatibility with ghc 7.6.1
+
+---
+ System/Glib/GObject.chs | 4 +---
+ System/Glib/MainLoop.chs | 4 ++--
+ 2 files changed, 3 insertions(+), 5 deletions(-)
+
+diff --git a/System/Glib/GObject.chs b/System/Glib/GObject.chs
+index 5f0fe5c..9925d2c 100644
+--- a/System/Glib/GObject.chs
++++ b/System/Glib/GObject.chs
+@@ -127,8 +127,6 @@ makeNewGObject (constr, objectUnref) generator = do
+
+ {#pointer GDestroyNotify as DestroyNotify#}
+
+-foreign import ccall "wrapper" mkDestroyNotifyPtr :: IO () -> IO DestroyNotify
+-
+ -- | This function wraps any newly created objects that derives from
+ -- GInitiallyUnowned also known as objects with
+ -- \"floating-references\". The object will be refSink (for glib
+@@ -225,4 +223,4 @@ isA obj gType =
+ -- at this point we would normally implement the notify signal handler;
+ -- I've moved this definition into the Object class of the gtk package
+ -- since there's a quite a bit of machinery missing here (generated signal
+--- register functions and the problem of recursive modules)
+\ No newline at end of file
++-- register functions and the problem of recursive modules)
+diff --git a/System/Glib/MainLoop.chs b/System/Glib/MainLoop.chs
+index 72fecb6..feb4c77 100644
+--- a/System/Glib/MainLoop.chs
++++ b/System/Glib/MainLoop.chs
+@@ -71,7 +71,7 @@ import System.Glib.GObject (DestroyNotify, destroyFunPtr)
+
+ {#pointer SourceFunc#}
+
+-foreign import ccall "wrapper" mkSourceFunc :: IO {#type gint#} -> IO SourceFunc
++foreign import ccall "wrapper" mkSourceFunc :: (Ptr () -> IO {#type gint#}) -> IO SourceFunc
+
+ type HandlerId = {#type guint#}
+
+@@ -79,7 +79,7 @@ type HandlerId = {#type guint#}
+ --
+ makeCallback :: IO {#type gint#} -> IO (SourceFunc, DestroyNotify)
+ makeCallback fun = do
+- funPtr <- mkSourceFunc fun
++ funPtr <- mkSourceFunc (const fun)
+ return (funPtr, destroyFunPtr)
+
+ -- | Sets a function to be called at regular intervals, with the default
+--
+1.7.12.1
+
diff --git a/community/haskell-glib/PKGBUILD b/community/haskell-glib/PKGBUILD
index 367c45adb..2ea2ff587 100644
--- a/community/haskell-glib/PKGBUILD
+++ b/community/haskell-glib/PKGBUILD
@@ -1,25 +1,30 @@
-# $Id: PKGBUILD 72388 2012-06-13 13:46:17Z tdziedzic $
+# $Id: PKGBUILD 77344 2012-10-09 04:17:23Z tdziedzic $
# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
pkgname=haskell-glib
pkgver=0.12.3.1
-pkgrel=1
+pkgrel=2
pkgdesc="Binding to the GLIB library for Gtk2Hs."
url="http://hackage.haskell.org/package/glib"
license=('LGPL2.1')
arch=('i686' 'x86_64')
-depends=('ghc=7.4.2-1' 'glib2')
+depends=('ghc=7.6.1-1' 'glib2')
makedepends=("gtk2hs-buildtools")
options=('strip')
install=gtk2hs-glib.install
provides=('gtk2hs-glib')
replaces=('gtk2hs-glib')
conflicts=('gtk2hs-glib')
-source=(http://hackage.haskell.org/packages/archive/glib/$pkgver/glib-$pkgver.tar.gz)
-md5sums=('f2899bd2a2850fe95479ddb63490eb04')
+source=(http://hackage.haskell.org/packages/archive/glib/$pkgver/glib-$pkgver.tar.gz
+ '0001-compatibility-with-ghc-7.6.1.patch')
+md5sums=('f2899bd2a2850fe95479ddb63490eb04'
+ 'b00660b7102542942b0b9d84b59d1f3c')
build() {
- cd ${srcdir}/glib-$pkgver
+ cd glib-$pkgver
+
+ patch -Np1 -i ${srcdir}/0001-compatibility-with-ghc-7.6.1.patch
+
runhaskell Setup configure -O -p --enable-split-objs --enable-shared \
--prefix=/usr --docdir=/usr/share/doc/haskell-glib \
--libsubdir=\$compiler/site-local/\$pkgid
diff --git a/community/haskell-gtk/PKGBUILD b/community/haskell-gtk/PKGBUILD
index 064702b29..89e49dc07 100644
--- a/community/haskell-gtk/PKGBUILD
+++ b/community/haskell-gtk/PKGBUILD
@@ -1,40 +1,48 @@
-# $Id: PKGBUILD 73280 2012-07-05 11:48:30Z spupykin $
+# $Id: PKGBUILD 77345 2012-10-09 04:17:32Z tdziedzic $
# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
pkgname=haskell-gtk
pkgver=0.12.3.1
-pkgrel=1
+pkgrel=2
pkgdesc="Binding to the gtk library for Gtk2Hs."
url="http://hackage.haskell.org/package/gtk"
license=('LGPL2.1')
arch=('i686' 'x86_64')
-depends=('ghc' 'gtk2' "haskell-pango=0.12.3-2" 'haskell-mtl=2.1.1-1')
+depends=('ghc' 'gtk2' "haskell-pango" 'haskell-mtl')
makedepends=("gtk2hs-buildtools")
provides=('gtk2hs-gtk')
replaces=('gtk2hs-gtk')
conflicts=('gtk2hs-gtk')
options=('strip')
install=gtk2hs-gtk.install
-source=(http://hackage.haskell.org/packages/archive/gtk/$pkgver/gtk-$pkgver.tar.gz)
-md5sums=('b10dfe92d2e4dfe3c0c92dd349489727')
+source=(http://hackage.haskell.org/packages/archive/gtk/$pkgver/gtk-$pkgver.tar.gz
+ ghc-7.6.1.patch)
+md5sums=('b10dfe92d2e4dfe3c0c92dd349489727'
+ '5fb93f37fe3f494b30ee682a36b8f1b6')
build() {
- cd ${srcdir}/gtk-${pkgver}
- runhaskell Setup configure -O -p --enable-split-objs --enable-shared \
- --prefix=/usr --docdir=/usr/share/doc/haskell-gtk \
- --libsubdir=\$compiler/site-local/\$pkgid
- runhaskell Setup build
- runhaskell Setup haddock
- runhaskell Setup register --gen-script
- runhaskell Setup unregister --gen-script
- sed -i -r -e "s|ghc-pkg.*unregister[^ ]* |&'--force' |" unregister.sh
+ cd ${srcdir}/gtk-${pkgver}
+ patch -p1 <$srcdir/ghc-7.6.1.patch
+ runhaskell Setup configure -O -p --enable-split-objs --enable-shared \
+ --prefix=/usr --docdir=/usr/share/doc/haskell-gtk \
+ --libsubdir=\$compiler/site-local/\$pkgid
+ sed -i 's|import Foreign.C.Types.*(CULong, CUInt)|import Foreign.C.Types (CULong(..), CUInt(..))|' Graphics/UI/Gtk/Types.chs
+ runhaskell Setup build
+ runhaskell Setup haddock
+ runhaskell Setup register --gen-script
+ runhaskell Setup unregister --gen-script
+ sed -i -r -e "s|ghc-pkg.*unregister[^ ]* |&'--force' |" unregister.sh
}
package() {
- cd ${srcdir}/gtk-${pkgver}
- install -D -m744 register.sh ${pkgdir}/usr/share/haskell/gtk2hs-gtk/register.sh
- install -m744 unregister.sh ${pkgdir}/usr/share/haskell/gtk2hs-gtk/unregister.sh
- install -d -m755 ${pkgdir}/usr/share/doc/ghc/html/libraries
- ln -s /usr/share/doc/haskell-gtk/html ${pkgdir}/usr/share/doc/ghc/html/libraries/gtk2hs-gtk
- runhaskell Setup copy --destdir=${pkgdir}
+ _hmtlver=`pacman -Q haskell-mtl | cut -f2 -d\ | cut -f1 -d-`
+ _hpangover=`pacman -Q haskell-pango | cut -f2 -d\ | cut -f1 -d-`
+ depends=("ghc" "gtk2" "haskell-pango=${_hpangover}" "haskell-mtl=${_hmtlver}")
+
+ cd ${srcdir}/gtk-${pkgver}
+ install -D -m744 register.sh ${pkgdir}/usr/share/haskell/gtk2hs-gtk/register.sh
+ install -m744 unregister.sh ${pkgdir}/usr/share/haskell/gtk2hs-gtk/unregister.sh
+ install -d -m755 ${pkgdir}/usr/share/doc/ghc/html/libraries
+ ln -s /usr/share/doc/haskell-gtk/html ${pkgdir}/usr/share/doc/ghc/html/libraries/gtk2hs-gtk
+ runhaskell Setup copy --destdir=${pkgdir}
}
diff --git a/community/haskell-gtk/ghc-7.6.1.patch b/community/haskell-gtk/ghc-7.6.1.patch
new file mode 100644
index 000000000..5e259a38f
--- /dev/null
+++ b/community/haskell-gtk/ghc-7.6.1.patch
@@ -0,0 +1,574 @@
+diff -wbBur /home/sergej/community-my.svn/haskell-gtk/trunk/src/gtk-0.12.3.1/Graphics/UI/Gtk/Abstract/Object.chs gtk/Graphics/UI/Gtk/Abstract/Object.chs
+--- /home/sergej/community-my.svn/haskell-gtk/trunk/src/gtk-0.12.3.1/Graphics/UI/Gtk/Abstract/Object.chs 2012-06-18 01:39:34.000000000 +0400
++++ gtk/Graphics/UI/Gtk/Abstract/Object.chs 2012-10-02 16:30:54.000000000 +0400
+@@ -126,7 +126,8 @@
+
+ {#pointer GWeakNotify#}
+
+-foreign import ccall "wrapper" mkDestructor :: IO () -> IO GWeakNotify
++foreign import ccall "wrapper" mkDestructor
++ :: (Ptr () -> Ptr GObject -> IO ()) -> IO GWeakNotify
+
+ -- | Attach a callback that will be called after the
+ -- destroy hooks have been called
+@@ -134,7 +135,7 @@
+ objectWeakref :: ObjectClass o => o -> IO () -> IO GWeakNotify
+ objectWeakref obj uFun = do
+ funPtrContainer <- newIORef nullFunPtr
+- uFunPtr <- mkDestructor $ do
++ uFunPtr <- mkDestructor $ \_ _ -> do
+ uFun
+ funPtr <- readIORef funPtrContainer
+ freeHaskellFunPtr funPtr
+diff -wbBur /home/sergej/community-my.svn/haskell-gtk/trunk/src/gtk-0.12.3.1/Graphics/UI/Gtk/Entry/Entry.chs gtk/Graphics/UI/Gtk/Entry/Entry.chs
+--- /home/sergej/community-my.svn/haskell-gtk/trunk/src/gtk-0.12.3.1/Graphics/UI/Gtk/Entry/Entry.chs 2012-06-18 01:39:34.000000000 +0400
++++ gtk/Graphics/UI/Gtk/Entry/Entry.chs 2012-10-02 16:27:26.000000000 +0400
+@@ -78,6 +78,10 @@
+ entrySetCompletion,
+ entryGetCompletion,
+ #endif
++#if GTK_CHECK_VERSION (2,18,0)
++ entryGetBuffer,
++ entrySetBuffer,
++#endif
+ #if GTK_CHECK_VERSION(2,20,0)
+ entryGetIconWindow,
+ entryGetTextWindow,
+@@ -104,6 +108,9 @@
+ entryAlignment,
+ entryCompletion,
+ #endif
++#if GTK_CHECK_VERSION (2,18,0)
++ entryBuffer,
++#endif
+
+ -- * Signals
+ entryActivate,
+@@ -157,6 +164,9 @@
+ import Graphics.UI.Gtk.Gdk.EventM (EventM, EButton, EKey)
+ import Control.Monad.Reader ( ask )
+ import Control.Monad.Trans ( liftIO )
++#if GTK_CHECK_VERSION (2,18,0)
++import Graphics.UI.Gtk.Entry.EntryBuffer
++#endif
+ {#import Graphics.UI.Gtk.Types#}
+ {#import Graphics.UI.Gtk.Signals#}
+
+@@ -429,6 +439,23 @@
+ (toEntry self)
+ #endif
+
++#if GTK_CHECK_VERSION(2,18,0)
++-- | Get the 'EntryBuffer' object which holds the text for this widget.
++entryGetBuffer :: EntryClass self => self
++ -> IO EntryBuffer
++entryGetBuffer self =
++ makeNewGObject mkEntryBuffer $
++ {# call gtk_entry_get_buffer #}
++ (toEntry self)
++
++-- | Set the 'EntryBuffer' object which holds the text for this widget.
++entrySetBuffer :: (EntryClass self, EntryBufferClass buffer) => self
++ -> buffer -> IO ()
++entrySetBuffer self =
++ {# call gtk_entry_set_buffer #}
++ (toEntry self) . toEntryBuffer
++#endif
++
+ #if GTK_CHECK_VERSION(2,20,0)
+ -- | Returns the 'Window' which contains the entry's icon at @iconPos@. This function is useful when
+ -- drawing something to the entry in an 'eventExpose' callback because it enables the callback to
+@@ -623,6 +650,15 @@
+ entrySetCompletion
+ #endif
+
++#if GTK_CHECK_VERSION(2,18,0)
++entryBuffer :: (EntryClass self, EntryBufferClass buffer) =>
++ ReadWriteAttr self EntryBuffer buffer
++entryBuffer = newAttr
++ entryGetBuffer
++ entrySetBuffer
++#endif
++
++
+ --------------------
+ -- Signals
+
+diff -wbBur /home/sergej/community-my.svn/haskell-gtk/trunk/src/gtk-0.12.3.1/Graphics/UI/Gtk/Gdk/EventM.hsc gtk/Graphics/UI/Gtk/Gdk/EventM.hsc
+--- /home/sergej/community-my.svn/haskell-gtk/trunk/src/gtk-0.12.3.1/Graphics/UI/Gtk/Gdk/EventM.hsc 2012-06-18 01:39:34.000000000 +0400
++++ gtk/Graphics/UI/Gtk/Gdk/EventM.hsc 2012-10-02 16:27:27.000000000 +0400
+@@ -639,14 +639,16 @@
+
+
+ -- | Execute an event handler and assume it handled the event unless it
+--- threw a pattern match exception.
++-- threw a pattern match exception or calls mzero (e.g. via guard).
+ tryEvent :: EventM any () -> EventM any Bool
+ tryEvent act = do
+ ptr <- ask
+ liftIO $ (runReaderT (act >> return True) ptr)
+ #if __GLASGOW_HASKELL__ >= 610
+ `catches` [ Handler (\ (PatternMatchFail _) -> return False)
+- , Handler (\ e -> if isUserError e && "Pattern" `isPrefixOf` ioeGetErrorString e
++ , Handler (\ e -> if isUserError e &&
++ ("Pattern" `isPrefixOf` ioeGetErrorString e ||
++ "mzero" == ioeGetErrorString e)
+ then return False
+ else throw e) ]
+ #else
+@@ -654,6 +656,8 @@
+ IOException e
+ | "user error (Pattern" `isPrefixOf` show e ->
+ return False
++ | "user error (mzero" `isPrefixOf` show e ->
++ return False
+ PatternMatchFail _ -> return False
+ _ -> throw e)
+ #endif
+diff -wbBur /home/sergej/community-my.svn/haskell-gtk/trunk/src/gtk-0.12.3.1/Graphics/UI/Gtk/Gdk/Pixbuf.chs gtk/Graphics/UI/Gtk/Gdk/Pixbuf.chs
+--- /home/sergej/community-my.svn/haskell-gtk/trunk/src/gtk-0.12.3.1/Graphics/UI/Gtk/Gdk/Pixbuf.chs 2012-06-18 01:39:34.000000000 +0400
++++ gtk/Graphics/UI/Gtk/Gdk/Pixbuf.chs 2012-10-02 16:27:28.000000000 +0400
+@@ -69,6 +69,7 @@
+
+ -- * Constructors
+ pixbufNew,
++ pixbufNewFromData,
+ pixbufNewFromFile,
+ #if GTK_CHECK_VERSION(2,4,0)
+ pixbufNewFromFileAtSize,
+@@ -402,6 +403,19 @@
+ (fromBool hasAlpha) (fromIntegral bitsPerSample) (fromIntegral width)
+ (fromIntegral height)
+
++pixbufNewFromData :: Ptr CUChar -> Colorspace -> Bool -> Int -> Int -> Int -> Int -> IO Pixbuf
++pixbufNewFromData imData cSpace hasAlpha bitsPerSample width height rowStride
++ = wrapNewGObject mkPixbuf $
++ {#call pixbuf_new_from_data #}
++ imData
++ (fromIntegral . fromEnum $ cSpace)
++ (fromBool hasAlpha)
++ (fromIntegral bitsPerSample)
++ (fromIntegral width)
++ (fromIntegral height)
++ (fromIntegral rowStride)
++ nullFunPtr nullPtr
++
+ -- | Create a new image from a String.
+ --
+ -- * Creates a new pixbuf from a string description.
+diff -wbBur /home/sergej/community-my.svn/haskell-gtk/trunk/src/gtk-0.12.3.1/Graphics/UI/Gtk/General/Clipboard.chs gtk/Graphics/UI/Gtk/General/Clipboard.chs
+--- /home/sergej/community-my.svn/haskell-gtk/trunk/src/gtk-0.12.3.1/Graphics/UI/Gtk/General/Clipboard.chs 2012-06-18 01:39:34.000000000 +0400
++++ gtk/Graphics/UI/Gtk/General/Clipboard.chs 2012-10-02 16:30:54.000000000 +0400
+@@ -260,7 +260,7 @@
+ -- data succeeded.
+ clipboardSetWithData self targets getFunc clearFunc = do
+ gFunPtr <- mkClipboardGetFunc
+- (\_ sPtr info -> runReaderT (getFunc info) sPtr >> return ())
++ (\_ sPtr info _ -> runReaderT (getFunc info) sPtr >> return ())
+ cFunPtr <- mkClipboardClearFunc
+ (\_ _ -> clearFunc)
+ res <- withTargetEntries targets $ \nTargets targets ->
+@@ -282,7 +282,7 @@
+ {#pointer ClipboardClearFunc#}
+
+ foreign import ccall "wrapper" mkClipboardGetFunc ::
+- (Ptr Clipboard -> Ptr () -> {#type guint#} -> IO ()) -> IO ClipboardGetFunc
++ (Ptr Clipboard -> Ptr () -> {#type guint#} -> Ptr () -> IO ()) -> IO ClipboardGetFunc
+
+ foreign import ccall "wrapper" mkClipboardClearFunc ::
+ (Ptr Clipboard -> Ptr () -> IO ()) -> IO ClipboardClearFunc
+@@ -313,7 +313,7 @@
+ -- ignored.
+ clipboardSetWithOwner self targets getFunc clearFunc owner = do
+ gFunPtr <- mkClipboardGetFunc
+- (\_ sPtr info -> runReaderT (getFunc info) sPtr >> return ())
++ (\_ sPtr info _ -> runReaderT (getFunc info) sPtr >> return ())
+ cFunPtr <- mkClipboardClearFunc
+ (\_ _ -> clearFunc)
+ res <- withTargetEntries targets $ \nTargets targets ->
+@@ -404,7 +404,7 @@
+ clipboardRequestContents self (Atom target) callback = do
+ cbRef <- newIORef nullFunPtr
+ cbPtr <- mkClipboardReceivedFunc
+- (\_ sPtr -> do
++ (\_ sPtr _ -> do
+ freeHaskellFunPtr =<< readIORef cbRef
+ runReaderT callback sPtr
+ return ())
+@@ -418,7 +418,7 @@
+ {#pointer ClipboardReceivedFunc#}
+
+ foreign import ccall "wrapper" mkClipboardReceivedFunc ::
+- (Ptr Clipboard -> Ptr () -> IO ()) -> IO ClipboardReceivedFunc
++ (Ptr Clipboard -> Ptr () -> Ptr () -> IO ()) -> IO ClipboardReceivedFunc
+
+ -- %hash c:7bb1 d:4ef1
+ -- | Requests the contents of the clipboard as text. When the text is later
+@@ -439,7 +439,7 @@
+ clipboardRequestText self callback = do
+ cbRef <- newIORef nullFunPtr
+ cbPtr <- mkClipboardTextReceivedFunc
+- (\_ sPtr -> do
++ (\_ sPtr _ -> do
+ freeHaskellFunPtr =<< readIORef cbRef
+ mStr <- if sPtr==nullPtr then return Nothing else
+ liftM Just $ peekUTFString sPtr
+@@ -453,7 +453,7 @@
+ {#pointer ClipboardTextReceivedFunc#}
+
+ foreign import ccall "wrapper" mkClipboardTextReceivedFunc ::
+- (Ptr Clipboard -> CString -> IO ()) -> IO ClipboardTextReceivedFunc
++ (Ptr Clipboard -> CString -> Ptr () -> IO ()) -> IO ClipboardTextReceivedFunc
+
+
+ #if GTK_CHECK_VERSION(2,6,0)
+@@ -477,7 +477,7 @@
+ clipboardRequestImage self callback = do
+ cbRef <- newIORef nullFunPtr
+ cbPtr <- mkClipboardImageReceivedFunc
+- (\_ sPtr -> do
++ (\_ sPtr _ -> do
+ freeHaskellFunPtr =<< readIORef cbRef
+ mPixbuf <- maybeNull (makeNewGObject mkPixbuf) (return sPtr)
+ callback mPixbuf)
+@@ -490,7 +490,7 @@
+ {#pointer ClipboardImageReceivedFunc#}
+
+ foreign import ccall "wrapper" mkClipboardImageReceivedFunc ::
+- (Ptr Clipboard -> Ptr Pixbuf -> IO ()) -> IO ClipboardImageReceivedFunc
++ (Ptr Clipboard -> Ptr Pixbuf -> Ptr () -> IO ()) -> IO ClipboardImageReceivedFunc
+
+ #endif
+
+@@ -513,7 +513,7 @@
+ clipboardRequestTargets self callback = do
+ cbRef <- newIORef nullFunPtr
+ cbPtr <- mkClipboardTargetsReceivedFunc
+- (\_ tPtr len -> do
++ (\_ tPtr len _ -> do
+ -- We must free Haskell pointer *in* the callback to avoid segfault.
+ freeHaskellFunPtr =<< readIORef cbRef
+ mTargets <- if tPtr==nullPtr then return Nothing else
+@@ -528,7 +528,7 @@
+ {#pointer ClipboardTargetsReceivedFunc#}
+
+ foreign import ccall "wrapper" mkClipboardTargetsReceivedFunc ::
+- (Ptr Clipboard -> Ptr (Ptr ()) -> {#type gint#} -> IO ()) -> IO ClipboardTargetsReceivedFunc
++ (Ptr Clipboard -> Ptr (Ptr ()) -> {#type gint#} -> Ptr () -> IO ()) -> IO ClipboardTargetsReceivedFunc
+
+ #if GTK_CHECK_VERSION(2,10,0)
+ -- %hash c:5601 d:d6a6
+@@ -552,10 +552,10 @@
+ clipboardRequestRichText self buffer callback = do
+ cbRef <- newIORef nullFunPtr
+ cbPtr <- mkClipboardRichTextReceivedFunc
+- (\_ tPtr sPtr len -> do
++ (\_ tPtr sPtr len _ -> do
+ freeHaskellFunPtr =<< readIORef cbRef
+ mRes <- if sPtr==nullPtr then return Nothing else liftM Just $ do
+- str <- peekUTFStringLen (sPtr,fromIntegral len)
++ str <- peekUTFStringLen (castPtr sPtr,fromIntegral len)
+ return (Atom tPtr, str)
+ callback mRes)
+ writeIORef cbRef cbPtr
+@@ -568,7 +568,7 @@
+ {#pointer ClipboardRichTextReceivedFunc#}
+
+ foreign import ccall "wrapper" mkClipboardRichTextReceivedFunc ::
+- (Ptr Clipboard -> Ptr () -> CString -> {#type gsize#} -> IO ()) ->
++ (Ptr Clipboard -> Ptr () -> Ptr CUChar -> {#type gsize#} -> Ptr () -> IO ()) ->
+ IO ClipboardRichTextReceivedFunc
+ #endif
+ #endif
+diff -wbBur /home/sergej/community-my.svn/haskell-gtk/trunk/src/gtk-0.12.3.1/Graphics/UI/Gtk/General/General.chs gtk/Graphics/UI/Gtk/General/General.chs
+--- /home/sergej/community-my.svn/haskell-gtk/trunk/src/gtk-0.12.3.1/Graphics/UI/Gtk/General/General.chs 2012-06-18 01:39:34.000000000 +0400
++++ gtk/Graphics/UI/Gtk/General/General.chs 2012-10-02 16:27:28.000000000 +0400
+@@ -202,7 +202,7 @@
+ -- their arguments from the main loop, that is, from the OS thread of Gtk,
+ -- thereby ensuring that any Gtk and OS function can be called.
+ --
+-{#fun unsafe gdk_threads_enter as threadsEnter {} -> `()' #}
++{#fun gdk_threads_enter as threadsEnter {} -> `()' #}
+
+ -- | Release the global Gtk lock.
+ --
+diff -wbBur /home/sergej/community-my.svn/haskell-gtk/trunk/src/gtk-0.12.3.1/Graphics/UI/Gtk/MenuComboToolbar/ComboBox.chs gtk/Graphics/UI/Gtk/MenuComboToolbar/ComboBox.chs
+--- /home/sergej/community-my.svn/haskell-gtk/trunk/src/gtk-0.12.3.1/Graphics/UI/Gtk/MenuComboToolbar/ComboBox.chs 2012-06-18 01:39:34.000000000 +0400
++++ gtk/Graphics/UI/Gtk/MenuComboToolbar/ComboBox.chs 2012-10-02 16:30:54.000000000 +0400
+@@ -493,17 +493,17 @@
+ {# call gtk_combo_box_set_row_separator_func #}
+ (toComboBox self) nullFunPtr nullPtr nullFunPtr
+ comboBoxSetRowSeparatorSource self (Just (model, extract)) = do
+- funPtr <- mkRowSeparatorFunc $ \_ iterPtr -> do
++ funPtr <- mkRowSeparatorFunc $ \_ iterPtr _ -> do
+ iter <- peek iterPtr
+ value <- customStoreGetRow model iter
+- return (extract value)
++ return (fromBool $ extract value)
+ {# call gtk_combo_box_set_row_separator_func #}
+ (toComboBox self) funPtr (castFunPtrToPtr funPtr) destroyFunPtr
+
+ {#pointer TreeViewRowSeparatorFunc#}
+
+ foreign import ccall "wrapper" mkRowSeparatorFunc ::
+- (Ptr TreeModel -> Ptr TreeIter -> IO Bool) -> IO TreeViewRowSeparatorFunc
++ (Ptr TreeModel -> Ptr TreeIter -> Ptr () -> IO {#type gboolean #}) -> IO TreeViewRowSeparatorFunc
+
+ -- %hash c:5bf8
+ -- | Sets whether the popup menu should have a tearoff menu item.
+diff -wbBur /home/sergej/community-my.svn/haskell-gtk/trunk/src/gtk-0.12.3.1/Graphics/UI/Gtk/MenuComboToolbar/MenuItem.chs gtk/Graphics/UI/Gtk/MenuComboToolbar/MenuItem.chs
+--- /home/sergej/community-my.svn/haskell-gtk/trunk/src/gtk-0.12.3.1/Graphics/UI/Gtk/MenuComboToolbar/MenuItem.chs 2012-06-18 01:39:34.000000000 +0400
++++ gtk/Graphics/UI/Gtk/MenuComboToolbar/MenuItem.chs 2012-10-02 16:27:30.000000000 +0400
+@@ -76,6 +76,12 @@
+ menuItemNewWithMnemonic,
+
+ -- * Methods
++#if GTK_CHECK_VERSION(2,16,0)
++ menuItemSetLabel,
++ menuItemGetLabel,
++ menuItemSetUseUnderline,
++ menuItemGetUseUnderline,
++#endif
+ menuItemSetSubmenu,
+ menuItemGetSubmenu,
+ menuItemRemoveSubmenu,
+@@ -89,6 +95,10 @@
+ -- * Attributes
+ menuItemSubmenu,
+ menuItemRightJustified,
++#if GTK_CHECK_VERSION(2,16,0)
++ menuItemLabel,
++ menuItemUseUnderline,
++#endif
+
+ -- * Signals
+ menuItemActivateItem,
+@@ -163,7 +173,36 @@
+
+ --------------------
+ -- Methods
++#if GTK_CHECK_VERSION(2,16,0)
++-- | Sets text on the MenuItem label
++
++menuItemSetLabel :: (MenuItemClass self) => self -> String -> IO ()
++menuItemSetLabel self label =
++ withUTFString label $ {# call gtk_menu_item_set_label #} (toMenuItem self)
++
++-- | Gets text on the MenuItem label
++menuItemGetLabel :: (MenuItemClass self) => self -> IO String
++menuItemGetLabel self =
++ {# call gtk_menu_item_get_label #}
++ (toMenuItem self)
++ >>= \strPtr -> if strPtr == nullPtr
++ then return ""
++ else peekUTFString strPtr
++
++-- | If True, an underline in the text indicates the next character should be used for the mnemonic accelerator key.
++--
++menuItemSetUseUnderline :: (MenuItemClass self) => self -> Bool -> IO ()
++menuItemSetUseUnderline self =
++ {# call gtk_menu_item_set_use_underline #} (toMenuItem self) . fromBool
+
++-- | Checks if an underline in the text indicates the next character should be used for the mnemonic accelerator key.
++--
++menuItemGetUseUnderline :: (MenuItemClass self) => self -> IO Bool
++menuItemGetUseUnderline self =
++ liftM toBool $ {# call gtk_menu_item_get_use_underline #}
++ (toMenuItem self)
++
++#endif
+ -- | Sets the item's submenu, or changes it.
+ --
+ menuItemSetSubmenu :: (MenuItemClass self, MenuClass submenu) => self -> submenu -> IO ()
+@@ -278,6 +317,22 @@
+ menuItemGetRightJustified
+ menuItemSetRightJustified
+
++#if GTK_CHECK_VERSION(2,16,0)
++-- | \'label\' property. See 'menuItemSetLabel' and 'menuItemGetLabel'
++--
++menuItemLabel :: MenuItemClass self => Attr self String
++menuItemLabel = newAttr
++ menuItemGetLabel
++ menuItemSetLabel
++
++-- | \'useUnderline\' property. See 'menuItemSetUseUnderline' and
++-- 'menuItemGetUseEUnderline'
++--
++menuItemUseUnderline :: MenuItemClass self => Attr self Bool
++menuItemUseUnderline = newAttr
++ menuItemGetUseUnderline
++ menuItemSetUseUnderline
++#endif
+ --------------------
+ -- Signals
+
+diff -wbBur /home/sergej/community-my.svn/haskell-gtk/trunk/src/gtk-0.12.3.1/Graphics/UI/Gtk/ModelView/CustomStore.chs gtk/Graphics/UI/Gtk/ModelView/CustomStore.chs
+--- /home/sergej/community-my.svn/haskell-gtk/trunk/src/gtk-0.12.3.1/Graphics/UI/Gtk/ModelView/CustomStore.chs 2012-06-18 01:39:34.000000000 +0400
++++ gtk/Graphics/UI/Gtk/ModelView/CustomStore.chs 2012-10-02 16:27:33.000000000 +0400
+@@ -239,7 +239,7 @@
+ customTreeDragSourceIface = fromMaybe dummyDragSource mDragSource,
+ customTreeDragDestIface = fromMaybe dummyDragDest mDragDest }
+ privPtr <- newStablePtr priv
+- liftM con $ makeNewGObject (CustomStore, objectUnref) $
++ liftM con $ wrapNewGObject (CustomStore, objectUnref) $
+ gtk2hs_store_new implPtr privPtr
+
+ foreign import ccall unsafe "Gtk2HsStore.h gtk2hs_store_new"
+diff -wbBur /home/sergej/community-my.svn/haskell-gtk/trunk/src/gtk-0.12.3.1/Graphics/UI/Gtk/ModelView/TreeModel.chs gtk/Graphics/UI/Gtk/ModelView/TreeModel.chs
+--- /home/sergej/community-my.svn/haskell-gtk/trunk/src/gtk-0.12.3.1/Graphics/UI/Gtk/ModelView/TreeModel.chs 2012-06-18 01:39:34.000000000 +0400
++++ gtk/Graphics/UI/Gtk/ModelView/TreeModel.chs 2012-10-02 16:30:54.000000000 +0400
+@@ -427,7 +427,7 @@
+ {#pointer TreeModelForeachFunc#}
+
+ foreign import ccall "wrapper" mkTreeModelForeachFunc ::
+- (Ptr () -> Ptr () -> Ptr TreeIter -> Ptr () -> IO CInt) ->
++ (Ptr TreeModel -> Ptr NativeTreePath -> Ptr TreeIter -> Ptr () -> IO CInt) ->
+ IO TreeModelForeachFunc
+
+ #if GTK_CHECK_VERSION(2,2,0)
+diff -wbBur /home/sergej/community-my.svn/haskell-gtk/trunk/src/gtk-0.12.3.1/Graphics/UI/Gtk/ModelView/TreeModelFilter.chs gtk/Graphics/UI/Gtk/ModelView/TreeModelFilter.chs
+--- /home/sergej/community-my.svn/haskell-gtk/trunk/src/gtk-0.12.3.1/Graphics/UI/Gtk/ModelView/TreeModelFilter.chs 2012-06-18 01:39:34.000000000 +0400
++++ gtk/Graphics/UI/Gtk/ModelView/TreeModelFilter.chs 2012-10-02 16:30:54.000000000 +0400
+@@ -160,7 +160,7 @@
+ {#pointer TreeModelFilterVisibleFunc #}
+
+ foreign import ccall "wrapper" mkTreeModelFilterVisibleFunc ::
+- (Ptr TreeModelFilter -> Ptr TreeIter -> Ptr () -> IO {#type gboolean#}) ->
++ (Ptr TreeModel -> Ptr TreeIter -> Ptr () -> IO {#type gboolean#}) ->
+ IO TreeModelFilterVisibleFunc
+
+ -- %hash c:a56d d:b42e
+diff -wbBur /home/sergej/community-my.svn/haskell-gtk/trunk/src/gtk-0.12.3.1/Graphics/UI/Gtk/ModelView/TreeSelection.chs gtk/Graphics/UI/Gtk/ModelView/TreeSelection.chs
+--- /home/sergej/community-my.svn/haskell-gtk/trunk/src/gtk-0.12.3.1/Graphics/UI/Gtk/ModelView/TreeSelection.chs 2012-06-18 01:39:34.000000000 +0400
++++ gtk/Graphics/UI/Gtk/ModelView/TreeSelection.chs 2012-10-02 16:30:54.000000000 +0400
+@@ -151,7 +151,7 @@
+ treeSelectionSetSelectFunction :: TreeSelectionClass self => self
+ -> TreeSelectionCB -> IO ()
+ treeSelectionSetSelectFunction ts fun = do
+- fPtr <- mkTreeSelectionFunc (\_ _ tp _ -> do
++ fPtr <- mkTreeSelectionFunc (\_ _ tp _ _ -> do
+ path <- peekTreePath (castPtr tp)
+ liftM fromBool $ fun path
+ )
+@@ -168,7 +168,7 @@
+ {#pointer TreeSelectionFunc#}
+
+ foreign import ccall "wrapper" mkTreeSelectionFunc ::
+- (Ptr () -> Ptr () -> Ptr TreePath -> Ptr () -> IO CInt)->
++ (Ptr TreeSelection -> Ptr TreeModel -> Ptr NativeTreePath -> {#type gint#} -> Ptr () -> IO CInt)->
+ IO TreeSelectionFunc
+
+ -- | Retrieve the 'TreeView' widget that this 'TreeSelection' works on.
+@@ -199,7 +199,7 @@
+ -> TreeSelectionForeachCB
+ -> IO ()
+ treeSelectionSelectedForeach self fun = do
+- fPtr <- mkTreeSelectionForeachFunc (\_ _ iterPtr -> do
++ fPtr <- mkTreeSelectionForeachFunc (\_ _ iterPtr _ -> do
+ -- make a deep copy of the iterator. This makes it possible to store this
+ -- iterator in Haskell land somewhere. The TreeModel parameter is not
+ -- passed to the function due to performance reasons. But since it is
+@@ -219,7 +219,7 @@
+ {#pointer TreeSelectionForeachFunc#}
+
+ foreign import ccall "wrapper" mkTreeSelectionForeachFunc ::
+- (Ptr () -> Ptr () -> Ptr TreeIter -> IO ()) -> IO TreeSelectionForeachFunc
++ (Ptr TreeModel -> Ptr NativeTreePath -> Ptr TreeIter -> Ptr () -> IO ()) -> IO TreeSelectionForeachFunc
+
+ #if GTK_CHECK_VERSION(2,2,0)
+ -- | Creates a list of paths of all selected rows.
+diff -wbBur /home/sergej/community-my.svn/haskell-gtk/trunk/src/gtk-0.12.3.1/Graphics/UI/Gtk/ModelView/TreeView.chs gtk/Graphics/UI/Gtk/ModelView/TreeView.chs
+--- /home/sergej/community-my.svn/haskell-gtk/trunk/src/gtk-0.12.3.1/Graphics/UI/Gtk/ModelView/TreeView.chs 2012-06-18 01:39:34.000000000 +0400
++++ gtk/Graphics/UI/Gtk/ModelView/TreeView.chs 2012-10-02 16:30:54.000000000 +0400
+@@ -582,7 +582,7 @@
+ {#pointer TreeViewColumnDropFunc#}
+
+ foreign import ccall "wrapper" mkTreeViewColumnDropFunc ::
+- (Ptr () -> Ptr TreeViewColumn -> Ptr TreeViewColumn -> Ptr TreeViewColumn ->
++ (Ptr TreeView -> Ptr TreeViewColumn -> Ptr TreeViewColumn -> Ptr TreeViewColumn ->
+ Ptr () -> IO {#type gboolean#}) -> IO TreeViewColumnDropFunc
+
+ -- | Scroll to a coordinate.
+@@ -798,7 +798,7 @@
+ {#pointer TreeViewMappingFunc#}
+
+ foreign import ccall "wrapper" mkTreeViewMappingFunc ::
+- (Ptr () -> Ptr NativeTreePath -> Ptr () -> IO ()) ->
++ (Ptr TreeView -> Ptr NativeTreePath -> Ptr () -> IO ()) ->
+ IO TreeViewMappingFunc
+
+ -- | Check if row is expanded.
+diff -wbBur /home/sergej/community-my.svn/haskell-gtk/trunk/src/gtk-0.12.3.1/Graphics/UI/Gtk/Multiline/TextBuffer.chs gtk/Graphics/UI/Gtk/Multiline/TextBuffer.chs
+--- /home/sergej/community-my.svn/haskell-gtk/trunk/src/gtk-0.12.3.1/Graphics/UI/Gtk/Multiline/TextBuffer.chs 2012-06-18 01:39:34.000000000 +0400
++++ gtk/Graphics/UI/Gtk/Multiline/TextBuffer.chs 2012-10-02 16:27:34.000000000 +0400
+@@ -1251,16 +1251,26 @@
+
+ -- | A 'Pixbuf' is inserted into the buffer.
+ --
++-- * See note in 'bufferInsertText'.
++--
+ insertPixbuf :: TextBufferClass self => Signal self (TextIter -> Pixbuf -> IO ())
+ insertPixbuf = Signal (connect_BOXED_OBJECT__NONE "insert-pixbuf" mkTextIterCopy)
+
+ -- | The 'insertChildAnchor' signal is emitted to insert a 'TextChildAnchor' in a 'TextBuffer'.
+ -- Insertion actually occurs in the default handler.
+ --
++-- * See note in 'bufferInsertText'.
++--
+ insertChildAnchor :: TextBufferClass self => Signal self (TextIter -> TextChildAnchor -> IO ())
+ insertChildAnchor = Signal (connect_BOXED_OBJECT__NONE "insert-child-anchor" mkTextIterCopy)
+
+--- | Some text was inserted.
++-- | Some text is inserted. Insertion actually occurs in the default handler.
++--
++-- * The function connected to this handler may not modify the buffer since
++-- this would invalidate the iterator. If this function replaces the
++-- default handler, it needs to stop the emission of this signal in order
++-- to prevent the default handler from running. If additional text should
++-- be inserted, this can be done using the 'after' function to connect.
+ --
+ bufferInsertText :: TextBufferClass self => Signal self (TextIter -> String -> IO ())
+ bufferInsertText = Signal $ \after obj handler ->
+diff -wbBur /home/sergej/community-my.svn/haskell-gtk/trunk/src/gtk-0.12.3.1/Graphics/UI/Gtk/Multiline/TextIter.chs gtk/Graphics/UI/Gtk/Multiline/TextIter.chs
+--- /home/sergej/community-my.svn/haskell-gtk/trunk/src/gtk-0.12.3.1/Graphics/UI/Gtk/Multiline/TextIter.chs 2012-06-18 01:39:34.000000000 +0400
++++ gtk/Graphics/UI/Gtk/Multiline/TextIter.chs 2012-10-02 16:30:54.000000000 +0400
+@@ -797,7 +797,7 @@
+ {#pointer TextCharPredicate#}
+
+ foreign import ccall "wrapper" mkTextCharPredicate ::
+- ({#type gunichar#} -> Ptr () -> {#type gboolean#}) -> IO TextCharPredicate
++ ({#type gunichar#} -> Ptr () -> IO {#type gboolean#}) -> IO TextCharPredicate
+
+ -- | Move 'TextIter' forward until a
+ -- predicate function returns True.
+@@ -810,7 +810,7 @@
+ textIterForwardFindChar :: TextIter -> (Char -> Bool) -> Maybe TextIter ->
+ IO Bool
+ textIterForwardFindChar ti pred limit = do
+- fPtr <- mkTextCharPredicate (\c _ -> fromBool $ pred (chr (fromIntegral c)))
++ fPtr <- mkTextCharPredicate (\c _ -> return $ fromBool $ pred (chr (fromIntegral c)))
+ res <- liftM toBool $ {#call text_iter_forward_find_char#}
+ ti fPtr nullPtr (fromMaybe (TextIter nullForeignPtr) limit)
+ freeHaskellFunPtr fPtr
+@@ -827,7 +827,7 @@
+ textIterBackwardFindChar :: TextIter -> (Char -> Bool) -> Maybe TextIter ->
+ IO Bool
+ textIterBackwardFindChar ti pred limit = do
+- fPtr <- mkTextCharPredicate (\c _ -> fromBool $ pred (chr (fromIntegral c)))
++ fPtr <- mkTextCharPredicate (\c _ -> return $ fromBool $ pred (chr (fromIntegral c)))
+ res <- liftM toBool $ {#call text_iter_backward_find_char#}
+ ti fPtr nullPtr (fromMaybe (TextIter nullForeignPtr) limit)
+ freeHaskellFunPtr fPtr
+diff -wbBur /home/sergej/community-my.svn/haskell-gtk/trunk/src/gtk-0.12.3.1/Graphics/UI/Gtk/Windows/Assistant.chs gtk/Graphics/UI/Gtk/Windows/Assistant.chs
+--- /home/sergej/community-my.svn/haskell-gtk/trunk/src/gtk-0.12.3.1/Graphics/UI/Gtk/Windows/Assistant.chs 2012-06-18 01:39:34.000000000 +0400
++++ gtk/Graphics/UI/Gtk/Windows/Assistant.chs 2012-10-02 16:30:54.000000000 +0400
+@@ -274,7 +274,7 @@
+ {#pointer AssistantPageFunc#}
+
+ foreign import ccall "wrapper" mkAssistantPageFunc ::
+- ({#type glong#} -> Ptr () -> IO {#type glong#})
++ ({#type gint#} -> Ptr () -> IO {#type gint#})
+ -> IO AssistantPageFunc
+
+ -- | Sets the page type for @page@. The page type determines the page behavior
diff --git a/community/haskell-haskeline/PKGBUILD b/community/haskell-haskeline/PKGBUILD
index efa76ace8..403cb1a18 100644
--- a/community/haskell-haskeline/PKGBUILD
+++ b/community/haskell-haskeline/PKGBUILD
@@ -1,20 +1,20 @@
-# $Id: PKGBUILD 72390 2012-06-13 13:46:29Z tdziedzic $
+# $Id: PKGBUILD 77346 2012-10-09 04:17:37Z tdziedzic $
# Maintainer: Vesa Kaihlavirta <vegai@iki.fi>
# Contributor: Arch Haskell Team <arch-haskell@haskell.org>
# Package generated by cabal2arch 0.7.6
_hkgname=haskeline
pkgname=haskell-haskeline
-pkgver=0.6.4.7
+pkgver=0.7.0.3
pkgrel=1
pkgdesc="A command-line interface for user input, written in Haskell."
url="http://hackage.haskell.org/package/haskeline"
license=('custom:BSD3')
arch=('i686' 'x86_64' 'mips64el')
-depends=('ghc=7.4.2-1' 'sh' 'haskell-utf8-string=0.3.7-2' 'haskell-mtl=2.1.1-1' 'haskell-terminfo=0.3.2.3-2')
+depends=('ghc=7.6.1-1' 'sh' 'haskell-utf8-string=0.3.7-3' 'haskell-mtl=2.1.2-1' 'haskell-terminfo=0.3.2.5-1')
source=(http://hackage.haskell.org/packages/archive/${_hkgname}/${pkgver}/${_hkgname}-${pkgver}.tar.gz)
install=${pkgname}.install
-md5sums=('d8d0a90a9965f4f68935e76e4e777035')
+md5sums=('3a78043dc80b5510202e71e77c0a9923')
build() {
cd ${srcdir}/${_hkgname}-${pkgver}
diff --git a/community/haskell-hslogger/PKGBUILD b/community/haskell-hslogger/PKGBUILD
index bc06dc50b..b20f59876 100644
--- a/community/haskell-hslogger/PKGBUILD
+++ b/community/haskell-hslogger/PKGBUILD
@@ -1,15 +1,15 @@
-# $Id: PKGBUILD 75909 2012-09-05 10:20:43Z spupykin $
+# $Id: PKGBUILD 77347 2012-10-09 04:17:42Z tdziedzic $
# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
# Maintainer: Arch Haskell Team <arch-haskell@haskell.org>
pkgname=haskell-hslogger
pkgver=1.2.0
-pkgrel=1
+pkgrel=2
pkgdesc="Versatile logging framework"
url="http://hackage.haskell.org/package/hslogger"
license=('LGPL')
arch=('i686' 'x86_64' 'mips64el')
-depends=('ghc=7.4.2-1' 'haskell-mtl=2.1.1-1' 'haskell-network=2.3.0.14-1')
+depends=('ghc=7.6.1-1' 'haskell-mtl=2.1.2-1' 'haskell-network=2.3.1.0-1')
install=${pkgname}.install
source=(http://hackage.haskell.org/packages/archive/hslogger/${pkgver}/hslogger-${pkgver}.tar.gz)
md5sums=('e0737887b0df75a3781989c8f6689850')
diff --git a/community/haskell-html/PKGBUILD b/community/haskell-html/PKGBUILD
index f9aaa0f0f..8eb9fc6f4 100644
--- a/community/haskell-html/PKGBUILD
+++ b/community/haskell-html/PKGBUILD
@@ -5,12 +5,12 @@
_hkgname=html
pkgname=haskell-html
pkgver=1.0.1.2
-pkgrel=11
+pkgrel=12
pkgdesc="HTML combinator library"
url="http://hackage.haskell.org/package/html"
license=('custom:BSD3')
arch=('i686' 'x86_64')
-depends=('ghc=7.4.2-1' sh)
+depends=('ghc=7.6.1-1' sh)
source=(http://hackage.haskell.org/packages/archive/${_hkgname}/${pkgver}/${_hkgname}-${pkgver}.tar.gz)
install=${pkgname}.install
md5sums=('2a7de5a2af9a2f80d39825d6a95ee445')
diff --git a/community/haskell-pango/PKGBUILD b/community/haskell-pango/PKGBUILD
index aa044c1ad..347c3a31d 100644
--- a/community/haskell-pango/PKGBUILD
+++ b/community/haskell-pango/PKGBUILD
@@ -1,43 +1,46 @@
-# $Id: PKGBUILD 72393 2012-06-13 13:46:44Z tdziedzic $
+# $Id: PKGBUILD 77349 2012-10-09 04:17:52Z tdziedzic $
# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
pkgname=haskell-pango
pkgver=0.12.3
-pkgrel=2
+pkgrel=3
pkgdesc="Binding to the pango library for Gtk2Hs."
url="http://hackage.haskell.org/package/pango"
license=('LGPL2.1')
arch=('i686' 'x86_64')
-depends=('ghc=7.4.2-1' 'pango' 'haskell-glib=0.12.3.1-1' 'haskell-cairo=0.12.3.1-1')
+depends=('ghc' 'pango' 'haskell-glib' 'haskell-cairo')
makedepends=("gtk2hs-buildtools")
provides=('gtk2hs-pango')
replaces=('gtk2hs-pango')
conflicts=('gtk2hs-pango')
options=('strip')
-source=(http://hackage.haskell.org/packages/archive/pango/${pkgver}/pango-${pkgver}.tar.gz)
install=gtk2hs-pango.install
+source=(http://hackage.haskell.org/packages/archive/pango/${pkgver}/pango-${pkgver}.tar.gz)
md5sums=('1ef3132cb569703d5b1bc262c9d86fe3')
build() {
- cd ${srcdir}/pango-${pkgver}
- runhaskell Setup configure -O -p --enable-split-objs --enable-shared \
- --prefix=/usr --docdir=/usr/share/doc/haskell-pango \
- --libsubdir=\$compiler/site-local/\$pkgid
- runhaskell Setup build
- runhaskell Setup haddock
- runhaskell Setup register --gen-script
- runhaskell Setup unregister --gen-script
- sed -i -r -e "s|ghc-pkg.*unregister[^ ]* |&'--force' |" unregister.sh
+ cd ${srcdir}/pango-${pkgver}
+ runhaskell Setup configure -O -p --enable-split-objs --enable-shared \
+ --prefix=/usr --docdir=/usr/share/doc/haskell-pango \
+ --libsubdir=\$compiler/site-local/\$pkgid
+ sed -i 's|import Foreign.C.Types.*(CULong, CUInt)|import Foreign.C.Types (CULong(..), CUInt(..))|' Graphics/Rendering/Pango/Types.chs
+ runhaskell Setup build
+ runhaskell Setup haddock
+ runhaskell Setup register --gen-script
+ runhaskell Setup unregister --gen-script
+ sed -i -r -e "s|ghc-pkg.*unregister[^ ]* |&'--force' |" unregister.sh
}
package() {
- #_ghcver=`pacman -Q ghc | cut -f2 -d\ | cut -f1 -d-`
- #depends=("ghc=${_ghcver}" 'pango' 'haskell-glib' 'haskell-cairo')
+ _ghcver=`pacman -Q ghc | cut -f2 -d\ | cut -f1 -d-`
+ _hglibver=`pacman -Q haskell-glib | cut -f2 -d\ | cut -f1 -d-`
+ _hcairover=`pacman -Q haskell-cairo | cut -f2 -d\ | cut -f1 -d-`
+ depends=("ghc=${_ghcver}" "pango" "haskell-glib=${_hglibver}" "haskell-cairo=${_hcairover}")
- cd ${srcdir}/pango-${pkgver}
- install -D -m744 register.sh ${pkgdir}/usr/share/haskell/gtk2hs-pango/register.sh
- install -m744 unregister.sh ${pkgdir}/usr/share/haskell/gtk2hs-pango/unregister.sh
- install -d -m755 ${pkgdir}/usr/share/doc/ghc/html/libraries
- ln -s /usr/share/doc/haskell-pango/html ${pkgdir}/usr/share/doc/ghc/html/libraries/pango
- runhaskell Setup copy --destdir=${pkgdir}
+ cd ${srcdir}/pango-${pkgver}
+ install -D -m744 register.sh ${pkgdir}/usr/share/haskell/gtk2hs-pango/register.sh
+ install -m744 unregister.sh ${pkgdir}/usr/share/haskell/gtk2hs-pango/unregister.sh
+ install -d -m755 ${pkgdir}/usr/share/doc/ghc/html/libraries
+ ln -s /usr/share/doc/haskell-pango/html ${pkgdir}/usr/share/doc/ghc/html/libraries/pango
+ runhaskell Setup copy --destdir=${pkgdir}
}
diff --git a/community/haskell-quickcheck/0001-update-code-to-support-extensible-exceptions-no-long.patch b/community/haskell-quickcheck/0001-update-code-to-support-extensible-exceptions-no-long.patch
new file mode 100644
index 000000000..a25506e67
--- /dev/null
+++ b/community/haskell-quickcheck/0001-update-code-to-support-extensible-exceptions-no-long.patch
@@ -0,0 +1,50 @@
+From 554b8dc1439b4dbb5bc9a853fc27efe7b1e111de Mon Sep 17 00:00:00 2001
+From: Thomas Dziedzic <gostrc@gmail.com>
+Date: Tue, 11 Sep 2012 03:59:50 -0700
+Subject: [PATCH] update code to support extensible exceptions no longer being
+ a part of ghc >= 7.6.1
+
+---
+ QuickCheck.cabal | 6 +++++-
+ Test/QuickCheck/Exception.hs | 6 ++++++
+ 2 files changed, 11 insertions(+), 1 deletion(-)
+
+diff --git a/QuickCheck.cabal b/QuickCheck.cabal
+index 1a9126e..5afd6fb 100644
+--- a/QuickCheck.cabal
++++ b/QuickCheck.cabal
+@@ -60,9 +60,13 @@ library
+ Build-depends: ghc
+
+ -- We want to use extensible-exceptions even if linking against base-3.
+- if impl(ghc >= 6.9)
++ if impl(ghc >= 6.9) && impl(ghc < 7.6)
+ Build-depends: extensible-exceptions
+
++ -- GHC >= 7.6.1 no longer provides extensible exceptions
++ if impl(ghc >= 7.6)
++ cpp-options: -DNEW_EXCEPTIONS
++
+ -- Modules that are always built.
+ Exposed-Modules:
+ Test.QuickCheck,
+diff --git a/Test/QuickCheck/Exception.hs b/Test/QuickCheck/Exception.hs
+index f895351..d463195 100644
+--- a/Test/QuickCheck/Exception.hs
++++ b/Test/QuickCheck/Exception.hs
+@@ -18,6 +18,12 @@ module Test.QuickCheck.Exception where
+
+ #if defined(OLD_EXCEPTIONS)
+ import Control.Exception(evaluate, try, Exception(..), throw)
++#elif defined(NEW_EXCEPTIONS)
++import Control.Exception(evaluate, try, SomeException(SomeException), ErrorCall(..), throw
++#if defined(GHC_INTERRUPT)
++ , AsyncException(UserInterrupt)
++#endif
++ )
+ #else
+ import Control.Exception.Extensible(evaluate, try, SomeException(SomeException), ErrorCall(..), throw
+ #if defined(GHC_INTERRUPT)
+--
+1.7.12
+
diff --git a/community/haskell-quickcheck/PKGBUILD b/community/haskell-quickcheck/PKGBUILD
index 2ee16af54..e96121f81 100644
--- a/community/haskell-quickcheck/PKGBUILD
+++ b/community/haskell-quickcheck/PKGBUILD
@@ -4,19 +4,20 @@
_hkgname=QuickCheck
pkgname=haskell-quickcheck
-pkgver=2.5
+pkgver=2.5.1.1
pkgrel=1
pkgdesc="Automatic testing of Haskell programs"
url="http://hackage.haskell.org/package/QuickCheck"
license=('custom:BSD3')
arch=('i686' 'x86_64')
-depends=('ghc=7.4.2-1' 'haskell-random=1.0.1.1-2' 'sh')
+depends=('ghc=7.6.1-1' 'haskell-random=1.0.1.1-3' 'sh')
source=(http://hackage.haskell.org/packages/archive/${_hkgname}/$pkgver/${_hkgname}-$pkgver.tar.gz)
install=${pkgname}.install
-md5sums=('ad647a3f208092e5d41469369c18185e')
+md5sums=('2631b41c8b6e297b52622d1698387f09')
build() {
cd ${srcdir}/${_hkgname}-${pkgver}
+
runhaskell Setup configure -O -p --enable-split-objs --enable-shared --prefix=/usr \
--docdir=/usr/share/doc/${pkgname} --libsubdir=\$compiler/site-local/\$pkgid
runhaskell Setup build
diff --git a/community/haskell-regex-base/PKGBUILD b/community/haskell-regex-base/PKGBUILD
index d787c6007..d4e951cc6 100644
--- a/community/haskell-regex-base/PKGBUILD
+++ b/community/haskell-regex-base/PKGBUILD
@@ -4,12 +4,12 @@
_hkgname=regex-base
pkgname=haskell-regex-base
pkgver=0.93.2
-pkgrel=6
+pkgrel=7
pkgdesc="Interface API for regex-posix,pcre,parsec,tdfa,dfa"
url="http://hackage.haskell.org/cgi-bin/hackage-scripts/package/regex-base"
license=('custom:BSD3')
arch=('i686' 'x86_64')
-depends=('ghc=7.4.2-1' sh 'haskell-mtl=2.1.1-1')
+depends=('ghc=7.6.1-1' sh 'haskell-mtl=2.1.2-1')
source=(http://hackage.haskell.org/packages/archive/${_hkgname}/$pkgver/${_hkgname}-$pkgver.tar.gz)
install=${pkgname}.install
md5sums=('e7b93b0b17eff8d3068ecb2f5d5f6ea3')
diff --git a/community/haskell-regex-compat/PKGBUILD b/community/haskell-regex-compat/PKGBUILD
index f1e91b553..c546442ec 100644
--- a/community/haskell-regex-compat/PKGBUILD
+++ b/community/haskell-regex-compat/PKGBUILD
@@ -4,12 +4,12 @@
_hkgname=regex-compat
pkgname=haskell-regex-compat
pkgver=0.95.1
-pkgrel=2
+pkgrel=3
pkgdesc="Replaces and enhances Text.Regex"
url="http://hackage.haskell.org/package/${_hkgname}"
license=('custom:BSD3')
arch=('i686' 'x86_64')
-depends=('ghc=7.4.2-1' 'sh' 'haskell-regex-base=0.93.2-6' 'haskell-regex-posix=0.95.2-1')
+depends=('ghc=7.6.1-1' 'sh' 'haskell-regex-base=0.93.2-7' 'haskell-regex-posix=0.95.2-2')
source=(http://hackage.haskell.org/packages/archive/${_hkgname}/${pkgver}/${_hkgname}-${pkgver}.tar.gz)
install=${pkgname}.install
md5sums=('d0573ab4e2f3de5faa61380b67333320')
diff --git a/community/haskell-regex-posix/PKGBUILD b/community/haskell-regex-posix/PKGBUILD
index f49daf3b2..3c570e4d1 100644
--- a/community/haskell-regex-posix/PKGBUILD
+++ b/community/haskell-regex-posix/PKGBUILD
@@ -4,12 +4,12 @@
_hkgname=regex-posix
pkgname=haskell-regex-posix
pkgver=0.95.2
-pkgrel=1
+pkgrel=2
pkgdesc="The posix regex backend for regex-base"
url="http://hackage.haskell.org/package/${_hkgname}"
license=('custom:BSD3')
arch=('i686' 'x86_64')
-depends=('ghc=7.4.2-1' 'sh' 'haskell-regex-base=0.93.2-6')
+depends=('ghc=7.6.1-1' 'sh' 'haskell-regex-base=0.93.2-7')
source=(http://hackage.haskell.org/packages/archive/${_hkgname}/${pkgver}/${_hkgname}-${pkgver}.tar.gz)
install=${pkgname}.install
md5sums=('1df0f9494aab110c7231f36393285c7c')
diff --git a/community/haskell-stm/PKGBUILD b/community/haskell-stm/PKGBUILD
index 8eba45641..fec52e949 100644
--- a/community/haskell-stm/PKGBUILD
+++ b/community/haskell-stm/PKGBUILD
@@ -3,16 +3,16 @@
# Package generated by cabal2arch 0.7.5
_hkgname=stm
pkgname=haskell-stm
-pkgver=2.3
+pkgver=2.4
pkgrel=1
pkgdesc="A modular composable concurrency abstraction."
url="http://hackage.haskell.org/package/stm"
license=('custom:BSD3')
arch=('i686' 'x86_64')
-depends=('ghc=7.4.2-1' 'sh')
+depends=('ghc=7.6.1-1' 'sh')
source=(http://hackage.haskell.org/packages/archive/${_hkgname}/$pkgver/${_hkgname}-$pkgver.tar.gz)
install=${pkgname}.install
-md5sums=('fcaf091a492974045cc04b231a3b7c9c')
+md5sums=('fe8ab1a8231202f1748da53454cf55fc')
build() {
cd ${srcdir}/${_hkgname}-$pkgver
diff --git a/community/haskell-syb/PKGBUILD b/community/haskell-syb/PKGBUILD
index 301c463b5..a2595bf2c 100644
--- a/community/haskell-syb/PKGBUILD
+++ b/community/haskell-syb/PKGBUILD
@@ -2,17 +2,17 @@
# Contributor: Arch Haskell Team <arch-haskell@haskell.org>
_hkgname=syb
pkgname=haskell-syb
-pkgver=0.3.6.1
+pkgver=0.3.7
pkgrel=1
pkgdesc="A library for client-side HTTP"
url="http://hackage.haskell.org/package/${_hkgname}"
license=('custom:BSD3')
arch=('i686' 'x86_64')
-depends=('ghc=7.4.2-1' sh)
+depends=('ghc=7.6.1-1' sh)
options=('strip')
source=(http://hackage.haskell.org/packages/archive/${_hkgname}/${pkgver}/${_hkgname}-${pkgver}.tar.gz)
install=${pkgname}.install
-md5sums=('50e0a755fcc735cccd0d77a89714ae38')
+md5sums=('fa653976a4ee43918cc7546089f94b60')
build() {
cd ${srcdir}/${_hkgname}-${pkgver}
diff --git a/community/haskell-tar/0001-update-changed-time-code-for-ghc-7.6.1.patch b/community/haskell-tar/0001-update-changed-time-code-for-ghc-7.6.1.patch
new file mode 100644
index 000000000..b8c2264bc
--- /dev/null
+++ b/community/haskell-tar/0001-update-changed-time-code-for-ghc-7.6.1.patch
@@ -0,0 +1,50 @@
+From bd14edd6240c72baa22822338fc872e6827af680 Mon Sep 17 00:00:00 2001
+From: Thomas Dziedzic <gostrc@gmail.com>
+Date: Tue, 11 Sep 2012 06:24:09 -0700
+Subject: [PATCH] update changed time code for ghc 7.6.1
+
+---
+ Codec/Archive/Tar/Pack.hs | 9 +++++----
+ tar.cabal | 2 +-
+ 2 files changed, 6 insertions(+), 5 deletions(-)
+
+diff --git a/Codec/Archive/Tar/Pack.hs b/Codec/Archive/Tar/Pack.hs
+index 8e43091..0af6103 100644
+--- a/Codec/Archive/Tar/Pack.hs
++++ b/Codec/Archive/Tar/Pack.hs
+@@ -28,8 +28,8 @@ import qualified System.FilePath as FilePath.Native
+ import System.Directory
+ ( getDirectoryContents, doesDirectoryExist, getModificationTime
+ , Permissions(..), getPermissions )
+-import System.Time
+- ( ClockTime(..) )
++import Data.Time.Clock.POSIX
++ ( utcTimeToPOSIXSeconds )
+ import System.IO
+ ( IOMode(ReadMode), openBinaryFile, hFileSize )
+ import System.IO.Unsafe (unsafeInterleaveIO)
+@@ -170,5 +170,6 @@ recurseDirectories base (dir:dirs) = unsafeInterleaveIO $ do
+
+ getModTime :: FilePath -> IO EpochTime
+ getModTime path = do
+- (TOD s _) <- getModificationTime path
+- return $! fromIntegral s
++ utcTime <- getModificationTime path
++ let s = truncate . utcTimeToPOSIXSeconds $ utcTime
++ return $! s
+diff --git a/tar.cabal b/tar.cabal
+index e748b07..d85b0da 100644
+--- a/tar.cabal
++++ b/tar.cabal
+@@ -25,7 +25,7 @@ source-repository head
+
+ library
+ build-depends: base >= 3 && < 5, filepath,
+- directory, old-time, bytestring
++ directory, bytestring, time
+
+ exposed-modules:
+ Codec.Archive.Tar
+--
+1.7.12
+
diff --git a/community/haskell-tar/PKGBUILD b/community/haskell-tar/PKGBUILD
index f6890f827..b048da269 100644
--- a/community/haskell-tar/PKGBUILD
+++ b/community/haskell-tar/PKGBUILD
@@ -1,23 +1,27 @@
-# $Id: PKGBUILD 72400 2012-06-13 13:47:19Z tdziedzic $
+# $Id: PKGBUILD 77356 2012-10-09 04:18:31Z tdziedzic $
# Maintainer: Alexander Rødseth <rodseth@gmail.com>
# Contributor: Arch Haskell Team <arch-haskell@haskell.org>
pkgname=haskell-tar
pkgver=0.4.0.0
-pkgrel=2
+pkgrel=3
pkgdesc="Reading, writing and manipulating \".tar\" archive files."
url="http://hackage.haskell.org/package/tar"
license=('custom:BSD3')
arch=('i686' 'x86_64' 'mips64el')
-depends=('ghc=7.4.2-1')
-options=('strip')
-source=("http://hackage.haskell.org/packages/archive/tar/$pkgver/tar-$pkgver.tar.gz")
+depends=('ghc=7.6.1-1')
+source=("http://hackage.haskell.org/packages/archive/tar/$pkgver/tar-$pkgver.tar.gz"
+ '0001-update-changed-time-code-for-ghc-7.6.1.patch')
install=haskell-tar.install
-sha256sums=('a3d37be1b8666c16c6371d193a0795b8abe7b0216e81870a2666e1e85d931113')
+sha256sums=('a3d37be1b8666c16c6371d193a0795b8abe7b0216e81870a2666e1e85d931113'
+ '17b8afc519db5bed5d89807e6e659788f5d9c2f5c569150a9d1c6faac52e98e6')
build() {
cd "$srcdir/tar-$pkgver"
+ # time functions have changed in ghc 7.6.1
+ patch -Np1 -i ${srcdir}/0001-update-changed-time-code-for-ghc-7.6.1.patch
+
runhaskell Setup configure -O -p --enable-split-objs --enable-shared \
--prefix=/usr --docdir="/usr/share/doc/$pkgname" \
--libsubdir=\$compiler/site-local/\$pkgid
diff --git a/community/haskell-terminfo/PKGBUILD b/community/haskell-terminfo/PKGBUILD
index b1036e177..974779c1e 100644
--- a/community/haskell-terminfo/PKGBUILD
+++ b/community/haskell-terminfo/PKGBUILD
@@ -1,19 +1,19 @@
-# $Id: PKGBUILD 72401 2012-06-13 13:47:24Z tdziedzic $
+# $Id: PKGBUILD 77357 2012-10-09 04:18:36Z tdziedzic $
# Maintainer: Vesa Kaihlavirta <vegai@iki.fi>
# Contributor: Arch Haskell Team <arch-haskell@haskell.org>
_hkgname=terminfo
pkgname=haskell-terminfo
-pkgver=0.3.2.3
-pkgrel=2
+pkgver=0.3.2.5
+pkgrel=1
pkgdesc="Haskell bindings to the terminfo library."
url="http://hackage.haskell.org/package/${_hkgname}"
license=('custom:BSD3')
arch=('i686' 'x86_64' 'mips64el')
-depends=('ghc=7.4.2-1' 'sh')
+depends=('ghc=7.6.1-1' 'sh')
source=(http://hackage.haskell.org/packages/archive/${_hkgname}/${pkgver}/${_hkgname}-${pkgver}.tar.gz)
install=${pkgname}.install
-md5sums=('706f546c629ac100a402c9c2629c25fa')
+md5sums=('7ef09acfac9f6fc499ed3bb804ae2ab3')
build() {
cd ${srcdir}/${_hkgname}-${pkgver}
diff --git a/community/haskell-utf8-string/PKGBUILD b/community/haskell-utf8-string/PKGBUILD
index 5f5a528da..d167aa9d2 100644
--- a/community/haskell-utf8-string/PKGBUILD
+++ b/community/haskell-utf8-string/PKGBUILD
@@ -1,16 +1,16 @@
-# $Id: PKGBUILD 72402 2012-06-13 13:47:29Z tdziedzic $
+# $Id: PKGBUILD 77358 2012-10-09 04:18:41Z tdziedzic $
# Maintainer: Vesa Kaihlavirta <vegai@iki.fi>
# Contributor: Arch Haskell Team <arch-haskell@haskell.org>
# Package generated by cabal2arch 0.7.6
_hkgname=utf8-string
pkgname=haskell-utf8-string
pkgver=0.3.7
-pkgrel=2
+pkgrel=3
pkgdesc="Support for reading and writing UTF8 Strings"
url="http://hackage.haskell.org/package/${_hkgname}"
license=('custom:BSD3')
arch=('i686' 'x86_64' 'mips64el')
-depends=('ghc=7.4.2-1' 'sh')
+depends=('ghc=7.6.1-1' 'sh')
install=${pkgname}.install
source=(http://hackage.haskell.org/packages/archive/${_hkgname}/${pkgver}/${_hkgname}-${pkgver}.tar.gz)
md5sums=('50e5c395713e716e0e4a56da73f87ccd')
diff --git a/community/haskell-x11-xft/PKGBUILD b/community/haskell-x11-xft/PKGBUILD
index 0a5d0b0f3..bb4e05077 100644
--- a/community/haskell-x11-xft/PKGBUILD
+++ b/community/haskell-x11-xft/PKGBUILD
@@ -1,15 +1,15 @@
-# $Id: PKGBUILD 72404 2012-06-13 13:47:39Z tdziedzic $
+# $Id: PKGBUILD 77360 2012-10-09 04:18:51Z tdziedzic $
# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
_hkgname=X11-xft
pkgname=haskell-x11-xft
pkgver=0.3.1
-pkgrel=4
+pkgrel=5
pkgdesc="Bindings to the Xft, X Free Type interface library, and some Xrender parts"
url="http://hackage.haskell.org/package/${_hkgname}"
license=('LGPL')
arch=('i686' 'x86_64' 'mips64el')
-depends=('ghc=7.4.2-1' 'haskell-x11=1.6.0' 'haskell-utf8-string=0.3.7' 'libxft')
+depends=('ghc=7.6.1-1' 'haskell-x11=1.6.0.2' 'haskell-utf8-string=0.3.7' 'libxft')
options=('strip')
install=haskell-x11-xft.install
source=(http://hackage.haskell.org/packages/archive/X11-xft/$pkgver/X11-xft-$pkgver.tar.gz)
diff --git a/community/haskell-x11/PKGBUILD b/community/haskell-x11/PKGBUILD
index 4e2bf7feb..5d4c3a7bb 100644
--- a/community/haskell-x11/PKGBUILD
+++ b/community/haskell-x11/PKGBUILD
@@ -1,22 +1,22 @@
-# $Id: PKGBUILD 72403 2012-06-13 13:47:34Z tdziedzic $
+# $Id: PKGBUILD 77359 2012-10-09 04:18:46Z tdziedzic $
# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
# Contributor: shild <sxp@bk.ru>
# Maintainer: Vesa Kaihlavirta <vegai@iki.fi>
_hkgname=X11
pkgname=haskell-x11
-pkgver=1.6.0
+pkgver=1.6.0.2
pkgrel=1
pkgdesc="A Haskell binding to the X11 graphics library."
arch=(i686 x86_64 'mips64el')
url="http://hackage.haskell.org/cgi-bin/hackage-scripts/package/X11"
license=('custom:BSD3')
options=('strip')
-depends=("ghc=7.4.2-1" "haskell-syb=0.3.6.1" 'libx11' 'libxinerama' 'libxrandr')
+depends=("ghc=7.6.1-1" "haskell-syb=0.3.7" 'libx11' 'libxinerama' 'libxrandr')
conflicts=(haskell-x11-extras)
install=hsmod.install
source=(http://hackage.haskell.org/packages/archive/X11/$pkgver/X11-$pkgver.tar.gz)
-md5sums=('8199520ce58e91762d31d54ed081b99c')
+md5sums=('0227ba7a8788c3cfd146e952a5fafc82')
build() {
cd ${srcdir}/${_hkgname}-${pkgver}
diff --git a/community/haskell-xhtml/PKGBUILD b/community/haskell-xhtml/PKGBUILD
index 68041976a..7ccfca159 100644
--- a/community/haskell-xhtml/PKGBUILD
+++ b/community/haskell-xhtml/PKGBUILD
@@ -1,38 +1,49 @@
# Maintainer: Vesa Kaihlavirta <vesa@archlinux.org>
# Contributor: Arch Haskell Team <arch-haskell@haskell.org>
-# Package generated by cabal2arch 0.7.6
+# Contributor: Alexander Rødseth <rodseth@gmail.com>
_hkgname=xhtml
pkgname=haskell-xhtml
pkgver=3000.2.1
-pkgrel=1
-pkgdesc="Combinators for producing XHTML 1.0, including the Strict, Transitional and Frameset variants."
-url="http://hackage.haskell.org/package/xhtml"
+pkgrel=2
+pkgdesc='Combinators for producing XHTML 1.0'
+url='http://hackage.haskell.org/package/xhtml'
license=('custom:BSD3')
-arch=('i686' 'x86_64')
-depends=('ghc=7.4.2-1' 'sh')
-source=(http://hackage.haskell.org/packages/archive/${_hkgname}/$pkgver/${_hkgname}-$pkgver.tar.gz)
-install=${pkgname}.install
-md5sums=('c63487bea16cbf0ecf252d6ed73106bf')
+arch=('x86_64' 'i686')
+depends=('ghc=7.6.1-1' 'sh')
+source=("http://hackage.haskell.org/packages/archive/$_hkgname/$pkgver/$_hkgname-$pkgver.tar.gz")
+install=$pkgname.install
+sha256sums=('33020782170c1c083bc59fc3bfcb72cec2db223e02d1181c07ae23b9fa7fdcd8')
build() {
- cd ${srcdir}/${_hkgname}-${pkgver}
- runhaskell Setup configure -O -p --enable-split-objs --enable-shared --prefix=/usr \
- --docdir=/usr/share/doc/${pkgname} --libsubdir=\$compiler/site-local/\$pkgid
+ cd "$srcdir/$_hkgname-$pkgver"
+
+ runhaskell Setup configure -O -p \
+ --enable-split-objs \
+ --enable-shared \
+ --prefix=/usr \
+ --docdir="/usr/share/doc/$pkgname" \
+ --libsubdir=\$compiler/site-local/\$pkgid
runhaskell Setup build
runhaskell Setup haddock
- runhaskell Setup register --gen-script
+ runhaskell Setup register --gen-script
runhaskell Setup unregister --gen-script
sed -i -r -e "s|ghc-pkg.*unregister[^ ]* |&'--force' |" unregister.sh
}
package() {
- cd ${srcdir}/${_hkgname}-${pkgver}
- install -D -m744 register.sh ${pkgdir}/usr/share/haskell/${pkgname}/register.sh
- install -m744 unregister.sh ${pkgdir}/usr/share/haskell/${pkgname}/unregister.sh
- install -d -m755 ${pkgdir}/usr/share/doc/ghc/html/libraries
- ln -s /usr/share/doc/${pkgname}/html ${pkgdir}/usr/share/doc/ghc/html/libraries/${_hkgname}
- runhaskell Setup copy --destdir=${pkgdir}
- install -D -m644 LICENSE ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
- rm -f ${pkgdir}/usr/share/doc/${pkgname}/LICENSE
+ cd "$srcdir/$_hkgname-$pkgver"
+
+ install -Dm744 register.sh \
+ "$pkgdir/usr/share/haskell/$pkgname/register.sh"
+ install -m744 unregister.sh \
+ "$pkgdir/usr/share/haskell/$pkgname/unregister.sh"
+ install -dm755 "$pkgdir/usr/share/doc/ghc/html/libraries"
+ ln -s "/usr/share/doc/$pkgname/html" \
+ "$pkgdir/usr/share/doc/ghc/html/libraries/$_hkgname"
+ runhaskell Setup copy --destdir="$pkgdir"
+ install -Dm644 LICENSE "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
+ rm -f "$pkgdir/usr/share/doc/$pkgname/LICENSE"
}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community/hedgewars/PKGBUILD b/community/hedgewars/PKGBUILD
index c95de8618..d1542e75f 100644
--- a/community/hedgewars/PKGBUILD
+++ b/community/hedgewars/PKGBUILD
@@ -1,20 +1,20 @@
-# $Id: PKGBUILD 75756 2012-08-30 21:02:59Z spupykin $
+# $Id: PKGBUILD 77362 2012-10-09 04:19:03Z tdziedzic $
# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
pkgname=hedgewars
pkgver=0.9.17
-pkgrel=4
+pkgrel=5
pkgdesc="Free Worms-like turn based strategy game"
arch=('i686' 'x86_64' 'mips64el')
url="http://hedgewars.org"
license=('GPL' 'custom')
depends=('qt' 'sdl' 'sdl_mixer' 'sdl_image' 'sdl_net' 'sdl_ttf' 'lua')
makedepends=('fpc' 'cmake'
- # haskell specific
- 'ghc=7.4.2-1'
- 'haskell-network=2.3.0.14-1' 'haskell-bytestring-show=0.3.5.1-3'
- 'haskell-utf8-string=0.3.7-2' 'haskell-dataenc=0.14.0.3-2'
- 'haskell-hslogger=1.1.5-7')
+ # haskell specific
+ 'ghc'
+ 'haskell-network' 'haskell-bytestring-show'
+ 'haskell-utf8-string' 'haskell-dataenc'
+ 'haskell-hslogger')
source=(http://download.gna.org/hedgewars/hedgewars-src-$pkgver.tar.bz2
hedgewars.desktop
hedgewars.png)
@@ -26,6 +26,7 @@ build() {
cd $pkgname-src-$pkgver
# sed -i 's|.*misc/liblua.*||' CMakeLists.txt
+ sed -i 's|instance NFData B.ByteString||' gameServer/Actions.hs
cmake \
-DCMAKE_INSTALL_PREFIX=/usr \
diff --git a/community/hitori/PKGBUILD b/community/hitori/PKGBUILD
index a4a8ed903..d609f0fa5 100644
--- a/community/hitori/PKGBUILD
+++ b/community/hitori/PKGBUILD
@@ -1,18 +1,18 @@
-# $Id: PKGBUILD 69054 2012-04-08 19:56:12Z bgyorgy $
+# $Id: PKGBUILD 77547 2012-10-12 03:16:10Z bgyorgy $
# Maintainer: Balló György <ballogyor+arch at gmail dot com>
pkgname=hitori
-pkgver=0.3.2
+pkgver=0.4.0
pkgrel=1
pkgdesc="GTK+ application to generate and let you play games of Hitori"
arch=('i686' 'x86_64' 'mips64el')
url="https://live.gnome.org/Hitori"
license=('GPL')
depends=('gtk3' 'hicolor-icon-theme' 'xdg-utils')
-makedepends=('intltool' 'gnome-doc-utils')
+makedepends=('intltool' 'itstool')
install=$pkgname.install
source=(http://ftp.gnome.org/pub/GNOME/sources/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.xz)
-sha256sums=('9e72bb0c84b0e0b66a96fcee6918cf15832f45458df4d8dd5f8091a20bba4350')
+sha256sums=('5d9e1c0f5d33c960167a126242bf57ff4865a6aaf6602da4a25aae56dc491030')
build() {
cd "$srcdir/$pkgname-$pkgver"
diff --git a/community/lazarus/PKGBUILD b/community/lazarus/PKGBUILD
index e33f85066..8d1f24767 100644
--- a/community/lazarus/PKGBUILD
+++ b/community/lazarus/PKGBUILD
@@ -1,13 +1,13 @@
-# $Id: PKGBUILD 76459 2012-09-18 17:57:53Z spupykin $
+# $Id: PKGBUILD 77496 2012-10-11 11:35:28Z spupykin $
# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
# Contributor: Jens Adam (byte/jra) <j_adam@web.de>
# Contributor: BlackIkeEagle <ike DOT devolder AT gmail DOT com>
pkgbase=lazarus
pkgname=('lazarus' 'lazarus-gtk2' 'lazarus-qt')
-pkgver=1.0
+pkgver=1.0.2
_pkgsubver=0
-pkgrel=2
+pkgrel=1
url='http://www.lazarus.freepascal.org/'
license=('GPL2' 'MPL' 'custom:LGPL')
arch=('i686' 'x86_64' 'mips64el')
@@ -15,7 +15,7 @@ makedepends=('fpc' 'fpc-src' 'gtk2' 'qt4pas' 'rsync')
options=('!emptydirs' '!makeflags')
source=("http://downloads.sourceforge.net/project/lazarus/Lazarus%20Zip%20_%20GZip/Lazarus%20$pkgver/lazarus-$pkgver-${_pkgsubver}.tar.gz"
'lazcontrols2.diff')
-md5sums=('2412545d740059d006485f5d17ef0eca'
+md5sums=('738ee29686de71cd599b468eabf034e8'
'288bca6ad5ade79deec34c3602daaaa9')
build() {
diff --git a/community/libcryptui/PKGBUILD b/community/libcryptui/PKGBUILD
index 160bdd7fd..335780a1d 100644
--- a/community/libcryptui/PKGBUILD
+++ b/community/libcryptui/PKGBUILD
@@ -1,8 +1,8 @@
-# $Id: PKGBUILD 69509 2012-04-17 14:38:21Z bgyorgy $
+# $Id: PKGBUILD 77551 2012-10-12 03:46:14Z bgyorgy $
# Maintainer: Balló György <ballogyor+arch at gmail dot com>
pkgname=libcryptui
-pkgver=3.4.1
+pkgver=3.6.0
pkgrel=1
pkgdesc="Library for OpenPGP prompts"
arch=('i686' 'x86_64' 'mips64el')
@@ -13,7 +13,7 @@ makedepends=('intltool' 'gobject-introspection')
options=('!libtool')
install=$pkgname.install
source=(http://ftp.gnome.org/pub/GNOME/sources/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.xz)
-sha256sums=('fad4addf5c5b6588f492a720edce59f925190e4cdf3672984f53b25327f10fd5')
+sha256sums=('0a4a747fff33acd03d1381d27454f8aa5eaca026b7475e24c4b8f8272bbe1c87')
build() {
cd "$srcdir/$pkgname-$pkgver"
diff --git a/community/libnetfilter_acct/PKGBUILD b/community/libnetfilter_acct/PKGBUILD
index 4bdacafd9..c2b21f98c 100644
--- a/community/libnetfilter_acct/PKGBUILD
+++ b/community/libnetfilter_acct/PKGBUILD
@@ -1,12 +1,13 @@
# $Id: PKGBUILD 71613 2012-05-31 08:51:38Z spupykin $
# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Sébastien Luttringer <seblu@aur.archlinux.org>
# Contributor: Kevin Edmonds <edmondskevin@hotmail.com>
# Maintainer: Filip Wojciechowski, filip at loka dot pl
pkgname=libnetfilter_acct
-pkgver=1.0.0
+pkgver=1.0.1
pkgrel=1
-pkgdesc="userspace library providing interface to extended accounting infrastructure"
+pkgdesc='userspace library providing interface to extended accounting infrastructure'
arch=('i686' 'x86_64' 'mips64el')
url="http://www.netfilter.org/projects/libnetfilter_acct/index.html"
license=('GPL')
@@ -14,11 +15,15 @@ depends=('libnfnetlink' 'libmnl')
makedepends=('pkgconfig')
options=('!libtool')
source=(http://www.netfilter.org/projects/$pkgname/files/$pkgname-$pkgver.tar.bz2)
-md5sums=('246e97feb9cf98f7ddf70d71a3813336')
+md5sums=('4755429cbd46ad0ed32bb30f84da0dee')
build() {
- cd $srcdir/$pkgname-$pkgver
+ cd $pkgname-$pkgver
./configure --prefix=/usr
make
- make DESTDIR=$pkgdir install
+}
+
+package() {
+ cd $pkgname-$pkgver
+ make DESTDIR="$pkgdir" install
}
diff --git a/community/libnetfilter_conntrack/PKGBUILD b/community/libnetfilter_conntrack/PKGBUILD
index 0efd23631..84a8ced75 100644
--- a/community/libnetfilter_conntrack/PKGBUILD
+++ b/community/libnetfilter_conntrack/PKGBUILD
@@ -1,24 +1,30 @@
-# $Id: PKGBUILD 70936 2012-05-20 08:39:06Z spupykin $
+# $Id: PKGBUILD 77383 2012-10-09 10:14:26Z seblu $
# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Sébastien Luttringer <seblu@aur.archlinux.org>
# Contributor: Alessandro Sagratini <ale_sagra@hotmail.com>
# Contributor: Kevin Edmonds <edmondskevin@hotmail.com>
pkgname=libnetfilter_conntrack
-pkgver=1.0.1
+pkgver=1.0.2
pkgrel=1
-pkgdesc="userspace library providing a programming interface (API) to the in-kernel connection tracking state table"
+pkgdesc='Library providing an API to the in-kernel connection tracking state table'
arch=('i686' 'x86_64' 'mips64el')
-depends=(libnfnetlink)
-makedepends=(pkgconfig)
-url="http://www.netfilter.org/projects/libnetfilter_conntrack/index.html"
-license=("GPL")
+depends=('libnfnetlink' 'libmnl')
+url='http://www.netfilter.org/projects/libnetfilter_conntrack/'
+license=('GPL')
options=('!libtool')
-source=(http://www.netfilter.org/projects/$pkgname/files/$pkgname-$pkgver.tar.bz2)
-md5sums=('2d17d9da1404728d61a29b4a8338ad0c')
+source=("http://www.netfilter.org/projects/$pkgname/files/$pkgname-$pkgver.tar.bz2")
+md5sums=('447114b5d61bb9a9617ead3217c3d3ff')
build() {
- cd $srcdir/$pkgname-$pkgver
+ cd $pkgname-$pkgver
./configure --prefix=/usr
make
- make DESTDIR=$pkgdir install
}
+package() {
+ cd $pkgname-$pkgver
+ make DESTDIR="$pkgdir" install
+}
+
+
+# vim:set ts=2 sw=2 et:
diff --git a/community/libnetfilter_queue/PKGBUILD b/community/libnetfilter_queue/PKGBUILD
index 9607bf44b..f9559cb90 100644
--- a/community/libnetfilter_queue/PKGBUILD
+++ b/community/libnetfilter_queue/PKGBUILD
@@ -1,24 +1,29 @@
-# $Id: PKGBUILD 71614 2012-05-31 08:52:14Z spupykin $
+# $Id: PKGBUILD 77377 2012-10-09 09:50:14Z seblu $
# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Sébastien Luttringer <seblu@aur.archlinux.org>
# Contributor: Kevin Edmonds <edmondskevin@hotmail.com>
# Maintainer: Filip Wojciechowski, filip at loka dot pl
pkgname=libnetfilter_queue
-pkgver=1.0.1
+pkgver=1.0.2
pkgrel=1
-pkgdesc="userspace library providing an API to packets that have been queued by the kernel packet filter"
+pkgdesc='Userspace API to packets that have been queued by the kernel packet filter'
arch=('i686' 'x86_64' 'mips64el')
-url="http://www.netfilter.org/projects/libnetfilter_queue/index.html"
+url='http://www.netfilter.org/projects/libnetfilter_queue/'
license=('GPL')
-depends=(libnfnetlink)
-makedepends=(pkgconfig)
+depends=('libnfnetlink' 'libmnl')
options=('!libtool')
-source=(http://www.netfilter.org/projects/$pkgname/files/$pkgname-$pkgver.tar.bz2)
-md5sums=('08b968cb2d36c24deb7f26a69f5d8602')
+source=("http://www.netfilter.org/projects/$pkgname/files/$pkgname-$pkgver.tar.bz2")
+md5sums=('df09befac35cb215865b39a36c96a3fa')
build() {
- cd $srcdir/$pkgname-$pkgver
+ cd $pkgname-$pkgver
./configure --prefix=/usr
- make
- make DESTDIR=$pkgdir install
}
+
+package() {
+ cd $pkgname-$pkgver
+ make DESTDIR="$pkgdir" install
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community/libnfnetlink/PKGBUILD b/community/libnfnetlink/PKGBUILD
index 1d984263b..cd0661983 100644
--- a/community/libnfnetlink/PKGBUILD
+++ b/community/libnfnetlink/PKGBUILD
@@ -1,27 +1,30 @@
-# $Id: PKGBUILD 55539 2011-09-14 08:04:26Z andrea $
+# $Id: PKGBUILD 77381 2012-10-09 10:06:36Z seblu $
# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Sébastien Luttringer <seblu@aur.archlinux.org>
# Contributor: Kevin Edmonds <edmondskevin@hotmail.com>
# Contributor: Filip Wojciechowski, filip at loka dot pl
pkgname=libnfnetlink
-pkgver=1.0.0
-pkgrel=2
-pkgdesc="low-level library for netfilter related kernel/userspace communication"
+pkgver=1.0.1
+pkgrel=1
+pkgdesc='Low-level library for netfilter related kernel/userspace communication'
arch=('i686' 'x86_64' 'mips64el')
-url="http://www.netfilter.org/projects/libnfnetlink/index.html"
+url='http://www.netfilter.org/projects/libnfnetlink/'
license=('GPL')
depends=('glibc')
options=('!libtool')
source=("http://www.netfilter.org/projects/$pkgname/files/$pkgname-$pkgver.tar.bz2")
-md5sums=('016fdec8389242615024c529acc1adb8')
+md5sums=('98927583d2016a9fb1936fed992e2c5e')
build() {
- cd "${srcdir}"/$pkgname-$pkgver
+ cd $pkgname-$pkgver
./configure --prefix=/usr
make
}
package() {
- cd "${srcdir}"/$pkgname-$pkgver
- make DESTDIR="${pkgdir}" install
+ cd $pkgname-$pkgver
+ make DESTDIR="$pkgdir" install
}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community/lilypond/PKGBUILD b/community/lilypond/PKGBUILD
index 73f7cac04..37fb3c64b 100644
--- a/community/lilypond/PKGBUILD
+++ b/community/lilypond/PKGBUILD
@@ -1,4 +1,4 @@
-# $Id: PKGBUILD 75534 2012-08-26 20:38:31Z spupykin $
+# $Id: PKGBUILD 77506 2012-10-11 12:11:13Z spupykin $
# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
# Maintainer: Geoffroy Carrier <geoffroy@archlinux.org>
# Contributor: William Rea <sillywilly@gmail.com>
@@ -6,7 +6,7 @@
pkgname=lilypond
pkgver=2.16.0
-pkgrel=1
+pkgrel=2
pkgdesc="An automated music engraving system"
arch=('i686' 'x86_64' 'mips64el')
url="http://lilypond.org"
@@ -39,5 +39,5 @@ build() {
package() {
cd "$srcdir/$pkgname-$pkgver"
- make DESTDIR="$pkgdir" install
+ make DESTDIR="$pkgdir" vimdir="/usr/share/vim/vimfiles" install
}
diff --git a/community/oath-toolkit/PKGBUILD b/community/oath-toolkit/PKGBUILD
index e531de80e..7fe814c91 100644
--- a/community/oath-toolkit/PKGBUILD
+++ b/community/oath-toolkit/PKGBUILD
@@ -1,19 +1,19 @@
-# $Id: PKGBUILD 75890 2012-09-04 18:45:38Z seblu $
+# $Id: PKGBUILD 77539 2012-10-11 23:18:29Z seblu $
# Maintainer: Sébastien Luttringer <seblu@aur.archlinux.org>
# Contributor: Christian Hesse <mail@eworm.de>
# Contributor: L42y <423300@gmail.com>
pkgname=oath-toolkit
-pkgver=1.12.6
+pkgver=2.0.0
pkgrel=1
pkgdesc='OATH one-time password toolkit'
arch=('i686' 'x86_64' 'mips64el')
url='http://www.nongnu.org/oath-toolkit/'
license=('GPL3')
-depends=('pam')
+depends=('glibc' 'pam' 'libxml2')
options=('!libtool')
source=("http://download.savannah.nongnu.org/releases/$pkgname/$pkgname-$pkgver.tar.gz")
-md5sums=('7c8c4231aecfc5d74467b2a9e6bf054c')
+md5sums=('2da5d9211062dfd746539c783185fae1')
build() {
cd $pkgname-$pkgver
@@ -24,7 +24,6 @@ build() {
package() {
cd $pkgname-$pkgver
make DESTDIR="$pkgdir" install
-
# Install basic docs too
install -D -m 644 pam_oath/README "$pkgdir/usr/share/doc/$pkgname/PAM_README"
install -D -m 644 README "$pkgdir/usr/share/doc/$pkgname/README"
diff --git a/community/pam_mount/PKGBUILD b/community/pam_mount/PKGBUILD
index 9b226e9f2..d652fe0c3 100644
--- a/community/pam_mount/PKGBUILD
+++ b/community/pam_mount/PKGBUILD
@@ -1,10 +1,10 @@
-# $Id$
+# $Id: PKGBUILD 77500 2012-10-11 11:40:42Z spupykin $
# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
# Contributors: Sirius Bakke <sirius\at/nonline.org>
pkgname=pam_mount
pkgver=2.13
-pkgrel=3
+pkgrel=4
pkgdesc="A PAM module that can mount volumes for a user session"
arch=('i686' 'x86_64')
url="http://pam-mount.sourceforge.net/"
@@ -13,11 +13,18 @@ depends=('util-linux' 'libhx>=3.12.1' 'libxml2>=2.6' 'openssl>0.9.7' 'cryptsetup
optdepends=('hxtools: If you have something like <logout wait="1000" hup="0" term="1" kill="1" /> in your config')
backup=('etc/security/pam_mount.conf.xml')
options=(!emptydirs !libtool)
-source=("http://downloads.sourceforge.net/project/pam-mount/$pkgname/$pkgver/$pkgname-$pkgver.tar.xz")
-md5sums=('9f75fc8e84ea9cde619cdd6a62c7de33')
+source=("http://downloads.sourceforge.net/project/pam-mount/$pkgname/$pkgver/$pkgname-$pkgver.tar.xz"
+ "$pkgname-git.patch")
+md5sums=('9f75fc8e84ea9cde619cdd6a62c7de33'
+ 'f018cb901eb6a18447a3a1b0a50c14dd')
build() {
cd -- "$srcdir/$pkgname-$pkgver"
+ patch -p1 <$srcdir/$pkgname-git.patch
+ aclocal
+ automake --add-missing
+ libtoolize
+ autoreconf
./configure \
--prefix=/usr \
--with-ssbindir=/usr/sbin \
diff --git a/community/pam_mount/pam_mount-git.patch b/community/pam_mount/pam_mount-git.patch
new file mode 100644
index 000000000..5890d83f3
--- /dev/null
+++ b/community/pam_mount/pam_mount-git.patch
@@ -0,0 +1,1345 @@
+diff -wbBurN pam_mount-2.13/configure.ac pam-mount/configure.ac
+--- pam_mount-2.13/configure.ac 2011-12-15 16:12:10.000000000 +0400
++++ pam-mount/configure.ac 2012-10-11 15:28:24.848220631 +0400
+@@ -13,9 +13,10 @@
+ AC_CONFIG_HEADERS([config.h])
+ AC_CONFIG_MACRO_DIR([m4])
+ AC_PROG_INSTALL
+-AM_INIT_AUTOMAKE([-Wall no-dist foreign subdir-objects])
++AM_INIT_AUTOMAKE([-Wall foreign subdir-objects tar-pax no-dist-gzip dist-xz])
+ AC_PROG_CC
+ AM_PROG_CC_C_O
++m4_ifdef([AM_PROG_AR], [AM_PROG_AR])
+ AC_DISABLE_STATIC
+ AM_PROG_LIBTOOL
+ AC_PROG_LN_S
+diff -wbBurN pam_mount-2.13/doc/changelog.txt pam-mount/doc/changelog.txt
+--- pam_mount-2.13/doc/changelog.txt 2011-12-15 16:12:10.000000000 +0400
++++ pam-mount/doc/changelog.txt 2012-10-11 15:28:24.851553965 +0400
+@@ -3,6 +3,15 @@
+
+ HEAD
+ ====
++Fixes:
++- fix "feature 1 already set to zero"
++- pmt-ehd: avoid miscalculating blockdev size obtained from BLKGETSIZE64
++- pam_mount: give more verbose output on "unknown digest/cipher"
++- pam_mount: fix crash when an unknown digest/cipher was specified
++- pam_mount: correctly mkdir mountpoint if requested
++- pam_mount: only remove mountpoint if actually created
++Changes:
++- Complain louder when EUID is not 0
+
+
+ v2.13 (2011-12-15)
+diff -wbBurN pam_mount-2.13/doc/Makefile.am pam-mount/doc/Makefile.am
+--- pam_mount-2.13/doc/Makefile.am 2011-12-15 16:12:10.000000000 +0400
++++ pam-mount/doc/Makefile.am 2012-10-11 15:28:24.848220631 +0400
+@@ -5,8 +5,9 @@
+ pmvarrun.8 pmt-ehd.8 \
+ umount.crypt.8 umount.crypt_LUKS.8 \
+ umount.crypto_LUKS.8
+-dist_noinst_DATA = pam_mount.txt
+-EXTRA_DIST = bugs.txt changelog.txt faq.txt install.txt options.txt todo.txt
++EXTRA_DIST = bugs.txt changelog.txt faq.txt install.txt options.txt todo.txt \
++ pam_mount.8.in pam_mount.conf.5.in
++DISTCLEANFILES = pam_mount.txt
+ CLEANFILES = ${man_MANS}
+
+ replcmd = perl -lpe 's/\@''PACKAGE\@/@PACKAGE@/g;s/\@''PACKAGE_VERSION\@/@PACKAGE_VERSION@/g;s/\@''PACKAGE_RELDATE\@/@PACKAGE_RELDATE@/g;'
+diff -wbBurN pam_mount-2.13/doc/mount.crypt.8 pam-mount/doc/mount.crypt.8
+--- pam_mount-2.13/doc/mount.crypt.8 2011-12-15 16:12:10.000000000 +0400
++++ pam-mount/doc/mount.crypt.8 2012-10-11 15:28:24.851553965 +0400
+@@ -37,10 +37,6 @@
+ Select the name for the crypto device (optional). This option is currently
+ only usable with dm-crypt systems.
+ .TP
+-\fBdm\-timeout=\fP\fIseconds\fP
+-Wait at most this many seconds for udev to create /dev/mapper/\fIname\fP after
+-calling cryptsetup(8). The default value is 0 seconds.
+-.TP
+ \fBfsck\fP
+ Run fsck on the container before mounting it.
+ .TP
+diff -wbBurN pam_mount-2.13/doc/options.txt pam-mount/doc/options.txt
+--- pam_mount-2.13/doc/options.txt 2011-12-15 16:12:10.000000000 +0400
++++ pam-mount/doc/options.txt 2012-10-11 15:28:24.851553965 +0400
+@@ -4,6 +4,11 @@
+
+ auth optional pam_mount.so debug
+
++Options are to be separated by whitespace, hence specifying more than
++one is to look like:
++
++ auth optional pam_mount.so debug disable_interactive
++
+
+ enable_pam_password (default)
+ disable_pam_password
+diff -wbBurN pam_mount-2.13/doc/pam_mount.conf.5.in pam-mount/doc/pam_mount.conf.5.in
+--- pam_mount-2.13/doc/pam_mount.conf.5.in 2011-12-15 16:12:10.000000000 +0400
++++ pam-mount/doc/pam_mount.conf.5.in 2012-10-11 15:28:24.851553965 +0400
+@@ -171,35 +171,33 @@
+ processes and optionally wait before sending signals.
+ .TP
+ \fB<luserconf name="\fP\fI.pam_mount.conf.xml\fP\fB" />\fP
+-Individual users may define additional volumes (usually in
+-~/.pam_mount.conf.xml) to mount if allowed by the master configuration file by
+-the presence of the \fB<luserconf>\fP element. With it, users may mount and
+-unmount any volumes they specify that they have ownership of (in case of
+-local mounts) - the mount process is called \fBas
+-superuser\fP. On some filesystem configurations this may be a security risk so
+-user-defined volumes are not allowed by the default pam_mount.conf.xml
+-distributed with pam_mount. Luserconfigs are parsed after any volumes from
+-the global configuration file are mounted, so mounting home directories with a
+-global config and then mounting further volumes from luserconfigs is possible.
++Individual users may define additional volumes in a file by the specified
++\fIname\fP relative to their home directory. The presence of \fB<luserconf>\fP
++in the master config file enables this feature. If turned on, users may mount
++and unmount any volumes they specify and that they have ownership of (in case
++of local mounts). The mount process is executed \fBas superuser\fP. This may
++have security implications, so this feature is disabled by default.
++Luserconfigs are parsed after any volumes from the global configuration file
++have been mounted, so that first mounting home directories with a global config
++and then mounting further volumes from luserconfigs is possible.
+ .TP
+ \fB<mntoptions allow="\fP\fIoptions,...\fP\fB" />\fP
+-The <mntoptions> elements determine which options may be specified in per\-user
+-configuration files (see <luserconf>). It does not apply to the master file.
+-Specifying <mntoptions> is forbidden and ignored in per\-user configs.
+-It defaults to \fIallow="nosuid,nodev"\fP, and the default is cleared when the
+-first <mntoptions allow="..."> tag is seen. All further <mntoptions> are
+-additive, though.
++The <mntoptions> elements determine which options may be specified in <volumes>
++in per-user configuration files (see <luserconf>). It does not apply to the
++master file. Specifying <mntoptions> is forbidden and ignored in per-user
++configs. The default allowed list consists of "\fInosuid,nodev\fP", and this
++default is cleared when the first allow="..." attribute is seen by the config
++parser. All further allow="..." are additive, though.
+ .TP
+ \fB<mntoptions deny="\fP\fIoptions,...\fP\fB" />\fP
+-Any options listed in deny may not appear in the option list of per\-user
+-mounts. (Does not apply to the master file.)
++Any options listed in deny may not appear in the option list of per-user
++mounts. The default deny list is empty.
+ .TP
+ \fB<mntoptions require="\fP\fIoptions,...\fP\fB" />\fP
+-All options listed in require must appear in the option list of per\-user
+-mounts. (Does not apply to the master file.)
+-It defaults to \fInosuid,nodev\fP, and the default is cleared when the
+-first <mntoptions require="..."> tag is seen. All further <mntoptions> are
+-additive, though.
++All options listed in require must appear in the option list of per-user
++mounts. The default require list consists of "\fInosuid,nodev\fP", and like
++allow="", is cleared when first encountered by the parser, and is otherwise
++additive.
+ .TP
+ \fB<path>\fP\fIdirectories...\fP\fB</path>\fP
+ The default for the PATH environmental variable is not consistent across
+diff -wbBurN pam_mount-2.13/Makefile.am pam-mount/Makefile.am
+--- pam_mount-2.13/Makefile.am 2011-12-15 16:12:10.000000000 +0400
++++ pam-mount/Makefile.am 2012-10-11 15:28:24.848220631 +0400
+@@ -24,14 +24,11 @@
+ tar --use=${packer} -C ${tmpdir} -cf ${PACKAGE_NAME}-${PACKAGE_VERSION}${packext} --owner=root --group=root ${PACKAGE_NAME}-${PACKAGE_VERSION}/;
+ rm -Rf ${tmpdir};
+
+-dist-hook:
+- tar --use=${packer} -cf ${PACKAGE_NAME}-${PACKAGE_VERSION}${packext} --owner=root --group=root ${distdir}
+-
+ DISTCHECK_CONFIGURE_FLAGS = \
+ --with-ssbindir='$${abs_builddir}/ssbin' \
+ --with-slibdir='$${abs_builddir}/slib' \
+ --enable-la
+
+ DISTCLEANFILES = ${PACKAGE_NAME}-${PACKAGE_VERSION}${packext}
+-EXTRA_DIST = autogen.sh dist/pam_mount.spec LICENSE.GPL2 LICENSE.GPL3 \
++EXTRA_DIST = LICENSE.GPL2 LICENSE.GPL3 \
+ LICENSE.LGPL2 LICENSE.LGPL3
+diff -wbBurN pam_mount-2.13/src/cmt-internal.h pam-mount/src/cmt-internal.h
+--- pam_mount-2.13/src/cmt-internal.h 2011-12-15 16:12:10.000000000 +0400
++++ pam-mount/src/cmt-internal.h 2012-10-11 15:28:24.851553965 +0400
+@@ -3,6 +3,7 @@
+
+ #include <stdbool.h>
+ #include <libHX/string.h>
++#include "libcryptmount.h"
+
+ /**
+ * struct ehd_mount - EHD mount info
+@@ -12,6 +13,7 @@
+ * @loop_device: loop device that was created, if any
+ * @crypto_name: crypto device that was created (basename only)
+ * @crypto_device: full path to the crypto device
++ * @mountpoint: assigned mountpoint
+ */
+ struct ehd_mount_info {
+ char *container;
+@@ -19,25 +21,36 @@
+ char *loop_device;
+ hxmc_t *crypto_name;
+ hxmc_t *crypto_device;
++ hxmc_t *mountpoint;
+ };
+
+ /**
+ * struct ehd_mount_request - mapping and mount request for EHD
+ * @container: path to disk image
++ * @fstype: filesystem type
++ * @mount_opts: mount options for fs
+ * @mountpoint: where to mount the volume on
+ * @fs_cipher: cipher used for filesystem, if any. (cryptsetup name)
+ * @fs_hash: hash used for filesystem, if any. (cryptsetup name)
+ * @key_data: key material/password
+ * @key_size: size of key data, in bytes
+ * @trunc_keysize: extra cryptsetup instruction for truncation (in bytes)
++ * @loop_hook: hook function to run after loop device setup
++ * @crypto_hook: hook function to run after crypto device setup
++ * @hook_priv: user data
+++ * @last_stage: stop after setup of given component
+ * @readonly: whether to create a readonly vfsmount
++ * @allow_discards: allow fs trim requests
+ */
+ struct ehd_mount_request {
+- char *container, *crypto_name, *mountpoint;
++ char *container, *crypto_name, *fstype, *mount_opts, *mountpoint;
+ char *fs_cipher, *fs_hash;
+ void *key_data;
++ ehd_hook_fn_t loop_hook, crypto_hook;
++ void *hook_priv;
+ unsigned int key_size, trunc_keysize;
+- bool readonly;
++ enum ehd_mtreq_stage last_stage;
++ bool readonly, allow_discards;
+ };
+
+ struct ehd_crypto_ops {
+diff -wbBurN pam_mount-2.13/src/crypto.c pam-mount/src/crypto.c
+--- pam_mount-2.13/src/crypto.c 2011-12-15 16:12:10.000000000 +0400
++++ pam-mount/src/crypto.c 2012-10-11 15:28:24.851553965 +0400
+@@ -100,6 +100,9 @@
+ case EHD_MTINFO_LOOPDEV:
+ *static_cast(const char **, ptr) = mt->loop_device;
+ break;
++ case EHD_MTINFO_LOWERDEV:
++ *static_cast(const char **, ptr) = mt->lower_device;
++ break;
+ default:
+ return 0;
+ }
+@@ -129,6 +132,7 @@
+ rq = calloc(1, sizeof(*rq));
+ if (rq == NULL)
+ return NULL;
++ rq->last_stage = EHD_MTREQ_STAGE_MOUNT;
+ return rq;
+ }
+
+@@ -147,7 +151,7 @@
+ {
+ va_list args;
+ const void *orig;
+- void *nv;
++ void *nv = NULL;
+
+ va_start(args, opt);
+ switch (opt) {
+@@ -156,6 +160,8 @@
+ case EHD_MTREQ_MOUNTPOINT:
+ case EHD_MTREQ_FS_CIPHER:
+ case EHD_MTREQ_FS_HASH:
++ case EHD_MTREQ_FSTYPE:
++ case EHD_MTREQ_MOUNT_OPTS:
+ orig = va_arg(args, const char *);
+ nv = HX_strdup(orig);
+ if (nv == NULL && orig != NULL)
+@@ -178,6 +184,21 @@
+ case EHD_MTREQ_READONLY:
+ rq->readonly = va_arg(args, unsigned int);
+ break;
++ case EHD_MTREQ_LOOP_HOOK:
++ rq->loop_hook = va_arg(args, ehd_hook_fn_t);
++ break;
++ case EHD_MTREQ_HOOK_PRIV:
++ rq->hook_priv = va_arg(args, void *);
++ break;
++ case EHD_MTREQ_CRYPTO_HOOK:
++ rq->crypto_hook = va_arg(args, ehd_hook_fn_t);
++ break;
++ case EHD_MTREQ_LAST_STAGE:
++ rq->last_stage = va_arg(args, enum ehd_mtreq_stage);
++ break;
++ case EHD_MTREQ_ALLOW_DISCARDS:
++ rq->allow_discards = va_arg(args, unsigned int);
++ break;
+ }
+ switch (opt) {
+ case EHD_MTREQ_CONTAINER:
+@@ -200,6 +221,14 @@
+ free(rq->fs_hash);
+ rq->fs_hash = nv;
+ break;
++ case EHD_MTREQ_FSTYPE:
++ free(rq->fstype);
++ rq->fstype = nv;
++ break;
++ case EHD_MTREQ_MOUNT_OPTS:
++ free(rq->mount_opts);
++ rq->mount_opts = nv;
++ break;
+ default:
+ break;
+ }
+@@ -210,25 +239,52 @@
+ return -errno;
+ }
+
++static int ehd_wait_for_file(const char *path)
++{
++ static const struct timespec delay = {0, 100000000};
++ unsigned int retries = 50;
++ struct stat sb;
++ bool done = false;
++ int ret;
++
++ /* Nicer way to do these wait loops? libudev? */
++ while (retries-- > 0) {
++ ret = stat(path, &sb);
++ if (ret == 0)
++ break;
++ ret = -errno;
++ if (ret != -ENOENT)
++ return -errno;
++ if (!done) {
++ w4rn("Waiting for %s to appear\n", path);
++ done = true;
++ }
++ fprintf(stderr, ".");
++ nanosleep(&delay, NULL);
++ }
++ if (ret == -ENOENT)
++ w4rn("Device node %s was not created\n", path);
++ return (ret == 0) ? 1 : ret;
++}
++
+ /**
+ * ehd_load - set up crypto device for an EHD container
+ * @req: parameters for setting up the mount
+ * @mt: EHD mount state
+ */
+-EXPORT_SYMBOL int ehd_load(const struct ehd_mount_request *req,
++EXPORT_SYMBOL int ehd_load(struct ehd_mount_request *req,
+ struct ehd_mount_info **mtp)
+ {
+ struct stat sb;
+ int saved_errno, ret;
+ struct ehd_mount_info *mt;
+
+- *mtp = mt = malloc(sizeof(*mt));
+ if (stat(req->container, &sb) < 0) {
+ l0g("Could not stat %s: %s\n", req->container, strerror(errno));
+ return -errno;
+ }
+
+- *mtp = mt = malloc(sizeof(*mt));
++ *mtp = mt = calloc(1, sizeof(*mt));
+ if (mt == NULL)
+ goto out_err;
+ if ((mt->container = HX_strdup(req->container)) == NULL)
+@@ -252,7 +308,19 @@
+ w4rn("Using %s\n", mt->loop_device);
+ mt->lower_device = mt->loop_device;
+ }
++
++ ret = ehd_wait_for_file(mt->loop_device);
++ if (ret <= 0)
++ goto out_ser;
++ }
++
++ if (req->loop_hook != NULL) {
++ ret = req->loop_hook(req, mt, req->hook_priv);
++ if (ret <= 0)
++ goto out_ser;
+ }
++ if (req->last_stage == EHD_MTREQ_STAGE_LOOP)
++ return 1;
+
+ #ifdef HAVE_LIBCRYPTSETUP
+ ret = ehd_dmcrypt_ops.load(req, mt);
+@@ -264,6 +332,18 @@
+ if (ret <= 0)
+ goto out_ser;
+
++ ret = ehd_wait_for_file(mt->crypto_device);
++ if (ret <= 0)
++ goto out_ser;
++
++ if (req->crypto_hook != NULL) {
++ ret = req->crypto_hook(req, mt, req->hook_priv);
++ if (ret <= 0)
++ goto out_ser;
++ }
++ if (req->last_stage == EHD_MTREQ_STAGE_CRYPTO)
++ return 1;
++
+ return ret;
+
+ out_err:
+@@ -294,6 +374,7 @@
+ {
+ int ret, ret2;
+
++ if (mt->crypto_device != NULL) {
+ #ifdef HAVE_LIBCRYPTSETUP
+ ret = ehd_dmcrypt_ops.unload(mt);
+ #elif defined(HAVE_DEV_CGDVAR_H)
+@@ -301,6 +382,9 @@
+ #else
+ ret = -EOPNOTSUPP;
+ #endif
++ } else {
++ ret = 1;
++ }
+ /* Try to free loop device even if cryptsetup remove failed */
+ if (mt->loop_device != NULL) {
+ ret2 = ehd_loop_release(mt->loop_device);
+@@ -445,7 +529,7 @@
+ {
+ va_list args;
+ const void *orig;
+- void *nv;
++ void *nv = NULL;
+
+ va_start(args, opt);
+ switch (opt) {
+diff -wbBurN pam_mount-2.13/src/crypto-dmc.c pam-mount/src/crypto-dmc.c
+--- pam_mount-2.13/src/crypto-dmc.c 2011-12-15 16:12:10.000000000 +0400
++++ pam-mount/src/crypto-dmc.c 2012-10-11 15:28:24.851553965 +0400
+@@ -97,6 +97,14 @@
+ }
+ if (req->readonly)
+ flags |= CRYPT_ACTIVATE_READONLY;
++ if (req->allow_discards) {
++#ifdef CRYPT_ACTIVATE_ALLOW_DISCARDS
++ flags |= CRYPT_ACTIVATE_ALLOW_DISCARDS;
++#else
++ fprintf(stderr, "CRYPT_ACTIVATE_ALLOW_DISCARDS requested, "
++ "but not provided by your libcryptsetup.\n");
++#endif
++ }
+
+ ret = crypt_load(cd, CRYPT_LUKS1, NULL);
+ if (ret == 0) {
+diff -wbBurN pam_mount-2.13/src/ehd.c pam-mount/src/ehd.c
+--- pam_mount-2.13/src/ehd.c 2011-12-15 16:12:10.000000000 +0400
++++ pam-mount/src/ehd.c 2012-10-11 15:28:24.851553965 +0400
+@@ -41,8 +41,6 @@
+ /**
+ * @size: container size in bytes
+ * @path: store container at this path
+- * @loop_dev: loop device in use (may be %NULL)
+- * @device: pointer to either @path or @loop_dev as crypto demands
+ * @fstype: initialize container with this filesystem
+ * @cipher: cipher specification as understood by cryptsetup
+ * @keybits: block size, as understood by cryptsetup and the cipher
+@@ -51,7 +49,7 @@
+ */
+ struct container_ctl {
+ unsigned long long size;
+- char *path, *loop_dev, *device, *fstype, *cipher, *hash, *user;
++ char *path, *fstype, *cipher, *hash, *user;
+ unsigned int keybits, skip_random, uid;
+ bool blkdev;
+ };
+@@ -61,11 +59,12 @@
+ * @force_level: number of "-f"s passed
+ * @interactive: if stdin is a tty
+ * @cont: container control substructure
+- * @fskey: fskey control substructure
++ * @password: master key password
+ */
+ struct ehd_ctl {
+ unsigned int force_level;
+ struct container_ctl cont;
++ const char *password;
+ bool interactive;
+ };
+
+@@ -239,16 +238,23 @@
+ return ret;
+ }
+
+-static bool ehd_mkfs(const struct ehd_ctl *pg, const hxmc_t *crypto_device)
++static bool ehd_mkfs(struct ehd_mount_request *rq,
++ struct ehd_mount_info *mtinfo, void *priv)
+ {
++ const struct ehd_ctl *pg = priv;
+ const struct container_ctl *cont = &pg->cont;
++ const char *crypto_device = NULL;
++ int ret;
++
++ ehd_mtinfo_get(mtinfo, EHD_MTINFO_CRYPTODEV, &crypto_device);
++ if (!cont->skip_random)
++ ehd_xfer2(crypto_device, cont->size);
+
+ hxmc_t *fsprog = HXmc_strinit("mkfs.");
+ HXmc_strcat(&fsprog, cont->fstype);
+ const char *const argv[] = {fsprog, crypto_device, NULL};
+- int ret;
+
+- fprintf(stderr, "-- Calling %s\n", fsprog);
++ fprintf(stderr, "-- Calling %s %s\n", fsprog, crypto_device);
+ if ((ret = HXproc_run_sync(argv, HXPROC_VERBOSE)) < 0 || ret != 0)
+ fprintf(stderr, "%s failed with run_sync status %d\n",
+ fsprog, ret);
+@@ -273,24 +279,34 @@
+ HX_strlcpy(cipher_mode, p, cm_size);
+ }
+
+-static int ehd_init_volume_luks(struct ehd_ctl *pg, const char *password)
++static int ehd_init_volume_luks(struct ehd_mount_request *rq,
++ struct ehd_mount_info *mtinfo, void *priv)
+ {
+ /*
+ * Pick what? WP specifies that XTS has a wider support range than
+ * ESSIV. But XTS is also double complexity due to the double key,
+ * without adding anything of value.
+ */
++ struct ehd_ctl *pg = priv;
+ struct container_ctl *cont = &pg->cont;
+ char cipher[32], cipher_mode[32];
+ struct crypt_params_luks1 format_params = {.hash = cont->hash};
+ struct crypt_device *cd = NULL;
++ const char *lower_dev = NULL;
+ int ret;
+
++ BUILD_BUG_ON(!__builtin_types_compatible_p(
++ __typeof__(&ehd_init_volume_luks), ehd_hook_fn_t));
++
+ ehd_parse_name(cont->cipher, cipher, sizeof(cipher),
+ cipher_mode, sizeof(cipher_mode));
+- ret = crypt_init(&cd, cont->device);
++ ret = ehd_mtinfo_get(mtinfo, EHD_MTINFO_LOWERDEV, &lower_dev);
++ if (ret <= 0 || lower_dev == NULL)
++ goto out;
++ ret = crypt_init(&cd, lower_dev);
+ if (ret < 0) {
+- fprintf(stderr, "crypt_init: %s\n", strerror(-ret));
++ fprintf(stderr, "crypt_init: %s: %s\n",
++ lower_dev, strerror(-ret));
+ goto out;
+ }
+ ret = crypt_format(cd, CRYPT_LUKS1, cipher, cipher_mode, NULL, NULL,
+@@ -300,7 +316,7 @@
+ goto out2;
+ }
+ ret = crypt_keyslot_add_by_volume_key(cd, CRYPT_ANY_SLOT, NULL, 0,
+- password, strlen(password));
++ pg->password, strlen(pg->password));
+ if (ret < 0) {
+ fprintf(stderr, "add_by_volume_key: %s\n", strerror(-ret));
+ goto out2;
+@@ -315,70 +331,53 @@
+ /**
+ * ehd_init_volume - set up loop device association if necessary
+ */
+-static bool ehd_init_volume(struct ehd_ctl *pg, const char *password)
++static bool ehd_init_volume(struct ehd_ctl *pg)
+ {
+ struct container_ctl *cont = &pg->cont;
+ struct ehd_mount_info *mount_info;
+ struct ehd_mount_request *mount_request;
+- bool f_ret = false;
+ int ret;
+
+- if (cont->blkdev) {
+- cont->device = cont->path;
+- } else {
+- /*
+- * Need manual setup of loop device here, since ehd_load
+- * always does a crypt mount too, which we do not have yet.
+- */
+- ret = ehd_loop_setup(cont->path, &cont->loop_dev, EHD_LOSETUP_RW);
+- if (ret == 0) {
+- fprintf(stderr, "loop_setup: error: no free loop "
+- "devices\n");
+- return false;
+- } else if (ret < 0) {
+- fprintf(stderr, "loop_setup: error: %s\n",
+- strerror(-ret));
+- return false;
+- }
+- cont->device = cont->loop_dev;
+- }
+-
+- ehd_init_volume_luks(pg, password);
+- ret = ehd_loop_release(cont->device);
+- if (ret <= 0)
+- fprintf(stderr, "loop_release: warning: %s\n", strerror(-ret));
+-
+ mount_request = ehd_mtreq_new();
+ if (mount_request == NULL)
+ return -errno;
+ ret = ehd_mtreq_set(mount_request, EHD_MTREQ_CONTAINER, cont->path);
+ if (ret < 0)
+ goto out;
+- ret = ehd_mtreq_set(mount_request, EHD_MTREQ_KEY_SIZE, strlen(password));
++ ret = ehd_mtreq_set(mount_request, EHD_MTREQ_KEY_SIZE,
++ strlen(pg->password));
+ if (ret < 0)
+ goto out;
+- ret = ehd_mtreq_set(mount_request, EHD_MTREQ_KEY_DATA, password);
++ ret = ehd_mtreq_set(mount_request, EHD_MTREQ_KEY_DATA, pg->password);
+ if (ret < 0)
+ goto out;
+ ret = ehd_mtreq_set(mount_request, EHD_MTREQ_READONLY, EHD_LOSETUP_RW);
+ if (ret < 0)
+ goto out;
++ ret = ehd_mtreq_set(mount_request, EHD_MTREQ_LOOP_HOOK,
++ ehd_init_volume_luks);
++ if (ret < 0)
++ goto out;
++ ret = ehd_mtreq_set(mount_request, EHD_MTREQ_HOOK_PRIV, pg);
++ if (ret < 0)
++ goto out;
++ ret = ehd_mtreq_set(mount_request, EHD_MTREQ_CRYPTO_HOOK, ehd_mkfs);
++ if (ret < 0)
++ goto out;
++ /* We don't need to mount it */
++ ret = ehd_mtreq_set(mount_request, EHD_MTREQ_LAST_STAGE,
++ EHD_MTREQ_STAGE_CRYPTO);
++ if (ret < 0)
++ goto out;
+
+- if (ehd_load(mount_request, &mount_info) > 0) {
+- const char *crypto_device = NULL;
+- ehd_mtinfo_get(mount_info, EHD_MTINFO_CRYPTODEV, &crypto_device);
+- if (!cont->skip_random)
+- ehd_xfer2(crypto_device, cont->size);
+- f_ret = ehd_mkfs(pg, crypto_device);
++ ret = ehd_load(mount_request, &mount_info);
++ if (ret > 0) {
+ ret = ehd_unload(mount_info);
+- /* If mkfs failed, use its code. */
+ ehd_mtinfo_free(mount_info);
+- if (f_ret)
+- f_ret = ret > 0;
+ }
+ out:
+ ehd_mtreq_free(mount_request);
+- return f_ret;
++ return ret > 0;
+ }
+
+ static void ehd_final_printout(const struct ehd_ctl *pg)
+@@ -463,16 +462,15 @@
+ HX_getl(&tmp, stdin);
+ HX_chomp(tmp);
+ s = strtoul(tmp, NULL, 0);
++ s <<= 20; /* megabytes -> bytes */
+ } while (*tmp == '\0' || s == 0);
+ cont->size = s;
+ }
+
+- if (strcmp(cont->fstype, "xfs") == 0 && cont->size < 16)
++ if (strcmp(cont->fstype, "xfs") == 0 && cont->size < 16*1048576)
+ fprintf(stderr, "Warning: XFS volumes need to be "
+ "at least 16 MB\n");
+
+- cont->size <<= 20; /* megabytes -> bytes */
+-
+ if (cont->cipher == NULL) {
+ cont->cipher = HX_strdup(ehd_default_dmcipher);
+ if (cont->keybits == 0)
+@@ -544,6 +542,7 @@
+ HXOPT_ERR_SUCCESS)
+ return false;
+
++ cont->size <<= 20; /* mb -> b */
+ pg->interactive = isatty(fileno(stdin));
+ return ehd_fill_options_container(pg);
+ }
+@@ -574,8 +573,8 @@
+ goto out;
+ }
+
+- ret = ehd_init_volume(pg, password != NULL ? password : "") ?
+- EXIT_SUCCESS : EXIT_FAILURE;
++ pg->password = (password != NULL) ? password : "";
++ ret = ehd_init_volume(pg) ? EXIT_SUCCESS : EXIT_FAILURE;
+ if (ret == EXIT_SUCCESS)
+ ehd_final_printout(pg);
+
+diff -wbBurN pam_mount-2.13/src/ismnt.c pam-mount/src/ismnt.c
+--- pam_mount-2.13/src/ismnt.c 2011-12-15 16:12:10.000000000 +0400
++++ pam-mount/src/ismnt.c 1970-01-01 03:00:00.000000000 +0300
+@@ -1,45 +0,0 @@
+-/*
+- * Internal diagnostic tool to debug pmt mtab.c
+- * Copyright © Jan Engelhardt, 2009
+- *
+- * This file is part of pam_mount; you can redistribute it and/or
+- * modify it under the terms of the GNU Lesser General Public License
+- * as published by the Free Software Foundation; either version 2.1
+- * of the License, or (at your option) any later version.
+- */
+-#include <errno.h>
+-#include <stdio.h>
+-#include <stdlib.h>
+-#include <string.h>
+-#include <libHX/init.h>
+-#include "pam_mount.h"
+-
+-int main(int argc, const char **argv)
+-{
+- int ret;
+-
+- ret = HX_init();
+- if (ret <= 0) {
+- fprintf(stderr, "HX_init: %s\n", strerror(errno));
+- abort();
+- }
+-
+- if (argc < 3) {
+- fprintf(stderr, "Usage: %s dev mountpoint\n", *argv);
+- return EXIT_FAILURE;
+- }
+-
+- ret = pmt_cmtab_mounted(argv[1], argv[2]);
+- if (ret < 0) {
+- fprintf(stderr, "%s\n", strerror(-ret));
+- ret = 2;
+- } else if (ret == 0) {
+- printf("Not mounted\n");
+- ret = EXIT_FAILURE;
+- } else {
+- printf("Mounted\n");
+- ret = EXIT_SUCCESS;
+- }
+- HX_exit();
+- return ret;
+-}
+diff -wbBurN pam_mount-2.13/src/libcryptmount.h pam-mount/src/libcryptmount.h
+--- pam_mount-2.13/src/libcryptmount.h 2011-12-15 16:12:10.000000000 +0400
++++ pam-mount/src/libcryptmount.h 2012-10-11 15:28:24.851553965 +0400
+@@ -69,6 +69,13 @@
+ EHD_MTREQ_TRUNC_KEYSIZE,
+ EHD_MTREQ_READONLY,
+ EHD_MTREQ_CRYPTONAME,
++ EHD_MTREQ_LOOP_HOOK,
++ EHD_MTREQ_HOOK_PRIV,
++ EHD_MTREQ_CRYPTO_HOOK,
++ EHD_MTREQ_LAST_STAGE,
++ EHD_MTREQ_FSTYPE,
++ EHD_MTREQ_MOUNT_OPTS,
++ EHD_MTREQ_ALLOW_DISCARDS,
+ };
+
+ enum ehd_mtinfo_opt {
+@@ -76,11 +83,22 @@
+ EHD_MTINFO_CRYPTONAME,
+ EHD_MTINFO_CRYPTODEV,
+ EHD_MTINFO_LOOPDEV,
++ EHD_MTINFO_LOWERDEV,
++};
++
++enum ehd_mtreq_stage {
++ EHD_MTREQ_STAGE_NONE,
++ EHD_MTREQ_STAGE_LOOP,
++ EHD_MTREQ_STAGE_CRYPTO,
++ EHD_MTREQ_STAGE_MOUNT,
+ };
+
+ struct ehd_mount_info;
+ struct ehd_mount_request;
+
++typedef int (*ehd_hook_fn_t)(struct ehd_mount_request *,
++ struct ehd_mount_info *, void *);
++
+ extern int cryptmount_init(void);
+ extern void cryptmount_exit(void);
+
+@@ -91,7 +109,7 @@
+ extern int ehd_mtinfo_get(struct ehd_mount_info *, enum ehd_mtinfo_opt, void *);
+ extern void ehd_mtinfo_free(struct ehd_mount_info *);
+
+-extern int ehd_load(const struct ehd_mount_request *, struct ehd_mount_info **);
++extern int ehd_load(struct ehd_mount_request *, struct ehd_mount_info **);
+ extern int ehd_unload(struct ehd_mount_info *);
+ extern int ehd_is_luks(const char *, bool);
+
+diff -wbBurN pam_mount-2.13/src/Makefile.am pam-mount/src/Makefile.am
+--- pam_mount-2.13/src/Makefile.am 2011-12-15 16:12:10.000000000 +0400
++++ pam-mount/src/Makefile.am 2012-10-11 15:28:24.851553965 +0400
+@@ -8,9 +8,11 @@
+ moduledir = @PAM_MODDIR@
+ module_LTLIBRARIES = pam_mount.la
+ sbin_PROGRAMS = pmvarrun
++if HAVE_LIBCRYPTSETUP
+ sbin_PROGRAMS += pmt-ehd
++endif
+ ssbin_PROGRAMS = mount.crypt
+-noinst_PROGRAMS = autoloop ismnt
++noinst_PROGRAMS = autoloop
+ noinst_SCRIPTS = umount.crypt
+
+ lib_LTLIBRARIES = libcryptmount.la
+@@ -64,10 +66,6 @@
+ autoloop_SOURCES = autoloop.c
+ autoloop_LDADD = libcryptmount.la ${libHX_LIBS}
+
+-ismnt_SOURCES = ismnt.c log.c
+-ismnt_CFLAGS = ${AM_CFLAGS}
+-ismnt_LDADD = libpmt_mtab.la
+-
+ #
+ # mount helpers
+ #
+@@ -75,7 +73,7 @@
+ mount_crypt_LDADD = libcryptmount.la libpmt_mtab.la ${libHX_LIBS}
+
+ pmt_ehd_SOURCES = ehd.c bdev.c misc.c spawn.c
+-pmt_ehd_LDADD = libcryptmount.la ${libHX_LIBS}
++pmt_ehd_LDADD = libcryptmount.la ${libHX_LIBS} ${libcryptsetup_LIBS}
+
+ #
+ # runtime helpers
+@@ -83,10 +81,10 @@
+ pmvarrun_SOURCES = pmvarrun.c
+ pmvarrun_LDADD = libcryptmount.la ${libHX_LIBS}
+
+-EXTRA_DIST = misc.h mount.h pam_mount.h readconfig.h spawn.h
++EXTRA_DIST = cmt-internal.h libcryptmount.h pam_mount.h libcryptmount.map
+
+ umount.crypt${EXEEXT}: mount.crypt${EXEEXT}
+- -${LN_S} $^ $@;
++ -${LN_S} -f $^ $@;
+
+ if !KEEP_LA
+ install-data-hook:
+diff -wbBurN pam_mount-2.13/src/misc.c pam-mount/src/misc.c
+--- pam_mount-2.13/src/misc.c 2011-12-15 16:12:10.000000000 +0400
++++ pam-mount/src/misc.c 2012-10-11 15:28:24.851553965 +0400
+@@ -28,18 +28,6 @@
+ struct HXbtree;
+
+ /**
+- * misc_dump_id - print user IDs
+- */
+-void misc_dump_id(const char *where)
+-{
+- w4rn("%s: (ruid/rgid=%u/%u, e=%u/%u)\n", where,
+- static_cast(unsigned int, getuid()),
+- static_cast(unsigned int, getgid()),
+- static_cast(unsigned int, geteuid()),
+- static_cast(unsigned int, getegid()));
+-}
+-
+-/**
+ * pmt_fileop_exists -
+ * @file: file to check
+ *
+@@ -47,7 +35,7 @@
+ * non-zero if that was successful. Returns 0 for error. %errno will be set
+ * in case of error.
+ */
+-int pmt_fileop_exists(const char *file)
++bool pmt_fileop_exists(const char *file)
+ {
+ struct stat sb;
+ assert(file != NULL);
+@@ -61,7 +49,7 @@
+ * Check if a path is a regular file and return positive non-zero if that was
+ * successful. Returns 0 for error. %errno will be set in case of error.
+ */
+-int pmt_fileop_isreg(const char *path)
++bool pmt_fileop_isreg(const char *path)
+ {
+ struct stat sb;
+
+@@ -75,11 +63,10 @@
+ * @user: user to check for
+ * @file: file to check
+ *
+- * Checks whether @user owns @file. Returns positive non-zero if this is the
+- * case, otherwise zero. If an error occurred, zero is returned and %errno
+- * is set. (For the success case, %errno is undefined.)
++ * Checks whether @user owns @file. If an error occurred, false is returned and
++ * %errno is set. (For the success case, %errno is undefined.)
+ */
+-int pmt_fileop_owns(const char *user, const char *file)
++bool pmt_fileop_owns(const char *user, const char *file)
+ {
+ struct stat filestat;
+ struct passwd *userinfo;
+@@ -90,12 +77,12 @@
+ if ((userinfo = getpwnam(user)) == NULL) {
+ l0g("user %s could not be translated to UID\n",
+ user);
+- return 0;
++ return false;
+ }
+
+ if (stat(file, &filestat) != 0) {
+ w4rn("file %s could not be stat'ed\n", file);
+- return 0;
++ return false;
+ }
+
+ return filestat.st_uid == userinfo->pw_uid &&
+diff -wbBurN pam_mount-2.13/src/mount.c pam-mount/src/mount.c
+--- pam_mount-2.13/src/mount.c 2011-12-15 16:12:10.000000000 +0400
++++ pam-mount/src/mount.c 2012-10-11 15:28:24.851553965 +0400
+@@ -295,6 +295,7 @@
+ dtmp = HXmc_strinit(d);
+ if (dtmp == NULL || (!is_file && HXmc_strcat(&dtmp, "/") == NULL)) {
+ l0g("HXmc_strinit: %s\n", strerror(errno));
++ HXmc_free(dtmp);
+ return false;
+ }
+
+@@ -350,6 +351,7 @@
+ w4rn("chown %s -> %ld:%ld\n", dtmp,
+ static_cast(long, pe->pw_uid),
+ static_cast(long, pe->pw_gid));
++ *last = '/';
+ }
+ HXmc_free(dtmp);
+
+@@ -435,10 +437,11 @@
+ ret = proc.p_exited && proc.p_status == 0;
+
+ out:
+- if (config->mkmntpoint && config->rmdir_mntpt && vpt->created_mntpt)
++ if (vpt->created_mntpt && config->rmdir_mntpt)
+ if (rmdir(vpt->mountpoint) < 0)
+ /* non-fatal, but warn */
+- w4rn("could not remove %s\n", vpt->mountpoint);
++ w4rn("could not remove %s: %s\n", vpt->mountpoint,
++ strerror(errno));
+ return ret;
+ }
+
+@@ -577,9 +580,14 @@
+ if (ret < 0)
+ goto out;
+ ret = ehd_keydec_run(dp, result);
+- if (ret != EHD_KEYDEC_SUCCESS)
+- l0g("ehd_keydec_run: %s\n",
+- ehd_keydec_strerror(ret));
++ if (ret == EHD_KEYDEC_NODIGEST)
++ l0g("ehd_keydec_run: %s: \"%s\"\n", ehd_keydec_strerror(ret),
++ vol->fs_key_hash);
++ else if (ret == EHD_KEYDEC_NOCIPHER)
++ l0g("ehd_keydec_run: %s: \"%s\"\n", ehd_keydec_strerror(ret),
++ vol->fs_key_cipher);
++ else if (ret != EHD_KEYDEC_SUCCESS)
++ l0g("ehd_keydec_run: %s\n", ehd_keydec_strerror(ret));
+ out:
+ ehd_kdreq_free(dp);
+ return ret;
+@@ -601,7 +609,7 @@
+ struct HXdeque *argv;
+ struct HXproc proc;
+ const char *mount_user;
+- hxmc_t *ll_password;
++ hxmc_t *ll_password = NULL;
+ int ret;
+
+ assert(vinfo != NULL);
+@@ -642,8 +650,11 @@
+ * any openssl decryption. Without %CMD_CRYPTMOUNT however,
+ * we have to do this ourselves.
+ */
++ w4rn("Not a crypto-type volume. Will decode OpenSSL key.\n");
+ ret = pmt_decrypt_keyfile(vpt, password, &ll_password);
+ } else {
++ w4rn("This is a crypto-type volume. "
++ "Key decoding deferred to mount.crypt.\n");
+ ll_password = HXmc_strinit(password);
+ }
+ if (ll_password == NULL)
+@@ -698,7 +709,8 @@
+ return 0;
+ }
+
+- if (!proc.p_exited || proc.p_status != 0) {
++ if ((!proc.p_exited || proc.p_status != 0) &&
++ vpt->created_mntpt && config->rmdir_mntpt) {
+ /*
+ * Remove mountpoint if mount failed, to flag unavailability
+ * of service (e.g. when mntpt is the user's home directory).
+diff -wbBurN pam_mount-2.13/src/mtab.c pam-mount/src/mtab.c
+--- pam_mount-2.13/src/mtab.c 2011-12-15 16:12:10.000000000 +0400
++++ pam-mount/src/mtab.c 2012-10-11 15:28:24.851553965 +0400
+@@ -35,6 +35,7 @@
+ #include <libHX/defs.h>
+ #include <libHX/io.h>
+ #include <libHX/string.h>
++#include "cmt-internal.h"
+ #include "libcryptmount.h"
+ #include "pam_mount.h"
+
+@@ -191,28 +192,27 @@
+ return ret;
+ }
+
+-int pmt_cmtab_add(const char *mountpoint, const char *container,
+- const char *loop_device, const char *crypto_device)
++int pmt_cmtab_add(struct ehd_mount_info *mt)
+ {
++ const char *loop_device, *crypto_device;
+ hxmc_t *line;
+ int ret;
+
+- if (container == NULL)
++ if (mt->container == NULL)
+ return -EINVAL;
+- if (loop_device == NULL)
+- loop_device = "-";
+- if (crypto_device == NULL)
+- crypto_device = "-";
++ loop_device = (mt->loop_device == NULL) ? "-" : mt->loop_device;
++ crypto_device = (mt->crypto_device == NULL) ? "-" : mt->crypto_device;
+
+ /* Preallocate just the normal size */
+- line = HXmc_meminit(NULL, strlen(mountpoint) + strlen(container) +
+- strlen(loop_device) + strlen(crypto_device) + 5);
++ line = HXmc_meminit(NULL, strlen(mt->mountpoint) +
++ strlen(mt->container) + strlen(loop_device) +
++ strlen(crypto_device) + 5);
+ if (line == NULL)
+ return -errno;
+
+- mt_esccat(&line, mountpoint);
++ mt_esccat(&line, mt->mountpoint);
+ HXmc_strcat(&line, "\t");
+- mt_esccat(&line, container);
++ mt_esccat(&line, mt->container);
+ HXmc_strcat(&line, "\t");
+ mt_esccat(&line, loop_device);
+ HXmc_strcat(&line, "\t");
+diff -wbBurN pam_mount-2.13/src/mtcrypt.c pam-mount/src/mtcrypt.c
+--- pam_mount-2.13/src/mtcrypt.c 2011-12-15 16:12:10.000000000 +0400
++++ pam-mount/src/mtcrypt.c 2012-10-11 15:28:24.851553965 +0400
+@@ -44,6 +44,7 @@
+ * @blkdev: true if @container is a block device
+ * @fsck: true if fsck should be performed
+ * @remount: issue a remount
++ * @allow_discards: allow fs trim requests
+ */
+ struct mount_options {
+ hxmc_t *object, *container, *mountpoint;
+@@ -53,11 +54,11 @@
+ hxmc_t *fsk_password, *extra_opts, *crypto_device;
+ char *loop_device;
+ unsigned int no_update, readonly, trunc_keysize;
+- int dm_timeout;
+ bool is_cont;
+ bool blkdev;
+ bool fsck;
+ bool remount;
++ bool allow_discards;
+ };
+
+ /**
+@@ -120,9 +121,7 @@
+ else if (ret < EHD_SECURITY_UNSPEC)
+ fprintf(stderr, "Hash \"%s\" is considered "
+ "insecure.\n", value);
+- } else if (strcmp(key, "dm-timeout") == 0)
+- mo->dm_timeout = strtoul(value, NULL, 0);
+- else if (strcmp(key, "fstype") == 0)
++ } else if (strcmp(key, "fstype") == 0)
+ mo->fstype = value;
+ else if (strcmp(key, "keyfile") == 0)
+ mo->fsk_file = value;
+@@ -165,6 +164,8 @@
+ mo->readonly = EHD_LOSETUP_RO;
+ else if (strcmp(key, "rw") == 0)
+ mo->readonly = EHD_LOSETUP_RW;
++ else if (strcmp(key, "discard") == 0)
++ mo->allow_discards = true;
+ }
+
+ if (*passthru != '\0') {
+@@ -397,6 +398,26 @@
+ return ret;
+ }
+
++static int mtcr_fsck(struct ehd_mount_request *rq,
++ struct ehd_mount_info *mtinfo)
++{
++ const char *const fsck_args[4] =
++ {"fsck", "-p", mtinfo->crypto_device, NULL};
++ int ret;
++
++ arglist_llog(fsck_args);
++ ret = HXproc_run_sync(fsck_args, HXPROC_VERBOSE);
++ /*
++ * Return codes higher than 1 indicate that manual intervention
++ * is required, therefore abort the mount/login.
++ * Lower than 0: internal error (e.g. fork).
++ */
++ if (ret != 0 && ret != 1)
++ fprintf(stderr, "Automatic fsck failed, manual intervention "
++ "required, run_status/exit status %d\n", ret);
++ return ret == 0;
++}
++
+ /**
+ * mtcr_mount
+ *
+@@ -405,8 +426,6 @@
+ static int mtcr_mount(struct mount_options *opt)
+ {
+ const char *mount_args[8];
+- const char *fsck_args[4];
+- struct stat sb;
+ hxmc_t *key = NULL;
+ int ret, argk;
+ struct ehd_mount_info *mount_info;
+@@ -433,6 +452,10 @@
+ ret = ehd_mtreq_set(mount_request, EHD_MTREQ_READONLY, opt->readonly);
+ if (ret < 0)
+ goto out_r;
++ ret = ehd_mtreq_set(mount_request, EHD_MTREQ_ALLOW_DISCARDS,
++ opt->allow_discards);
++ if (ret < 0)
++ goto out_r;
+ /* Hack for CRYPT_PLAIN: default to 256 */
+ trunc_keysize = 256 / CHAR_BIT;
+ ret = ehd_mtreq_set(mount_request, EHD_MTREQ_TRUNC_KEYSIZE, trunc_keysize);
+@@ -482,6 +505,12 @@
+ if (ret < 0)
+ goto out_r;
+ }
++ if (opt->fsck) {
++ ret = ehd_mtreq_set(mount_request, EHD_MTREQ_CRYPTO_HOOK,
++ mtcr_fsck);
++ if (ret < 0)
++ goto out_r;
++ }
+
+ w4rn("keysize=%u trunc_keysize=%u\n", key_size, trunc_keysize);
+ if ((ret = ehd_load(mount_request, &mount_info)) < 0) {
+@@ -490,44 +519,6 @@
+ } else if (ret == 0) {
+ goto out_z;
+ }
+- if (mount_info->crypto_device == NULL) {
+- if (mtcr_debug)
+- fprintf(stderr, "No crypto device assigned\n");
+- ehd_unload(mount_info);
+- ehd_mtinfo_free(mount_info);
+- goto out_z;
+- }
+-
+- opt->dm_timeout *= 3;
+- while (stat(mount_info->crypto_device, &sb) < 0 && errno == ENOENT &&
+- opt->dm_timeout-- > 0)
+- usleep(333333);
+-
+- if (opt->fsck) {
+- argk = 0;
+- fsck_args[argk++] = "fsck";
+- fsck_args[argk++] = "-p";
+- fsck_args[argk++] = mount_info->crypto_device;
+- fsck_args[argk] = NULL;
+- assert(argk < ARRAY_SIZE(fsck_args));
+-
+- arglist_llog(fsck_args);
+- ret = HXproc_run_sync(fsck_args, HXPROC_VERBOSE);
+-
+- /*
+- * Return codes higher than 1 indicate that manual intervention
+- * is required, therefore abort the mount/login.
+- * Lower than 0: internal error (e.g. fork).
+- */
+- if (ret != 0 && ret != 1) {
+- fprintf(stderr, "Automatic fsck failed, manual "
+- "intervention required, run_sync status %d\n",
+- ret);
+- ehd_unload(mount_info);
+- ehd_mtinfo_free(mount_info);
+- goto out_z;
+- }
+- }
+
+ /* candidate for replacement by some libmount calls, I guess. */
+ argk = 0;
+@@ -550,19 +541,24 @@
+ fprintf(stderr, "mount failed with run_sync status %d\n", ret);
+ ehd_unload(mount_info);
+ ret = 0;
+- } else if ((ret = pmt_cmtab_add(opt->mountpoint,
+- mount_info->container, mount_info->loop_device,
+- mount_info->crypto_device)) <= 0) {
++ goto out_i;
++ }
++ ret = HX_realpath(&mount_info->mountpoint, opt->mountpoint,
++ HX_REALPATH_DEFAULT | HX_REALPATH_ABSOLUTE);
++ if (ret <= 0)
++ goto out_i;
++ if ((ret = pmt_cmtab_add(mount_info)) <= 0) {
+ fprintf(stderr, "pmt_cmtab_add: %s\n", strerror(errno));
+ /* ignore error on cmtab - let user have his crypto */
+ } else if (opt->no_update) {
+ /* awesome logic */;
+ } else {
+- pmt_smtab_add(mount_info->container, opt->mountpoint,
++ pmt_smtab_add(mount_info->container, mount_info->mountpoint,
+ "crypt", (opt->extra_opts != NULL) ?
+ opt->extra_opts : "defaults");
+ }
+
++ out_i:
+ ehd_mtinfo_free(mount_info);
+ return ret;
+
+diff -wbBurN pam_mount-2.13/src/pam_mount.c pam-mount/src/pam_mount.c
+--- pam_mount-2.13/src/pam_mount.c 2011-12-15 16:12:10.000000000 +0400
++++ pam-mount/src/pam_mount.c 2012-10-11 15:28:24.851553965 +0400
+@@ -526,6 +526,20 @@
+ return ret;
+ }
+
++static void assert_root(void)
++{
++ /*
++ * I know checking for 0 is rather unflexible, but it does - so far -
++ * account for all the bugreports involving insufficient permissions.
++ */
++ if (geteuid() == 0)
++ return;
++ l0g("*** PAM_MOUNT WAS INVOKED WITH INSUFFICIENT PRIVILEGES. (euid=%ld)\n",
++ static_cast(long, geteuid()));
++ l0g("*** THIS IS A BUG OF THE CALLER. CONSULT YOUR DISTRO.\n");
++ l0g("*** Also see bugs.txt in the pam_mount source tarball/website documentation.\n");
++}
++
+ /**
+ * pam_sm_open_session -
+ * @pamh: PAM handle
+@@ -589,7 +603,7 @@
+ /* There are some volumes, so grab a password. */
+ system_authtok = ses_grab_authtok(pamh);
+
+- misc_dump_id("Session open");
++ assert_root();
+ envpath_init(Config.path);
+ ret = process_volumes(&Config, system_authtok);
+
+@@ -690,12 +704,12 @@
+ l0g("libHX init failed: %s\n", strerror(errno));
+ ret = PAM_SUCCESS;
+ w4rn("received order to close things\n");
++ assert_root();
+ if (Config.volume_list.items == 0) {
+ w4rn("No volumes to umount\n");
+ goto out;
+ }
+
+- misc_dump_id("Session close");
+ /*
+ * call pam_get_user() again because ssh calls PAM fns from seperate
+ * processes.
+diff -wbBurN pam_mount-2.13/src/pam_mount.h pam-mount/src/pam_mount.h
+--- pam_mount-2.13/src/pam_mount.h 2011-12-15 16:12:10.000000000 +0400
++++ pam-mount/src/pam_mount.h 2012-10-11 15:28:24.851553965 +0400
+@@ -156,10 +156,9 @@
+ extern void kvplist_genocide(struct HXclist_head *);
+ extern hxmc_t *kvplist_to_str(const struct HXclist_head *);
+ extern void misc_add_ntdom(struct HXformat_map *, const char *);
+-extern void misc_dump_id(const char *);
+-extern int pmt_fileop_exists(const char *);
+-extern int pmt_fileop_isreg(const char *);
+-extern int pmt_fileop_owns(const char *, const char *);
++extern bool pmt_fileop_exists(const char *);
++extern bool pmt_fileop_isreg(const char *);
++extern bool pmt_fileop_owns(const char *, const char *);
+ extern char *relookup_user(const char *);
+ extern long str_to_long(const char *);
+ extern char *xstrdup(const char *);
+@@ -187,13 +186,14 @@
+ PMT_BY_CRYPTODEV = 1 << 1,
+ };
+
++struct ehd_mount_info;
++
+ extern int pmt_smtab_add(const char *, const char *,
+ const char *, const char *);
+ extern int pmt_smtab_remove(const char *, enum smtab_field);
+ extern int pmt_smtab_mounted(const char *, const char *,
+ int (*)(const char *, const char *));
+-extern int pmt_cmtab_add(const char *, const char *,
+- const char *, const char *);
++extern int pmt_cmtab_add(struct ehd_mount_info *);
+ extern int pmt_cmtab_get(const char *, enum cmtab_field,
+ char **, char **, char **, char **);
+ extern int pmt_cmtab_remove(const char *);
+diff -wbBurN pam_mount-2.13/src/rdconf1.c pam-mount/src/rdconf1.c
+--- pam_mount-2.13/src/rdconf1.c 2011-12-15 16:12:10.000000000 +0400
++++ pam-mount/src/rdconf1.c 2012-10-11 15:28:24.851553965 +0400
+@@ -340,6 +340,7 @@
+ char options_require[] = "nosuid,nodev";
+
+ memset(config, 0, sizeof(*config));
++ ehd_logctl(EHD_LOGFT_DEBUG, EHD_LOG_SET);
+ config->debug = true;
+ config->mkmntpoint = true;
+
+@@ -1355,6 +1356,10 @@
+ }
+
+ //-----------------------------------------------------------------------------
++/*
++ * This list has no linear relation to vpt->command. Instead, what is done:
++ * config->command[default_command[i].type] = <command>
++ */
+ static const struct pmt_command default_command[] = {
+ {CMD_SMBMOUNT, "smbfs", {"smbmount", "%(COMBOPATH)", "%(MNTPT)", "-o", "username=%(USER),uid=%(USERUID),gid=%(USERGID)%(if %(OPTIONS),\",%(OPTIONS)\")", NULL}},
+ {CMD_SMBUMOUNT, "smbfs", {"smbumount", "%(MNTPT)", NULL}},
+@@ -1368,6 +1373,8 @@
+ {CMD_NFSMOUNT, "nfs4"},
+ {CMD_LCLMOUNT, NULL, {"mount", "-p0", "%(if %(OPTIONS),-o%(OPTIONS))", "-t%(FSTYPE)", "%(VOLUME)", "%(MNTPT)", NULL}},
+ {CMD_CRYPTMOUNT, "crypt", {"mount", "-t", "crypt", "%(if %(CIPHER),-ocipher=%(CIPHER))", "%(if %(FSKEYCIPHER),-ofsk_cipher=%(FSKEYCIPHER))", "%(if %(FSKEYHASH),-ofsk_hash=%(FSKEYHASH))", "%(if %(FSKEYPATH),-okeyfile=%(FSKEYPATH))", "%(if %(OPTIONS),-o%(OPTIONS))", "%(VOLUME)", "%(MNTPT)", NULL}},
++ {CMD_CRYPTMOUNT, "crypt_LUKS"},
++ {CMD_CRYPTMOUNT, "crypto_LUKS"},
+ {CMD_CRYPTUMOUNT, "crypt", {"umount.crypt", "%(MNTPT)", NULL}},
+ {CMD_UMOUNT, NULL, {"umount", "%(MNTPT)", NULL}},
+ {CMD_FSCK, NULL, {"fsck", "-p", "%(FSCKTARGET)", NULL}},
+diff -wbBurN pam_mount-2.13/src/spawn.c pam-mount/src/spawn.c
+--- pam_mount-2.13/src/spawn.c 2011-12-15 16:12:10.000000000 +0400
++++ pam-mount/src/spawn.c 2012-10-11 15:28:24.851553965 +0400
+@@ -6,10 +6,12 @@
+ * as published by the Free Software Foundation; either version 2.1
+ * of the License, or (at your option) any later version.
+ */
++#include <errno.h>
+ #include <pthread.h>
+ #include <signal.h>
+ #include <stdio.h>
+ #include <stdlib.h>
++#include <string.h>
+ #include <unistd.h>
+ #include <libHX/defs.h>
+ #include <libHX/deque.h>
+@@ -124,9 +126,8 @@
+ if (chdir("/") < 0)
+ ;
+ if (user == NULL) {
+- misc_dump_id("set_myuid<pre>");
+ if (setuid(0) < 0) {
+- l0g("error setting uid to 0\n");
++ l0g("error setting uid to 0: %s\n", strerror(errno));
+ return;
+ }
+ } else {
+@@ -151,7 +152,6 @@
+ setenv("HOME", real_user->pw_dir, 1);
+ setenv("USER", real_user->pw_name, 1);
+ }
+- misc_dump_id("set_myuid<post>");
+ }
+
+ const struct HXproc_ops pmt_dropprivs_ops = {
diff --git a/community/puzzles/PKGBUILD b/community/puzzles/PKGBUILD
index c5d8c2abd..8dc7976e6 100644
--- a/community/puzzles/PKGBUILD
+++ b/community/puzzles/PKGBUILD
@@ -3,7 +3,7 @@
# Maintainer: schuay <jakob.gruber@gmail.com>
pkgname=puzzles
-pkgver=9660
+pkgver=9682
pkgrel=1
pkgdesc="Simon Tatham's Portable Puzzle Collection"
arch=('i686' 'x86_64' 'mips64el')
@@ -38,4 +38,4 @@ package() {
mv ${pkgdir}/usr/bin/blackbox ${pkgdir}/usr/bin/puzzles-blackbox
}
-md5sums=('06f88f737158a1d7912b20010b75d1b1')
+md5sums=('2a592b4c43d24504be327367008807f7')
diff --git a/community/qtractor/PKGBUILD b/community/qtractor/PKGBUILD
index b73234799..7698fd62b 100644
--- a/community/qtractor/PKGBUILD
+++ b/community/qtractor/PKGBUILD
@@ -1,9 +1,9 @@
-# $Id: PKGBUILD 73166 2012-07-02 17:42:18Z schiv $
+# $Id: PKGBUILD 77470 2012-10-10 18:38:48Z schiv $
# Maintainer: Ray Rashif <schiv@archlinux.org>
# Contributor: Philipp Überbacher <hollunder at gmx dot at>
pkgname=qtractor
-pkgver=0.5.5
+pkgver=0.5.6
pkgrel=1
pkgdesc="Audio/MIDI multitrack sequencer"
arch=('i686' 'x86_64' 'mips64el')
@@ -14,7 +14,7 @@ depends=('qt' 'jack' 'suil' 'lilv' 'libmad'
makedepends=('ladspa' 'dssi')
[ "$CARCH" = "i686" ] && optdepends=('dssi-vst: win32 VST support')
source=("http://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.gz")
-md5sums=('ec3ad0f427a9e629fb0c42d10b4c2259')
+md5sums=('1483f37c6228cab8eaee3ac1c03ded6e')
build() {
cd "$srcdir/$pkgname-$pkgver"
diff --git a/community/rawtherapee/PKGBUILD b/community/rawtherapee/PKGBUILD
index 3039561dc..86cd0c464 100644
--- a/community/rawtherapee/PKGBUILD
+++ b/community/rawtherapee/PKGBUILD
@@ -1,4 +1,4 @@
-# $Id: PKGBUILD 68906 2012-04-05 13:36:30Z stativ $
+# $Id: PKGBUILD 77564 2012-10-12 13:28:53Z stativ $
# Maintainer: Lukas Jirkovsky <l.jirkovsky AT gmail.com>
# Contributor: Bogdan Szczurek <thebodzio(at)gmail.com>
# Contributor: Vaclav Kramar <vaclav.kramar@tiscali.cz>
@@ -7,6 +7,7 @@
pkgname=rawtherapee
pkgver=4.0.8
pkgrel=1
+epoch=1
pkgdesc="RAW photo editor"
arch=('i686' 'x86_64' 'mips64el')
url="http://www.rawtherapee.com/"
@@ -14,7 +15,7 @@ license=('GPL3')
depends=('gtkmm' 'libiptcdata' 'lcms2' 'desktop-file-utils' 'hicolor-icon-theme')
makedepends=('mercurial' 'cmake')
install=rawtherapee.install
-source=("http://rawtherapee.googlecode.com/files/rawtherapee-source-$pkgver.tar.xz")
+source=("http://rawtherapee.googlecode.com/files/rawtherapee-$pkgver.tar.xz")
md5sums=('27b988200c5ff3f2863e1d83200657b2')
build() {
diff --git a/community/rsyslog/PKGBUILD b/community/rsyslog/PKGBUILD
index 534176837..49830d433 100644
--- a/community/rsyslog/PKGBUILD
+++ b/community/rsyslog/PKGBUILD
@@ -1,9 +1,9 @@
-# $Id: PKGBUILD 75616 2012-08-27 14:38:49Z spupykin $
+# $Id: PKGBUILD 77498 2012-10-11 11:39:59Z spupykin $
# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
pkgname=rsyslog
-pkgver=6.4.0
-pkgrel=1
+pkgver=6.4.2
+pkgrel=2
pkgdesc="An enhanced multi-threaded syslogd with a focus on security and reliability"
url="http://www.rsyslog.com/"
arch=('i686' 'x86_64' 'mips64el')
@@ -22,10 +22,10 @@ source=("http://www.rsyslog.com/files/download/rsyslog/rsyslog-$pkgver.tar.gz"
'rsyslog'
'rsyslog.logrotate'
'rsyslog.conf.d')
-md5sums=('d81f74b09829a38ac91cf85a08c5ab19'
+md5sums=('7de0124ec7d67ce2bfda0009ab1263ee'
'a18bbcbb6ebdaa13a6ec6d9f3d9eb2da'
'8065db4bef3061a4f000ba58779f6829'
- '1a0cd4530dd5d1439456d5ae230574d9')
+ '18565f38a4445136446a31a3c95ffc3e')
build() {
cd ${srcdir}/${pkgname}-${pkgver}
diff --git a/community/rsyslog/rsyslog.conf.d b/community/rsyslog/rsyslog.conf.d
index e39f8c3b9..fc0770666 100644
--- a/community/rsyslog/rsyslog.conf.d
+++ b/community/rsyslog/rsyslog.conf.d
@@ -3,4 +3,4 @@
# This should almost certainly include at least the current compatability
# level, e.g. -c4
#
-RSYSLOGD_ARGS="-c4"
+RSYSLOGD_ARGS="-c6"
diff --git a/community/scratch/PKGBUILD b/community/scratch/PKGBUILD
index 6d9d6baef..508442874 100644
--- a/community/scratch/PKGBUILD
+++ b/community/scratch/PKGBUILD
@@ -1,16 +1,17 @@
-# $Id: PKGBUILD 76325 2012-09-15 22:35:36Z jsteel $
+# $Id: PKGBUILD 77468 2012-10-10 18:12:07Z jsteel $
# Maintainer: Jonathan Steel <mail at jsteel dot org>
# Contributor: Muhammed Uluyol <muhammedu@gmail.com>
pkgname=scratch
pkgver=1.4.0.7
-pkgrel=1
+pkgrel=2
pkgdesc="Create and share your own interactive stories, games, music and art"
arch=('i686' 'x86_64')
url="http://scratch.mit.edu"
license=('GPL2')
install=$pkgname.install
-depends=('squeak-vm' 'shared-mime-info' 'hicolor-icon-theme' 'desktop-file-utils' 'pango')
+depends=('squeak-vm' 'shared-mime-info' 'hicolor-icon-theme' 'desktop-file-utils' 'pango'
+ 'gtk-update-icon-cache')
source=(http://download.scratch.mit.edu/$pkgname-$pkgver.src.tar.gz)
md5sums=('f948e9e6de3ec9c7c7b4cc2a1975eb5a')
diff --git a/community/scratch/scratch.install b/community/scratch/scratch.install
index f9a769d4e..7fe49829c 100644
--- a/community/scratch/scratch.install
+++ b/community/scratch/scratch.install
@@ -1,9 +1,9 @@
post_install() {
- update-desktop-database 2>/dev/null
- update-mime-database /usr/share/mime 2>/dev/null
- gtk-update-icon-cache -qf /usr/share/icons/hicolor 2>/dev/null
+ update-desktop-database
+ update-mime-database /usr/share/mime
+ gtk-update-icon-cache -qf /usr/share/icons/hicolor
}
post_remove() {
- post_install()
+ post_install
}
diff --git a/community/scummvm/PKGBUILD b/community/scummvm/PKGBUILD
new file mode 100644
index 000000000..7ac13cb3a
--- /dev/null
+++ b/community/scummvm/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 160945 2012-06-07 12:04:14Z juergen $
+# Maintainer: juergen <juergen@archlinux.org>
+# Contributor: Manolis Tzanidakis, Petter Gundersen
+
+pkgname=scummvm
+pkgver=1.5.0
+pkgrel=1
+pkgdesc="A 'virtual machine' for several classic graphical point-and-click adventure games."
+arch=('i686' 'x86_64')
+license=('GPL')
+url="http://www.scummvm.org/"
+depends=('libmad' 'sdl' 'fluidsynth' 'flac' 'faad2' 'libvorbis' 'libmad')
+source=(http://downloads.sourceforge.net/sourceforge/${pkgname}/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('d71d1df5c8262556fedbe885972fbf6e')
+
+build() {
+ cd "${srcdir}"/${pkgname}-${pkgver}
+ ./configure --disable-debug \
+ --enable-release \
+ --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+ install -Dm644 dists/${pkgname}.desktop "${pkgdir}"/usr/share/applications/${pkgname}.desktop
+}
diff --git a/community/sfk/PKGBUILD b/community/sfk/PKGBUILD
index f59367fc8..cc1e707b5 100644
--- a/community/sfk/PKGBUILD
+++ b/community/sfk/PKGBUILD
@@ -1,9 +1,9 @@
-# $Id: PKGBUILD 67087 2012-03-03 17:34:42Z seblu $
+# $Id: PKGBUILD 77369 2012-10-09 06:40:23Z seblu $
# Maintainer: Sébastien Luttringer <seblu@aur.archlinux.org>
# Contributor: Baumi <baumi@gmx.com>
pkgname=sfk
-pkgver=1.6.5
+pkgver=1.6.6
pkgrel=1
pkgdesc='Swiss File Knife - A Command Line Tools Collection'
arch=('i686' 'x86_64' 'mips64el')
@@ -11,7 +11,7 @@ url='http://stahlforce.com/dev/?tool=sfk'
license=('custom: BSD')
depends=('gcc-libs')
source=("http://downloads.sourceforge.net/swissfileknife/${pkgname}${pkgver//./}.zip")
-md5sums=('8694d73033dde496c023258f08daa918')
+md5sums=('d32f487d783356eb15e23f5e26bf7ac7')
build() {
cd ${pkgname}${pkgver//./}
diff --git a/community/spring/PKGBUILD b/community/spring/PKGBUILD
index c076f9576..26806e3cd 100644
--- a/community/spring/PKGBUILD
+++ b/community/spring/PKGBUILD
@@ -1,4 +1,4 @@
-# $Id: PKGBUILD 75813 2012-08-31 23:33:23Z svenstaro $
+# $Id: PKGBUILD 77576 2012-10-12 19:50:28Z svenstaro $
# Maintainer: Sven-Hendrik Haase <sh@lutzhaase.com>
# Contributor: Arkham <arkham at archlinux dot us>
# Contributor: Christoph Zeiler <archNOSPAM_at_moonblade.dot.org>
@@ -6,7 +6,7 @@
pkgname=spring
pkgver=0.91.0
_pkgver=91.0
-pkgrel=1
+pkgrel=2
pkgdesc='A free 3D real-time-strategy (RTS) game engine'
arch=('i686' 'x86_64' 'mips64el')
url="http://springrts.com/"
diff --git a/community/sysstat/PKGBUILD b/community/sysstat/PKGBUILD
index cbe4b5422..1552be656 100644
--- a/community/sysstat/PKGBUILD
+++ b/community/sysstat/PKGBUILD
@@ -1,10 +1,10 @@
-# $Id: PKGBUILD 77129 2012-10-05 11:05:03Z spupykin $
+# $Id: PKGBUILD 77464 2012-10-10 16:04:46Z spupykin $
# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
# Contributor: Martin Devera <devik@cdi.cz>
pkgname=sysstat
-pkgver=10.1.1
-pkgrel=2
+pkgver=10.1.2
+pkgrel=1
pkgdesc="a collection of performance monitoring tools (iostat,isag,mpstat,pidstat,sadf,sar)"
arch=('i686' 'x86_64' 'mips64el')
url="http://pagesperso-orange.fr/sebastien.godard/"
@@ -18,9 +18,9 @@ backup=('etc/conf.d/sysstat'
source=(http://pagesperso-orange.fr/sebastien.godard/$pkgname-$pkgver.tar.gz
sysstat
sysstat.service)
-md5sums=('8250cdcbc4a959c8a05e4186fbd13d84'
+md5sums=('c40626b96cc2b4cf303cbcf1efc96eba'
'3ce41ebf7330aba01e70b38658afed1f'
- 'f447a8081a07a73407b4b04afc027ebc')
+ '12ba479c606620193e8b7c6e982d5088')
build() {
cd $srcdir/$pkgname-$pkgver
diff --git a/community/sysstat/sysstat.service b/community/sysstat/sysstat.service
index 267374d3e..2ff2365b3 100644
--- a/community/sysstat/sysstat.service
+++ b/community/sysstat/sysstat.service
@@ -1,12 +1,11 @@
[Unit]
Description= Resets System Activity Logs
-After=syslog.target
+After=syslog.target
[Service]
Type=oneshot
-ExecStart=@LIBDIR@/sa/sa1 --boot
+ExecStart=/usr/lib/sa/sa1 --boot
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target
-
diff --git a/community/ulogd/PKGBUILD b/community/ulogd/PKGBUILD
index d32b424bb..e78329277 100644
--- a/community/ulogd/PKGBUILD
+++ b/community/ulogd/PKGBUILD
@@ -1,62 +1,57 @@
-# $Id: PKGBUILD 75920 2012-09-05 14:02:57Z spupykin $
+# $Id: PKGBUILD 77483 2012-10-10 23:43:02Z seblu $
# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
# Maintainer: Sebastien Luttringer <seblu+arch@seblu.net>
# Contributor: Dale Blount <dale@archlinux.org>
# Contributor: Sergej Pupykin <ps@lx-ltd.ru>
pkgname=ulogd
-pkgver=2.0.0
-pkgrel=5
+pkgver=2.0.1
+pkgrel=3
pkgdesc='Userspace Packet Logging for netfilter'
arch=('i686' 'x86_64' 'mips64el')
url='http://www.netfilter.org/projects/ulogd/index.html'
license=('GPL2')
-depends=('libmnl')
+depends=('libmnl' 'libnfnetlink')
backup=('etc/ulogd.conf')
-makedepends=('libmysqlclient' 'postgresql-libs' 'sqlite' 'libpcap' 'libdbi'
- 'libnetfilter_acct' 'libnetfilter_log' 'libnetfilter_conntrack'
- 'linuxdoc-tools' 'groff' 'texlive-core')
-optdepends=('postgresql-libs'
- 'sqlite'
- 'libpcap'
- 'libmysqlclient'
- 'libdbi'
- 'libnetfilter_acct'
- 'libnetfilter_log'
- 'libnetfilter_conntrack')
+makedepends=('libmysqlclient'
+ 'libnetfilter_acct'
+ 'libnetfilter_conntrack'
+ 'libnetfilter_log'
+ 'libpcap'
+ 'libdbi'
+ 'postgresql-libs'
+ 'sqlite')
+optdepends=("${makedepends[@]}")
options=('!libtool')
source=("ftp://ftp.netfilter.org/pub/$pkgname/$pkgname-$pkgver.tar.bz2"
- 'rc'
- 'logrotate'
- 'ulogd.conf.min'
- 'ulogd.service')
-md5sums=('211e68781e3860959606fc94b97cf22e'
+ "$pkgname.rc"
+ "$pkgname.logrotate"
+ "$pkgname.conf"
+ "$pkgname.service")
+md5sums=('2f4b1a58955fcad4ebf22f0d00885fc9'
'c42230c1cabf5dd9b80bf9a0fd87ca7e'
'dd32eeee0949adff4188544419acd17e'
'c21531312f95e790ed19aa267a17d35a'
- '13a1227052322b4c17b258ed358f055e')
+ '42fc2c0568ff89ec00c2f0797280f296')
+
build() {
cd $pkgname-$pkgver
./configure --prefix=/usr --sysconfdir=/etc --with-mysql --with-pgsql --with-dbi
make
- (cd doc && make)
}
package() {
cd $pkgname-$pkgver
make DESTDIR="$pkgdir" install
-
- install -dm0755 "$pkgdir/usr/share/doc/ulogd"
- install -Dm0644 ulogd.conf $pkgdir/usr/share/doc/ulogd/ulogd.conf.sample
- install -Dm0644 doc/ulogd.{dvi,html,ps,sgml,txt} "$pkgdir/usr/share/doc/ulogd"
-
- install -dm0755 "$pkgdir/usr/share/ulogd"
- install -m644 doc/*.{table,sql} "$pkgdir/usr/share/ulogd"
-
- install -D -m644 "$srcdir/logrotate" "$pkgdir/etc/logrotate.d/ulogd"
- install -D -m755 "$srcdir/rc" "$pkgdir/etc/rc.d/ulogd"
-
- install -Dm0644 $srcdir/ulogd.conf.min $pkgdir/etc/ulogd.conf
- install -Dm0644 $srcdir/ulogd.service $pkgdir/usr/lib/systemd/system/ulogd.service
+ install -dm755 "$pkgdir/usr/share/doc/ulogd"
+ install -Dm644 ulogd.conf "$pkgdir/usr/share/doc/ulogd/ulogd.conf"
+ install -m644 doc/*.{table,sql} "$pkgdir/usr/share/doc/ulogd"
+ cd "$srcdir"
+ install -Dm755 $pkgname.rc "$pkgdir/etc/rc.d/$pkgname"
+ install -Dm644 $pkgname.service "$pkgdir/usr/lib/systemd/system/$pkgname.service"
+ install -Dm644 $pkgname.logrotate "$pkgdir/etc/logrotate.d/$pkgname"
+ install -Dm644 $pkgname.conf "$pkgdir/etc/$pkgname.conf"
}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community/ulogd/ulogd.conf b/community/ulogd/ulogd.conf
new file mode 100644
index 000000000..822575613
--- /dev/null
+++ b/community/ulogd/ulogd.conf
@@ -0,0 +1,20 @@
+[global]
+nlgroup=1
+logfile="/var/log/ulogd.log"
+loglevel=5
+rmem=131071
+bufsize=150000
+
+plugin="/usr/lib/ulogd/ulogd_inppkt_ULOG.so"
+plugin="/usr/lib/ulogd/ulogd_raw2packet_BASE.so"
+plugin="/usr/lib/ulogd/ulogd_filter_IP2STR.so"
+plugin="/usr/lib/ulogd/ulogd_filter_PRINTPKT.so"
+plugin="/usr/lib/ulogd/ulogd_output_LOGEMU.so"
+
+stack=ulog1:ULOG,base1:BASE,ip2str1:IP2STR,print1:PRINTPKT,emu1:LOGEMU
+
+[ulog1]
+nlgroup=1
+
+[emu1]
+file=/var/log/ulogd.syslogemu
diff --git a/community/ulogd/ulogd.logrotate b/community/ulogd/ulogd.logrotate
new file mode 100644
index 000000000..312c71acb
--- /dev/null
+++ b/community/ulogd/ulogd.logrotate
@@ -0,0 +1,10 @@
+/var/log/ulogd.log /var/log/ulogd.syslogemu {
+ missingok
+ notifempty
+ sharedscripts
+ create 0640 root root
+
+ postrotate
+ [ -e /var/run/ulogd.pid ] && /etc/rc.d/ulogd restart > /dev/null
+ endscript
+}
diff --git a/community/ulogd/ulogd.rc b/community/ulogd/ulogd.rc
new file mode 100644
index 000000000..83f0550cc
--- /dev/null
+++ b/community/ulogd/ulogd.rc
@@ -0,0 +1,54 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+get_pid() {
+ pidof /usr/sbin/ulogd
+}
+
+case "$1" in
+ start)
+ stat_busy "Starting ulogd daemon"
+
+ [ -f /var/run/ulog.pid ] && rm -f /var/run/ulog.pid
+ PID=`get_pid`
+ if [ -z "$PID" ]; then
+ /usr/sbin/ulogd -d &>/dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ exit 1
+ else
+ echo `get_pid` > /var/run/ulogd.pid
+ add_daemon ulogd
+ stat_done
+ fi
+ else
+ stat_fail
+ exit 1
+ fi
+ ;;
+
+ stop)
+ stat_busy "Stopping ulog daemon"
+ PID=`get_pid`
+ [ ! -z "$PID" ] && kill $PID &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ exit 1
+ else
+ rm -f /var/run/ulogd.pid &> /dev/null
+ rm_daemon ulogd
+ stat_done
+ fi
+ ;;
+
+ restart)
+ $0 stop
+ sleep 3
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/community/ulogd/ulogd.service b/community/ulogd/ulogd.service
index 3984bbced..8858427fa 100644
--- a/community/ulogd/ulogd.service
+++ b/community/ulogd/ulogd.service
@@ -3,10 +3,7 @@ Description=Netfilter Ulogd daemon
After=network.target
[Service]
-Type=forking
-User=root
-ExecStart=/usr/sbin/ulogd -d
-PIDFile=/var/run/ulogd.pid
+ExecStart=/usr/sbin/ulogd
[Install]
WantedBy=multi-user.target
diff --git a/community/warsow/PKGBUILD b/community/warsow/PKGBUILD
index eea94f42f..7f7132f25 100644
--- a/community/warsow/PKGBUILD
+++ b/community/warsow/PKGBUILD
@@ -1,11 +1,11 @@
-# $Id: PKGBUILD 74467 2012-07-29 03:46:52Z svenstaro $
+# $Id: PKGBUILD 77523 2012-10-11 13:44:25Z svenstaro $
# Maintainer: Sven-Hendrik Haase <sh@lutzhaase.com>
# Contributor: Slash <demodevil5[at]yahoo[dot]com>
# Contributor: Babets
# Contributor: Vain
pkgname=warsow
-pkgver=1.0
+pkgver=1.01
pkgrel=1
pkgdesc="Free online multiplayer competitive FPS based on the Qfusion engine"
url="http://www.warsow.net/"
@@ -15,13 +15,13 @@ depends=('curl' 'libjpeg' 'libvorbis' 'libxinerama' 'libxxf86dga' 'libxxf86vm' '
makedepends=('mesa' 'openal' 'imagemagick' 'gendesk')
optdepends=('openal: for openal audio support')
source=('warsow.launcher' 'wsw-server.launcher' 'wswtv-server.launcher' \
- "http://funpark.warsow-esport.net/~warsow/1.0/warsow_${pkgver}_sdk.tar.gz")
+ "http://wsw.null.so/warsow_${pkgver}_sdk.tar.gz")
_genericname=('First person shooter')
_comment=('Online Mulitiplayer Competitive FPS')
md5sums=('ec00081d81ad9802a8ca42fc2eac5498'
'f73e10c26197178df71b941b10bf83d7'
'd7e4a69835bbcf801e58307e9d6b951e'
- '35b9a8f530b51cda15c660b3a73f377e')
+ '9901ef17b4faf03d2b05e52ac3d189d5')
build() {
cd "$srcdir"
diff --git a/community/wt/PKGBUILD b/community/wt/PKGBUILD
index 55a3c436e..a7b4ab0a5 100644
--- a/community/wt/PKGBUILD
+++ b/community/wt/PKGBUILD
@@ -1,12 +1,12 @@
-# $Id: PKGBUILD 75796 2012-08-31 16:11:56Z spupykin $
+# $Id: PKGBUILD 77566 2012-10-12 14:44:41Z svenstaro $
# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
# Maintainer: Sven-Hendrik Haase <sh@lutzhaase.com>
# Contributor: Denis Martinez <deuns.martinez@gmail.com>
pkgname=wt
-pkgver=3.2.2.1
-_pkgver=3.2.2-p1
-pkgrel=2
+pkgver=3.2.3rc1
+_pkgver=3.2.3-rc1
+pkgrel=1
pkgdesc="a C++ library and application server for developing and deploying web applications"
arch=('i686' 'x86_64' 'mips64el')
url="http://www.webtoolkit.eu/"
@@ -26,17 +26,17 @@ optdepends=('openssl: for SSL support in built-in webserver'
'qt: for the Wt/Qt interopability example (wtwithqt)')
backup=('etc/wt/wt_config.xml')
source=(http://downloads.sourceforge.net/witty/$pkgname-${_pkgver}.tar.gz)
-md5sums=('d436430a4f1ae5fbcf038e645e4b5260')
+md5sums=('b58780f11d85b2da32a21f4c2be84cde')
build() {
cd ${srcdir}/${pkgname}-${_pkgver}
mkdir -p build
cd build
+ #-DCMAKE_EXE_LINKER_FLAGS="-lboost_random" \
cmake \
-DCONNECTOR_HTTP=ON \
-DCMAKE_INSTALL_PREFIX=/usr \
- -DCMAKE_EXE_LINKER_FLAGS="-lboost_random" \
-DWEBUSER=http \
-DWEBGROUP=http \
-DUSE_SYSTEM_SQLITE3=ON \
diff --git a/community/xmobar/0001-Update-usage-of-catch-to-catchIOError-since-catch-ha.patch b/community/xmobar/0001-Update-usage-of-catch-to-catchIOError-since-catch-ha.patch
new file mode 100644
index 000000000..d4508c916
--- /dev/null
+++ b/community/xmobar/0001-Update-usage-of-catch-to-catchIOError-since-catch-ha.patch
@@ -0,0 +1,34 @@
+From b7345a790e8026a2075ce636ac377d8f049b4b7c Mon Sep 17 00:00:00 2001
+From: Thomas Dziedzic <gostrc@gmail.com>
+Date: Wed, 3 Oct 2012 06:51:21 -0700
+Subject: [PATCH] Update usage of catch to catchIOError since catch has been
+ removed from System.IO.Error in ghc 7.6.1
+
+---
+ src/Plugins/Monitors/Bright.hs | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/src/Plugins/Monitors/Bright.hs b/src/Plugins/Monitors/Bright.hs
+index 499e5bc..b5ec4c0 100644
+--- a/src/Plugins/Monitors/Bright.hs
++++ b/src/Plugins/Monitors/Bright.hs
+@@ -20,6 +20,7 @@ import Data.Char
+ import System.FilePath ((</>))
+ import System.Posix.Files (fileExist)
+ import System.Console.GetOpt
++import System.IO.Error (catchIOError)
+
+ data BrightOpts = BrightOpts
+ { subDir :: String
+@@ -101,7 +102,7 @@ readBright files =
+ maxVal <- grab $ (fMax files)
+ return $ (currVal / maxVal)
+ where
+- grab f = catch (fmap (read . B.unpack) $ B.readFile f)(\_ -> return 0)
++ grab f = catchIOError (fmap (read . B.unpack) $ B.readFile f)(\_ -> return 0)
+
+
+ showHorizontalBar :: Float -> Monitor String
+--
+1.7.12.2
+
diff --git a/community/xmobar/PKGBUILD b/community/xmobar/PKGBUILD
index 50a973d61..2b61e3ba3 100644
--- a/community/xmobar/PKGBUILD
+++ b/community/xmobar/PKGBUILD
@@ -1,35 +1,37 @@
-# $Id: PKGBUILD 72497 2012-06-15 14:00:57Z jelle $
+# $Id: PKGBUILD 77363 2012-10-09 04:19:10Z tdziedzic $
# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
# Contributor: Arch Haskell Team <arch-haskell@haskell.org>
-# Package generated by cabal2arch 0.4
pkgname=xmobar
-pkgver=0.15
-pkgrel=2
+pkgver=0.16
+pkgrel=1
pkgdesc="A Minimalistic Text Based Status Bar"
url="http://hackage.haskell.org/package/xmobar"
license=('custom:BSD3')
arch=('i686' 'x86_64' 'mips64el')
depends=('gmp' 'libxft' 'libxinerama' 'wireless_tools' 'libxrandr')
-makedepends=('ghc=7.4.2-1' 'haskell-x11=1.6.0' 'haskell-x11-xft=0.3.1' 'haskell-utf8-string'
+makedepends=('ghc=7.6.1-1' 'haskell-x11=1.6.0.2' 'haskell-x11-xft=0.3.1' 'haskell-utf8-string'
'haskell-stm>=2.3' 'haskell-parsec>=3.1' 'haskell-mtl>=2')
options=('strip')
-source=(http://hackage.haskell.org/packages/archive/xmobar/$pkgver/xmobar-$pkgver.tar.gz xmobar-0.15-haskell-mtl.patch)
+#source=(http://hackage.haskell.org/packages/archive/xmobar/$pkgver/xmobar-$pkgver.tar.gz xmobar-0.15-builddep.patch)
+# Use Git snapshot for Ghc 7.6.1 rebuild
+source=(ftp://ftp.archlinux.org/other/community/xmobar/xmobar-$pkgver.tar.gz
+0001-Update-usage-of-catch-to-catchIOError-since-catch-ha.patch)
build() {
- cd ${srcdir}/xmobar-$pkgver
- # Fix haskell mtl dep
- patch -Np1 -i $srcdir/xmobar-0.15-haskell-mtl.patch
+ cd ${srcdir}/xmobar
+ patch -Np1 -i $srcdir/0001-Update-usage-of-catch-to-catchIOError-since-catch-ha.patch
runhaskell Setup configure --disable-optimization --prefix=/usr --flags="with_utf8 with_xft with_iwlib"
runhaskell Setup build
}
package() {
- cd ${srcdir}/xmobar-$pkgver
+ cd ${srcdir}/xmobar
runhaskell Setup copy --destdir=${pkgdir}
- install -D -m644 LICENSE ${pkgdir}/usr/share/licenses/$pkgname/LICENSE
+ install -D -m644 license ${pkgdir}/usr/share/licenses/$pkgname/LICENSE
}
-md5sums=('0658679b39168f49d32fe178029ff9f1'
- '0d9fb64557233c3a349feb53097c7b09')
+md5sums=('b470f8253f8d2b014f59e9d657cc7ddd'
+ 'ffd6079c879f3b6ff7208a846d6ee241'
+ '149583c19ac3d0ad829f3138342bb9db')
diff --git a/community/xmonad-contrib/PKGBUILD b/community/xmonad-contrib/PKGBUILD
index 33de65a5a..2a849dfd9 100644
--- a/community/xmonad-contrib/PKGBUILD
+++ b/community/xmonad-contrib/PKGBUILD
@@ -1,16 +1,16 @@
-# $Id: PKGBUILD 72409 2012-06-13 13:48:15Z tdziedzic $
+# $Id: PKGBUILD 77365 2012-10-09 04:19:28Z tdziedzic $
# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
# Maintainer: Vesa Kaihlavirta <vegai@iki.fi>
# Contributor: orbisvicis <gmail.com>
pkgname=xmonad-contrib
pkgver=0.10
-pkgrel=4
+pkgrel=5
pkgdesc="Add-ons for xmonad"
arch=('i686' 'x86_64' 'mips64el')
url="http://xmonad.org/"
license=('BSD')
-depends=('ghc=7.4.2-1' 'xmonad=0.10-4' 'sh' 'haskell-x11=1.6.0' 'haskell-x11-xft=0.3.1-4' 'haskell-utf8-string=0.3.7-2' 'haskell-random=1.0.1.1-2')
+depends=('ghc=7.6.1' 'xmonad=0.10-5' 'sh' 'haskell-x11=1.6.0.2' 'haskell-x11-xft=0.3.1' 'haskell-utf8-string=0.3.7' 'haskell-random=1.0.1.1-3')
install='xmonad-contrib.install'
source=(http://hackage.haskell.org/packages/archive/$pkgname/$pkgver/$pkgname-$pkgver.tar.gz xmonad-contrib-0.10-x11-1.6.patch)
md5sums=('9a4353a94ec0ea3a9c4700757ef5ae81'
diff --git a/community/xmonad/PKGBUILD b/community/xmonad/PKGBUILD
index 05065a05b..f53853afc 100644
--- a/community/xmonad/PKGBUILD
+++ b/community/xmonad/PKGBUILD
@@ -1,16 +1,16 @@
-# $Id: PKGBUILD 72408 2012-06-13 13:48:08Z tdziedzic $
+# $Id: PKGBUILD 77364 2012-10-09 04:19:21Z tdziedzic $
# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
# Maintainer: Vesa Kaihlavirta <vegai@iki.fi>
# Contributor: shild <shildv@gmail.com>
pkgname=xmonad
pkgver=0.10
-pkgrel=4
+pkgrel=5
pkgdesc="Lightweight X11 tiled window manager written in Haskell"
arch=('i686' 'x86_64' 'mips64el')
url="http://xmonad.org/"
license=('BSD')
-depends=('ghc=7.4.2-1' 'gmp' 'haskell-x11=1.6.0' 'sh' 'haskell-mtl=2.1.1-1' 'haskell-utf8-string=0.3.7')
+depends=('ghc=7.6.1-1' 'gmp' 'haskell-x11=1.6.0.2' 'sh' 'haskell-mtl=2.1.2' 'haskell-utf8-string=0.3.7' 'haskell-extensible-exceptions')
makedepends=('setconf' 'gendesk')
optdepends=('xorg-xmessage: for displaying visual error messages')
install='xmonad.install'
@@ -19,6 +19,7 @@ source=(http://hackage.haskell.org/packages/archive/$pkgname/$pkgver/$pkgname-$p
build() {
cd "$srcdir"
+ ghc-pkg list
gendesk
cd $srcdir/$pkgname-$pkgver
@@ -39,7 +40,7 @@ package() {
install -D -m744 register.sh $pkgdir/usr/share/haskell/$pkgname/register.sh
install -m744 unregister.sh $pkgdir/usr/share/haskell/$pkgname/unregister.sh
runhaskell Setup.lhs copy --destdir=$pkgdir
- # runhaskell util/GenerateManpage.hs
+ #runhaskell util/GenerateManpage.hs
install -D -m644 man/xmonad.1 $pkgdir/usr/share/man/man1/xmonad.1