debian-build 0.6.0.0 → 0.7.0.0
raw patch · 4 files changed
+30/−12 lines, 4 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
+ Debian.Package.Build.Command: aptGetBuildDepends :: FilePath -> Trace ()
+ Debian.Package.Build.Command: build :: FilePath -> [BuildMode] -> [String] -> Trace ()
Files
- debian-build.cabal +1/−1
- mains/odebuild.hs +4/−5
- src/Debian/Package/Build.hs +1/−1
- src/Debian/Package/Build/Command.hs +24/−5
debian-build.cabal view
@@ -1,5 +1,5 @@ name: debian-build-version: 0.6.0.0+version: 0.7.0.0 synopsis: Debian package build sequence tools description: This package provides build sequence functions for debian package, and includes on-the-fly
mains/odebuild.hs view
@@ -1,12 +1,12 @@ import System.Environment (getProgName, getArgs)-import System.FilePath ((</>)) import Control.Monad (void, when) import Data.List (stripPrefix) import Debian.Package.Data (Source, Hackage, isBinaryPackage)+import qualified Debian.Package.Build.Command as Command import Debian.Package.Build- (BuildMode (Dep, Indep, Src), buildPackage, debi', pwd,- defaultConfig, Build, runBuild, liftTrace, dpkgParseControl, modeListFromControl,+ (BuildMode (Dep, Indep, Src), debi', pwd,+ defaultConfig, Build, runBuild, liftTrace, removeBuildDir, findDebianChanges, genSources, removeGhcLibrary) @@ -50,8 +50,7 @@ build :: Maybe String -> [String] -> Build (Source, Maybe Hackage) build mayRev opts = do ((_, dir), src, mayH) <- source mayRev- ctrl <- liftTrace . dpkgParseControl $ dir </> "debian" </> "control"- liftTrace $ sequence_ [buildPackage dir m opts | m <- modeListFromControl ctrl]+ liftTrace $ Command.build dir [] opts return (src, mayH) install :: Maybe String -> [String] -> Build ()
src/Debian/Package/Build.hs view
@@ -17,5 +17,5 @@ import Debian.Package.Build.Monad import Debian.Package.Build.Command-import Debian.Package.Build.Cabal hiding (hackageLongName, hackageName, hackageVersion)+import Debian.Package.Build.Cabal hiding (hackageLongName, hackageName, hackageVersion, build) import Debian.Package.Build.Sequence
src/Debian/Package/Build/Command.hs view
@@ -20,11 +20,11 @@ , cabalDebian', cabalDebian, packageVersion , dpkgParseChangeLog, dpkgParseControl - , debuild, debi', debi+ , debuild, debi', debi, aptGetBuildDepends , BuildMode (..) - , modeListFromControl, buildPackage, rebuild+ , modeListFromControl, buildPackage, build, rebuild , removeGhcLibrary @@ -36,9 +36,9 @@ import Data.Maybe (fromMaybe) import Control.Arrow ((&&&)) import Control.Applicative ((<$>))-import Control.Monad (unless)+import Control.Monad (when, unless) import Control.Monad.Trans.Class (lift)-import System.FilePath ((<.>), takeDirectory)+import System.FilePath ((</>), (<.>), takeDirectory) import qualified System.Directory as D import qualified System.Process as Process import System.Exit (ExitCode (..))@@ -210,6 +210,11 @@ debi :: FilePath -> [String] -> Trace () debi dir = withCurrentDir' dir . debi' +-- | Install build-depends+aptGetBuildDepends :: FilePath -> Trace ()+aptGetBuildDepends dir =+ withCurrentDir' dir $ rawSystem' ["sudo", "apt-get-build-depends"]+ -- | Build mode, all or binary only data BuildMode = All | Bin | Src | Dep | Indep deriving (Eq, Show)@@ -221,6 +226,9 @@ : [ Dep | not . null $ controlArch c ] ++ [ Indep | not . null $ controlAll c ] +hasBinaryBuildMode :: BuildMode -> Bool+hasBinaryBuildMode = not . (== Src)+ -- | Build package using /debuild/ under specified directory buildPackage :: FilePath -> BuildMode -> [String] -> Trace () buildPackage dir mode opts = do@@ -231,11 +239,22 @@ modeOpt Indep = ["-A"] debuild dir $ ["-uc", "-us"] ++ modeOpt mode ++ opts +-- | Build package with specified mode list.+-- Calculated mode list from control is used when not specified build modes.+build :: FilePath -> [BuildMode] -> [String] -> Trace ()+build dir modes' opts = do+ modes <-+ if null modes'+ then modeListFromControl <$> dpkgParseControl (dir </> "debian" </> "control")+ else return modes'+ when (any hasBinaryBuildMode modes) $ aptGetBuildDepends dir+ sequence_ [buildPackage dir m opts | m <- modes]+ -- | Clean and build package using /debuild/ under specified directory rebuild :: FilePath -> [BuildMode] -> [String] -> Trace () rebuild dir modes opts = do debuild dir ["clean"]- sequence_ [ buildPackage dir mode opts | mode <- modes ]+ build dir modes opts -- | Remove ghc library packages under specified source package directory removeGhcLibrary :: BuildMode -> Hackage -> Trace ()