From b5f37a01e1b087cc045fe4fa407238d1d2889abf Mon Sep 17 00:00:00 2001 From: Gabor Pali Date: Sun, 15 Feb 2015 21:46:06 +0000 Subject: - Add a (default) xmonad workaround for losing hotkeys in certain cases. For the details, please see the related bug report or issue #576 in the xmonad bug tracker [1]. [1] https://code.google.com/p/xmonad/issues/detail?id=576 PR: 181049 Submitted by: Dominik Ernst Obtained from: FreeBSD Haskell MFH: 2015Q1 --- x11-wm/hs-xmonad-contrib/Makefile | 2 +- x11-wm/hs-xmonad/Makefile | 12 +++++++++++- x11-wm/hs-xmonad/files/nopatch-XMonad_Core.hs | 20 ++++++++++++++++++++ 3 files changed, 32 insertions(+), 2 deletions(-) create mode 100644 x11-wm/hs-xmonad/files/nopatch-XMonad_Core.hs (limited to 'x11-wm') diff --git a/x11-wm/hs-xmonad-contrib/Makefile b/x11-wm/hs-xmonad-contrib/Makefile index 426ec83b37a7..f00b9c56aa27 100644 --- a/x11-wm/hs-xmonad-contrib/Makefile +++ b/x11-wm/hs-xmonad-contrib/Makefile @@ -3,7 +3,7 @@ PORTNAME= xmonad-contrib PORTVERSION= 0.11.3 -PORTREVISION= 1 +PORTREVISION= 2 CATEGORIES= x11-wm haskell MAINTAINER= haskell@FreeBSD.org diff --git a/x11-wm/hs-xmonad/Makefile b/x11-wm/hs-xmonad/Makefile index e14b47a0ba40..b50229ea4b39 100644 --- a/x11-wm/hs-xmonad/Makefile +++ b/x11-wm/hs-xmonad/Makefile @@ -3,7 +3,7 @@ PORTNAME= xmonad PORTVERSION= 0.11 -PORTREVISION= 9 +PORTREVISION= 10 CATEGORIES= x11-wm haskell MAINTAINER= haskell@FreeBSD.org @@ -19,5 +19,15 @@ MAN1SRC= man EXECUTABLE= xmonad +OPTIONS_DEFINE+= XFORK_FIX +OPTIONS_DEFAULT+= XFORK_FIX + +XFORK_FIX_DESC= Apply workaround for losing hotkeys (XMonad \#576) + .include "${.CURDIR}/../../lang/ghc/bsd.cabal.mk" + +.if ${PORT_OPTIONS:MXFORK_FIX} +EXTRA_PATCHES+= ${PATCHDIR}/nopatch-XMonad_Core.hs +.endif + .include diff --git a/x11-wm/hs-xmonad/files/nopatch-XMonad_Core.hs b/x11-wm/hs-xmonad/files/nopatch-XMonad_Core.hs new file mode 100644 index 000000000000..f913dacd3cde --- /dev/null +++ b/x11-wm/hs-xmonad/files/nopatch-XMonad_Core.hs @@ -0,0 +1,20 @@ +--- XMonad/Core.hs.orig 2013-01-01 01:31:47 UTC ++++ XMonad/Core.hs +@@ -400,10 +400,13 @@ spawnPID x = xfork $ executeFile "/bin/s + + -- | A replacement for 'forkProcess' which resets default signal handlers. + xfork :: MonadIO m => IO () -> m ProcessID +-xfork x = io . forkProcess . finally nullStdin $ do +- uninstallSignalHandlers +- createSession +- x ++xfork x = do ++ pid <- liftIO $ forkProcess $ finally nullStdin $ do ++ forkProcess $ do ++ uninstallSignalHandlers ++ createSession ++ x ++ return pid + where + nullStdin = do + fd <- openFd "/dev/null" ReadOnly Nothing defaultFileFlags -- cgit v1.2.3