[Xmonad] issue building xmonad on OS X 10.4

Vincent Kraeutler vincent at kraeutler.net
Fri Oct 19 11:58:22 EDT 2007

Dear xmonad list,

I would like to report a build problem with xmonad on OS X 10.4 as well as
a) a tentative description of the problem;
b) a hackish fix which seems to work for me.

I. Problem description:

The build fails with the following output:
vincent$ runhaskell Setup.lhs configure
Configuring xmonad-0.4...
configure: Dependency base>=2.0: using base-2.0
configure: Dependency X11>=1.2.1: using X11-1.2.2
configure: Dependency X11-extras>=0.4: using X11-extras-0.4
configure: Dependency mtl>=1.0: using mtl-1.0
configure: Dependency unix>=1.0: using unix-1.0


vincent$ runhaskell Setup.lhs build
Preprocessing executables for xmonad-0.4...
Building xmonad-0.4...
[3 of 6] Compiling Config[boot]     ( Config.hs-boot, nothing )
[4 of 6] Compiling Operations       ( Operations.hs,
dist/build/xmonad/xmonad-tmp/Operations.o )

Operations.hs:81:17: Not in scope: `withdrawnState'

Operations.hs:190:17: Not in scope: `iconicState'

Operations.hs:201:17: Not in scope: `normalState'

II. Likely cause:

Somehow the above symbols, #define'd in X11R6/include/X11/Xutil.h:
/* definitions for initial window state */
#define WithdrawnState 0    /* for windows that are not mapped */
#define NormalState 1    /* most applications want to start this way */
#define IconicState 3    /* application wants to start as an icon */
do not get properly propagated to Operations.hs. I am still sufficiently
unfamiliar with the haskell ffi/build chain to figure out where they
might get dropped, but at least for me, there seems to be a problem.

III. Tentative fix:

Replace occurrences of the symbols with the respective hard-coded
integer values. About like so:

vincent$ darcs diff
diff -rN old-xmonad/Operations.hs new-xmonad/Operations.hs
<     setWMState w withdrawnState
>     setWMState w 0
>     --setWMState w withdrawnState
<     setWMState w iconicState
>     --setWMState w iconicState
>     setWMState w 3
<     setWMState w normalState
>     --setWMState w normalState
>     setWMState w 1

xmonad then builds fine and seems to run happily as well. But obviously,
this is not a satisfying solution. I would be grateful for a better one.

Kind regards,

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 249 bytes
Desc: OpenPGP digital signature
Url : http://www.haskell.org/pipermail/xmonad/attachments/20071019/ad274a2a/signature.bin

More information about the Xmonad mailing list