packages feed

cabal-rpm 0.9.4 → 0.9.5

raw patch · 10 files changed

+58/−30 lines, 10 files

Files

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