You are not logged in.
I've tried to build Xmonad 0.4.1, but it fails with the following output:
XMonad.hs:42:17:
Could not find module `Data.Set':
it is a member of package containers-0.1.0.0, which is hidden
After a bit of research I discovered that it has something to do with Cabal, but I can't understand how to fix it? Anyone else encountered this and anyone with a possible solution?
Offline
I got the same error. It doesn't make sense to me, since "ghc-pkg list" lists containers-0.1.0.0 as not hidden...
Offline
I think the solution is here: http://209.85.129.104/search?q=cache:2Q … cd=3&gl=dk
But I'm not sure what to do..
Offline
Ok, I found a way to build xmonad. I added "containers" to the build depends line in xmonad.cabal. Now, I guess I have to untar the package, change the line in xmonad.cabal, then retar it and then use makepkg with the PKGBUILD. Or what..
I'm still a newbie, so please bear with me.
Offline
Thanks for finding it out!
A standard way of dealing with this is to use diff and patch. You can see how to generate a patch and how to apply a patch for example at http://www.suckless.org/wiki/dwm/patches (look at "for tarballs" parts). After you have a patch, just modify the PKGBUILD to include your patch file in the sources field, and add the patch command into the build part.
Offline
ashren: using your suggestion, I made a patch and modified the AUR PKGBUILD:
PKGBUILD:
pkgname=xmonad
pkgver=0.4.1
pkgrel=2
pkgdesc="A lightweight X11 tiled window manager written in Haskell"
arch=(i686 x86_64)
url="http://xmonad.org/"
license=('custom:BSD3')
depends=('gmp' 'libxext' 'dmenu')
makedepends=('ghc' 'haskell-x11>=1.3.0')
source=(http://hackage.haskell.org/packages/archive/$pkgname/$pkgver/$pkgname-$pkgver.tar.gz xmonad-0.4.1-containers-fix.diff)
build() {
cd $startdir/src/$pkgname-$pkgver
patch -p1 < ../xmonad-0.4.1-containers-fix.diff
runhaskell Setup.lhs configure --ghc --prefix=/usr || return 1
# configuration handling stuff
if [ -f ../../Config.hs ]; then
msg "Custom configuration detected"
msg2 "copying config.h to build directory"
cp ../../Config.hs Config.hs
fi
# Maybe move this to function ?
msg "Do you want to change configuration before compilation ? [y/N] "
read answerpkgname=xmonad
pkgver=0.4.1
pkgrel=2
pkgdesc="A lightweight X11 tiled window manager written in Haskell"
arch=(i686 x86_64)
url="http://xmonad.org/"
license=('custom:BSD3')
depends=('gmp' 'libxext' 'dmenu')
makedepends=('ghc' 'haskell-x11>=1.3.0')
source=(http://hackage.haskell.org/packages/archive/$pkgname/$pkgver/$pkgname-$pkgver.tar.gz xmonad-0.4.1-containers-fix.diff)
build() {
cd $startdir/src/$pkgname-$pkgver
patch -p1 < ../xmonad-0.4.1-containers-fix.diff
runhaskell Setup.lhs configure --ghc --prefix=/usr || return 1
# configuration handling stuff
if [ -f ../../Config.hs ]; then
msg "Custom configuration detected"
msg2 "copying config.h to build directory"
cp ../../Config.hs Config.hs
fi
# Maybe move this to function ?
msg "Do you want to change configuration before compilation ? [y/N] "
read answer
answer=$(echo $answer | tr [:upper:] [:lower:])
if [ $answer = "y" -o $answer = "yes" ]; then
# maybe user prefer something other than vim ?
if [ x"$EDITOR" != x"" ]; then
$EDITOR Config.hs
else
vi Config.hs
fi
# save modified config for future builds
cp -f Config.hs ../../Config.hs
fi
runhaskell Setup.lhs build || return 1
runhaskell Setup.lhs copy --destdir=$startdir/pkg
runhaskell util/GenerateManpage.hs
install -D -m644 LICENSE $startdir/pkg/usr/share/licenses/$pkgname/BSD3
install -D -m644 man/xmonad.1 $startdir/pkg/usr/man/man1/xmonad.1
}
answer=$(echo $answer | tr [:upper:] [:lower:])
if [ $answer = "y" -o $answer = "yes" ]; then
# maybe user prefer something other than vim ?
if [ x"$EDITOR" != x"" ]; then
$EDITOR Config.hs
else
vi Config.hs
fi
# save modified config for future builds
cp -f Config.hs ../../Config.hs
fi
runhaskell Setup.lhs build || return 1
runhaskell Setup.lhs copy --destdir=$startdir/pkg
runhaskell util/GenerateManpage.hs
install -D -m644 LICENSE $startdir/pkg/usr/share/licenses/$pkgname/BSD3
install -D -m644 man/xmonad.1 $startdir/pkg/usr/man/man1/xmonad.1
}
And you also need this file: xmonad-0.4.1--containers-fix.diff
Only in xmonad-0.4.1-new: dist
Common subdirectories: xmonad-0.4.1/man and xmonad-0.4.1-new/man
Common subdirectories: xmonad-0.4.1/tests and xmonad-0.4.1-new/tests
Common subdirectories: xmonad-0.4.1/util and xmonad-0.4.1-new/util
diff -up xmonad-0.4.1/xmonad.cabal xmonad-0.4.1-new/xmonad.cabal
--- xmonad-0.4.1/xmonad.cabal 2007-11-02 17:31:08.000000000 -0500
+++ xmonad-0.4.1-new/xmonad.cabal 2007-11-15 13:00:28.041790818 -0600
@@ -17,7 +17,7 @@ license: BSD3
license-file: LICENSE
author: Spencer Janssen
maintainer: sjanssen@cse.unl.edu
-build-depends: base>=2.0, mtl>=1.0, unix>=1.0, X11==1.3.0
+build-depends: base>=2.0, mtl>=1.0, unix>=1.0, X11==1.3.0, containers
extra-source-files: README TODO tests/loc.hs tests/Properties.hs man/xmonad.1.in
Config.hs-boot util/GenerateManpage.hs man/xmonad.1 man/xmonad.html
Offline
Thank you!
I really tried to figure out how to create a patch, but I didn't have the time.
Offline