diff options
Diffstat (limited to 'community')
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 |