cabal2arch 0.7 → 0.7.2
raw patch · 2 files changed
+54/−12 lines, 2 files
Files
- Main.hs +53/−11
- cabal2arch.cabal +1/−1
Main.hs view
@@ -235,6 +235,8 @@ ,Dependency (PackageName "dph-seq" ) (ThisVersion (Version [ 0,3 ] [] )) ,Dependency (PackageName "ghc") (AnyVersion) ,Dependency (PackageName "ghc-prim") (AnyVersion)+ ,Dependency (PackageName "integer") (AnyVersion)+ ,Dependency (PackageName "integer-gmp") (AnyVersion) -- Official Provides: http://repos.archlinux.org/wsvn/packages/ghc/repos/extra-x86_64/PKGBUILD -- ,Dependency (PackageName "array") (ThisVersion (Version [0,3,0,0] []))@@ -333,12 +335,17 @@ findCLibs :: PackageDescription -> [String] findCLibs (PackageDescription { library = lib, executables = exe }) = -- warn for packages not in list.- map (canonicalise . map toLower) (some ++ rest)+ filter (not . null) $ map (canonicalise . map toLower) (some ++ rest) where some = concatMap (extraLibs.buildInfo) exe rest = case lib of Nothing -> []- Just l -> extraLibs (libBuildInfo l)+ Just l -> extraLibs (libBuildInfo l) +++ map (\(Dependency (PackageName n) _) ->+ if '-' `elem` n + then reverse . drop 1 . dropWhile (/= '-') . reverse $ n+ else n)+ (pkgconfigDepends (libBuildInfo l)) canonicalise k = case M.lookup k translationTable of Nothing -> trace ("WARNING: this library depends on a C library we do not know the pacman name for (" ++ map toLower k ++ ") . Check the C library names in the generated PKGBUILD File") $ map toLower k@@ -385,13 +392,13 @@ ,("doublefann", "fann") ,("ev", "libev") - ,("pthread", "")+ ,("pthread", "") ,("m", "")- ,("gl", "")- ,("glu", "")- ,("db_cxx", "")- ,("db_cxx", "")- ,("xdamage", "")+ ,("gl", "")+ ,("glu", "")+ ,("db_cxx", "")+ ,("db_cxx", "")+ ,("xdamage", "") ,("icui18n", "icu") ,("icuuc", "icu")@@ -402,6 +409,25 @@ ,("ffi", "libffi") ,("ogg", "libogg") ,("theora", "libtheora")+++ -- subsumed into glib++ ,("gobject", "")+ ,("gio", "")+ ,("gthread", "")+ ,("gnome-vfs-module", "")+ ,("gstreamer-audio", "")+ ,("gstreamer-base", "")+ ,("gstreamer-controller", "")+ ,("gstreamer-dataprotocol", "")+ ,("gstreamer-net", "")++ ,("webkit", "libwebkit")+ ,("gtk+", "gtkglext")++ ,("gstreamer", "gstreamer0.10")+ ,("gstreamer-plugins-base", "gstreamer0.10-base") ] -- atlas @@ -444,6 +470,9 @@ -- translate some library dependencies to gtk names -- gtk2hsIfy :: [Dependency] -> [Dependency]+gtk2hsIfy = id++{- gtk2hsIfy [] = [] gtk2hsIfy xs | foundSome = Dependency (PackageName "gtk2hs") AnyVersion : [ v | v@(Dependency n _) <- xs@@ -453,10 +482,13 @@ where foundSome = not . null $ filter (`elem` gtkLibs) (map unDep xs) unDep (Dependency n _) = n-+-} +-- TODO: will need to remove this: gtkLibs :: [PackageName] gtkLibs = map PackageName+ []+ {- ["glade" -- guihaskell ,"cairo" ,"glib"@@ -467,7 +499,9 @@ ,"mozembed" ,"svgcairo" ]+ -} + ------------------------------------------------------------------------ -- Parsing and pretty printing: @@ -482,6 +516,8 @@ , text "# Note: we list all package dependencies." , text "# Your package tool should understand 'provides' syntax" , text "#"+ , text "# Keep up to date on http://archhaskell.wordpress.com/"+ , text "#" , text "pkgname" <=> text (arch_pkgname pkg) , text "pkgrel"@@ -626,9 +662,15 @@ `mappend` anyClibraries `mappend`- ArchList [ ArchDep d | b <- allBuildInfo cabal+ ArchList [ ArchDep d' | b <- allBuildInfo cabal , d@(Dependency n _) <- buildTools b- , n /= PackageName "hsc2hs" ]+ , n /= PackageName "hsc2hs"+ , let d' | n `elem` gtkTools+ = Dependency (PackageName "gtk2hs-buildtools") AnyVersion+ | otherwise = d+ ]++ gtkTools = map PackageName ["gtk2hsTypeGen" , "gtk2hsHookGenerator", "gtk2hsC2hs"] -- TODO: need a 'nub' in here.
cabal2arch.cabal view
@@ -1,5 +1,5 @@ name: cabal2arch-version: 0.7+version: 0.7.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