diff options
author | Sergei Trofimovich <slyfox@gentoo.org> | 2020-06-05 23:29:17 +0100 |
---|---|---|
committer | Sergei Trofimovich <slyfox@gentoo.org> | 2020-06-05 23:29:25 +0100 |
commit | be6f210f3f95f83575f99aa76d84c163fa2ccc2e (patch) | |
tree | ff4448a57c56d1a67478514c7d4364fe84eab4dc /x11-misc/xmobar | |
parent | net-misc/youtube-dl: Version 2020.06.06 (diff) | |
download | gentoo-be6f210f3f95f83575f99aa76d84c163fa2ccc2e.tar.gz gentoo-be6f210f3f95f83575f99aa76d84c163fa2ccc2e.tar.bz2 gentoo-be6f210f3f95f83575f99aa76d84c163fa2ccc2e.zip |
x11-misc/xmobar: tweak for alsa-mixer-0.3
Reported-by: Toralf Förster
Closes: https://bugs.gentoo.org/727232
Package-Manager: Portage-2.3.100, Repoman-2.3.22
Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
Diffstat (limited to 'x11-misc/xmobar')
-rw-r--r-- | x11-misc/xmobar/files/xmobar-0.24.3-alsa-mixer-0.3.patch | 26 | ||||
-rw-r--r-- | x11-misc/xmobar/xmobar-0.24.3-r1.ebuild | 100 |
2 files changed, 126 insertions, 0 deletions
diff --git a/x11-misc/xmobar/files/xmobar-0.24.3-alsa-mixer-0.3.patch b/x11-misc/xmobar/files/xmobar-0.24.3-alsa-mixer-0.3.patch new file mode 100644 index 000000000000..837df1d29753 --- /dev/null +++ b/x11-misc/xmobar/files/xmobar-0.24.3-alsa-mixer-0.3.patch @@ -0,0 +1,26 @@ +--- a/src/Plugins/Monitors/Volume.hs ++++ b/src/Plugins/Monitors/Volume.hs +@@ -122,7 +122,8 @@ formatDb opts dbi = do + runVolume :: String -> String -> [String] -> Monitor String + runVolume mixerName controlName argv = do + opts <- io $ parseOpts argv +- (lo, hi, val, db, sw) <- io readMixer ++ (lo', hi', val', db, sw) <- io readMixer ++ let (lo, hi, val) = (toInteger <$> lo', toInteger <$> hi', toInteger <$> val') + p <- liftMonitor $ liftM3 formatVol lo hi val + b <- liftMonitor $ liftM3 formatVolBar lo hi val + v <- liftMonitor $ liftM3 formatVolVBar lo hi val +@@ -164,11 +165,11 @@ runVolume mixerName controlName argv = do + + getDB :: Maybe Volume -> IO (Maybe Integer) + getDB Nothing = return Nothing +- getDB (Just v) = channel (dB v) 0 ++ getDB (Just v) = fmap toInteger <$> channel (dB v) 0 + + getVal :: Maybe Volume -> IO (Maybe Integer) + getVal Nothing = return Nothing +- getVal (Just v) = channel (value v) 0 ++ getVal (Just v) = fmap toInteger <$> channel (value v) 0 + + getSw :: Maybe Switch -> IO (Maybe Bool) + getSw Nothing = return Nothing diff --git a/x11-misc/xmobar/xmobar-0.24.3-r1.ebuild b/x11-misc/xmobar/xmobar-0.24.3-r1.ebuild new file mode 100644 index 000000000000..7cf587b82685 --- /dev/null +++ b/x11-misc/xmobar/xmobar-0.24.3-r1.ebuild @@ -0,0 +1,100 @@ +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +# ebuild generated by hackport 0.5.9999 +#hackport: flags: -all_extensions,+with_threaded,+with_utf8,with_iwlib:wifi,with_alsa:alsa,with_xft:xft,with_datezone:timezone,with_dbus:dbus,with_mpd:mpd,with_inotify:inotify,with_mpris:mpris,with_xpm:xpm + +CABAL_FEATURES="bin" +inherit haskell-cabal + +DESCRIPTION="A Minimalistic Text Based Status Bar" +HOMEPAGE="https://xmobar.org" +SRC_URI="https://hackage.haskell.org/package/${P}/${P}.tar.gz" + +LICENSE="BSD" +SLOT="0" +KEYWORDS="~amd64 ~x86" +IUSE="alsa dbus inotify mpd mpris timezone wifi conduit uvmeter xft xpm" + +RDEPEND=">=dev-haskell/http-4000.2.4:= + >=dev-haskell/mtl-2.1:= <dev-haskell/mtl-2.3:= + dev-haskell/old-locale:= + >=dev-haskell/parsec-3.1:= <dev-haskell/parsec-3.2:= + dev-haskell/regex-compat:= + >=dev-haskell/stm-2.3:= <dev-haskell/stm-2.5:= + >=dev-haskell/utf8-string-0.3:= <dev-haskell/utf8-string-1.1:= + >=dev-haskell/x11-1.6.1:= + >=dev-lang/ghc-7.8.2:= + x11-libs/libXrandr + x11-libs/libXrender + alsa? ( >=dev-haskell/alsa-core-0.5:= <dev-haskell/alsa-core-0.6:= + >=dev-haskell/alsa-mixer-0.3:= ) + dbus? ( >=dev-haskell/dbus-0.10:= ) + inotify? ( >=dev-haskell/hinotify-0.3:= <dev-haskell/hinotify-0.4:= ) + mpd? ( >=dev-haskell/libmpd-0.9:= <dev-haskell/libmpd-0.10:= ) + mpris? ( >=dev-haskell/dbus-0.10:= ) + timezone? ( >=dev-haskell/timezone-olson-0.1:= <dev-haskell/timezone-olson-0.2:= + >=dev-haskell/timezone-series-0.1:= <dev-haskell/timezone-series-0.2:= ) + wifi? ( net-wireless/wireless-tools ) + conduit? ( dev-haskell/http-conduit:= + dev-haskell/http-types:= ) + xft? ( >=dev-haskell/x11-xft-0.2:= <dev-haskell/x11-xft-0.4:= ) + xpm? ( x11-libs/libXpm ) +" +DEPEND="${RDEPEND} + >=dev-haskell/cabal-1.18.1.3 +" + +PATCHES=( + "${FILESDIR}"/${P}-noxpm.patch + "${FILESDIR}"/${P}-alsa-mixer-0.3.patch +) + +src_prepare() { + default + # xmobar is an idle multithreaded program + # which sits in 'while { sleep(1); }' + # loops in multiple threads. + # It has a pathological behaviour in GHC: + # everything program does is thread context switch + # 100 times per second. It's easily seen with + # + # $ strace -f -p `pidof xmobar` + # + # where rt_sigreturn() manages to enter/exit + # kernel 32 times in each second to do nothing + # This workaround allows shrinkng wakeups/thread + # switches down to one per second (internal xmobar's + # cycle). + # Be careful when remove it :] + HCFLAGS+=" -with-rtsopts=-V0" + + cabal_chdeps \ + 'stm >= 2.3 && < 2.5' 'stm >= 2.3' +} + +src_configure() { + haskell-cabal_src_configure \ + --flag=-all_extensions \ + $(cabal_flag alsa with_alsa) \ + $(cabal_flag conduit with_conduit) \ + $(cabal_flag timezone with_datezone) \ + $(cabal_flag dbus with_dbus) \ + $(cabal_flag inotify with_inotify) \ + $(cabal_flag wifi with_iwlib) \ + $(cabal_flag mpd with_mpd) \ + $(cabal_flag mpris with_mpris) \ + --flag=with_threaded \ + --flag=with_utf8 \ + $(cabal_flag uvmeter with_uvmeter) \ + $(cabal_flag xft with_xft) \ + $(cabal_flag xpm with_xpm) +} + +src_install() { + cabal_src_install + + dodoc samples/xmobar.config readme.md news.md +} |