debian-build 0.10.0.0 → 0.10.1.0
raw patch · 3 files changed
+24/−11 lines, 3 filesdep −CabalPVP ok
version bump matches the API change (PVP)
Dependencies removed: Cabal
API changes (from Hackage documentation)
+ Debian.Package.Build.Cabal: fillSetupHs :: FilePath -> IO ()
Files
- debian-build.cabal +1/−2
- src/Debian/Package/Build/Cabal.hs +19/−9
- src/Debian/Package/Build/Sequence.hs +4/−0
debian-build.cabal view
@@ -1,5 +1,5 @@ name: debian-build-version: 0.10.0.0+version: 0.10.1.0 synopsis: Debian package build sequence tools description: This package provides build sequence functions for debian package, and includes on-the-fly@@ -38,7 +38,6 @@ , directory , transformers , split- , Cabal hs-source-dirs: src ghc-options: -Wall
src/Debian/Package/Build/Cabal.hs view
@@ -10,23 +10,22 @@ -- This module wraps cabal library interfaces to keep sparse dependency to it. module Debian.Package.Build.Cabal ( findDescriptionFile+ , fillSetupHs , setupCmd, clean, sdist , configure, build, install, register ) where import Control.Applicative ((<$>))-import Control.Monad (filterM)+import Control.Monad (filterM, when) import Control.Monad.Trans.Class (lift)-import Data.Maybe (listToMaybe)+import Data.Maybe (listToMaybe, isJust) import Data.List (isSuffixOf) import System.FilePath ((</>)) import System.Directory (getDirectoryContents, doesFileExist)-import System.Environment (withArgs) -import Distribution.Simple (defaultMain)--import Debian.Package.Build.Monad (Trace, traceCommand)+import Debian.Package.Build.Monad (Trace)+import Debian.Package.Build.Command (rawSystem') -- | Find .cabal file@@ -40,10 +39,21 @@ where suf = ".cabal" fmap (dir </>) . listToMaybe <$> filterM find fs +findSetupHs :: FilePath -> IO (Maybe FilePath)+findSetupHs dir =+ listToMaybe <$>+ filterM (doesFileExist . (dir </>)) ["Setup.hs", "Setup.lhs"]++fillSetupHs :: FilePath -> IO ()+fillSetupHs dir = do+ found <- isJust <$> findSetupHs dir+ when (not found) . writeFile (dir </> "Setup.hs") $+ unlines ["import Distribution.Simple", "main = defaultMain"]+ setup :: [String] -> Trace ()-setup args = do- traceCommand (unwords $ "<cabal>" : args)- lift $ args `withArgs` defaultMain+setup args = do+ setupHs <- maybe (fail "Setup.hs or Setup.lhs is not found.") id <$> lift (findSetupHs ".")+ rawSystem' "runghc" $ setupHs : args -- | Call cabal library defaultMain like Setup.hs setupCmd :: String -> [String] -> Trace ()
src/Debian/Package/Build/Sequence.hs view
@@ -220,6 +220,10 @@ -> [String] -- ^ Optional arguments of cabal-debian command -> Build ((FilePath, FilePath), HaskellPackage) -- ^ Result package informations of generated source cabalAutogenSources hname mayRev cdArgs = do+ {- Fill Setup.hs to make cabal-debian can detect.+ Newer cabal-debian generates `DEB_SETUP_BIN_NAME = cabal' line,+ which causes home directory access errors at build time. -}+ liftIO . Cabal.fillSetupHs =<< askBaseDir debDir <- cabalAutogenDebianDir mayRev cdArgs pkg <- liftTrace . dpkgParseChangeLog $ debDir </> "changelog" let hpkg = haskellPackageFromPackage hname pkg