commit:     77d26a1adc79d30f8c0b634d7e3bcb77489d5678
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Sun Jul 24 00:50:44 2022 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Sun Jul 24 00:59:33 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=77d26a1a

x11-wm/xmonad: add 0.17.0 (sync w/ ::haskell)

Bug: https://bugs.gentoo.org/821148
Closes: https://github.com/gentoo/gentoo/pull/23597
Closes: https://bugs.gentoo.org/821145
Signed-off-by: Sam James <sam <AT> gentoo.org>

 x11-wm/xmonad/Manifest                             |  1 +
 x11-wm/xmonad/files/xmonad-0.12-check-repeat.patch | 40 +++++++++++
 x11-wm/xmonad/metadata.xml                         | 11 ---
 x11-wm/xmonad/xmonad-0.17.0.ebuild                 | 83 ++++++++++++++++++++++
 4 files changed, 124 insertions(+), 11 deletions(-)

diff --git a/x11-wm/xmonad/Manifest b/x11-wm/xmonad/Manifest
index de7acaf13f0b..9f82b629abe1 100644
--- a/x11-wm/xmonad/Manifest
+++ b/x11-wm/xmonad/Manifest
@@ -1,2 +1,3 @@
 DIST xmonad-0.15.tar.gz 68822 BLAKE2B 
9ee9a070f6743fbab2cffe05ee9e60b64fded0b4916fdec03a550f5d5ec5a34102ab2d4e9586b9a0ca534db284a8058f11ee248072f3f3b312ae30c09873feff
 SHA512 
f881f3faa4f5a0de7a5a37118cd7041083ae3a7569c7094b55dedb9aa858176789aff459d426b237ebae5cc4598b06de790938775a7ac968c2d76be3f0efc8ba
+DIST xmonad-0.17.0.tar.gz 93489 BLAKE2B 
6990bc408194c99378f949b28f2115b7096e6474b5305f935be2c8af1eba4bff3e3c05477af9f833d1b52422e4fb95f857398b05f7f1081e3a2cc5dd8c50fc3a
 SHA512 
1ec46ee61f4bf1879ea638e9be83378273050670ed2ee0f00e7d43b188cc29a874aa5b40076162a1ef0038802cc43f675773951f9b7d1f26329f9d105c28b3f7
 DIST xmonad-259.patch 1452 BLAKE2B 
869d11ae762c43b9e749169d6b691fdee52e9fc17848fc4ee494e075501528d4c0c040deea617f8fbeab003dd7bc277254498b0089b60f8e6e47b6b96430eb69
 SHA512 
9edb155a74d170e612cd84aad4fb004176fe5e5fc7017f1985aa2b4628b2cc995b157ba42ab6f7b546d5e3467358292234b3926254e1e831cc7ef38844e14c6d

diff --git a/x11-wm/xmonad/files/xmonad-0.12-check-repeat.patch 
b/x11-wm/xmonad/files/xmonad-0.12-check-repeat.patch
new file mode 100644
index 000000000000..79bd2c2d21fa
--- /dev/null
+++ b/x11-wm/xmonad/files/xmonad-0.12-check-repeat.patch
@@ -0,0 +1,40 @@
+--- xmonad/src/XMonad/Core.hs  2010-09-05 05:11:42.000000000 +0400
++++ xmonad/src/XMonad/Core.hs  2010-09-18 07:59:14.000000000 +0400
+@@ -65,6 +65,7 @@
+     , waitingUnmap     :: !(M.Map Window Int)            -- ^ the number of 
expected UnmapEvents
+     , dragging         :: !(Maybe (Position -> Position -> X (), X ()))
+     , numberlockMask   :: !KeyMask                       -- ^ The numlock 
modifier
++    , keyPressed       :: !KeyCode                       -- ^ keycode of the 
key being pressed if any
+     , extensibleState  :: !(M.Map String (Either String StateExtension))
+     -- ^ stores custom state information.
+     --
+--- xmonad/src/XMonad/Main.hs  2010-09-05 05:11:42.000000000 +0400
++++ xmonad/src/XMonad/Main.hs  2010-09-18 08:03:11.000000000 +0400
+@@ -129,6 +129,7 @@
+             , mapped          = S.empty
+             , waitingUnmap    = M.empty
+             , dragging        = Nothing
++            , keyPressed      = 0
+             , extensibleState = extState
+             }
+     allocaXEvent $ \e ->
+@@ -190,10 +191,15 @@
+ -- run window manager command
+ handle (KeyEvent {ev_event_type = t, ev_state = m, ev_keycode = code})
+     | t == keyPress = withDisplay $ \dpy -> do
+-        s  <- io $ keycodeToKeysym dpy code 0
+-        mClean <- cleanMask m
+-        ks <- asks keyActions
+-        userCodeDef () $ whenJust (M.lookup (mClean, s) ks) id
++        kp <- gets keyPressed
++        if kp /= code then do
++                modify $ \s -> s { keyPressed = code }
++                s  <- io $ keycodeToKeysym dpy code 0
++                mClean <- cleanMask m
++                ks <- asks keyActions
++                userCodeDef () $ whenJust (M.lookup (mClean, s) ks) id
++            else return ()
++    | t == keyRelease = modify $ \s -> s { keyPressed = 0 }
+ 
+ -- manage a new window
+ handle (MapRequestEvent    {ev_window = w}) = withDisplay $ \dpy -> do

diff --git a/x11-wm/xmonad/metadata.xml b/x11-wm/xmonad/metadata.xml
index 7cabda6e3341..b0337e3fc024 100644
--- a/x11-wm/xmonad/metadata.xml
+++ b/x11-wm/xmonad/metadata.xml
@@ -8,15 +8,4 @@
        <use>
                <flag name="no-autorepeat-keys">Allow ignoring of keyboard 
autorepeat.</flag>
        </use>
-       <longdescription>
-               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.
-       </longdescription>
 </pkgmetadata>

diff --git a/x11-wm/xmonad/xmonad-0.17.0.ebuild 
b/x11-wm/xmonad/xmonad-0.17.0.ebuild
new file mode 100644
index 000000000000..5f05d98685d2
--- /dev/null
+++ b/x11-wm/xmonad/xmonad-0.17.0.ebuild
@@ -0,0 +1,83 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# ebuild generated by hackport 0.7.9999
+#hackport: flags: -pedantic,quickcheck-classes:test
+
+CABAL_FEATURES="lib profile haddock hoogle hscolour test-suite"
+inherit haskell-cabal ghc-package
+
+DESCRIPTION="A tiling window manager"
+HOMEPAGE="https://xmonad.org";
+SRC_URI="https://hackage.haskell.org/package/${P}/${P}.tar.gz";
+
+LICENSE="BSD"
+SLOT="0/${PV}"
+KEYWORDS="~amd64 ~x86"
+IUSE="no-autorepeat-keys"
+
+RDEPEND="dev-haskell/data-default-class:=[profile?]
+       dev-haskell/mtl:=[profile?]
+       dev-haskell/setlocale:=[profile?]
+       >=dev-haskell/x11-1.10:=[profile?] <dev-haskell/x11-1.11:=[profile?]
+       >=dev-lang/ghc-8.4.3:=
+"
+DEPEND="${RDEPEND}
+       >=dev-haskell/cabal-2.2.0.1
+       test? ( >=dev-haskell/quickcheck-2
+                 >=dev-haskell/quickcheck-classes-0.4.3 )
+"
+
+DOCS=( README.md CHANGES.md )
+HTML_DOCS=( man/${PN}.1.html )
+
+SAMPLE_CONFIG="${PN}.hs"
+
+src_prepare() {
+       default
+       use no-autorepeat-keys && eapply 
"${FILESDIR}"/${PN}-0.14-check-repeat.patch
+}
+
+src_configure() {
+       haskell-cabal_src_configure \
+               --flag=-pedantic \
+               $(cabal_flag test quickcheck-classes)
+}
+
+src_install() {
+       default
+
+       cabal_src_install
+
+       echo -e "#!/bin/sh\n/usr/bin/${PN}" > "${T}/${PN}"
+       exeinto /etc/X11/Sessions
+       doexe "${T}/${PN}"
+
+       insinto /usr/share/xsessions
+       doins "${FILESDIR}/${PN}.desktop"
+
+       insinto /usr/share/${PF}/ghc-$(ghc-version)/man
+       doins man/${SAMPLE_CONFIG}
+
+       doman man/${PN}.1
+}
+
+pkg_postinst() {
+       haskell-cabal_pkg_postinst
+
+       elog "A sample ${SAMPLE_CONFIG} configuration file can be found here:"
+       elog "    /usr/share/${PF}/ghc-$(ghc-version)/man/${SAMPLE_CONFIG}"
+       elog "The parameters in this file are the defaults used by ${PN}."
+       elog "To customize ${PN}, copy this file to:"
+       elog "    ~/.${PN}/${SAMPLE_CONFIG}"
+       elog "After editing, use 'mod-q' to dynamically restart ${PN} "
+       elog "(where the 'mod' key defaults to 'Alt')."
+       elog ""
+       elog "Read the README or man page for more information, and to see "
+       elog "other possible configurations go to:"
+       elog "    http://haskell.org/haskellwiki/Xmonad/Config_archive";
+       elog "Please note that many of these configurations will require the "
+       elog "x11-wm/xmonad-contrib package to be installed."
+}

Reply via email to