packages feed

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 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 ()