
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 80c80,81 < setWMState w withdrawnState ---
setWMState w 0 --setWMState w withdrawnState
189c190,191 < setWMState w iconicState ---
--setWMState w iconicState setWMState w 3
199c201,202 < 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, v.