summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergei Trofimovich <slyfox@gentoo.org>2020-06-05 23:29:17 +0100
committerSergei Trofimovich <slyfox@gentoo.org>2020-06-05 23:29:25 +0100
commitbe6f210f3f95f83575f99aa76d84c163fa2ccc2e (patch)
treeff4448a57c56d1a67478514c7d4364fe84eab4dc /x11-misc/xmobar
parentnet-misc/youtube-dl: Version 2020.06.06 (diff)
downloadgentoo-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.patch26
-rw-r--r--x11-misc/xmobar/xmobar-0.24.3-r1.ebuild100
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
+}