packages feed

cabal2arch 0.4 → 0.4.2

raw patch · 2 files changed

+71/−65 lines, 2 filesdep ~Cabaldep ~base

Dependency ranges changed: Cabal, base

Files

Main.hs view
@@ -19,7 +19,9 @@ -- C libraries are dynamicall linked, should be listed in depends, -- rather than makedepends +import Distribution.Package import Distribution.PackageDescription+import Distribution.PackageDescription.Parse import Distribution.PackageDescription.Configuration import Distribution.Simple.Utils hiding (die) import Distribution.Verbosity@@ -63,7 +65,7 @@  bracket    -- We do all our work in a temp directory   (do cwd  <- getCurrentDirectory-      etmp <- readProcess "mktemp" ["-d"] []+      etmp <- myReadProcess "mktemp" ["-d"] []       case etmp of         Left _  -> die "Unable to create temp directory"         Right d -> do@@ -87,7 +89,7 @@    email     <- do        r <- getEnvMaybe "ARCH_HASKELL"         case r of-            Nothing -> do hPutStrLn stderr "Warning: ARCH_HASKELL environment variable not set. Set this to the maintainer contat you wish to use. \n E.g. 'Arch Haskell Team <arch-haskell@haskell.org>'"+            Nothing -> do hPutStrLn stderr "Warning: ARCH_HASKELL environment variable not set. Set this to the maintainer contact you wish to use. \n E.g. 'Arch Haskell Team <arch-haskell@haskell.org>'"                           return []             Just s  -> return s @@ -133,7 +135,7 @@     setCurrentDirectory cwd -   tarred <- readProcess "tar" ["-zcvvf",(dir <.> "tar.gz"), dir] []+   tarred <- myReadProcess "tar" ["-zcvvf",(dir <.> "tar.gz"), dir] []    case tarred of         Left (_,s,_)  -> do             hPutStrLn stderr s@@ -143,6 +145,7 @@    -- RSS generation help    writeFile "title" (arch_pkgname pkgbuild ++ "-" ++ (render . disp $ arch_pkgver pkgbuild))    writeFile "desc"  (show $ arch_pkgdesc pkgbuild)+   writeFile "link"  (show $ arch_url pkgbuild)  ------------------------------------------------------------------------ @@ -156,7 +159,7 @@ getMD5 pkg@(PkgBuild { arch_source = ArchList [url] }) = do    hPutStrLn stderr $ "Fetching " ++ url    hFlush stderr-   eres <- readProcess "wget" [url] []+   eres <- myReadProcess "wget" [url] []    case eres of        Left (_,s,_) -> do             hPutStrLn stderr s@@ -189,44 +192,45 @@ -- corePackages :: [Dependency] corePackages =-    [Dependency "ALUT"             (ThisVersion (Version  [2,1,0,0] []))-    ,Dependency "Cabal"            (ThisVersion (Version  [1,2,3,0] []))-    ,Dependency "GLUT"             (ThisVersion (Version  [2,1,1,1] []))-    ,Dependency "HUnit"            (ThisVersion (Version  [1,2,0,0] []))-    ,Dependency "OpenAL"           (ThisVersion (Version  [1,3,1,1] []))-    ,Dependency "QuickCheck"       (ThisVersion (Version  [1,1,0,0] []))-    ,Dependency "array"            (ThisVersion (Version  [0,1,0,0] []))-    ,Dependency "base"             (ThisVersion (Version  [3,0,1,0] []))-    ,Dependency "bytestring"       (ThisVersion (Version  [0,9,0,1] []))-    ,Dependency "cgi"              (ThisVersion (Version  [3001,1,5,1] []))-    ,Dependency "ghc"              (AnyVersion)-    ,Dependency "containers"       (ThisVersion (Version  [0,1,0,1] []))-    ,Dependency "directory"        (ThisVersion (Version  [1,0,0,0] []))-    ,Dependency "fgl"              (ThisVersion (Version  [5,4,1,1] []))-    ,Dependency "filepath"         (ThisVersion (Version  [1,1,0,0] []))-    ,Dependency "haskell-src"      (ThisVersion (Version  [1,0,1,1] []))-    ,Dependency "haskell98"        (ThisVersion (Version  [1,0,1,0] []))-    ,Dependency "hpc"              (ThisVersion (Version  [0,5,0,0] []))-    ,Dependency "html"             (ThisVersion (Version  [1,0,1,1] []))-    ,Dependency "mtl"              (ThisVersion (Version  [1,1,0,1] []))-    ,Dependency "network"          (ThisVersion (Version  [2,1,0,0] []))-    ,Dependency "old-locale"       (ThisVersion (Version  [1,0,0,0] []))-    ,Dependency "old-time"         (ThisVersion (Version  [1,0,0,0] []))-    ,Dependency "packedstring"     (ThisVersion (Version  [0,1,0,0] []))-    ,Dependency "parallel"         (ThisVersion (Version  [1,0,0,0] []))-    ,Dependency "parsec"           (ThisVersion (Version  [2,1,0,0] []))-    ,Dependency "pretty"           (ThisVersion (Version  [1,0,0,0] []))-    ,Dependency "process"          (ThisVersion (Version  [1,0,0,0] []))-    ,Dependency "random"           (ThisVersion (Version  [1,0,0,0] []))-    ,Dependency "readline"         (ThisVersion (Version  [1,0,1,0] []))-    ,Dependency "regex-base"       (ThisVersion (Version  [0,72,0,1] []))-    ,Dependency "regex-compat"     (ThisVersion (Version  [0,71,0,1] []))-    ,Dependency "regex-posix"      (ThisVersion (Version  [0,72,0,2] []))-    ,Dependency "stm"              (ThisVersion (Version  [2,1,1,0] []))-    ,Dependency "template-haskell" (ThisVersion (Version  [2,2,0,0] []))-    ,Dependency "time"             (ThisVersion (Version  [1,1,2,0] []))-    ,Dependency "unix"             (ThisVersion (Version  [2,3,0,0] []))-    ,Dependency "xhtml"            (ThisVersion (Version  [3000,0,2,1] []))+    [Dependency (PackageName "ALUT")             (ThisVersion (Version  [2,1,0,0] []))+    ,Dependency (PackageName "Cabal")            (ThisVersion (Version  [1,2,3,0] []))+    ,Dependency (PackageName "GLUT")             (ThisVersion (Version  [2,1,1,1] []))+    ,Dependency (PackageName "HUnit")            (ThisVersion (Version  [1,2,0,0] []))+    ,Dependency (PackageName "OpenAL")           (ThisVersion (Version  [1,3,1,1] []))+    ,Dependency (PackageName "QuickCheck")       (ThisVersion (Version  [1,1,0,0] []))+    ,Dependency (PackageName "array")            (ThisVersion (Version  [0,1,0,0] []))+    ,Dependency (PackageName "base")             (ThisVersion (Version  [3,0,1,0] []))+    ,Dependency (PackageName "bytestring")       (ThisVersion (Version  [0,9,0,1] []))+    ,Dependency (PackageName "cgi")              (ThisVersion (Version  [3001,1,5,1] []))+    ,Dependency (PackageName "ghc")              (AnyVersion)+    ,Dependency (PackageName "ghc-prim")         (AnyVersion)+    ,Dependency (PackageName "containers")       (ThisVersion (Version  [0,1,0,1] []))+    ,Dependency (PackageName "directory")        (ThisVersion (Version  [1,0,0,0] []))+    ,Dependency (PackageName "fgl")              (ThisVersion (Version  [5,4,1,1] []))+    ,Dependency (PackageName "filepath")         (ThisVersion (Version  [1,1,0,0] []))+    ,Dependency (PackageName "haskell-src")      (ThisVersion (Version  [1,0,1,1] []))+    ,Dependency (PackageName "haskell98")        (ThisVersion (Version  [1,0,1,0] []))+    ,Dependency (PackageName "hpc")              (ThisVersion (Version  [0,5,0,0] []))+    ,Dependency (PackageName "html")             (ThisVersion (Version  [1,0,1,1] []))+    ,Dependency (PackageName "mtl")              (ThisVersion (Version  [1,1,0,1] []))+    ,Dependency (PackageName "network")          (ThisVersion (Version  [2,1,0,0] []))+    ,Dependency (PackageName "old-locale")       (ThisVersion (Version  [1,0,0,0] []))+    ,Dependency (PackageName "old-time")         (ThisVersion (Version  [1,0,0,0] []))+    ,Dependency (PackageName "packedstring")     (ThisVersion (Version  [0,1,0,0] []))+    ,Dependency (PackageName "parallel")         (ThisVersion (Version  [1,0,0,0] []))+    ,Dependency (PackageName "parsec")           (ThisVersion (Version  [2,1,0,0] []))+    ,Dependency (PackageName "pretty")           (ThisVersion (Version  [1,0,0,0] []))+    ,Dependency (PackageName "process")          (ThisVersion (Version  [1,0,0,0] []))+    ,Dependency (PackageName "random")           (ThisVersion (Version  [1,0,0,0] []))+    ,Dependency (PackageName "readline")         (ThisVersion (Version  [1,0,1,0] []))+    ,Dependency (PackageName "regex-base")       (ThisVersion (Version  [0,72,0,1] []))+    ,Dependency (PackageName "regex-compat")     (ThisVersion (Version  [0,71,0,1] []))+    ,Dependency (PackageName "regex-posix")      (ThisVersion (Version  [0,72,0,2] []))+    ,Dependency (PackageName "stm")              (ThisVersion (Version  [2,1,1,0] []))+    ,Dependency (PackageName "template-haskell") (ThisVersion (Version  [2,2,0,0] []))+    ,Dependency (PackageName "time")             (ThisVersion (Version  [1,1,2,0] []))+    ,Dependency (PackageName "unix")             (ThisVersion (Version  [2,3,0,0] []))+    ,Dependency (PackageName "xhtml")            (ThisVersion (Version  [3000,0,2,1] []))  {- ALUT-2.1.0.0        cgi-3001.1.5.1       network-2.1.0.0       regex-base-0.72.0.1@@ -265,7 +269,7 @@    -- download url to .cabal    case epath of        Left url -> do-        eres <- readProcess "wget" [url] []+        eres <- myReadProcess "wget" [url] []         case eres of            Left (_,s,_) -> do                 hPutStrLn stderr s@@ -340,6 +344,7 @@         ,("csound64",   "csound5")         ,("uuid",       "e2fsprogs")         ,("doublefann", "fann")+        ,("ev",         "libev")          ,("pthread",     "")         ,("m",          "")@@ -367,7 +372,7 @@ -- gtk2hsIfy :: [Dependency] -> [Dependency] gtk2hsIfy [] = []-gtk2hsIfy xs | foundSome = Dependency "gtk2hs" AnyVersion :+gtk2hsIfy xs | foundSome = Dependency (PackageName "gtk2hs") AnyVersion :                            [ v | v@(Dependency n _) <- xs                            , n `notElem` gtkLibs ]              | otherwise = xs@@ -377,12 +382,13 @@         unDep (Dependency n _) = n  -gtkLibs :: [String]-gtkLibs =+gtkLibs :: [PackageName]+gtkLibs = map PackageName     ["glade" -- guihaskell     ,"cairo"     ,"glib"     ,"gtk"+    ,"gtkglext"     ,"mozembed"     ,"svgcairo"     ]@@ -446,7 +452,7 @@   (emptyPkgBuild     { arch_pkgname = archName     , arch_pkgver  = vers-    , arch_url     = "http://hackage.haskell.org/cgi-bin/hackage-scripts/package/"++name+    , arch_url     = "http://hackage.haskell.org/cgi-bin/hackage-scripts/package/"++display name  --       else homepage cabal     , arch_pkgdesc = synopsis cabal     , arch_license =@@ -463,7 +469,7 @@     , arch_depends =         (if not (isLibrary)             then-                ArchList [ArchDep (Dependency "gmp" AnyVersion)]+                ArchList [ArchDep (Dependency (PackageName "gmp") AnyVersion)]                                 `mappend`                                 anyClibraries             else ArchList [])@@ -479,10 +485,10 @@     -- Hackage programs only need their own source to build     , arch_source  = ArchList . return $           "http://hackage.haskell.org/packages/archive/"-       ++ (name </> display vers </> name <-> display vers <.> "tar.gz")+       ++ (display name </> display vers </> display name <-> display vers <.> "tar.gz")      , arch_build =-        [ "cd $startdir/src/" </> name <-> display vers+        [ "cd $startdir/src/" </> display name <-> display vers         , "runhaskell Setup configure --prefix=/usr || return 1"         , "runhaskell Setup build                   || return 1"         ] ++@@ -514,7 +520,7 @@     )    where-    archName = map toLower (if isLibrary then "haskell-" ++ name else name)+    archName = map toLower (if isLibrary then "haskell-" ++ display name else display name)     name     = pkgName (package cabal)     vers     = pkgVersion (package cabal) @@ -526,21 +532,21 @@      -- TODO: use a real package spec to compute these names      -- based on what is in Arch.      ArchList-         [ ArchDep (Dependency (+         [ ArchDep (Dependency (PackageName $                if d `notElem` shouldNotBeLibraries-                    then "haskell" <-> map toLower d else d) v)-         | Dependency d v <- gtk2hsIfy (buildDepends cabal) ]+                    then "haskell" <-> map toLower (display d) else display d) v)+         | Dependency (PackageName d) v <- gtk2hsIfy (buildDepends cabal) ]         `mappend`      anyClibraries      hasLibrary = isJust (library cabal)     isLibrary  = isJust (library cabal) -- && null (executables cabal)-                    && map toLower name `notElem` shouldNotBeLibraries+                    && map toLower (display name) `notElem` shouldNotBeLibraries      anyClibraries | null libs = ArchList []                   | otherwise = ArchList libs        where-         libs = [ ArchDep (Dependency s AnyVersion) | s <- nub (findCLibs cabal) ]+         libs = [ ArchDep (Dependency (PackageName s) AnyVersion) | s <- nub (findCLibs cabal) ]  -- -- post install, and pre-remove hooks to run, to sync up ghc-pkg@@ -676,7 +682,7 @@ emptyPkgBuild :: PkgBuild emptyPkgBuild =   PkgBuild-    { arch_pkgname     = pkgName (package e)+    { arch_pkgname     = display $ pkgName (package e)     , arch_pkgver      = pkgVersion (package e)     , arch_pkgrel      = 1     , arch_pkgdesc     = synopsis e@@ -686,8 +692,8 @@      -- everything depends on ghc and Cabal 1.4.x     , arch_makedepends = ArchList-        [(ArchDep (Dependency "ghc"    AnyVersion))-        ,(ArchDep (Dependency "haskell-cabal" AnyVersion))+        [(ArchDep (Dependency (PackageName "ghc")    AnyVersion))+        ,(ArchDep (Dependency (PackageName "haskell-cabal") AnyVersion)) --        ,(ArchDep (Dependency "haskell-cabal" (LaterVersion (Version  [1,4,0,0] []))))         ] @@ -718,7 +724,7 @@  instance Text ArchDep where   disp (ArchDep (Dependency name ver)) =-    text name <> mydisp ver+    text (display name) <> mydisp ver    where      --  >= (greater than or equal to), <= (less than or      --  equal to), = (equal to), > (greater than), or <@@ -831,12 +837,12 @@ -- -- Strict process reading  ---readProcess :: FilePath                              -- ^ command to run+myReadProcess :: FilePath                              -- ^ command to run             -> [String]                              -- ^ any arguments             -> String                                -- ^ standard input             -> IO (Either (ExitCode,String,String) String)  -- ^ either the stdout, or an exitcode and any output -readProcess cmd args input = C.handle (return . handler) $ do+myReadProcess cmd args input = C.handle (return . handler) $ do     (inh,outh,errh,pid) <- runInteractiveProcess cmd args Nothing Nothing      output  <- hGetContents outh
cabal2arch.cabal view
@@ -1,5 +1,5 @@ name:               cabal2arch-version:            0.4+version:            0.4.2 homepage:           http://code.haskell.org/~dons/code/cabal2arch synopsis:           Create Arch Linux packages from Cabal packages description:        Create Arch Linux packages from Cabal packages@@ -20,7 +20,7 @@      if flag(small_base)         build-depends:      -            base >= 3,+            base == 3.*,             pretty,             process,             directory,@@ -31,7 +31,7 @@             base < 3      build-depends:-            Cabal,+            Cabal   == 1.6.*,             pureMD5 >= 0.2.1,             filepath