debian-build 0.2.0.0 → 0.2.1.0
raw patch · 3 files changed
+31/−11 lines, 3 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
+ Debian.Package.Build.Command: packageVersion :: String -> Trace DebianVersion
+ Debian.Package.Data.Source: isNative' :: DebianVersion -> Bool
+ Debian.Package.Data.Source: origVersion' :: DebianVersion -> Version
+ Debian.Package.Data.Source: readDebianVersion :: String -> Maybe DebianVersion
Files
- debian-build.cabal +1/−1
- src/Debian/Package/Build/Command.hs +23/−8
- src/Debian/Package/Data/Source.hs +7/−2
debian-build.cabal view
@@ -1,5 +1,5 @@ name: debian-build-version: 0.2.0.0+version: 0.2.1.0 synopsis: Debian package build sequence tools description: This package provides functions to build debian package from source tree.
src/Debian/Package/Build/Command.hs view
@@ -17,7 +17,7 @@ , unpackInDir, unpack, packInDir', packInDir - , cabalDebian', cabalDebian, dpkgParseChangeLog+ , cabalDebian', cabalDebian, packageVersion, dpkgParseChangeLog , debuild, debi @@ -34,13 +34,15 @@ import Data.Maybe (fromMaybe) import Control.Arrow ((&&&))+import Control.Applicative ((<$>)) import Control.Monad.Trans.Class (lift) import System.FilePath ((<.>), takeDirectory) import qualified System.Directory as D import qualified System.Process as Process import System.Exit (ExitCode (..))+import Data.Version (Version, versionBranch, showVersion) -import Debian.Package.Data (Hackage, ghcLibraryBinPackages, ghcLibraryPackages, Source, parseChangeLog)+import Debian.Package.Data (Hackage, ghcLibraryBinPackages, ghcLibraryPackages, Source, parseChangeLog, DebianVersion, readDebianVersion, origVersion') import Debian.Package.Build.Monad (Trace, traceCommand, traceOut, bracketTrace_) @@ -144,17 +146,30 @@ -- | Just call /cabal-debian/ command cabalDebian' :: Maybe String -> Trace ()-cabalDebian' mayRev =+cabalDebian' mayRev = do+ ver <- origVersion' <$> packageVersion "cabal-debian"+ case versionBranch ver of+ (x:_) | x <= 1 -> fail $ "Version of cabal-debian is TOO OLD: " ++ showVersion ver +++ " - Under version 1 generates wrong dependencies."+ | otherwise -> return ()+ [] -> return ()+ rawSystem'- [ "cabal-debian"- , "--debianize" {- for cabal-debian 1.25 -}- , "--quilt"- , "--revision=" ++ fromMaybe "1~autogen1" mayRev- ]+ [ "cabal-debian"+ , "--quilt"+ , "--revision=" ++ fromMaybe "1~autogen1" mayRev+ ] -- | Call /cabal-debian/ command under specified directory cabalDebian :: FilePath -> Maybe String -> Trace () cabalDebian dir = withCurrentDir' dir . cabalDebian'++-- | Query debian package version+packageVersion :: String -> Trace DebianVersion+packageVersion pkg = do+ vstr <- readProcess' ["dpkg-query", "--show", "--showformat=${Version}", pkg]+ maybe (fail $ "readDebianVersion: failed: " ++ vstr) return+ $ readDebianVersion vstr -- | Read debian changelog file and try to parse into 'Source' dpkgParseChangeLog :: FilePath -> Trace Source
src/Debian/Package/Data/Source.hs view
@@ -9,7 +9,7 @@ -- -- This module provides data types of debian source package meta information. module Debian.Package.Data.Source- ( DebianVersion, versionFromHackageVersion+ ( DebianVersion, versionFromHackageVersion, readDebianVersion, origVersion', isNative' , Source, mkSource, sourceName, version, origVersion, isNative @@ -77,11 +77,13 @@ d Nothing = debianNativeVersion [v0, v1, v2, v3] Nothing (v0, v1, v2, v3) = hackageVersionNumbers hv +-- | Version without debian revision origVersion' :: DebianVersion -> Version origVersion' = d where d (DebianNative v _) = v d (DebianNonNative v _) = v +-- | Is debian-native or not isNative' :: DebianVersion -> Bool isNative' = d where d (DebianNative _ _) = True@@ -124,6 +126,9 @@ readMaybe' :: Read a => String -> Maybe a readMaybe' = fmap fst . listToMaybe . filter ((== "") . snd) . reads +-- | Try to read debian package version+readDebianVersion :: String -> Maybe DebianVersion+readDebianVersion = readMaybe' -- | Debian source package type, name with version data Source = Source String DebianVersion deriving Show@@ -179,7 +184,7 @@ mayDebSrc = lookup' "Source:" mayDebVer = do dverS <- lookup' "Version:"- readMaybe' dverS+ readDebianVersion dverS -- | Debian source package type for Haskell