debian/0000755000000000000000000000000012261061667007175 5ustar debian/watch0000644000000000000000000000033412173323521010216 0ustar version=3 opts="downloadurlmangle=s|archive/([\w\d_-]+)/([\d\.]+)/|archive/$1/$2/$1-$2.tar.gz|,\ filenamemangle=s|(.*)/$|taffybar-$1.tar.gz|" \ http://hackage.haskell.org/packages/archive/taffybar \ ([\d\.]*\d)/ debian/rules0000755000000000000000000000061112173323521010243 0ustar #!/usr/bin/make -f DEB_SETUP_GHC_CONFIGURE_ARGS := --datasubdir=taffybar --ghc-options='-optl -z -optl relro' include /usr/share/cdbs/1/rules/debhelper.mk include /usr/share/cdbs/1/class/hlibrary.mk binary-fixup/taffybar:: install -m 755 -s -D dist-ghc/build/taffybar/taffybar debian/taffybar/usr/bin/taffybar || true cp -R debian/tmp-inst-ghc/usr/share/taffybar debian/taffybar/usr/share debian/copyright0000644000000000000000000000436512173456176011145 0ustar Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ Upstream-Name: taffybar Upstream-Contact: Tristan Ravitch Source: http://hackage.haskell.org/package/taffybar Files: * Copyright: 2012 Tristan Ravitch License: BSD-3-clause Files: debian/* Copyright: 2013 Louis Bettens License: permissive License: permissive Copying and distribution of this package, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. Files: debian/patches/eliminate-web-encodings-dependency.patch debian/patches/port-from-dbus-core-to-dbus.patch Copyright: 2012 CJ van den Berg License: BSD-3-clause License: BSD-3-clause Copyright (c)2012, Tristan Ravitch . All rights reserved. . Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: . * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. . * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. . * Neither the name of Tristan Ravitch nor the names of other contributors may be used to endorse or promote products derived from this software without specific prior written permission. . THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. debian/source/0000755000000000000000000000000012173323521010465 5ustar debian/source/format0000644000000000000000000000001412173323521011673 0ustar 3.0 (quilt) debian/patches/0000755000000000000000000000000012173466677010640 5ustar debian/patches/cabal-bug-626.patch0000644000000000000000000000136312173466677014014 0ustar Index: taffybar/taffybar.cabal =================================================================== --- taffybar.orig/taffybar.cabal 2013-07-17 21:35:44.000000000 +0200 +++ taffybar/taffybar.cabal 2013-07-23 12:54:33.000000000 +0200 @@ -22,9 +22,9 @@ . * More robust strut handling for multiple monitors of different sizes (contributed by Morgan Gibson) . - * New widgets from José A. Romero (network monitor, fs monitor, another CPU monitor) + * New widgets from Jose' A. Romero (network monitor, fs monitor, another CPU monitor) . - * Allow the bar widget to grow vertically (also contributed by José A. Romero) + * Allow the bar widget to grow vertically (also contributed by Jose' A. Romero) . Changes in v0.2.0: . debian/patches/man-page.patch0000644000000000000000000000174412173323521013330 0ustar Index: taffybar/taffybar.1 =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 +++ taffybar/taffybar.1 2013-07-21 17:04:30.000000000 +0200 @@ -0,0 +1,32 @@ +.TH taffybar 1 "19 July 2013" "taffybar version 0.2.1" "User Manual" + +.SH NAME +taffybar \- desktop bar extensible in Haskell + +.SH SYNOPSIS +.B taffybar + +.SH DESCRIPTION +Taffybar is a desktop bar written and extensible in Haskell. Consult the html +documentation for a full description of its behaviour. + +.SH OPTIONS +It doesn't take any. + +.SH FILES +It can be configured in ~/.config/taffybar/taffybar.hs; consult the html +documentation. + +.SH BUGS +Bug reports, ideas and suggestions should be posted to the GitHub issue tracker +. + +.SH COPYRIGHT +Copyright \(co 2012 Tristan Ravitch. +.PP +Taffybar is released under the terms of the BSD License. +.SH "SEE ALSO" +.BR xmobar (1) + +.SH AUTHOR +Tristan Ravitch debian/patches/eliminate-web-encodings-dependency.patch0000644000000000000000000000775012173323520020452 0ustar From: CJ van den Berg Subject: Eliminate web-encodings dependency Origin: upstream, https://github.com/travitch/taffybar/commit/4c2591a25c8700cec29aa28892e4dbfa610ed1e2 Index: taffybar/src/System/Taffybar/FreedesktopNotifications.hs =================================================================== --- taffybar.orig/src/System/Taffybar/FreedesktopNotifications.hs 2013-07-16 18:20:24.000000000 +0200 +++ taffybar/src/System/Taffybar/FreedesktopNotifications.hs 2013-07-17 21:01:58.000000000 +0200 @@ -28,7 +28,6 @@ import Data.Word ( Word32 ) import DBus.Client.Simple import Graphics.UI.Gtk hiding ( Variant ) -import Web.Encodings ( decodeHtml, encodeHtml ) -- | A simple structure representing a Freedesktop notification data Notification = Notification { noteAppName :: Text @@ -116,8 +115,8 @@ nid <- modifyMVar idSrc (\x -> return (x+1, x)) let n = Notification { noteAppName = appName , noteReplaceId = 0 - , noteSummary = encodeHtml $ decodeHtml summary - , noteBody = encodeHtml $ decodeHtml body + , noteSummary = T.pack $ escapeMarkup $ T.unpack summary + , noteBody = T.pack $ escapeMarkup $ T.unpack body , noteExpireTimeout = tout , noteId = fromIntegral nid } Index: taffybar/src/System/Taffybar/MPRIS.hs =================================================================== --- taffybar.orig/src/System/Taffybar/MPRIS.hs 2013-07-16 18:20:24.000000000 +0200 +++ taffybar/src/System/Taffybar/MPRIS.hs 2013-07-17 21:01:58.000000000 +0200 @@ -18,7 +18,6 @@ import DBus.Types import DBus.Message import Graphics.UI.Gtk hiding ( Signal, Variant ) -import Web.Encodings ( encodeHtml, decodeHtml ) import Text.Printf setupDBus :: Label -> IO () @@ -53,7 +52,7 @@ Just m -> do let artist = maybe "[unknown]" id (variantDictLookup "artist" m) track = maybe "[unknown]" id (variantDictLookup "title" m) - msg = encodeHtml $ decodeHtml $ printf "%s - %s" (T.unpack artist) (T.unpack track) + msg = escapeMarkup $ printf "%s - %s" (T.unpack artist) (T.unpack track) txt = "Now Playing: " ++ msg postGUIAsync $ do -- In case the widget was hidden due to a stop/pause, forcibly Index: taffybar/src/System/Taffybar/XMonadLog.hs =================================================================== --- taffybar.orig/src/System/Taffybar/XMonadLog.hs 2013-07-16 18:20:24.000000000 +0200 +++ taffybar/src/System/Taffybar/XMonadLog.hs 2013-07-17 21:01:58.000000000 +0200 @@ -33,8 +33,6 @@ import XMonad import XMonad.Hooks.DynamicLog -import Web.Encodings ( decodeHtml, encodeHtml ) - -- | This is a DBus-based logger that can be used from XMonad to log -- to this widget. This version lets you specify the format for the -- log using a pretty printer (e.g., 'taffybarPP'). @@ -52,7 +50,7 @@ -- | Escape strings so that they can be safely displayed by Pango in -- the bar widget taffybarEscape :: String -> String -taffybarEscape = encodeHtml . decodeHtml +taffybarEscape = escapeMarkup -- | The same as defaultPP in XMonad.Hooks.DynamicLog taffybarDefaultPP :: PP Index: taffybar/taffybar.cabal =================================================================== --- taffybar.orig/taffybar.cabal 2013-07-16 18:20:24.000000000 +0200 +++ taffybar/taffybar.cabal 2013-07-17 21:01:58.000000000 +0200 @@ -58,7 +58,7 @@ library default-language: Haskell2010 build-depends: base > 3 && < 5, time, old-locale, containers, text, HTTP, - parsec >= 3.1, mtl >= 2, network, web-encodings, cairo, + parsec >= 3.1, mtl >= 2, network, cairo, dbus-core >= 0.9.1 && < 1.0, gtk >= 0.12.1, dyre >= 0.8.6, HStringTemplate, gtk-traymanager >= 0.1.2 && < 0.2, xmonad-contrib, xmonad, xdg-basedir, filepath, utf8-string, process debian/patches/port-from-dbus-core-to-dbus.patch0000644000000000000000000002327712173323521017031 0ustar From: CJ van den Berg Subject: Port from dbus-core to dbus Origin: upstream, https://github.com/travitch/taffybar/commit/a54f2fca4a99f06ffc284c5d53aa532d76bc2d4e Index: taffybar/src/System/Information/Battery.hs =================================================================== --- taffybar.orig/src/System/Information/Battery.hs 2013-07-16 18:20:24.000000000 +0200 +++ taffybar/src/System/Information/Battery.hs 2013-07-17 21:24:24.000000000 +0200 @@ -19,12 +19,14 @@ import Data.Maybe import Data.Word import Data.Int -import DBus.Client.Simple -import Data.List ( find ) -import Data.Text ( isInfixOf, Text ) +import DBus +import DBus.Client +import Data.List ( find, isInfixOf ) +import Data.Text ( Text ) +import qualified Data.Text as T -- | An opaque wrapper around some internal library state -newtype BatteryContext = BC Proxy +data BatteryContext = BC Client ObjectPath data BatteryType = BatteryTypeUnknown | BatteryTypeLinePower @@ -90,7 +92,7 @@ -- | Find the first power source that is a battery in the list. The -- simple heuristic is a substring search on 'BAT' firstBattery :: [ObjectPath] -> Maybe ObjectPath -firstBattery = find (isInfixOf "BAT" . objectPathText) +firstBattery = find (isInfixOf "BAT" . formatObjectPath) -- | The name of the power daemon bus powerBusName :: BusName @@ -128,16 +130,16 @@ -- If some fields are not actually present, they may have bogus values -- here. Don't bet anything critical on it. getBatteryInfo :: BatteryContext -> IO BatteryInfo -getBatteryInfo (BC batteryProxy) = do +getBatteryInfo (BC systemConn battPath) = do -- Grab all of the properties of the battery each call with one -- message. - let iface :: Variant - iface = toVariant ("org.freedesktop.UPower.Device" :: Text) - - [val] <- call batteryProxy "org.freedesktop.DBus.Properties" "GetAll" [iface] + reply <- call_ systemConn (methodCall battPath "org.freedesktop.DBus.Properties" "GetAll") + { methodCallDestination = Just "org.freedesktop.UPower" + , methodCallBody = [toVariant $ T.pack "org.freedesktop.UPower.Device"] + } let dict :: Map Text Variant - Just dict = fromVariant val + Just dict = fromVariant (methodReturnBody reply !! 0) return BatteryInfo { batteryNativePath = readDict dict "NativePath" "" , batteryVendor = readDict dict "Vendor" "" , batteryModel = readDict dict "Model" "" @@ -173,11 +175,12 @@ -- First, get the list of devices. For now, we just get the stats -- for the first battery - powerProxy <- proxy systemConn powerBusName powerBaseObjectPath - [ powerDevicesV ] <- call powerProxy "org.freedesktop.UPower" "EnumerateDevices" [] - let Just powerDevices = fromVariant powerDevicesV + reply <- call_ systemConn (methodCall powerBaseObjectPath "org.freedesktop.UPower" "EnumerateDevices") + { methodCallDestination = Just powerBusName + } + let Just powerDevices = fromVariant (methodReturnBody reply !! 0) + case firstBattery powerDevices of Nothing -> return Nothing Just battPath -> - proxy systemConn powerBusName battPath >>= (return . Just . BC) - + return . Just $ BC systemConn battPath Index: taffybar/src/System/Taffybar/FreedesktopNotifications.hs =================================================================== --- taffybar.orig/src/System/Taffybar/FreedesktopNotifications.hs 2013-07-17 21:01:58.000000000 +0200 +++ taffybar/src/System/Taffybar/FreedesktopNotifications.hs 2013-07-17 21:24:24.000000000 +0200 @@ -26,7 +26,8 @@ import Data.Text ( Text ) import qualified Data.Text as T import Data.Word ( Word32 ) -import DBus.Client.Simple +import DBus +import DBus.Client import Graphics.UI.Gtk hiding ( Variant ) -- | A simple structure representing a Freedesktop notification @@ -146,12 +147,12 @@ notificationDaemon onNote onCloseNote = do client <- connectSession - _ <- requestName client "org.freedesktop.Notifications" [AllowReplacement, ReplaceExisting] + _ <- requestName client "org.freedesktop.Notifications" [nameAllowReplacement, nameReplaceExisting] export client "/org/freedesktop/Notifications" - [ method "org.freedesktop.Notifications" "GetServerInformation" getServerInformation - , method "org.freedesktop.Notifications" "GetCapabilities" getCapabilities - , method "org.freedesktop.Notifications" "CloseNotification" onCloseNote - , method "org.freedesktop.Notifications" "Notify" onNote + [ autoMethod "org.freedesktop.Notifications" "GetServerInformation" getServerInformation + , autoMethod "org.freedesktop.Notifications" "GetCapabilities" getCapabilities + , autoMethod "org.freedesktop.Notifications" "CloseNotification" onCloseNote + , autoMethod "org.freedesktop.Notifications" "Notify" onNote ] -- When a notification is received, add it to the queue. Post a token to the channel that the Index: taffybar/src/System/Taffybar/MPRIS.hs =================================================================== --- taffybar.orig/src/System/Taffybar/MPRIS.hs 2013-07-17 21:01:58.000000000 +0200 +++ taffybar/src/System/Taffybar/MPRIS.hs 2013-07-17 21:24:24.000000000 +0200 @@ -13,22 +13,20 @@ import qualified Data.Map as M import Data.Text ( Text ) import qualified Data.Text as T -import DBus.Client.Simple ( connectSession ) +import DBus import DBus.Client -import DBus.Types -import DBus.Message import Graphics.UI.Gtk hiding ( Signal, Variant ) import Text.Printf setupDBus :: Label -> IO () setupDBus w = do - let trackMatcher = MatchRule { matchSender = Nothing + let trackMatcher = matchAny { matchSender = Nothing , matchDestination = Nothing , matchPath = Just "/Player" , matchInterface = Just "org.freedesktop.MediaPlayer" , matchMember = Just "TrackChange" } - stateMatcher = MatchRule { matchSender = Nothing + stateMatcher = matchAny { matchSender = Nothing , matchDestination = Nothing , matchPath = Just "/Player" , matchInterface = Just "org.freedesktop.MediaPlayer" @@ -44,10 +42,11 @@ fromVariant val -trackCallback :: Label -> BusName -> Signal -> IO () -trackCallback w _ Signal { signalBody = [variant] } = do +trackCallback :: Label -> Signal -> IO () +trackCallback w s = do let v :: Maybe (M.Map Text Variant) v = fromVariant variant + [variant] = signalBody s case v of Just m -> do let artist = maybe "[unknown]" id (variantDictLookup "artist" m) @@ -60,11 +59,10 @@ labelSetMarkup w txt widgetShowAll w _ -> return () -trackCallback _ _ _ = return () -stateCallback :: Label -> BusName -> Signal -> IO () -stateCallback w _ Signal { signalBody = [bdy] } = - case fromVariant bdy of +stateCallback :: Label -> Signal -> IO () +stateCallback w s = + case fromVariant (signalBody s !! 0) of Just st -> case structureItems st of (pstate:_) -> case (fromVariant pstate) :: Maybe Int32 of Just 2 -> postGUIAsync $ widgetHideAll w @@ -73,7 +71,6 @@ _ -> return () _ -> return () _ -> return () -stateCallback _ _ _ = return () mprisNew :: IO Widget mprisNew = do Index: taffybar/src/System/Taffybar/XMonadLog.hs =================================================================== --- taffybar.orig/src/System/Taffybar/XMonadLog.hs 2013-07-17 21:01:58.000000000 +0200 +++ taffybar/src/System/Taffybar/XMonadLog.hs 2013-07-17 21:24:24.000000000 +0200 @@ -24,10 +24,8 @@ ) where import Codec.Binary.UTF8.String ( decodeString ) -import DBus.Client.Simple ( connectSession, emit, Client ) -import DBus.Client ( listen, MatchRule(..) ) -import DBus.Types -import DBus.Message +import DBus ( toVariant, fromVariant, Signal(..), signal ) +import DBus.Client ( listen, matchAny, MatchRule(..), connectSession, emit, Client ) import Graphics.UI.Gtk hiding ( Signal ) import XMonad @@ -79,11 +77,11 @@ -- We need to decode the string back into a real String before we -- send it over dbus. let str' = decodeString str - emit client "/org/xmonad/Log" "org.xmonad.Log" "Update" [ toVariant str' ] + emit client (signal "/org/xmonad/Log" "org.xmonad.Log" "Update") { signalBody = [ toVariant str' ] } setupDbus :: Label -> IO () setupDbus w = do - let matcher = MatchRule { matchSender = Nothing + let matcher = matchAny { matchSender = Nothing , matchDestination = Nothing , matchPath = Just "/org/xmonad/Log" , matchInterface = Just "org.xmonad.Log" @@ -94,8 +92,8 @@ listen client matcher (callback w) -callback :: Label -> BusName -> Signal -> IO () -callback w _ sig = do +callback :: Label -> Signal -> IO () +callback w sig = do let [bdy] = signalBody sig Just status = fromVariant bdy postGUIAsync $ labelSetMarkup w status Index: taffybar/taffybar.cabal =================================================================== --- taffybar.orig/taffybar.cabal 2013-07-17 21:01:58.000000000 +0200 +++ taffybar/taffybar.cabal 2013-07-17 21:24:24.000000000 +0200 @@ -59,7 +59,7 @@ default-language: Haskell2010 build-depends: base > 3 && < 5, time, old-locale, containers, text, HTTP, parsec >= 3.1, mtl >= 2, network, cairo, - dbus-core >= 0.9.1 && < 1.0, gtk >= 0.12.1, dyre >= 0.8.6, + dbus >= 0.10.1 && < 1.0, gtk >= 0.12.1, dyre >= 0.8.6, HStringTemplate, gtk-traymanager >= 0.1.2 && < 0.2, xmonad-contrib, xmonad, xdg-basedir, filepath, utf8-string, process hs-source-dirs: src debian/patches/series0000644000000000000000000000015612173466677012057 0ustar eliminate-web-encodings-dependency.patch port-from-dbus-core-to-dbus.patch man-page.patch cabal-bug-626.patch debian/compat0000644000000000000000000000000212173323520010362 0ustar 9 debian/control0000644000000000000000000000736312173456176010616 0ustar Source: taffybar Section: haskell Priority: extra Maintainer: Debian Haskell Group Uploaders: Louis Bettens Build-Depends: debhelper (>= 9) , cdbs , haskell-devscripts (>= 0.8.15) , ghc , ghc-prof , libghc-text-dev , libghc-http-dev , libghc-parsec3-dev (>= 3.1) , libghc-mtl-dev (>= 2) , libghc-network-dev , libghc-cairo-dev , libghc-dbus-dev (>= 0.10.1) , libghc-dbus-dev (<< 1.0) , libghc-gtk-dev (>= 0.12.1) , libghc-dyre-dev (>= 0.8.6) , libghc-hstringtemplate-dev , libghc-gtk-traymanager-dev (>= 0.1.2) , libghc-gtk-traymanager-dev (<< 0.2) , libghc-xmonad-dev , libghc-xmonad-contrib-dev , libghc-xdg-basedir-dev , libghc-utf8-string-dev , libghc-stm-dev , libghc-transformers-dev (>= 0.3.0.0) , libghc-x11-dev (>= 1.5.0.1) , libghc-split-dev (>= 0.1.4.2) , libghc-text-prof , libghc-http-prof , libghc-parsec3-prof , libghc-mtl-prof , libghc-network-prof , libghc-cairo-prof , libghc-dbus-prof , libghc-gtk-prof , libghc-dyre-prof , libghc-hstringtemplate-prof , libghc-gtk-traymanager-prof , libghc-xmonad-prof , libghc-xmonad-contrib-prof , libghc-xdg-basedir-prof , libghc-utf8-string-prof , libghc-stm-prof , libghc-transformers-prof , libghc-x11-prof , libghc-split-prof , libgtk2.0-dev Build-Depends-Indep: ghc-doc , libghc-text-doc , libghc-http-doc , libghc-parsec3-doc , libghc-mtl-doc , libghc-network-doc , libghc-cairo-doc , libghc-dbus-doc , libghc-gtk-doc , libghc-dyre-doc , libghc-hstringtemplate-doc , libghc-gtk-traymanager-doc , libghc-xmonad-doc , libghc-xmonad-contrib-doc , libghc-xdg-basedir-doc , libghc-utf8-string-doc , libghc-stm-doc , libghc-transformers-doc , libghc-x11-doc , libghc-split-doc Standards-Version: 3.9.4 Homepage: http://hackage.haskell.org/package/taffybar Vcs-Darcs: http://darcs.debian.org/pkg-haskell/taffybar Vcs-Browser: http://darcs.debian.org/cgi-bin/darcsweb.cgi?r=pkg-haskell/taffybar X-Description: desktop bar extensible in Haskell This bar is based on gtk2hs and provides several widgets (including a few graphical ones). It also sports an optional snazzy system tray. Package: libghc-taffybar-dev Architecture: any Depends: ${haskell:Depends} , ${shlibs:Depends} , ${misc:Depends} , libgtk2.0-dev Recommends: ${haskell:Recommends} Suggests: ${haskell:Suggests} Provides: ${haskell:Provides} Description: ${haskell:ShortDescription}${haskell:ShortBlurb} ${haskell:LongDescription} . ${haskell:Blurb} Package: libghc-taffybar-prof Architecture: any Depends: ${haskell:Depends} , ${misc:Depends} Recommends: ${haskell:Recommends} Suggests: ${haskell:Suggests} Provides: ${haskell:Provides} Description: ${haskell:ShortDescription}${haskell:ShortBlurb} ${haskell:LongDescription} . ${haskell:Blurb} Package: libghc-taffybar-doc Section: doc Architecture: all Depends: ${misc:Depends}, ${haskell:Depends} Recommends: ${haskell:Recommends} Suggests: ${haskell:Suggests} Description: ${haskell:ShortDescription}${haskell:ShortBlurb} ${haskell:LongDescription} . ${haskell:Blurb} Package: taffybar Architecture: any Depends: ${haskell:Depends} , ${shlibs:Depends} , ${misc:Depends} Recommends: ${haskell:Recommends}, libghc-taffybar-dev, libghc-taffybar-doc Suggests: ${haskell:Suggests} Provides: ${haskell:Provides} Description: desktop bar extensible in Haskell This bar is based on gtk2hs and provides several widgets (including a few graphical ones). It also sports an optional snazzy system tray. . This package comes pre-configured with the default configuration. If you want to build your custom-configured version, make sure that libghc-taffybar-dev is installed and put your configuration in ~/.config/taffybar/taffybar.hs debian/changelog0000644000000000000000000000044012261061667011045 0ustar taffybar (0.2.1-1build1) trusty; urgency=medium * Rebuild for new GHC ABIs. -- Colin Watson Wed, 01 Jan 2014 18:51:35 +0000 taffybar (0.2.1-1) unstable; urgency=low * Initial release -- Louis Bettens Wed, 17 Jul 2013 19:20:48 +0200