cabal-rpm 0.9.4 → 0.9.5
raw patch · 10 files changed
+58/−30 lines, 10 files
Files
- ChangeLog +7/−0
- cabal-rpm.cabal +2/−2
- src/Commands/Depends.hs +1/−1
- src/Commands/Install.hs +1/−1
- src/Commands/RpmBuild.hs +2/−6
- src/Commands/Spec.hs +5/−1
- src/Commands/Update.hs +1/−1
- src/Dependencies.hs +8/−5
- src/PackageUtils.hs +26/−8
- src/SysCmd.hs +5/−5
ChangeLog view
@@ -1,3 +1,10 @@+* 0.9.5 (2015-04-20)+- fix for dnf repoquery+- create SOURCES/ for tarball+- fixes for Cabal-1.22+- nogpgcheck for Fedora 22++- warn about hidden backup spec files+ * 0.9.4 (2015-02-17) - use dnf if installed instead of yum for install and repoquery - update now only commits changes and new source if git origin is ssh
cabal-rpm.cabal view
@@ -1,5 +1,5 @@ Name: cabal-rpm-Version: 0.9.4+Version: 0.9.5 Synopsis: RPM packaging tool for Haskell Cabal-based packages Description: This package provides a RPM packaging tool for Haskell Cabal-based packages.@@ -17,7 +17,7 @@ Author: Jens Petersen <juhp@community.haskell.org>, Bryan O'Sullivan <bos@serpentine.com> Maintainer: Jens Petersen <petersen@fedoraproject.org> Copyright: 2007-2008 Bryan O'Sullivan <bos@serpentine.com>,- 2012-2014 Jens Petersen <petersen@fedoraproject.org>+ 2012-2015 Jens Petersen <petersen@fedoraproject.org> Category: Distribution Build-type: Simple Extra-source-files: README.md ChangeLog man/cblrpm.1.md man/cblrpm.1
src/Commands/Depends.hs view
@@ -1,6 +1,6 @@ -- | -- Module : Commands.Depends--- Copyright : (C) 2014 Jens Petersen+-- Copyright : (C) 2014-2015 Jens Petersen -- -- Maintainer : Jens Petersen <petersen@fedoraproject.org> -- Stability : alpha
src/Commands/Install.hs view
@@ -1,6 +1,6 @@ -- | -- Module : Commands.Install--- Copyright : (C) 2012-2014 Jens Petersen+-- Copyright : (C) 2012-2015 Jens Petersen -- -- Maintainer : Jens Petersen <petersen@fedoraproject.org> -- Stability : alpha
src/Commands/RpmBuild.hs view
@@ -1,7 +1,7 @@ -- | -- Module : Commands.RpmBuild -- Copyright : (C) 2007-2008 Bryan O'Sullivan--- (C) 2012-2014 Jens Petersen+-- (C) 2012-2015 Jens Petersen -- -- Maintainer : Jens Petersen <petersen@fedoraproject.org> -- Stability : alpha@@ -33,8 +33,7 @@ --import Distribution.Version (VersionRange, foldVersionRange') -import System.Directory (createDirectoryIfMissing, doesDirectoryExist,- doesFileExist)+import System.Directory (doesFileExist) import System.FilePath (takeDirectory, (</>)) -- autoreconf :: Verbosity -> PackageDescription -> IO ()@@ -75,9 +74,6 @@ when scmRepo $ error "No tarball for source repo" - destExists <- doesDirectoryExist srcdir- unless destExists $- createDirectoryIfMissing True srcdir copyTarball name version False srcdir rpmbuild stage False Nothing specFile return specFile
src/Commands/Spec.hs view
@@ -3,7 +3,7 @@ -- | -- Module : Commands.Spec -- Copyright : (C) 2007-2008 Bryan O'Sullivan--- (C) 2012-2014 Jens Petersen+-- (C) 2012-2015 Jens Petersen -- -- Maintainer : Jens Petersen <petersen@fedoraproject.org> -- Stability : alpha@@ -391,6 +391,10 @@ #if defined(MIN_VERSION_Cabal) && MIN_VERSION_Cabal(1,20,0) showLicense _ BSD2 = "BSD" showLicense _ (MPL ver) = "MPLv" ++ showVersion ver+#endif+#if defined(MIN_VERSION_Cabal) && MIN_VERSION_Cabal(1,22,0)+showLicense _ ISC = "ISC"+showLicense _ UnspecifiedLicense = "Unspecified license!" #endif -- from http://stackoverflow.com/questions/930675/functional-paragraphs
src/Commands/Update.hs view
@@ -1,6 +1,6 @@ -- | -- Module : Commands.Update--- Copyright : (C) 2014 Jens Petersen+-- Copyright : (C) 2014-2015 Jens Petersen -- -- Maintainer : Jens Petersen <petersen@fedoraproject.org> -- Stability : alpha
src/Dependencies.hs view
@@ -1,6 +1,6 @@ -- | -- Module : Dependencies--- Copyright : (C) 2012-2014 Jens Petersen+-- Copyright : (C) 2012-2015 Jens Petersen -- -- Maintainer : Jens Petersen <petersen@fedoraproject.org> -- Stability : alpha@@ -67,7 +67,7 @@ clibs = concatMap extraLibs buildinfo return (deps, tools, nub clibs, pkgcfgs, selfdep) -data RepoQueryType = Rpm | Repoquery deriving Eq+data QueryBackend = Rpm | Repoquery deriving Eq resolveLib :: String -> IO (Maybe String) resolveLib lib = do@@ -82,10 +82,13 @@ rpmqueryFile Repoquery lib_path -- use repoquery or rpm -q to query which package provides file-rpmqueryFile :: RepoQueryType -> FilePath -> IO (Maybe String)-rpmqueryFile qt file = do+rpmqueryFile :: QueryBackend -> FilePath -> IO (Maybe String)+rpmqueryFile backend file = do+ -- FIXME dnf repoquery does not support -f ! let args = ["-q", "--qf=%{name}", "-f"]- out <- if qt == Rpm then cmd "rpm" (args ++ [file]) else repoquery args file+ out <- if backend == Rpm+ then cmd "rpm" (args ++ [file])+ else repoquery args file let pkgs = nub $ words out -- EL5 repoquery can return "No package provides <file>" case pkgs of
src/PackageUtils.hs view
@@ -1,6 +1,6 @@ -- | -- Module : PackageUtils--- Copyright : (C) 2013-2014 Jens Petersen+-- Copyright : (C) 2013-2015 Jens Petersen -- -- Maintainer : Jens Petersen <petersen@fedoraproject.org> -- Stability : alpha@@ -53,20 +53,28 @@ import Distribution.PackageDescription.Configuration (finalizePackageDescription) import Distribution.PackageDescription.Parse (readPackageDescription) -import Distribution.Simple.Compiler (Compiler (..))+import Distribution.Simple.Compiler (+#if defined(MIN_VERSION_Cabal) && MIN_VERSION_Cabal(1,22,0)+ compilerInfo+#else+ Compiler (..)+#endif+ ) import Distribution.Simple.Configure ( #if defined(MIN_VERSION_Cabal) && MIN_VERSION_Cabal(1,18,0)- configCompilerEx)+ configCompilerEx #else- configCompiler)+ configCompiler #endif+ ) import Distribution.Simple.Program (defaultProgramConfiguration) import Distribution.Simple.Utils (die, findPackageDesc) import Distribution.System (Platform (..), buildArch, buildOS) -import System.Directory (copyFile, doesDirectoryExist, doesFileExist,- getCurrentDirectory, setCurrentDirectory)+import System.Directory (copyFile, createDirectoryIfMissing,doesDirectoryExist,+ doesFileExist, getCurrentDirectory,+ setCurrentDirectory) import System.Environment (getEnv) import System.FilePath ((</>), (<.>), takeBaseName, takeFileName) import System.Posix.Files (accessTime, fileMode, getFileStatus,@@ -95,7 +103,12 @@ #endif (Just GHC) Nothing Nothing defaultProgramConfiguration verbose case finalizePackageDescription (rpmConfigurationsFlags opts)- (const True) (Platform buildArch buildOS) (compilerId compiler)+ (const True) (Platform buildArch buildOS)+#if defined(MIN_VERSION_Cabal) && MIN_VERSION_Cabal(1,22,0)+ (compilerInfo compiler)+#else+ (compilerId compiler)+#endif [] genPkgDesc of Left e -> die $ "finalize failed: " ++ show e Right (pd, _) -> return pd@@ -245,7 +258,11 @@ checkForSpecFile :: Maybe String -> IO (Maybe FilePath) checkForSpecFile Nothing = do- specs <- filter (\ f -> head f /= '.') <$> filesWithExtension "." ".spec"+ -- emacs makes ".#*.spec" tmp files+ allSpecs <- filesWithExtension "." ".spec"+ let specs = filter (\ f -> head f /= '.') allSpecs+ when (specs /= allSpecs) $+ putStrLn "Warning: dir contains a hidden spec file" case specs of [one] -> return $ Just one _ -> return Nothing@@ -299,6 +316,7 @@ cmd_ "cabal" ["fetch", "-v0", "--no-dependencies", n ++ "-" ++ v] copyTarball n v True dir else do+ createDirectoryIfMissing True dir copyFile (head tarballs) dest -- cabal fetch creates tarballs with mode 0600 stat <- getFileStatus dest
src/SysCmd.hs view
@@ -1,6 +1,6 @@ -- | -- Module : SysCmd--- Copyright : (C) 2013-2014 Jens Petersen+-- Copyright : (C) 2013-2015 Jens Petersen -- -- Maintainer : Jens Petersen <petersen@fedoraproject.org> -- Stability : alpha@@ -33,7 +33,7 @@ import Control.Monad (unless, void, when) import Data.Functor ((<$>)) import Data.List ((\\))-import Data.Maybe (fromMaybe, isJust, isNothing, maybeToList)+import Data.Maybe (fromMaybe, isJust, isNothing) import Distribution.Simple.Utils (die, warn, findProgramLocation) import Distribution.Verbosity (normal)@@ -132,8 +132,8 @@ repoquery :: [String] -> String -> IO String repoquery args key = do havednf <- optionalProgram "dnf"- let (prog, subcmd) = if havednf then ("dnf", Just "repoquery") else ("repoquery", Nothing)- cmd prog (maybeToList subcmd ++ args ++ [key])+ let (prog, subcmd) = if havednf then ("dnf", ["repoquery", "-q"]) else ("repoquery", [])+ cmd prog (subcmd ++ args ++ [key]) pkgInstall :: [String] -> Bool -> IO () pkgInstall [] _ = return ()@@ -162,7 +162,7 @@ putStrLn $ "Running:" +-+ fromMaybe "" maybeSudo +-+ pkginstaller +-+ "install" +-+ unwords args let exec = if hard then cmd_ else trySystem fedora <- cmd "rpm" ["--eval", "%fedora"]- let nogpgcheck = ["--nogpgcheck" | fedora `elem` ["21", "22"]]+ let nogpgcheck = ["--nogpgcheck" | fedora `elem` ["22", "23"]] exec (fromMaybe pkginstaller maybeSudo) $ maybe [] (const pkginstaller) maybeSudo : "install" : args ++ nogpgcheck showPkg :: String -> String