# [RISOLTO] emerge xmonad

## Realnot

Salve, e' da ieri sera che provo ad emergere xmonad ma non riesco, ottengo sempre dei problemi durante l'emerge.

```
[32;01m * [39;49;00mPackage:    x11-wm/xmonad-0.9

[32;01m * [39;49;00mRepository: gentoo

[32;01m * [39;49;00mMaintainer: haskell@gentoo.org

[32;01m * [39;49;00mUSE:        amd64 elibc_glibc kernel_linux multilib userland_GNU

[32;01m * [39;49;00mFEATURES:   sandbox

>>> Unpacking source...

>>> Unpacking xmonad-0.9.tar.gz to /var/tmp/portage/x11-wm/xmonad-0.9/work

>>> Source unpacked in /var/tmp/portage/x11-wm/xmonad-0.9/work

>>> Preparing source in /var/tmp/portage/x11-wm/xmonad-0.9/work/xmonad-0.9 ...

>>> Source prepared.

>>> Configuring source in /var/tmp/portage/x11-wm/xmonad-0.9/work/xmonad-0.9 ...

 [32;01m*[0m Using cabal-1.14.0.

/usr/bin/ghc -package Cabal-1.14.0 --make /var/tmp/portage/x11-wm/xmonad-0.9/work/xmonad-0.9/Setup.lhs -o setup

[1 of 1] Compiling Main             ( /var/tmp/portage/x11-wm/xmonad-0.9/work/xmonad-0.9/Setup.lhs, /var/tmp/portage/x11-wm/xmonad-0.9/work/xmonad-0.9/Setup.o )

Linking setup ...

./setup configure --ghc --prefix=/usr --with-compiler=/usr/bin/ghc --with-hc-pkg=/usr/bin/ghc-pkg --prefix=/usr --libdir=/usr/lib64 --libsubdir=xmonad-0.9/ghc-7.4.1 --datadir=/usr/share/ --datasubdir=xmonad-0.9/ghc-7.4.1 --ghc-option=-optl-Wl,-O1 --ghc-option=-optl-Wl,--as-needed --disable-executable-stripping --docdir=/usr/share/doc/xmonad-0.9 --verbose

Configuring xmonad-0.9...

setup: At least the following dependencies are missing:

X11 >=1.4.6.1, base ==3.*

 [31;01m*[0m ERROR: x11-wm/xmonad-0.9 failed (configure phase):

 [31;01m*[0m   setup configure failed

 [31;01m*[0m 

 [31;01m*[0m Call stack:

 [31;01m*[0m     ebuild.sh, line   85:  Called src_configure

 [31;01m*[0m   environment, line 2584:  Called haskell-cabal_src_configure

 [31;01m*[0m   environment, line 1931:  Called cabal-configure

 [31;01m*[0m   environment, line  445:  Called die

 [31;01m*[0m The specific snippet of code:

 [31;01m*[0m       ./setup "$@" || die "setup configure failed"

 [31;01m*[0m 

 [31;01m*[0m If you need support, post the output of `emerge --info '=x11-wm/xmonad-0.9'`,

 [31;01m*[0m the complete build log and the output of `emerge -pqv '=x11-wm/xmonad-0.9'`.

 [31;01m*[0m The complete build log is located at '/var/log/portage/x11-wm:xmonad-0.9:20120809-145205.log'.

 [31;01m*[0m For convenience, a symlink to the build log is located at '/var/tmp/portage/x11-wm/xmonad-0.9/temp/build.log'.

 [31;01m*[0m The ebuild environment file is located at '/var/tmp/portage/x11-wm/xmonad-0.9/temp/environment'.

 [31;01m*[0m Working directory: '/var/tmp/portage/x11-wm/xmonad-0.9/work/xmonad-0.9'

 [31;01m*[0m S: '/var/tmp/portage/x11-wm/xmonad-0.9/work/xmonad-0.9'
```

Facciamo un passo indietro e spieghiamo tutto per bene. L'emerge di xmonad ha portato dentro 6 pacchetti:

1) dev-haskell/syb

2) dev-haskell/x11-1.4.6.1

3) dev-haskell/mtl-1.1.1.1

4) dev-haskell/cabal-1.14.0

5) dev-lang/ghc-6.12.3-r2

6) x11-wm/xmonad-0.9

Durante il primo emerge vengono emersi tutti i pacchetti correttamente (con un po di warning) eccetto l'ultimo "xmonad" che dava il seguente errore: 

```
XMonad/Main.hsc:143:12:

    Warning: A do-notation statement discarded a result of type Maybe

                                                                  ().

             Suppress this warning by saying "_ <- ($)

                                                     userCode startupHook initxmc",

             or by using the flag -fno-warn-unused-do-bind

[ 8 of 10] Compiling Paths_xmonad     ( dist/build/autogen/Paths_xmonad.hs, dist/build/xmonad/xmonad-tmp/Paths_xmonad.o )

dist/build/autogen/Paths_xmonad.hs:11:10:

    Couldn't match expected type `Exception.IOException'

           against inferred type `Exception.Exception'

      Expected type: Exception.IOException -> IO a

      Inferred type: Exception.Exception -> IO a

    In the expression: Exception.catch

    In the definition of `catchIO': catchIO = Exception.catch

 [31;01m*[0m ERROR: x11-wm/xmonad-0.9 failed (compile phase):

 [31;01m*[0m   setup build failed

 [31;01m*[0m 

 [31;01m*[0m Call stack:

 [31;01m*[0m     ebuild.sh, line   85:  Called src_compile

 [31;01m*[0m   environment, line 2589:  Called haskell-cabal_src_compile

 [31;01m*[0m   environment, line 1926:  Called cabal_src_compile

 [31;01m*[0m   environment, line  545:  Called cabal-build

 [31;01m*[0m   environment, line  403:  Called die

 [31;01m*[0m The specific snippet of code:

 [31;01m*[0m       ./setup "$@" || die "setup build failed"

 [31;01m*[0m 

 [31;01m*[0m If you need support, post the output of `emerge --info '=x11-wm/xmonad-0.9'`,

 [31;01m*[0m the complete build log and the output of `emerge -pqv '=x11-wm/xmonad-0.9'`.

 [31;01m*[0m The complete build log is located at '/var/log/portage/x11-wm:xmonad-0.9:20120809-014710.log'.

 [31;01m*[0m For convenience, a symlink to the build log is located at '/var/tmp/portage/x11-wm/xmonad-0.9/temp/build.log'.

 [31;01m*[0m The ebuild environment file is located at '/var/tmp/portage/x11-wm/xmonad-0.9/temp/environment'.

 [31;01m*[0m Working directory: '/var/tmp/portage/x11-wm/xmonad-0.9/work/xmonad-0.9'

 [31;01m*[0m S: '/var/tmp/portage/x11-wm/xmonad-0.9/work/xmonad-0.9'
```

Qui' e' disponibile tutto il log: http://bpaste.net/show/39202/

Cerco un po su google ma non trovo nulla, chiedo un po in giro, sia su #gentoo che su #gentoo-it (su Freenode), ma non ho avuto risposta (effettivamente era abbastanza tardi), ma non mi dispero e continuo a cercare. Dopo una decina di minuti ho trovato qualcuno su #xmonad sempre su Freenode e mi ha spiegato che il problema potrebbe derivare da un bug (che non ho ben capito) che c'e' tra quella versione di cabal ed il 'datato' ghc. 

 *Quote:*   

> 02:27 <xxx> the short version is, your installed cabal (0.14, current) doesn't quite work properly with ghc 6.12.2; this will only show up with 
> 
>                    packages that make use of the paths feature of cabal.
> 
> 02:32 <xxx> 6.12.2 is ancient, and has in particular an older version of the exceptions mechanism which cabal-install 0.14 doesn't support (although 
> ...

 

Poi il tizio ha menzionato due volte cabal 0.14, ma la mia e' cabal 1.14... avra' sbagliato 2 volte?

Aggiungo ghc in package.accept_keywords ed emergo la 'non stabile' 7.4.1-r1 (oltre 1 ora di compilazione... ancora) ma non si risolve nulla... cambia solo l'errore. Questa volta mi dice che manca syb come dipendenza... quindi emergo syb e provo a riemergere xmonad (ottengo il primo messaggio di errore in alto) ho anche dovuto lanciare haskell-updater --upgrade dopo l'emerge di ghc-7.4.1-r1 credo per qualche libreria mancante.

Come posso emergere questo benedetto wm?

Da notare che nel primo messaggio trovo:

```
setup: At least the following dependencies are missing: 

X11 >=1.4.6.1, base ==3.* 
```

X11 e' gia' alla version 1.4.6.1 e per 'base' non so che intenda... portage mi trova come package con un simile nome 'tra gli altri' gbase di x11 se non erro, ma sono 92 pacchetti LOOOL 

Qualcuno ha qualche idea?

----------

## Realnot

Risolto, semplicemente emergento xmonad-0.10, credo che la 0.9 abbia qualche problema con la versione di cabal-1.14. Ad ogni modo mi chiedo come mai se si emerge xmonad e portage segni come ultima stabile la 0.9 questa richieda una versione di cabal che va in conflitto con xmonad? Ad esempio cabal-1.10 non dovrebbe dare problemi...

----------

