packages feed

cblrepo 0.16.0 → 0.17.0

raw patch · 7 files changed

+71/−54 lines, 7 files

Files

cblrepo.cabal view
@@ -1,5 +1,5 @@ name: cblrepo-version: 0.16.0+version: 0.17.0 cabal-version: >= 1.6 license: OtherLicense license-file: LICENSE-2.0
src/Add.hs view
@@ -38,7 +38,7 @@ -- {{{1 types data PkgType     = GhcType String Version-    | DistroType String Version Int+    | DistroType String Version Int Int     | RepoType GenericPackageDescription     deriving (Eq, Show) @@ -53,7 +53,7 @@     idxPkgs <- asks $ cmdAddCbls . optsCmd     --     ghcPkgs <- asks  $ map (uncurry GhcType) . cmdAddGhcPkgs . optsCmd-    distroPkgs <- asks $ map (\ (n, v, r) -> DistroType n v r) . cmdAddDistroPkgs . optsCmd+    distroPkgs <- asks $ map (\ (n, v, x, r) -> DistroType n v x r) . cmdAddDistroPkgs . optsCmd     genFilePkgs <- mapM (runCabalParseWithTempDir . fmap snd . Cbl.readFromFile . fst) filePkgs     genIdxPkgs <- mapM ((runCabalParseWithTempDir . fmap snd . Cbl.readFromIdx) . (\ (a, b, _) -> (a, b))) idxPkgs     genPkgs <- liftM (map RepoType) $ exitOnAnyLefts (genFilePkgs ++ genIdxPkgs)@@ -79,7 +79,7 @@         Cbl.runCabalParse cpe f  getName (GhcType n _) = n-getName (DistroType n _ _) = n+getName (DistroType n _ _ _) = n getName (RepoType gpd) = pkgNameStr $ packageDescription gpd  -- {{{1 addPkgs@@ -96,7 +96,7 @@  canBeAdded :: Version -> CblDB -> [(String, FlagAssignment)] -> PkgType -> Bool canBeAdded _ db _ (GhcType n v) = null $ checkDependants db n v-canBeAdded _ db _ (DistroType n v _) = null $ checkDependants db n v+canBeAdded _ db _ (DistroType n v _ _) = null $ checkDependants db n v canBeAdded ghcVer db flags pkg@(RepoType gpd) =  finable && depsOK     where         fa = fromMaybe [] $ lookup (getName pkg) flags@@ -106,7 +106,7 @@         depsOK = null $ checkDependants db n v  pkgTypeToCblPkg _ _ _ (GhcType n v) = createGhcPkg n v-pkgTypeToCblPkg _ _ _ (DistroType n v r) = createDistroPkg n v r+pkgTypeToCblPkg _ _ _ (DistroType n v x r) = createDistroPkg n v x r pkgTypeToCblPkg ghcVer db flags pkg@(RepoType gpd) =     let fa = fromMaybe [] $ lookup (getName pkg) flags     in fromJust $ case finalizePkg ghcVer db fa gpd of@@ -126,7 +126,7 @@     in if null d         then Nothing         else Just ((n, v), d)-findBreaking db (DistroType n v _) = let+findBreaking db (DistroType n v _ _) = let         d = checkDependants db n v     in if null d         then Nothing
src/ConvertDB.hs view
@@ -37,7 +37,7 @@     where         doConvert o             | ODB.isGhcPkg o = NDB.createGhcPkg n v-            | ODB.isDistroPkg o = NDB.createDistroPkg n v r+            | ODB.isDistroPkg o = NDB.createDistroPkg n v x r             | ODB.isRepoPkg o = NDB.createRepoPkg n v x d f r             | otherwise = error ""             where@@ -46,4 +46,4 @@                 x = 0                 d = ODB.pkgDeps o                 f = ODB.pkgFlags o-                r = read $ ODB.pkgRelease o+                r = ODB.pkgRelease o
src/ListPkgs.hs view
@@ -48,7 +48,7 @@ printCblPkgShort p =     putStrLn $ pkgName p ++ "  " ++ v ++ "-" ++ r ++ showFlagsIfPresent p         where-            v = display (pkgVersion p) ++ if isRepoPkg p then ("_" ++ show (pkgXRev p)) else ""+            v = display (pkgVersion p) ++ if (not $ isGhcPkg p) then ("_" ++ show (pkgXRev p)) else ""             r = if isGhcPkg p then "xx" else show (pkgRelease p)             showFlagsIfPresent _p                 | [] <- pkgFlags _p = ""
src/OldPkgDB.hs view
@@ -55,6 +55,7 @@ import Control.Monad import Data.List import Data.Maybe+import Data.Monoid import Distribution.PackageDescription import System.IO.Error import qualified Distribution.Package as P@@ -68,35 +69,42 @@  -- {{{1 types data Pkg-    = GhcPkg { version :: V.Version }-    | DistroPkg { version :: V.Version, release :: String }-    | RepoPkg { version :: V.Version, xrev :: Int, deps :: [P.Dependency], flags :: FlagAssignment, release :: String }+    = GhcPkg GhcPkgD+    | DistroPkg DistroPkgD+    | RepoPkg RepoPkgD     deriving (Eq, Show) +data GhcPkgD = GhcPkgD { gpVersion :: V.Version }+    deriving (Eq, Show)++data DistroPkgD = DistroPkgD { dpVersion :: V.Version , dpRelease :: Int }+    deriving (Eq, Show)++data RepoPkgD = RepoPkgD+    { rpVersion :: V.Version+    , rpXrev :: Int+    , rpDeps :: [P.Dependency]+    , rpFlags :: FlagAssignment, rpRelease :: Int+    } deriving (Eq, Show)+ 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 n1 (GhcPkg d1)) (CP n2 (GhcPkg d2)) =+            compare (n1, gpVersion d1) (n2, gpVersion d2)     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 n1 (DistroPkg d1)) (CP n2 (DistroPkg d2)) =+            compare (n1, dpVersion d1, dpRelease d1) (n2, dpVersion d2, dpRelease d2)     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)+    compare (CP n1 (RepoPkg d1)) (CP n2 (RepoPkg d2)) =+            compare (n1, rpVersion d1, rpRelease d1) (n2, rpVersion d2, rpRelease d2)  -- {{{1 packages pkgName :: CblPkg -> String@@ -106,36 +114,38 @@ pkgPkg (CP _ p) = p  pkgVersion :: CblPkg -> V.Version-pkgVersion (CP _ p) = version p+pkgVersion (CP _ (GhcPkg d)) = gpVersion d+pkgVersion (CP _ (DistroPkg d)) = dpVersion d+pkgVersion (CP _ (RepoPkg d)) = rpVersion d  pkgXRev :: CblPkg -> Int-pkgXRev (CP _ RepoPkg { xrev = x }) = x+pkgXRev (CP _ (RepoPkg d)) = rpXrev d pkgXRev _ = 0  pkgDeps :: CblPkg -> [P.Dependency]-pkgDeps (CP _ RepoPkg { deps = d}) = d+pkgDeps (CP _ (RepoPkg d)) = rpDeps d pkgDeps _ = []  pkgFlags :: CblPkg -> FlagAssignment-pkgFlags (CP _ RepoPkg { flags = fa}) = fa+pkgFlags (CP _ (RepoPkg d)) = rpFlags d pkgFlags _ = [] -pkgRelease :: CblPkg -> String-pkgRelease (CP _ GhcPkg {}) = "xx"-pkgRelease (CP _ DistroPkg { release = r }) = r-pkgRelease (CP _ RepoPkg { release = r }) = r+pkgRelease :: CblPkg -> Int+pkgRelease (CP _ (GhcPkg _)) = (-1)+pkgRelease (CP _ (DistroPkg d)) = dpRelease d+pkgRelease (CP _ (RepoPkg d)) = rpRelease d  createGhcPkg :: String -> V.Version -> CblPkg-createGhcPkg n v = CP n (GhcPkg v)+createGhcPkg n v = CP n (GhcPkg $ GhcPkgD v) -createDistroPkg :: String -> V.Version -> String -> CblPkg-createDistroPkg n v r = CP n (DistroPkg v r)+createDistroPkg :: String -> V.Version -> Int -> CblPkg+createDistroPkg n v r = CP n (DistroPkg (DistroPkgD v r)) -createRepoPkg :: String -> V.Version -> Int -> [P.Dependency] -> FlagAssignment -> String -> CblPkg-createRepoPkg n v x d fa r = CP n (RepoPkg v x d fa r)+createRepoPkg :: String -> V.Version -> Int -> [P.Dependency] -> FlagAssignment -> Int -> CblPkg+createRepoPkg n v x d fa r = CP n (RepoPkg $ RepoPkgD v x d fa r)  createCblPkg :: PackageDescription -> FlagAssignment -> CblPkg-createCblPkg pd fa = createRepoPkg name version xrev deps fa "1"+createCblPkg pd fa = createRepoPkg name version xrev deps fa 1     where         name = Util.Dist.pkgNameStr pd         version = P.pkgVersion $ package pd@@ -176,7 +186,7 @@ addGhcPkg :: CblDB -> String -> V.Version -> CblDB addGhcPkg db n v = addPkg2 db (createGhcPkg n v) -addDistroPkg :: CblDB -> String -> V.Version -> String -> CblDB+addDistroPkg :: CblDB -> String -> V.Version -> Int -> CblDB addDistroPkg db n v r = addPkg2 db (createDistroPkg n v r)  delPkg :: CblDB -> String -> CblDB@@ -185,9 +195,7 @@ bumpRelease :: CblDB -> String -> CblDB bumpRelease db n = maybe db (addPkg2 db . doBump) (lookupPkg db n)     where-        doBump (CP n' p@RepoPkg { release = r }) = CP n' (p { release = nr })-            where-                nr = show $ read r + (1 :: Int)+        doBump (CP n' (RepoPkg d)) = CP n' (RepoPkg d { rpRelease = (rpRelease d + 1) })         doBump p = p  lookupPkg :: CblDB -> String -> Maybe CblPkg@@ -222,7 +230,7 @@     in (dN == name) ||             (case lookupPkg db dN of                 Nothing -> False-                Just (CP _ p) -> V.withinRange (version p) dVR)+                Just p -> V.withinRange (pkgVersion p) dVR)  readDb :: FilePath -> IO CblDB readDb fp = handle@@ -245,6 +253,9 @@ $(deriveJSON defaultOptions { sumEncoding = ObjectWithSingleField, allNullaryToStringTag = False } ''V.VersionRange) $(deriveJSON defaultOptions { sumEncoding = ObjectWithSingleField, allNullaryToStringTag = False } ''FlagName) $(deriveJSON defaultOptions { sumEncoding = ObjectWithSingleField, allNullaryToStringTag = False } ''Pkg)+$(deriveJSON defaultOptions { sumEncoding = ObjectWithSingleField, allNullaryToStringTag = False } ''GhcPkgD)+$(deriveJSON defaultOptions { sumEncoding = ObjectWithSingleField, allNullaryToStringTag = False } ''DistroPkgD)+$(deriveJSON defaultOptions { sumEncoding = ObjectWithSingleField, allNullaryToStringTag = False } ''RepoPkgD) $(deriveJSON defaultOptions { sumEncoding = ObjectWithSingleField, allNullaryToStringTag = False } ''CblPkg)  instance ToJSON P.Dependency where
src/PkgDB.hs view
@@ -77,8 +77,11 @@ data GhcPkgD = GhcPkgD { gpVersion :: V.Version }     deriving (Eq, Show) -data DistroPkgD = DistroPkgD { dpVersion :: V.Version , dpRelease :: Int }-    deriving (Eq, Show)+data DistroPkgD = DistroPkgD+    { dpVersion :: V.Version+    , dpXrev :: Int+    , dpRelease :: Int+    } deriving (Eq, Show)  data RepoPkgD = RepoPkgD     { rpVersion :: V.Version@@ -119,6 +122,7 @@ pkgVersion (CP _ (RepoPkg d)) = rpVersion d  pkgXRev :: CblPkg -> Int+pkgXRev (CP _ (DistroPkg d)) = dpXrev d pkgXRev (CP _ (RepoPkg d)) = rpXrev d pkgXRev _ = 0 @@ -138,8 +142,8 @@ createGhcPkg :: String -> V.Version -> CblPkg createGhcPkg n v = CP n (GhcPkg $ GhcPkgD v) -createDistroPkg :: String -> V.Version -> Int -> CblPkg-createDistroPkg n v r = CP n (DistroPkg (DistroPkgD v r))+createDistroPkg :: String -> V.Version -> Int -> Int -> CblPkg+createDistroPkg n v x r = CP n (DistroPkg (DistroPkgD v x r))  createRepoPkg :: String -> V.Version -> Int -> [P.Dependency] -> FlagAssignment -> Int -> CblPkg createRepoPkg n v x d fa r = CP n (RepoPkg $ RepoPkgD v x d fa r)@@ -186,8 +190,8 @@ addGhcPkg :: CblDB -> String -> V.Version -> CblDB addGhcPkg db n v = addPkg2 db (createGhcPkg n v) -addDistroPkg :: CblDB -> String -> V.Version -> Int -> CblDB-addDistroPkg db n v r = addPkg2 db (createDistroPkg n v r)+addDistroPkg :: CblDB -> String -> V.Version -> Int -> Int -> CblDB+addDistroPkg db n v x r = addPkg2 db (createDistroPkg n v x r)  delPkg :: CblDB -> String -> CblDB delPkg db n = filter (\ p -> n /= pkgName p) db
src/Util/Misc.hs view
@@ -100,19 +100,21 @@ ghcPkgArgReader :: ReadM (String, Version) ghcPkgArgReader = pkgNVersionArgReader -distroPkgArgReader :: ReadM (String, Version, Int)+distroPkgArgReader :: ReadM (String, Version, Int, Int) distroPkgArgReader = let         readDistroPkg = do             (n, v) <- readPkgNVersion             char ','+            x <- many (satisfy (/= ','))+            char ','             r <- many (satisfy (/= ','))-            return (n, v, read r)+            return (n, v, read x, read r)      in do         s <- readerAsk         case lastMay (readP_to_S readDistroPkg s) of             Just (r, "") -> return r-            _ -> fail $ "Cannot parse '" ++ s ++ "' as PKG,VER,REL"+            _ -> fail $ "Cannot parse '" ++ s ++ "' as PKG,VER,XREV,REL"  strCblFileArgReader :: ReadM (FilePath, FlagAssignment) strCblFileArgReader = let@@ -154,7 +156,7 @@ data Cmds     = CmdAdd         { patchDir :: FilePath, ghcVer :: Version, cmdAddGhcPkgs :: [(String, Version)]-        , cmdAddDistroPkgs :: [(String, Version, Int)], cmdAddFileCbls :: [(FilePath, FlagAssignment)]+        , cmdAddDistroPkgs :: [(String, Version, Int, Int)], cmdAddFileCbls :: [(FilePath, FlagAssignment)]         , cmdAddCbls :: [(String, Version, FlagAssignment)] }     | CmdBuildPkgs { pkgs :: [String] }     | CmdBumpPkgs { inclusive :: Bool, pkgs :: [String] }