blob: de57cc6c8ffea4ce93928dfaf0ebacaa9febfe37 [file] [log] [blame]
# Copyright 1999-2015 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$
EAPI=5
# ebuild generated by hackport 0.4.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="http://xmobar.org"
SRC_URI="mirror://hackage/packages/archive/${PN}/${PV}/${P}.tar.gz"
LICENSE="BSD"
SLOT="0"
KEYWORDS="amd64 x86"
IUSE="alsa dbus inotify mpd mpris timezone wifi 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/transformers:=
>=dev-haskell/utf8-string-0.3:= <dev-haskell/utf8-string-1.1:=
>=dev-haskell/x11-1.6.1:=
>=dev-lang/ghc-7.4.1:=
x11-libs/libXrandr
x11-libs/libXrender
alsa? ( >=dev-haskell/alsa-core-0.5:= <dev-haskell/alsa-core-0.6:=
>=dev-haskell/alsa-mixer-0.2:= <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 )
xft? ( >=dev-haskell/x11-xft-0.2:= <dev-haskell/x11-xft-0.4:= )
xpm? ( x11-libs/libXpm )
"
DEPEND="${RDEPEND}
>=dev-haskell/cabal-1.6
"
src_prepare() {
# 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"
}
src_configure() {
haskell-cabal_src_configure \
--flag=-all_extensions \
$(cabal_flag alsa with_alsa) \
$(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 xft with_xft) \
$(cabal_flag xpm with_xpm)
}
src_install() {
cabal_src_install
dodoc samples/xmobar.config readme.md news.md
}