Hello community,

here is the log from the commit of package xmonad for openSUSE:Factory checked 
in at 2018-08-27 12:58:25
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/xmonad (Old)
 and      /work/SRC/openSUSE:Factory/.xmonad.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "xmonad"

Mon Aug 27 12:58:25 2018 rev:3 rq:631369 version:0.14.2

Changes:
--------
--- /work/SRC/openSUSE:Factory/xmonad/xmonad.changes    2018-08-20 
16:21:10.412971047 +0200
+++ /work/SRC/openSUSE:Factory/.xmonad.new/xmonad.changes       2018-08-27 
12:58:27.352757650 +0200
@@ -1,0 +2,38 @@
+Wed Aug 22 09:14:12 UTC 2018 - psim...@suse.com
+
+- Update xmonad to version 0.14.2.
+  ## unknown (unknown)
+
+  ## 0.14.1 (August 20, 2018)
+
+  ### Breaking Changes
+
+    * The cabal build no longer installs xmonad.hs, xmonad.1, and xmonad.1.html
+      as data files. The location cabal picks for chose files isn't useful as
+      standard tools like man(1) won't find them there. Instead, we rely on
+      distributors to pick up the files from the source tarball during the 
build
+      and to install them into proper locations where their users expect them.
+      [https://github.com/xmonad/xmonad/pull/127]
+
+  ### Bug Fixes
+
+    * Add support for GHC 8.6.x by providing an instance for 'MonadFail X'. A
+      side effect of that change is that our code no longer compiles with GHC
+      versions prior to 8.0.x. We could work around that, no doubt, but the
+      resulting code would require CPP and Cabal flags and whatnot. It feels 
more
+      reasonable to just require a moderately recent compiler instead of going
+      through all that trouble.
+
+    * xmonad no longer always recompile on startup. Now it only does so if the
+      executable does not have the name that would be used for the compilation
+      output. The purpose of recompiling and executing the results in this 
case is
+      so that the `xmonad` executable in the package can be used with custom
+      configurations.
+
+  ### Enhancements
+
+    * Whenever xmonad recompiles, it now explains how it is attempting to
+      recompile, by outputting logs to stderr. If you are using xmonad as a 
custom
+      X session, then this will end up in a `.xsession-errors` file.
+
+-------------------------------------------------------------------

Old:
----
  xmonad-0.14.tar.gz
  xmonad.cabal

New:
----
  xmonad-0.14.2.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ xmonad.spec ++++++
--- /var/tmp/diff_new_pack.6et98B/_old  2018-08-27 12:58:28.456758856 +0200
+++ /var/tmp/diff_new_pack.6et98B/_new  2018-08-27 12:58:28.456758856 +0200
@@ -19,14 +19,13 @@
 %global pkg_name xmonad
 %bcond_with tests
 Name:           %{pkg_name}
-Version:        0.14
+Version:        0.14.2
 Release:        0
 Summary:        A tiling window manager
 License:        BSD-3-Clause
 Group:          Development/Libraries/Haskell
 URL:            https://hackage.haskell.org/package/%{name}
 Source0:        
https://hackage.haskell.org/package/%{name}-%{version}/%{name}-%{version}.tar.gz
-Source1:        
https://hackage.haskell.org/package/%{name}-%{version}/revision/1.cabal#/%{name}.cabal
 Source10:       xmonad.desktop
 BuildRequires:  chrpath
 BuildRequires:  ghc-Cabal-devel
@@ -39,7 +38,6 @@
 BuildRequires:  ghc-mtl-devel
 BuildRequires:  ghc-process-devel
 BuildRequires:  ghc-rpm-macros
-BuildRequires:  ghc-semigroups-devel
 BuildRequires:  ghc-setlocale-devel
 BuildRequires:  ghc-unix-devel
 BuildRequires:  ghc-utf8-string-devel
@@ -85,22 +83,17 @@
 
 %prep
 %setup -q
-cp -p %{SOURCE1} %{name}.cabal
 
 %build
 %ghc_lib_build
 
 %install
 %ghc_lib_install
-install -d %{buildroot}%{_mandir}/man1/
-mv %{buildroot}%{_datadir}/%{name}-%{version}/man/%{name}.1 
%{buildroot}%{_mandir}/man1/
-gzip %{buildroot}%{_mandir}/man1/%{name}.1
-# Gzipping here because when we gzip it in %%build step, it breaks cabal setup
-
+install -m0644 -D man/xmonad.1 %{buildroot}%{_mandir}/man1/xmonad.1
+gzip %{buildroot}%{_mandir}/man1/xmonad.1
 %define desktop_src %{buildroot}%{_datadir}/xsessions/xmonad.desktop
 install -m0644 -D %{SOURCE10} %{desktop_src}
 %suse_update_desktop_file %{desktop_src}
-
 %ghc_fix_rpath %{pkg_name}-%{version}
 
 %check
@@ -116,12 +109,8 @@
 %license LICENSE
 %doc CHANGES.md README.md
 %{_bindir}/%{name}
-%dir %{_datadir}/%{name}-%{version}
-%dir %{_datadir}/%{name}-%{version}/man
 %{_mandir}/man1/xmonad.1%{?ext_man}
-%{_datadir}/%{name}-%{version}/man/xmonad.1.html
 %{_datadir}/xsessions/xmonad.desktop
-%{_datadir}/%{name}-%{version}/man/xmonad.hs
 
 %files -n ghc-%{name} -f ghc-%{name}.files
 %license LICENSE

++++++ xmonad-0.14.tar.gz -> xmonad-0.14.2.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xmonad-0.14/CHANGES.md new/xmonad-0.14.2/CHANGES.md
--- old/xmonad-0.14/CHANGES.md  2018-07-30 11:12:59.000000000 +0200
+++ new/xmonad-0.14.2/CHANGES.md        2018-08-21 10:01:48.000000000 +0200
@@ -1,5 +1,39 @@
 # Change Log / Release Notes
 
+## unknown (unknown)
+
+## 0.14.1 (August 20, 2018)
+
+### Breaking Changes
+
+  * The cabal build no longer installs xmonad.hs, xmonad.1, and xmonad.1.html
+    as data files. The location cabal picks for chose files isn't useful as
+    standard tools like man(1) won't find them there. Instead, we rely on
+    distributors to pick up the files from the source tarball during the build
+    and to install them into proper locations where their users expect them.
+    [https://github.com/xmonad/xmonad/pull/127]
+
+### Bug Fixes
+
+  * Add support for GHC 8.6.x by providing an instance for 'MonadFail X'. A
+    side effect of that change is that our code no longer compiles with GHC
+    versions prior to 8.0.x. We could work around that, no doubt, but the
+    resulting code would require CPP and Cabal flags and whatnot. It feels more
+    reasonable to just require a moderately recent compiler instead of going
+    through all that trouble.
+
+  * xmonad no longer always recompile on startup. Now it only does so if the
+    executable does not have the name that would be used for the compilation
+    output. The purpose of recompiling and executing the results in this case 
is
+    so that the `xmonad` executable in the package can be used with custom
+    configurations.
+
+### Enhancements
+
+  * Whenever xmonad recompiles, it now explains how it is attempting to
+    recompile, by outputting logs to stderr. If you are using xmonad as a 
custom
+    X session, then this will end up in a `.xsession-errors` file.
+
 ## 0.14 (July 30, 2018)
 
 ### Bug Fixes
@@ -23,6 +57,7 @@
   * Restored compatability with GHC version prior to 8.0.1 by removing the
     dependency on directory version 1.2.3.
 
+
 ## 0.13 (February 10, 2017)
 
 ### Breaking Changes
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xmonad-0.14/README.md new/xmonad-0.14.2/README.md
--- old/xmonad-0.14/README.md   2018-07-30 11:12:59.000000000 +0200
+++ new/xmonad-0.14.2/README.md 2018-08-21 10:01:48.000000000 +0200
@@ -60,7 +60,15 @@
     library headers. On many platforms, these come pre-installed. For
     others, such as Debian, you can get them from your package manager:
 
-        $ apt-get install libx11-dev libxinerama-dev libxext-dev
+        # for xmonad
+        $ apt-get install libx11-dev libxinerama-dev libxext-dev libxrandr-dev 
libxss-dev
+
+        # for xmonad-contrib
+        $ apt-get install libxft-dev
+
+Then build and install with:
+
+    $ cabal install
 
 ## Running xmonad
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xmonad-0.14/man/xmonad.1 
new/xmonad-0.14.2/man/xmonad.1
--- old/xmonad-0.14/man/xmonad.1        2018-07-30 11:12:59.000000000 +0200
+++ new/xmonad-0.14.2/man/xmonad.1      2018-08-21 10:01:48.000000000 +0200
@@ -1,10 +1,10 @@
-.TH xmonad 1 "31 December 2012" xmonad-0.13 "xmonad manual".\" Automatically 
generated by Pandoc 1.19.2.1
+.\" Automatically generated by Pandoc 2.2.1
 .\"
-.TH "" "" "" "" ""
+.TH "XMONAD" "1" "20 August 2018" "Tiling Window Manager" ""
 .hy
 .SH Name
 .PP
-xmonad \- a tiling window manager
+xmonad \- Tiling Window Manager
 .SH Description
 .PP
 \f[I]xmonad\f[] is a minimalist tiling window manager for X, written in
@@ -41,7 +41,7 @@
 modify.
 .SH Usage
 .PP
-\f[I]xmonad\f[] places each window into a "workspace".
+\f[I]xmonad\f[] places each window into a \[lq]workspace\[rq].
 Each workspace can have any number of windows, which you can cycle
 though with mod\-j and mod\-k.
 Windows are either displayed full screen, tiled horizontally, or tiled
@@ -67,31 +67,32 @@
 xmonad has several flags which you may pass to the executable.
 These flags are:
 .TP
-.B \-\-recompile
+.B \[en]recompile
 Recompiles your configuration in \f[I]~/.xmonad/xmonad.hs\f[]
 .RS
 .RE
 .TP
-.B \-\-restart
+.B \[en]restart
 Causes the currently running \f[I]xmonad\f[] process to restart
 .RS
 .RE
 .TP
-.B \-\-replace
+.B \[en]replace
 Replace the current window manager with xmonad
 .RS
 .RE
 .TP
-.B \-\-version
+.B \[en]version
 Display version of \f[I]xmonad\f[]
 .RS
 .RE
 .TP
-.B \-\-verbose\-version
+.B \[en]verbose\-version
 Display detailed version of \f[I]xmonad\f[]
 .RS
 .RE
-.SS Default keyboard bindings
+.PP
+##Default keyboard bindings
 .TP
 .B mod\-shift\-return
 Launch terminal
@@ -209,6 +210,12 @@
 .RS
 .RE
 .TP
+.B mod\-question
+Run xmessage with a summary of the default keybindings (useful for
+beginners)
+.RS
+.RE
+.TP
 .B mod\-[1..9]
 Switch to workspace N
 .RS
@@ -262,7 +269,7 @@
 .SS Modular Configuration
 .PP
 As of \f[I]xmonad\-0.9\f[], any additional Haskell modules may be placed
-in \f[I]~/.xmonad/lib/\f[] are available in GHC\[aq]s searchpath.
+in \f[I]~/.xmonad/lib/\f[] are available in GHC's searchpath.
 Hierarchical modules are supported: for example, the file
 \f[I]~/.xmonad/lib/XMonad/Stack/MyAdditions.hs\f[] could contain:
 .IP
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xmonad-0.14/man/xmonad.1.html 
new/xmonad-0.14.2/man/xmonad.1.html
--- old/xmonad-0.14/man/xmonad.1.html   2018-07-30 11:12:59.000000000 +0200
+++ new/xmonad-0.14.2/man/xmonad.1.html 2018-08-21 10:01:48.000000000 +0200
@@ -1,21 +1,97 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd";>
-<html xmlns="http://www.w3.org/1999/xhtml";>
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml"; lang="" xml:lang="">
 <head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <meta http-equiv="Content-Style-Type" content="text/css" />
+  <meta charset="utf-8" />
   <meta name="generator" content="pandoc" />
-  <title></title>
-  <style type="text/css">code{white-space: pre;}</style>
+  <meta name="viewport" content="width=device-width, initial-scale=1.0, 
user-scalable=yes" />
+  <meta name="author" content="" />
+  <meta name="dcterms.date" content="2018-08-20" />
+  <title>XMONAD(1) Tiling Window Manager</title>
+  <style type="text/css">
+      code{white-space: pre-wrap;}
+      span.smallcaps{font-variant: small-caps;}
+      span.underline{text-decoration: underline;}
+      div.column{display: inline-block; vertical-align: top; width: 50%;}
+  </style>
+  <style type="text/css">
+a.sourceLine { display: inline-block; line-height: 1.25; }
+a.sourceLine { pointer-events: none; color: inherit; text-decoration: inherit; 
}
+a.sourceLine:empty { height: 1.2em; }
+.sourceCode { overflow: visible; }
+code.sourceCode { white-space: pre; position: relative; }
+div.sourceCode { margin: 1em 0; }
+pre.sourceCode { margin: 0; }
+@media screen {
+div.sourceCode { overflow: auto; }
+}
+@media print {
+code.sourceCode { white-space: pre-wrap; }
+a.sourceLine { text-indent: -1em; padding-left: 1em; }
+}
+pre.numberSource a.sourceLine
+  { position: relative; left: -4em; }
+pre.numberSource a.sourceLine::before
+  { content: attr(data-line-number);
+    position: relative; left: -1em; text-align: right; vertical-align: 
baseline;
+    border: none; pointer-events: all; display: inline-block;
+    -webkit-touch-callout: none; -webkit-user-select: none;
+    -khtml-user-select: none; -moz-user-select: none;
+    -ms-user-select: none; user-select: none;
+    padding: 0 4px; width: 4em;
+    color: #aaaaaa;
+  }
+pre.numberSource { margin-left: 3em; border-left: 1px solid #aaaaaa;  
padding-left: 4px; }
+div.sourceCode
+  {  }
+@media screen {
+a.sourceLine::before { text-decoration: underline; }
+}
+code span.al { color: #ff0000; font-weight: bold; } /* Alert */
+code span.an { color: #60a0b0; font-weight: bold; font-style: italic; } /* 
Annotation */
+code span.at { color: #7d9029; } /* Attribute */
+code span.bn { color: #40a070; } /* BaseN */
+code span.bu { } /* BuiltIn */
+code span.cf { color: #007020; font-weight: bold; } /* ControlFlow */
+code span.ch { color: #4070a0; } /* Char */
+code span.cn { color: #880000; } /* Constant */
+code span.co { color: #60a0b0; font-style: italic; } /* Comment */
+code span.cv { color: #60a0b0; font-weight: bold; font-style: italic; } /* 
CommentVar */
+code span.do { color: #ba2121; font-style: italic; } /* Documentation */
+code span.dt { color: #902000; } /* DataType */
+code span.dv { color: #40a070; } /* DecVal */
+code span.er { color: #ff0000; font-weight: bold; } /* Error */
+code span.ex { } /* Extension */
+code span.fl { color: #40a070; } /* Float */
+code span.fu { color: #06287e; } /* Function */
+code span.im { } /* Import */
+code span.in { color: #60a0b0; font-weight: bold; font-style: italic; } /* 
Information */
+code span.kw { color: #007020; font-weight: bold; } /* Keyword */
+code span.op { color: #666666; } /* Operator */
+code span.ot { color: #007020; } /* Other */
+code span.pp { color: #bc7a00; } /* Preprocessor */
+code span.sc { color: #4070a0; } /* SpecialChar */
+code span.ss { color: #bb6688; } /* SpecialString */
+code span.st { color: #4070a0; } /* String */
+code span.va { color: #19177c; } /* Variable */
+code span.vs { color: #4070a0; } /* VerbatimString */
+code span.wa { color: #60a0b0; font-weight: bold; font-style: italic; } /* 
Warning */
+  </style>
+  <!--[if lt IE 9]>
+    <script 
src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv-printshiv.min.js"></script>
+  <![endif]-->
 </head>
 <body>
-<h1>xmonad-0.13</h1><p>Section: xmonad manual (1)<br/>Updated: 31 December 
2012</p><hr/>
-<div id="TOC">
+<header>
+<h1 class="title">XMONAD(1) Tiling Window Manager</h1>
+<p class="author"></p>
+<p class="date">20 August 2018</p>
+</header>
+<nav id="TOC">
 <ul>
 <li><a href="#name">Name</a></li>
 <li><a href="#description">Description</a></li>
 <li><a href="#usage">Usage</a><ul>
 <li><a href="#flags">Flags</a></li>
-<li><a href="#default-keyboard-bindings">Default keyboard bindings</a></li>
 </ul></li>
 <li><a href="#examples">Examples</a></li>
 <li><a href="#customization">Customization</a><ul>
@@ -23,37 +99,37 @@
 </ul></li>
 <li><a href="#bugs">Bugs</a></li>
 </ul>
-</div>
+</nav>
 <h1 id="name">Name</h1>
-<p>xmonad - a tiling window manager</p>
+<p>xmonad - Tiling Window Manager</p>
 <h1 id="description">Description</h1>
 <p><em>xmonad</em> is a minimalist tiling window manager for X, written in 
Haskell. Windows are managed using automatic layout algorithms, which can be 
dynamically reconfigured. At any time windows are arranged so as to maximize 
the use of screen real estate. All features of the window manager are 
accessible purely from the keyboard: a mouse is entirely optional. 
<em>xmonad</em> is configured in Haskell, and custom layout algorithms may be 
implemented by the user in config files. A principle of <em>xmonad</em> is 
predictability: the user should know in advance precisely the window 
arrangement that will result from any action.</p>
 <p>By default, <em>xmonad</em> provides three layout algorithms: tall, wide 
and fullscreen. In tall or wide mode, windows are tiled and arranged to prevent 
overlap and maximize screen use. Sets of windows are grouped together on 
virtual screens, and each screen retains its own layout, which may be 
reconfigured dynamically. Multiple physical monitors are supported via 
Xinerama, allowing simultaneous display of a number of screens.</p>
 <p>By utilizing the expressivity of a modern functional language with a rich 
static type system, <em>xmonad</em> provides a complete, featureful window 
manager in less than 1200 lines of code, with an emphasis on correctness and 
robustness. Internal properties of the window manager are checked using a 
combination of static guarantees provided by the type system, and type-based 
automated testing. A benefit of this is that the code is simple to understand, 
and easy to modify.</p>
 <h1 id="usage">Usage</h1>
-<p><em>xmonad</em> places each window into a &quot;workspace&quot;. Each 
workspace can have any number of windows, which you can cycle though with mod-j 
and mod-k. Windows are either displayed full screen, tiled horizontally, or 
tiled vertically. You can toggle the layout mode with mod-space, which will 
cycle through the available modes.</p>
+<p><em>xmonad</em> places each window into a “workspace”. Each workspace can 
have any number of windows, which you can cycle though with mod-j and mod-k. 
Windows are either displayed full screen, tiled horizontally, or tiled 
vertically. You can toggle the layout mode with mod-space, which will cycle 
through the available modes.</p>
 <p>You can switch to workspace N with mod-N. For example, to switch to 
workspace 5, you would press mod-5. Similarly, you can move the current window 
to another workspace with mod-shift-N.</p>
 <p>When running with multiple monitors (Xinerama), each screen has exactly 1 
workspace visible. mod-{w,e,r} switch the focus between screens, while 
shift-mod-{w,e,r} move the current window to that screen. When <em>xmonad</em> 
starts, workspace 1 is on screen 1, workspace 2 is on screen 2, etc. When 
switching workspaces to one that is already visible, the current and visible 
workspaces are swapped.</p>
 <h2 id="flags">Flags</h2>
 <p>xmonad has several flags which you may pass to the executable. These flags 
are:</p>
 <dl>
-<dt>--recompile</dt>
+<dt>–recompile</dt>
 <dd>Recompiles your configuration in <em>~/.xmonad/xmonad.hs</em>
 </dd>
-<dt>--restart</dt>
+<dt>–restart</dt>
 <dd>Causes the currently running <em>xmonad</em> process to restart
 </dd>
-<dt>--replace</dt>
+<dt>–replace</dt>
 <dd>Replace the current window manager with xmonad
 </dd>
-<dt>--version</dt>
+<dt>–version</dt>
 <dd>Display version of <em>xmonad</em>
 </dd>
-<dt>--verbose-version</dt>
+<dt>–verbose-version</dt>
 <dd>Display detailed version of <em>xmonad</em>
 </dd>
 </dl>
-<h2 id="default-keyboard-bindings">Default keyboard bindings</h2>
+<p>##Default keyboard bindings</p>
 <dl>
 <dt>mod-shift-return</dt>
 <dd>Launch terminal
@@ -124,6 +200,9 @@
 <dt>mod-shift-slash</dt>
 <dd>Run xmessage with a summary of the default keybindings (useful for 
beginners)
 </dd>
+<dt>mod-question</dt>
+<dd>Run xmessage with a summary of the default keybindings (useful for 
beginners)
+</dd>
 <dt>mod-[1..9]</dt>
 <dd>Switch to workspace N
 </dd>
@@ -155,9 +234,9 @@
 <p>xmonad is customized in ~/.xmonad/xmonad.hs, and then restarted with 
mod-q.</p>
 <p>You can find many extensions to the core feature set in the xmonad- contrib 
package, available through your package manager or from <a 
href="http://xmonad.org";>xmonad.org</a>.</p>
 <h2 id="modular-configuration">Modular Configuration</h2>
-<p>As of <em>xmonad-0.9</em>, any additional Haskell modules may be placed in 
<em>~/.xmonad/lib/</em> are available in GHC's searchpath. Hierarchical modules 
are supported: for example, the file 
<em>~/.xmonad/lib/XMonad/Stack/MyAdditions.hs</em> could contain:</p>
-<pre class="haskell"><code>module XMonad.Stack.MyAdditions (function1) where
-  function1 = error &quot;function1: Not implemented yet!&quot;</code></pre>
+<p>As of <em>xmonad-0.9</em>, any additional Haskell modules may be placed in 
<em>~/.xmonad/lib/</em> are available in GHC’s searchpath. Hierarchical modules 
are supported: for example, the file 
<em>~/.xmonad/lib/XMonad/Stack/MyAdditions.hs</em> could contain:</p>
+<div class="sourceCode" id="cb1"><pre class="sourceCode haskell"><code 
class="sourceCode haskell"><a class="sourceLine" id="cb1-1" 
data-line-number="1"><span class="kw">module</span> <span 
class="dt">XMonad.Stack.MyAdditions</span> (function1) <span 
class="kw">where</span></a>
+<a class="sourceLine" id="cb1-2" data-line-number="2">  function1 <span 
class="fu">=</span> error <span class="st">&quot;function1: Not implemented 
yet!&quot;</span></a></code></pre></div>
 <p>Your xmonad.hs may then import XMonad.Stack.MyAdditions as if that module 
was contained within xmonad or xmonad-contrib.</p>
 <h1 id="bugs">Bugs</h1>
 <p>Probably. If you find any, please report them to the <a 
href="https://github.com/xmonad/xmonad/issues";>bugtracker</a></p>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xmonad-0.14/man/xmonad.1.markdown 
new/xmonad-0.14.2/man/xmonad.1.markdown
--- old/xmonad-0.14/man/xmonad.1.markdown       2018-07-30 11:12:59.000000000 
+0200
+++ new/xmonad-0.14.2/man/xmonad.1.markdown     2018-08-21 10:01:48.000000000 
+0200
@@ -1,7 +1,12 @@
-#Name
-xmonad - a tiling window manager
+% XMONAD(1) Tiling Window Manager
+%
+% 20 August 2018
 
-#Description
+# Name
+
+xmonad - Tiling Window Manager
+
+# Description
 
 _xmonad_ is a minimalist tiling window manager for X, written in Haskell.
 Windows are managed using automatic layout algorithms, which can be
@@ -28,7 +33,7 @@
 type-based automated testing. A benefit of this is that the code is simple
 to understand, and easy to modify.
 
-#Usage
+# Usage
 
 _xmonad_ places each window into a "workspace". Each workspace can have
 any number of windows, which you can cycle though with mod-j and mod-k.
@@ -47,7 +52,8 @@
 switching workspaces to one that is already visible, the current and
 visible workspaces are swapped.
 
-##Flags
+## Flags
+
 xmonad  has  several flags which  you may pass to the executable.
 These flags are:
 
@@ -70,12 +76,13 @@
 
 ___KEYBINDINGS___
 
-#Examples
+# Examples
+
 To use xmonad as your window manager add to your _~/.xinitrc_ file:
 
 > exec xmonad
 
-#Customization
+# Customization
 xmonad is customized in ~/.xmonad/xmonad.hs, and then restarted
 with mod-q.
 
@@ -83,7 +90,7 @@
 contrib package, available through your  package  manager  or  from
 [xmonad.org].
 
-##Modular Configuration
+## Modular Configuration
 As of _xmonad-0.9_, any additional Haskell modules may be placed in
 _~/.xmonad/lib/_ are available in GHC's searchpath. Hierarchical modules
 are supported: for example, the file
@@ -97,7 +104,7 @@
 Your xmonad.hs may then import XMonad.Stack.MyAdditions as if that
 module was contained within xmonad or xmonad-contrib.
 
-#Bugs
+# Bugs
 Probably. If you find any, please report them to the [bugtracker]
 
 [xmonad.org]: http://xmonad.org
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xmonad-0.14/src/XMonad/Config.hs 
new/xmonad-0.14.2/src/XMonad/Config.hs
--- old/xmonad-0.14/src/XMonad/Config.hs        2018-07-30 11:12:59.000000000 
+0200
+++ new/xmonad-0.14.2/src/XMonad/Config.hs      2018-08-21 10:01:48.000000000 
+0200
@@ -221,9 +221,9 @@
     , ((modMask .|. shiftMask, xK_q     ), io (exitWith ExitSuccess)) -- %! 
Quit xmonad
     , ((modMask              , xK_q     ), spawn "if type xmonad; then xmonad 
--recompile && xmonad --restart; else xmessage xmonad not in \\$PATH: 
\"$PATH\"; fi") -- %! Restart xmonad
 
-    , ((modMask .|. shiftMask, xK_slash ), helpCommand)
+    , ((modMask .|. shiftMask, xK_slash ), helpCommand) -- %! Run xmessage 
with a summary of the default keybindings (useful for beginners)
     -- repeat the binding for non-American layout keyboards
-    , ((modMask              , xK_question), helpCommand)
+    , ((modMask              , xK_question), helpCommand) -- %! Run xmessage 
with a summary of the default keybindings (useful for beginners)
     ]
     ++
     -- mod-[1..9] %! Switch to workspace N
@@ -239,7 +239,7 @@
         , (f, m) <- [(W.view, 0), (W.shift, shiftMask)]]
   where
     helpCommand :: X ()
-    helpCommand = spawn ("echo " ++ show help ++ " | xmessage -file -")  -- %! 
Run xmessage with a summary of the default keybindings (useful for beginners)
+    helpCommand = spawn ("echo " ++ show help ++ " | xmessage -file -")
 
 -- | Mouse bindings: default actions bound to mouse events
 mouseBindings :: XConfig Layout -> M.Map (KeyMask, Button) (Window -> X ())
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xmonad-0.14/src/XMonad/Core.hs 
new/xmonad-0.14.2/src/XMonad/Core.hs
--- old/xmonad-0.14/src/XMonad/Core.hs  2018-07-30 11:12:59.000000000 +0200
+++ new/xmonad-0.14.2/src/XMonad/Core.hs        2018-08-21 10:01:48.000000000 
+0200
@@ -1,5 +1,5 @@
 {-# LANGUAGE ExistentialQuantification, FlexibleInstances, 
GeneralizedNewtypeDeriving,
-             MultiParamTypeClasses, TypeSynonymInstances, CPP, 
DeriveDataTypeable #-}
+             MultiParamTypeClasses, TypeSynonymInstances, DeriveDataTypeable 
#-}
 
 -----------------------------------------------------------------------------
 -- |
@@ -36,7 +36,8 @@
 import Prelude
 import Control.Exception.Extensible (fromException, try, bracket, throw, 
finally, SomeException(..))
 import qualified Control.Exception.Extensible as E
-import Control.Applicative
+import Control.Applicative(Applicative, pure, (<$>), (<*>))
+import Control.Monad.Fail
 import Control.Monad.State
 import Control.Monad.Reader
 import Data.Semigroup
@@ -147,7 +148,7 @@
 -- instantiated on 'XConf' and 'XState' automatically.
 --
 newtype X a = X (ReaderT XConf (StateT XState IO) a)
-    deriving (Functor, Monad, MonadIO, MonadState XState, MonadReader XConf, 
Typeable)
+    deriving (Functor, Monad, MonadFail, MonadIO, MonadState XState, 
MonadReader XConf, Typeable)
 
 instance Applicative X where
   pure = return
@@ -606,9 +607,36 @@
 
     useBuildscript <- do
       exists <- doesFileExist buildscript
-      if exists then isExecutable buildscript else return False
+      if exists
+        then do
+          isExe <- isExecutable buildscript
+          if isExe
+            then do
+              trace $ "XMonad will use build script at " ++ show buildscript 
++ " to recompile."
+              return True
+            else do
+              trace $ unlines
+                [ "XMonad will not use build script, because " ++ show 
buildscript ++ " is not executable."
+                , "Suggested resolution to use it: chmod u+x " ++ show 
buildscript
+                ]
+              return False
+        else do
+          trace $
+            "XMonad will use ghc to recompile, because " ++ show buildscript 
++ " does not exist."
+          return False
+
+    shouldRecompile <-
+      if useBuildscript || force
+        then return True
+        else if any (binT <) (srcT : libTs)
+          then do
+            trace "XMonad doing recompile because some files have changed."
+            return True
+          else do
+            trace "XMonad skipping recompile because it is not forced (e.g. 
via --recompile), and neither xmonad.hs nor any *.hs / *.lhs / *.hsc files in 
lib/ have been changed."
+            return False
 
-    if force || useBuildscript || any (binT <) (srcT : libTs)
+    if shouldRecompile
       then do
         -- temporarily disable SIGCHLD ignoring:
         uninstallSignalHandlers
@@ -621,17 +649,19 @@
         installSignalHandlers
 
         -- now, if it fails, run xmessage to let the user know:
-        when (status /= ExitSuccess) $ do
-            ghcErr <- readFile err
-            let msg = unlines $
-                    ["Error detected while loading xmonad configuration file: 
" ++ src]
-                    ++ lines (if null ghcErr then show status else ghcErr)
-                    ++ ["","Please check the file for errors."]
-            -- nb, the ordering of printing, then forking, is crucial due to
-            -- lazy evaluation
-            hPutStrLn stderr msg
-            forkProcess $ executeFile "xmessage" True ["-default", "okay", 
replaceUnicode msg] Nothing
-            return ()
+        if status == ExitSuccess
+            then trace "XMonad recompilation process exited with success!"
+            else do
+                ghcErr <- readFile err
+                let msg = unlines $
+                        ["Error detected while loading xmonad configuration 
file: " ++ src]
+                        ++ lines (if null ghcErr then show status else ghcErr)
+                        ++ ["","Please check the file for errors."]
+                -- nb, the ordering of printing, then forking, is crucial due 
to
+                -- lazy evaluation
+                hPutStrLn stderr msg
+                forkProcess $ executeFile "xmessage" True ["-default", "okay", 
replaceUnicode msg] Nothing
+                return ()
         return (status == ExitSuccess)
       else return True
  where getModTime f = E.catch (Just <$> getModificationTime f) 
(\(SomeException _) -> return Nothing)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xmonad-0.14/src/XMonad/Main.hs 
new/xmonad-0.14.2/src/XMonad/Main.hs
--- old/xmonad-0.14/src/XMonad/Main.hs  2018-07-30 11:12:59.000000000 +0200
+++ new/xmonad-0.14.2/src/XMonad/Main.hs        2018-08-21 10:01:48.000000000 
+0200
@@ -113,12 +113,18 @@
 --
 buildLaunch ::  IO ()
 buildLaunch = do
-    recompile False
-    dir  <- getXMonadDataDir
-    args <- getArgs
     whoami <- getProgName
     let compiledConfig = "xmonad-"++arch++"-"++os
-    unless (whoami == compiledConfig) $
+    unless (whoami == compiledConfig) $ do
+      trace $ concat
+        [ "XMonad is recompiling and replacing itself another XMonad process 
because the current process is called "
+        , show whoami
+        , " but the compiled configuration should be called "
+        , show compiledConfig
+        ]
+      recompile False
+      dir  <- getXMonadDataDir
+      args <- getArgs
       executeFile (dir </> compiledConfig) False args Nothing
 
 sendRestart :: IO ()
@@ -197,7 +203,6 @@
     hSetBuffering stdout NoBuffering
 
     let layout = layoutHook xmc
-        lreads = readsLayout layout
         initialWinset = let padToLen n xs = take (max n (length xs)) $ xs ++ 
repeat ""
             in new layout (padToLen (length xinesc) (workspaces xmc)) $ map SD 
xinesc
 
@@ -473,7 +478,7 @@
          forM_ (keysymToKeycodes sym) $ \kc ->
               mapM_ (grab kc . (mask .|.)) =<< extraModifiers
 
--- | XXX comment me
+-- | Grab the buttons
 grabButtons :: X ()
 grabButtons = do
     XConf { display = dpy, theRoot = rootw } <- ask
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xmonad-0.14/src/XMonad/Operations.hs 
new/xmonad-0.14.2/src/XMonad/Operations.hs
--- old/xmonad-0.14/src/XMonad/Operations.hs    2018-07-30 11:12:59.000000000 
+0200
+++ new/xmonad-0.14.2/src/XMonad/Operations.hs  2018-08-21 10:01:48.000000000 
+0200
@@ -28,7 +28,7 @@
 import qualified Data.Map as M
 import qualified Data.Set as S
 
-import Control.Applicative
+import Control.Applicative((<$>), (<*>))
 import Control.Arrow (second)
 import Control.Monad.Reader
 import Control.Monad.State
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xmonad-0.14/util/GenerateManpage.hs 
new/xmonad-0.14.2/util/GenerateManpage.hs
--- old/xmonad-0.14/util/GenerateManpage.hs     2018-07-30 11:12:59.000000000 
+0200
+++ new/xmonad-0.14.2/util/GenerateManpage.hs   2018-08-21 10:01:48.000000000 
+0200
@@ -1,57 +1,85 @@
 {-# LANGUAGE FlexibleContexts #-}
+
+-- Generates a in-memory version of "man/xmonad.1.markdown" that has the list
+-- of known key-bindings is inserted automatically from "Config.hs". That
+-- document is then rendered with Pandoc as "man/xmonad.1" and
+-- "man/xmonad.1.html".
+--
 -- Unlike the rest of xmonad, this file is released under the GNU General
 -- Public License version 2 or later.
 
---
--- Generates man/xmonad.1 from man/xmonad.1.in by filling the list of
--- keybindings with values scraped from Config.hs
---
--- Uses cabal to grab the xmonad version from xmonad.cabal
---
--- Uses pandoc to convert the "xmonad.1.markdown" to "xmonad.1"
---
--- Format for the docstrings in Config.hs takes the following form:
---
--- -- mod-x %! Frob the whatsit
---
--- "Frob the whatsit" will be used as the description for keybinding "mod-x"
---
--- If the keybinding name is omitted, it will try to guess from the rest of the
--- line. For example:
---
--- [ ((modMask .|. shiftMask, xK_Return), spawn "xterm") -- %! Launch an xterm
---
--- Here, mod-shift-return will be used as the keybinding name.
-import Control.Monad
-import Control.Applicative
-import Text.Regex.Posix
+import Control.Monad.IO.Class (liftIO)
 import Data.Char
 import Data.List
+import qualified Data.Text as T
+import qualified Data.Text.IO as TIO
+import Text.Pandoc
+import Text.Regex.Posix
 
-import Distribution.PackageDescription.Parse
-import Distribution.Verbosity
-import Distribution.Package
-import Distribution.PackageDescription
-import Text.PrettyPrint.HughesPJ
-import Distribution.Text
-
-import Text.Pandoc -- works with 1.15.x
+main :: IO ()
+main = do
+    keybindings <- guessBindings
 
-releaseDate = "31 December 2012"
+    markdownSource <- readFile "./man/xmonad.1.markdown"
 
-trim :: String -> String
-trim = reverse . dropWhile isSpace . reverse . dropWhile isSpace
+    runIOorExplode $ do
+        parsed <- readMarkdown (def { readerStandalone = True, 
readerExtensions = pandocExtensions })
+            . T.pack
+            . unlines
+            . replace "___KEYBINDINGS___" keybindings
+            . lines
+            $ markdownSource
+
+        manTemplate <- getDefaultTemplate "man"
+        manBody <- writeMan def { writerTemplate = Just manTemplate } parsed
+        liftIO $ TIO.writeFile "./man/xmonad.1" $ manBody
+        liftIO $ putStrLn "Documentation created: man/xmonad.1"
+
+        htmltemplate <- getDefaultTemplate "html"
+        htmlBody <- writeHtml5String def
+                                     { writerTemplate = Just htmltemplate
+                                     , writerTableOfContents = True }
+                                     parsed
+        liftIO $ TIO.writeFile "./man/xmonad.1.html" htmlBody
+        liftIO $ putStrLn "Documentation created: man/xmonad.1.html"
+
+-- | The format for the docstrings in "Config.hs" takes the following form:
+--
+-- @
+--   -- mod-x %! Frob the whatsit
+-- @
+--
+-- "Frob the whatsit" will be used as the description for keybinding "mod-x".--
+-- If the name of the key binding is omitted, the function tries to guess it
+-- from the rest of the line. For example:
+--
+-- @
+--   [ ((modMask .|. shiftMask, xK_Return), spawn "xterm") -- %! Launch an 
xterm
+-- @
+--
+-- Here, "mod-shift-return" will be used as the key binding name.
+
+guessBindings :: IO String
+guessBindings = do
+  buf <- readFile "./src/XMonad/Config.hs"
+  return (intercalate "\n\n" (map markdownDefn (allBindings buf)))
 
-guessKeys line = concat $ intersperse "-" (modifiers ++ [map toLower key])
-    where modifiers = map (!!1) (line =~ "(mod|shift|control)Mask")
-          (_, _, _, [key]) = line =~ "xK_([_[:alnum:]]+)" :: (String, String, 
String, [String])
+allBindings :: String -> [(String, String)]
+allBindings xs = map (binding . map trim) (xs =~ "(.*)--(.*)%!(.*)")
 
 binding :: [String] -> (String, String)
 binding [ _, bindingLine, "", desc ] = (guessKeys bindingLine, desc)
 binding [ _, _, keyCombo, desc ] = (keyCombo, desc)
+binding x = error ("binding: called with unexpected argument " ++ show x)
 
-allBindings :: String -> [(String, String)]
-allBindings xs = map (binding . map trim) (xs =~ "(.*)--(.*)%!(.*)")
+guessKeys :: String -> String
+guessKeys line =
+  case keys of
+    [key] -> concat $ intersperse "-" (modifiers ++ [map toLower key])
+    _     -> error ("guessKeys: unexpected number of keys " ++ show keys)
+  where
+    modifiers = map (!!1) (line =~ "(mod|shift|control)Mask")
+    (_, _, _, keys) = line =~ "xK_([_[:alnum:]]+)" :: (String, String, String, 
[String])
 
 -- FIXME: What escaping should we be doing on these strings?
 markdownDefn :: (String, String) -> String
@@ -60,39 +88,5 @@
 replace :: Eq a => a -> a -> [a] -> [a]
 replace x y = map (\a -> if a == x then y else a)
 
--- rawSystem "pandoc" ["--read=markdown","--write=man","man/xmonad.1.markdown"]
-
-main = do
-    releaseName <- (show . disp . package . packageDescription)
-                    `liftM`readPackageDescription normal "xmonad.cabal"
-    keybindings <- (intercalate "\n\n" . map markdownDefn . allBindings)
-                    `liftM` readFile "./src/XMonad/Config.hs"
-
-    let manHeader = unwords [".TH xmonad 
1","\""++releaseDate++"\"",releaseName,"\"xmonad manual\""]
-
-    Right parsed <- readMarkdown def
-        . unlines
-        . replace "___KEYBINDINGS___" keybindings
-        . lines
-        <$> readFile "./man/xmonad.1.markdown"
-
-    Right template <- getDefaultTemplate Nothing "man"
-    writeFile "./man/xmonad.1"
-        . (manHeader ++)
-        . writeMan def{ writerTemplate = Just template }
-        $ parsed
-    putStrLn "Documentation created: man/xmonad.1"
-
-    Right template <- getDefaultTemplate Nothing "html"
-    writeFile "./man/xmonad.1.html"
-        . writeHtmlString def
-            { writerVariables =
-                        [("include-before"
-                            ,"<h1>"++releaseName++"</h1>"++
-                             "<p>Section: xmonad manual (1)<br/>"++
-                             "Updated: "++releaseDate++"</p>"++
-                             "<hr/>")]
-            , writerTemplate = Just template
-            , writerTableOfContents = True }
-        $ parsed
-    putStrLn "Documentation created: man/xmonad.1.html"
+trim :: String -> String
+trim = reverse . dropWhile isSpace . reverse . dropWhile isSpace
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xmonad-0.14/xmonad.cabal 
new/xmonad-0.14.2/xmonad.cabal
--- old/xmonad-0.14/xmonad.cabal        2018-07-30 11:12:59.000000000 +0200
+++ new/xmonad-0.14.2/xmonad.cabal      2018-08-21 10:01:48.000000000 +0200
@@ -1,126 +1,127 @@
 name:               xmonad
-version:            0.14
-homepage:           http://xmonad.org
+version:            0.14.2
 synopsis:           A tiling window manager
-description:
-    xmonad is a tiling window manager for X. Windows are arranged
-    automatically to tile the screen without gaps or overlap, maximising
-    screen use. All features of the window manager are accessible from
-    the keyboard: a mouse is strictly optional. xmonad is written and
-    extensible in Haskell. Custom layout algorithms, and other
-    extensions, may be written by the user in config files. Layouts are
-    applied dynamically, and different layouts may be used on each
-    workspace. Xinerama is fully supported, allowing windows to be tiled
-    on several screens.
-category:           System
+description:        xmonad is a tiling window manager for X. Windows are 
arranged
+                    automatically to tile the screen without gaps or overlap, 
maximising
+                    screen use. All features of the window manager are 
accessible from the
+                    keyboard: a mouse is strictly optional. xmonad is written 
and
+                    extensible in Haskell. Custom layout algorithms, and other 
extensions,
+                    may be written by the user in config files. Layouts are 
applied
+                    dynamically, and different layouts may be used on each 
workspace.
+                    Xinerama is fully supported, allowing windows to be tiled 
on several
+                    screens.
 license:            BSD3
 license-file:       LICENSE
-author:             Spencer Janssen
+author:             Spencer Janssen, Don Stewart, Adam Vogt, David Roundy, 
Jason Creighton,
+                    Brent Yorgey, Peter Jones, Peter Simons, Andrea Rossato, 
Devin Mullins,
+                    Lukas Mai, Alec Berryman, Stefan O'Rear, Daniel Wagner, 
Peter J. Jones,
+                    Daniel Schoepe, Karsten Schoelzel, Neil Mitchell, Joachim 
Breitner,
+                    Peter De Wachter, Eric Mertens, Geoff Reedy, Michiel 
Derhaeg,
+                    Philipp Balzarek, Valery V. Vorotyntsev, Alex Tarkovsky, 
Fabian Beuke,
+                    Felix Hirn, Michael Sloan, Tomas Janousek, Vanessa McHale, 
Nicolas Pouillard,
+                    Aaron Denney, Austin Seipp, Benno Fünfstück, Brandon S 
Allbery, Chris Mears,
+                    Christian Thiemann, Clint Adams, Daniel Neri, David Lazar, 
Ferenc Wagner,
+                    Francesco Ariis, Gábor Lipták, Ivan N. Veselov, Ivan 
Tarasov, Javran Cheng,
+                    Jens Petersen, Joey Hess, Jonne Ransijn, Josh Holland, 
Khudyakov Alexey,
+                    Klaus Weidner, Michael G. Sloan, Mikkel Christiansen, 
Nicolas Dudebout,
+                    Ondřej Súkup, Paul Hebble, Shachaf Ben-Kiki, Siim Põder, 
Tim McIver,
+                    Trevor Elliott, Wouter Swierstra, Conrad Irwin, Tim Thelion
 maintainer:         xmo...@haskell.org
-extra-source-files: README.md CHANGES.md CONFIG STYLE
+tested-with:        GHC == 8.0.2, GHC == 8.2.2, GHC == 8.4.3, GHC == 8.6.1
+category:           System
+homepage:           http://xmonad.org
+bug-reports:        https://github.com/xmonad/xmonad/issues
+build-type:         Simple
+extra-source-files: README.md
+                    CHANGES.md
+                    CONFIG
+                    STYLE
                     tests/*.hs
                     tests/Properties/*.hs
                     tests/Properties/Layout/*.hs
-                    man/xmonad.1.markdown man/xmonad.1 man/xmonad.1.html
+                    man/xmonad.1.markdown
+                    man/xmonad.1
+                    man/xmonad.1.html
+                    man/xmonad.hs
                     util/GenerateManpage.hs
                     util/hpcReport.sh
 cabal-version:      >= 1.8
-bug-reports:        https://github.com/xmonad/xmonad/issues
-build-type:         Simple
-
-tested-with:
-                    GHC==7.6.3,
-                    GHC==7.8.4,
-                    GHC==7.10.3,
-                    GHC==8.0.2,
-                    GHC==8.2.2,
-                    GHC==8.4.3
-
-data-files:         man/xmonad.hs, man/xmonad.1, man/xmonad.1.html
 
 source-repository head
   type:     git
   location: https://github.com/xmonad/xmonad
 
 flag testing
-    description: Testing mode, only build minimal components
-    default: False
-    manual: True
+  default:     False
+  manual:      True
+  description: Testing mode, only build minimal components
 
 flag generatemanpage
-    description: Build the tool for generating the man page
-    default: False
-    manual: True
+  default:     False
+  manual:      True
+  description: Build the tool for generating the man page
 
 library
-    hs-source-dirs:     src
-    exposed-modules:    XMonad
-                        XMonad.Main
-                        XMonad.Core
-                        XMonad.Config
-                        XMonad.Layout
-                        XMonad.ManageHook
-                        XMonad.Operations
-                        XMonad.StackSet
-    other-modules:      Paths_xmonad
-
-    build-depends: base < 5 && >=3,
-                   containers,
-                   data-default,
-                   directory,
-                   extensible-exceptions,
-                   filepath,
-                   setlocale,
-                   mtl,
-                   process,
-                   unix,
-                   utf8-string >= 0.3 && < 1.1,
-                   X11>=1.8 && < 1.10,
-                   semigroups
-
-    if true
-        ghc-options:        -funbox-strict-fields -Wall
-
-    if impl(ghc >= 6.12.1)
-        ghc-options:        -fno-warn-unused-do-bind
-    if impl(ghc < 7.0.0)
-        extensions: UndecidableInstances
-        -- needed for XMonad.Config's instance Default (XConfig a)
-    if flag(testing)
-        buildable: False
+  exposed-modules: XMonad
+                   XMonad.Config
+                   XMonad.Core
+                   XMonad.Layout
+                   XMonad.Main
+                   XMonad.ManageHook
+                   XMonad.Operations
+                   XMonad.StackSet
+  other-modules:   Paths_xmonad
+  hs-source-dirs:  src
+  build-depends:   base                  >= 4.9 && < 5
+                 , X11                   >= 1.8 && < 1.10
+                 , containers
+                 , data-default
+                 , directory
+                 , extensible-exceptions
+                 , filepath
+                 , mtl
+                 , process
+                 , setlocale
+                 , unix
+                 , utf8-string           >= 0.3 && < 1.1
+  ghc-options:     -funbox-strict-fields -Wall -fno-warn-unused-do-bind
+
+  if flag(testing)
+    buildable: False
 
 executable xmonad
-    main-is:        Main.hs
-    build-depends:  base,
-                    mtl,
-                    unix,
-                    X11,
-                    xmonad
-    ghc-options:    -Wall
-    if impl(ghc >= 6.12.1)
-        ghc-options:  -Wall -fno-warn-unused-do-bind
+  main-is:       Main.hs
+  build-depends: base, X11, mtl, unix, xmonad
+  ghc-options:   -Wall -fno-warn-unused-do-bind
 
 executable generatemanpage
-    main-is: GenerateManpage.hs
-    hs-source-dirs: util
-    if flag(generatemanpage)
-        build-depends: base,
-                       Cabal,
-                       pandoc,
-                       pretty,
-                       regex-posix
-    else
-        buildable: False
+  main-is:        GenerateManpage.hs
+  hs-source-dirs: util
 
+  if flag(generatemanpage)
+    build-depends: base, pandoc >= 2, regex-posix, text
+  else
+    buildable: False
 
--- note util/hpcReport.sh
 test-suite properties
-    type: exitcode-stdio-1.0
-    hs-source-dirs: tests
-    build-depends:  base,
-                    containers,
-                    extensible-exceptions,
-                    QuickCheck >= 2,
-                    X11,
-                    xmonad
-    main-is: Properties.hs
+  type:           exitcode-stdio-1.0
+  main-is:        Properties.hs
+  other-modules:  Instances
+                  Properties.Delete
+                  Properties.Failure
+                  Properties.Floating
+                  Properties.Focus
+                  Properties.GreedyView
+                  Properties.Insert
+                  Properties.Layout.Full
+                  Properties.Layout.Tall
+                  Properties.Screen
+                  Properties.Shift
+                  Properties.Stack
+                  Properties.StackSet
+                  Properties.Swap
+                  Properties.View
+                  Properties.Workspace
+                  Utils
+  hs-source-dirs: tests
+  build-depends:  base, QuickCheck >= 2, X11, containers, 
extensible-exceptions, xmonad


Reply via email to