Bugfixing update to hpodder-1.1.6

This commit is contained in:
dcoppa 2011-12-05 14:58:59 +00:00
parent 5a10eaa1e1
commit 0c985ebfb3
9 changed files with 9 additions and 206 deletions

View File

@ -1,9 +1,8 @@
# $OpenBSD: Makefile,v 1.17 2011/09/23 12:11:01 dcoppa Exp $
# $OpenBSD: Makefile,v 1.18 2011/12/05 14:58:59 dcoppa Exp $
COMMENT = command line podcast aggregator
DISTNAME = hpodder-1.1.5
REVISION = 10
DISTNAME = hpodder-1.1.6
CATEGORIES = net
HOMEPAGE = http://wiki.github.com/jgoerzen/hpodder/
@ -23,8 +22,8 @@ MODGHC_BUILD = cabal hackage nort
BUILD_DEPENDS = devel/hs-ConfigFile \
devel/hs-mtl \
textproc/hs-HaXml>=1.20 \
databases/hs-HDBC-sqlite3
textproc/hs-HaXml>=1.20,<1.21 \
databases/hs-HDBC-sqlite3>=1.1.0
LIB_DEPENDS = databases/sqlite3 \
devel/gmp
RUN_DEPENDS = net/curl>=7.15.5 \

View File

@ -1,5 +1,5 @@
MD5 (ghc/hpodder-1.1.5.tar.gz) = 4sAqgkYKpB+nu+Wr0hjYEA==
RMD160 (ghc/hpodder-1.1.5.tar.gz) = YfD+FvG7isAF5fxd2G44ePoNkZI=
SHA1 (ghc/hpodder-1.1.5.tar.gz) = 5jb00ovPz9bA9n5WlF0+TV5Okts=
SHA256 (ghc/hpodder-1.1.5.tar.gz) = HvIr4cla3y+bcnNDUr5sm1TyptV0oJ+nXJTfSMG0qG0=
SIZE (ghc/hpodder-1.1.5.tar.gz) = 57686
MD5 (ghc/hpodder-1.1.6.tar.gz) = x1Fh0bCZ1JXNJhL/pYck6Q==
RMD160 (ghc/hpodder-1.1.6.tar.gz) = s3X9fp2DrohVyF0uoDULszHYP5I=
SHA1 (ghc/hpodder-1.1.6.tar.gz) = gjBr06U+U1xNk8lTQXFDqjoupO0=
SHA256 (ghc/hpodder-1.1.6.tar.gz) = qnEo24XLlr+1hIRiaf5ODP5hKxtUFayH6851POElKT4=
SIZE (ghc/hpodder-1.1.6.tar.gz) = 57920

View File

@ -1,39 +0,0 @@
$OpenBSD: patch-Commands_Download_hs,v 1.2 2011/05/26 08:24:59 dcoppa Exp $
fix from upstream git:
add EPID to the per-podcast command options
make renaming of mp3 files work again (gettypecommand bug)
--- Commands/Download.hs.orig Wed Jul 2 17:32:27 2008
+++ Commands/Download.hs Tue May 24 13:32:57 2011
@@ -42,6 +42,7 @@ import Data.ConfigFile
import Data.String.Utils
import Data.Either.Utils
import Data.List
+import Data.Char
import System.Exit
import Control.Exception
import Data.Progress.Tracker
@@ -259,10 +260,13 @@ procSuccess gi ep tmpfp =
d $ " gettypecommand sent to stdout: " ++ show c
d $ " original type was: " ++ show (eptype ep)
case ec of
- ExitSuccess -> case (strip c) of
+ ExitSuccess -> case (stripToken c) of
"" -> return (eptype ep)
x -> return x
_ -> return (eptype ep)
+
+ stripToken = takeWhile intoken
+ where intoken c = not $ isSpace c || c == ';'
getRenameTypes =
case getList (gcp gi) idstr "renametypes" of
@@ -284,6 +288,7 @@ procSuccess gi ep tmpfp =
("FEEDURL", feedurl . podcast $ ep),
("SAFECASTTITLE", sanitize_fn . castname . podcast $ ep),
("SAFEEPTITLE", sanitize_fn . eptitle $ ep),
+ ("EPID", show . epid $ ep),
("EPTITLE", eptitle ep)]
-- | Runs a hook script.

View File

@ -1,15 +0,0 @@
$OpenBSD: patch-Commands_SetStatus_hs,v 1.2 2011/05/26 08:24:59 dcoppa Exp $
ghc7 fix: add explicit type signature to a catch
--- Commands/SetStatus.hs.orig Wed Jul 2 17:32:27 2008
+++ Commands/SetStatus.hs Fri Dec 31 12:35:07 2010
@@ -56,7 +56,7 @@ cmd_worker gi (args, episodes) = lock $
Just x -> return (read x)
Nothing -> fail "setstatus: --castid required; see hpodder setstatus --help"
newstatus <- case lookup "status" args of
- Just x -> E.catch (E.evaluate (read x))
+ Just x -> (E.catch :: IO a -> (IOError -> IO a) -> IO a) (E.evaluate (read x))
(\_ -> fail $ "Invalid status supplied; use one of: " ++ possibleStatuses)
Nothing -> fail "setstatus: --status required; see hpodder setstatus --help"
podcastlist <- getPodcast (gdbh gi) podcastid

View File

@ -1,21 +0,0 @@
$OpenBSD: patch-Commands_Setup_hs,v 1.3 2011/05/26 08:24:59 dcoppa Exp $
fixes from upstream git:
fix URL for "IT conversations"
fix URL for "The Amateur Traveler"
--- Commands/Setup.hs.orig Wed Nov 24 09:13:14 2010
+++ Commands/Setup.hs Wed Nov 24 09:13:18 2010
@@ -101,10 +101,10 @@ subscribeSamples gi =
sampleurls =
["http://soundofhistory.complete.org/files_soh/podcast.xml",
"http://www.thelinuxlink.net/tllts/tllts.rss",
- "http://www.itconversations.com/rss/recentWithEnclosures.php",
+ "http://feeds.conversationsnetwork.org/channel/itc",
"http://www.sciam.com/podcast/sciam_podcast_r.xml",
"http://www.npr.org/rss/podcast.php?id=510019",
- "http://amateurtraveler.com/podcast/rss.xml",
+ "http://feeds.feedburner.com/AmateurTravelerPodcast",
"http://broadband.wgbh.org/amex/rss/podcast_np.xml",
"http://www.npr.org/rss/podcast.php?id=700000"]

View File

@ -1,17 +0,0 @@
$OpenBSD: patch-Config_hs,v 1.1.1.1 2010/04/28 16:21:40 dcoppa Exp $
fixes from upstream git:
switch default ID3 tagger to mid3v2
add -T ${EPID} to mid3v2
--- Config.hs.orig Wed Jul 2 17:32:27 2008
+++ Config.hs Tue Apr 13 11:46:07 2010
@@ -74,7 +74,7 @@ getDefaultCP =
cp <- set cp "DEFAULT" "renametypes" "audio/mpeg:.mp3,audio/mp3:.mp3,x-audio/mp3:.mp3"
cp <- set cp "DEFAULT" "postproctypes" "audio/mpeg,audio/mp3,x-audio/mp3"
cp <- set cp "DEFAULT" "gettypecommand" "file -b -i \"${EPFILENAME}\""
- cp <- set cp "DEFAULT" "postproccommand" "id3v2 -A \"${CASTTITLE}\" -t \"${EPTITLE}\" --WOAF \"${EPURL}\" --WOAS \"${FEDDURL}\" \"${EPFILENAME}\""
+ cp <- set cp "DEFAULT" "postproccommand" "mid3v2 -T \"${EPID}\" -A \"${CASTTITLE}\" -t \"${EPTITLE}\" --WOAF \"${EPURL}\" --WOAS \"${FEEDURL}\" \"${EPFILENAME}\""
return cp
startingcp = emptyCP {accessfunc = interpolatingAccess 10}

View File

@ -1,15 +0,0 @@
$OpenBSD: patch-Download_hs,v 1.1.1.1 2010/04/28 16:21:40 dcoppa Exp $
fix from upstream git:
add --globoff to curl options
--- Download.hs.orig Wed Jul 2 17:32:27 2008
+++ Download.hs Tue Apr 13 11:46:07 2010
@@ -65,6 +65,7 @@ curlopts = ["-A", "hpodder v1.0.0; Haskell; GHC", -- S
"-L", -- Follow redirects
"-y", "60", "-Y", "1", -- Timeouts
"--retry", "2", -- Retry twice
+ "--globoff", -- Disable globbing on URLs (#79)
"-f" -- Fail on server errors
]

View File

@ -1,69 +0,0 @@
$OpenBSD: patch-FeedParser_hs,v 1.2 2011/09/23 12:11:01 dcoppa Exp $
make code compatible with HaXml 1.20
fix stripping of unicode byte order mark
(maybe something has changed in GHC 7)
--- FeedParser.hs.orig Wed Jul 2 17:32:27 2008
+++ FeedParser.hs Fri Sep 23 13:24:38 2011
@@ -33,6 +33,7 @@ module FeedParser where
import Types
import Text.XML.HaXml
import Text.XML.HaXml.Parse
+import Text.XML.HaXml.Posn
import Utils
import Data.Maybe.Utils
import Data.Char
@@ -76,9 +77,9 @@ parse fp name =
let feeditems = getEnclosures doc
return $ Right $
(Feed {channeltitle = title, items = feeditems})
- where getContent (Document _ _ e _) = CElem e
+ where getContent (Document _ _ e _) = CElem e noPos
-unifrob ('\xef':'\xbb':'\xbf':x) = x -- Strip off unicode BOM
+unifrob ('\xfeff':x) = x -- Strip off unicode BOM
unifrob x = x
unesc = xmlUnEscape stdXmlEscaper
@@ -121,13 +122,13 @@ channel =
-- Utilities
--------------------------------------------------
-attrofelem :: String -> Content -> Maybe AttValue
-attrofelem attrname (CElem inelem) =
+attrofelem :: String -> Content Posn -> Maybe AttValue
+attrofelem attrname (CElem inelem _) =
case unesc inelem of
Elem name al _ -> lookup attrname al
attrofelem _ _ =
error "attrofelem: called on something other than a CElem"
-stratt :: String -> Content -> Maybe [String]
+stratt :: String -> Content Posn -> Maybe [String]
stratt attrname content =
case attrofelem attrname content of
Just (AttValue x) -> Just (concat . map mapfunc $ x)
@@ -136,17 +137,18 @@ stratt attrname content =
mapfunc (Right _) = []
-- Finds the literal children of the named tag, and returns it/them
-tagof :: String -> CFilter
+tagof :: String -> CFilter Posn
tagof x = keep /> tag x -- /> txt
-- Retruns the literal string that tagof would find
-strof :: String -> Content -> String
+strof :: String -> Content Posn -> String
strof x y = forceEither $ strof_either x y
-strof_either :: String -> Content -> Either String String
+strof_either :: String -> Content Posn -> Either String String
strof_either x y =
case tagof x $ y of
- [CElem elem] -> Right $ verbatim $ tag x /> txt $ CElem (unesc elem)
+ [CElem elem pos] -> Right $ verbatim $ tag x /> txt
+ $ CElem (unesc elem) pos
z -> Left $ "strof: expecting CElem in " ++ x ++ ", got "
++ verbatim z ++ " at " ++ verbatim y

View File

@ -1,20 +0,0 @@
$OpenBSD: patch-hpodder_cabal,v 1.3 2011/05/26 08:24:59 dcoppa Exp $
fix from upstream git:
remove unneeded haskell98 dependency
allow base-4
tighten HaXml dependency
--- hpodder.cabal.orig Wed Jul 2 17:32:27 2008
+++ hpodder.cabal Sun Dec 26 16:08:02 2010
@@ -68,8 +68,8 @@ Description: Podcasting is a method of publishing rad
hpodder is SAFE and is designed with data integrity in mind from the
beginning. It should be exceedingly difficult to lose a podcast
episode, even in the event of a power failure.
-Build-Depends: haskell98, network, unix, parsec, MissingH>=1.0.0,
- HDBC>=1.1.0, HDBC-sqlite3>=1.1.0, mtl, base, HaXml>=1.13.2, HaXml<1.19, hslogger,
+Build-Depends: network, unix, parsec, MissingH>=1.0.0,
+ HDBC>=1.1.0, HDBC-sqlite3>=1.1.0, mtl, base>=3 && < 5, HaXml == 1.20.*, hslogger,
ConfigFile, filepath, old-time, directory, process
Executable: hpodder