packages feed

cblrepo 0.6.3 → 0.7.0

raw patch · 5 files changed

+69/−28 lines, 5 filesdep ~Cabaldep ~basedep ~bytestring

Dependency ranges changed: Cabal, base, bytestring, directory, json, unix

Files

cblrepo.cabal view
@@ -1,5 +1,5 @@ name: cblrepo-version: 0.6.3+version: 0.7.0 cabal-version: >= 1.6 license: OtherLicense license-file: LICENSE-2.0@@ -25,10 +25,10 @@     other-modules: Util.Misc PkgDB Add BumpPkgs BuildPkgs Sync         Versions Updates ListPkgs Urls PkgBuild Util.Translation         OldPkgDB ConvertDB Remove-    build-depends: base ==4.5.*, cmdargs ==0.10.*, filepath ==1.3.*,-        directory ==1.1.*, Cabal ==1.14.*, json ==0.5.*,-        bytestring ==0.9.*, tar ==0.4.*, zlib ==0.5.*, mtl >=2.0 && <2.2,-        process ==1.1.*, Unixutils ==1.50.*, unix ==2.5.*,+    build-depends: base ==4.6.*, cmdargs ==0.10.*, filepath ==1.3.*,+        directory ==1.2.*, Cabal ==1.16.*, json ==0.7.*,+        bytestring ==0.10.*, tar ==0.4.*, zlib ==0.5.*, mtl >=2.0 && <2.2,+        process ==1.1.*, Unixutils ==1.50.*, unix ==2.6.*,         ansi-wl-pprint ==0.6.*  Source-Repository head
src/PkgBuild.hs view
@@ -26,6 +26,7 @@ import Data.Maybe import Distribution.Text import System.Directory+import System.FilePath import System.Exit import System.IO import System.Unix.Directory@@ -58,7 +59,8 @@             hClose hPKGBUILD             maybe (return ()) (\ pfn -> (runErrorT $ applyPatch "PKGBUILD" pfn) >> return ()) (apPkgbuildPatch archPkgWHash)             when (apHasLibrary archPkgWHash) $ do-                hInstall <- openFile (apPkgName archPkgWHash ++ ".install") WriteMode+                hInstall <- openFile (apPkgName archPkgWHash <.> "install") WriteMode                 let archInstall = aiFromAP archPkgWHash                 hPutDoc hInstall $ pretty archInstall                 hClose hInstall+                maybe (return ()) (\ pfn -> (runErrorT $ applyPatch (apPkgName archPkgWHash <.> "install") pfn)>> return ()) (apInstallPatch archPkgWHash)
src/PkgDB.hs view
@@ -41,28 +41,53 @@     | RepoPkg { version :: V.Version, deps :: [P.Dependency], release :: String }     deriving (Eq, Show) -type CblPkg = (String, Pkg)+data CblPkg = CP String Pkg+    deriving (Eq, Show)+ type CblDB = [CblPkg] +instance Ord CblPkg where+    compare+        (CP n1 GhcPkg { version = v1 })+        (CP n2 GhcPkg { version = v2 }) =+            compare (n1, v1) (n2, v2)+    compare (CP _ GhcPkg {}) _ = LT+    compare _ (CP _ GhcPkg {}) = GT++    compare+        (CP n1 DistroPkg { version = v1, release = r1 })+        (CP n2 DistroPkg { version = v2, release = r2 }) =+            compare (n1, v1, r1) (n2, v2, r2)+    compare (CP _ DistroPkg {}) _ = LT+    compare _ (CP _ DistroPkg {}) = GT++    compare+        (CP n1 RepoPkg { version = v1, release = r1 })+        (CP n2 RepoPkg { version = v2, release = r2 }) =+            compare (n1, v1, r1) (n2, v2, r2)+ -- {{{1 packages pkgName :: CblPkg -> String-pkgName (n, _) = n+pkgName (CP n _) = n +pkgPkg :: CblPkg -> Pkg+pkgPkg (CP _ p) = p+ pkgVersion :: CblPkg -> V.Version-pkgVersion (_, p) = version p+pkgVersion (CP _ p) = version p  pkgDeps :: CblPkg -> [P.Dependency]-pkgDeps (_, RepoPkg { deps = d}) = d+pkgDeps (CP _ RepoPkg { deps = d}) = d pkgDeps _ = []  pkgRelease :: CblPkg -> String-pkgRelease (_, GhcPkg {}) = "xx"-pkgRelease (_, DistroPkg { release = r }) = r-pkgRelease (_, RepoPkg { release = r }) = r+pkgRelease (CP _ GhcPkg {}) = "xx"+pkgRelease (CP _ DistroPkg { release = r }) = r+pkgRelease (CP _ RepoPkg { release = r }) = r -createGhcPkg n v = (n, GhcPkg v)-createDistroPkg n v r = (n, DistroPkg v r)-createRepoPkg n v d r = (n, RepoPkg v d r)+createGhcPkg n v = CP n (GhcPkg v)+createDistroPkg n v r = CP n (DistroPkg v r)+createRepoPkg n v d r = CP n (RepoPkg v d r)  createCblPkg :: PackageDescription -> CblPkg createCblPkg pd = createRepoPkg name version deps "1"@@ -74,13 +99,13 @@ getDependencyOn :: String -> CblPkg -> Maybe P.Dependency getDependencyOn n p = find (\ d -> _depName d == n) (pkgDeps p) -isGhcPkg (_, GhcPkg {}) = True+isGhcPkg (CP _ GhcPkg {}) = True isGhcPkg _ = False -isDistroPkg (_, DistroPkg {}) = True+isDistroPkg (CP _ DistroPkg {}) = True isDistroPkg _ = False -isRepoPkg (_, RepoPkg {}) = True+isRepoPkg (CP _ RepoPkg {}) = True isRepoPkg _ = False  isBasePkg :: CblPkg -> Bool@@ -93,11 +118,11 @@ addPkg :: CblDB -> String -> Pkg -> CblDB addPkg db n p = nubBy cmp newdb     where-        cmp (n1, _) (n2, _) = n1 == n2-        newdb = (n, p):db+        cmp (CP n1 _) (CP n2 _) = n1 == n2+        newdb = (CP n p):db  addPkg2 :: CblDB -> CblPkg -> CblDB-addPkg2 db (n, p) = addPkg db n p+addPkg2 db (CP n p) = addPkg db n p  addGhcPkg :: CblDB -> String -> V.Version -> CblDB addGhcPkg db n v = addPkg2 db (createGhcPkg n v)@@ -110,14 +135,17 @@  bumpRelease :: CblDB -> String -> CblDB bumpRelease db n = let-        doBump (n', p@RepoPkg { release = r }) = (n', p { release = nr })+        doBump (CP n' p@RepoPkg { release = r }) = CP n' (p { release = nr })             where                 nr = show $ (read r) + 1         doBump p = p     in maybe db (addPkg2 db . doBump) (lookupPkg db n)  lookupPkg :: CblDB -> String -> Maybe CblPkg-lookupPkg db n = maybe Nothing (\ p -> Just (n, p)) (lookup n db)+lookupPkg [] _ = Nothing+lookupPkg (p:db) n+    | n == pkgName p = Just p+    | otherwise = lookupPkg db n  lookupDependants db n = filter (/= n) $ map pkgName $ filter (\ p -> doesDependOn p n) db     where@@ -151,9 +179,16 @@ saveDb :: CblDB -> FilePath -> IO () saveDb db fp = writeFile fp s     where-        s = unlines $ map encode db+        s = unlines $ map encode $ sort db  -- {{{1 JSON instances+instance JSON CblPkg where+    showJSON (CP n p) = showJSON (n, p)++    readJSON object = do+        (n,p) <- readJSON object+        return (CP n p)+ instance JSON V.Version where     showJSON v = makeObj [ ("Version", showJSON $ display v) ] 
src/Util/Misc.hs view
@@ -65,7 +65,7 @@ progName = "cblrepo" dbName = progName ++ ".db" -ghcVersion = (Version [7,4,2] [])+ghcVersion = (Version [7,6,1] []) ghcVersionDep = "ghc=" ++ display ghcVersion ++ "-1"  -- {{{1 command line argument type@@ -208,7 +208,7 @@         then True         else case DB.lookupPkg db dN of             Nothing -> False-            Just (_, p) -> withinRange (DB.version p) dVR+            Just (DB.CP _ p) -> withinRange (DB.version p) dVR  -- {{{1 Command type type Command a = ReaderT Cmds IO a
src/Util/Translation.hs view
@@ -38,7 +38,6 @@ import System.Directory import System.Exit import System.FilePath-import System.IO import System.Process import System.Unix.Directory import Text.PrettyPrint.ANSI.Leijen hiding((</>))@@ -81,6 +80,7 @@     , apLicenseFile :: Maybe FilePath     , apCabalPatch :: Maybe FilePath     , apPkgbuildPatch :: Maybe FilePath+    , apInstallPatch :: Maybe FilePath     , apBuildPatch :: Maybe FilePath     -- shell bits     , apShHkgName :: ShVar String@@ -105,6 +105,7 @@     , apLicenseFile = Nothing     , apCabalPatch = Nothing     , apPkgbuildPatch = Nothing+    , apInstallPatch = Nothing     , apBuildPatch = Nothing     , apShHkgName = ShVar "_hkgname" ""     , apShPkgName = ShVar "pkgname" ""@@ -339,16 +340,19 @@         fi tF fF v = if v then tF else fF         cabalPatchFn = patchDir </> hkgName <.> "cabal"         pkgbuildPatchFn = patchDir </> hkgName <.> "pkgbuild"+        installPatchFn = patchDir </> hkgName <.> "install"         buildPatchFn = patchDir </> hkgName <.> "source"     in do         cabalPatch <- doesFileExist cabalPatchFn >>= fi (liftM Just $ canonicalizePath cabalPatchFn) (return Nothing)         pkgBuildPatch <- doesFileExist pkgbuildPatchFn >>= fi (liftM Just $ canonicalizePath pkgbuildPatchFn) (return Nothing)+        installPatch <- doesFileExist installPatchFn >>= fi (liftM Just $ canonicalizePath installPatchFn) (return Nothing)         buildPatch <- doesFileExist buildPatchFn >>= fi (liftM Just $ canonicalizePath buildPatchFn) (return Nothing)         let sources' = shVarAppendValue sources                 (ShArray $ catMaybes [maybe Nothing (const $ Just "cabal.patch") cabalPatch, maybe Nothing (const $ Just "source.patch") buildPatch])         return ap             { apCabalPatch = cabalPatch             , apPkgbuildPatch = pkgBuildPatch+            , apInstallPatch = installPatch             , apBuildPatch = buildPatch             , apShSource = sources'             }