packages feed

cabal-rpm 0.11.1 → 0.11.2

raw patch · 7 files changed

+39/−18 lines, 7 files

Files

ChangeLog view
@@ -1,3 +1,9 @@+* 0.11.2 (2017-07-31)+- fix cblrpm update --subpackage+- fix rpm installation when no sudo (#49)+- fix handling of no exposed modules (#50)+- fix license handling for selfdep binlib (#51)+ * 0.11.1 (2017-03-13) - support building meta (compat) packages - invocation of optional stackage-query to update to LTS now works
README.md view
@@ -1,5 +1,7 @@ [![Build Status](https://travis-ci.org/juhp/cabal-rpm.png)](https://travis-ci.org/juhp/cabal-rpm) [![Hackage](http://img.shields.io/hackage/v/cabal-rpm.png)](http://hackage.haskell.org/package/cabal-rpm)+[![Stackage LTS](http://stackage.org/package/cabal-rpm/badge/lts)](http://stackage.org/lts/package/cabal-rpm)+[![Stackage Nightly](http://stackage.org/package/cabal-rpm/badge/nightly)](http://stackage.org/nightly/package/cabal-rpm)  # cabal-rpm 
cabal-rpm.cabal view
@@ -1,5 +1,5 @@ Name:                cabal-rpm-Version:             0.11.1+Version:             0.11.2 Synopsis:            RPM packaging tool for Haskell Cabal-based packages Description:     This package provides a RPM packaging tool for Haskell Cabal-based packages.@@ -24,7 +24,7 @@ Extra-source-files:  README.md ChangeLog man/cabal-rpm.1.md man/cabal-rpm.1 Cabal-version:       >=1.6 Tested-with:         GHC == 7.0.4, GHC == 7.4.2, GHC == 7.6.3, GHC == 7.8.4,-                     GHC == 7.10.3, GHC == 8.0.1+                     GHC == 7.10.3, GHC == 8.0.2  source-repository head   type:     git
src/Commands/Spec.hs view
@@ -20,8 +20,8 @@   createSpecFile, createSpecFile_   ) where -import Dependencies (notInstalled, missingPackages, packageDependencies,-                     showDep, testsuiteDependencies)+import Dependencies (notInstalled, packageDependencies, showDep,+                     subPackages, testsuiteDependencies) import Distro (Distro(..), detectDistro) import Options (RpmFlags (..)) import PackageUtils (copyTarball, getPkgName, isScmDir, latestPackage,@@ -178,14 +178,15 @@   let pkgver = if hasLib then "%{pkgver}" else pkg_name ++ "-%{version}"    -- FIXME sort by build order-  missing <- if rpmSubpackage flags then missingPackages pkgDesc else return []-  subpackages <-+  -- FIXME recursive missingdeps+  missing <- if rpmSubpackage flags then subPackages (if specAlreadyExists then mspec else Nothing) pkgDesc else return []+  subpkgs <-     mapM ((getsubpkgMacro >=>            \(m,pv) -> put ("%global" +-+ m +-+ pv) >> return ("%{" ++ m ++ "}"))            . stripPkgDevel) missing-  let hasSubpkgs = notNull subpackages+  let hasSubpkgs = notNull subpkgs   when hasSubpkgs $ do-    put $ "%global subpkgs" +-+ unwords subpackages+    put $ "%global subpkgs" +-+ unwords subpkgs     putNewline    unless (null testsuiteDeps) $ do@@ -218,7 +219,7 @@   putHdr "License" $ (showLicense distro . license) pkgDesc   putHdr "Url" $ "https://hackage.haskell.org/package" </> pkg_name   putHdr "Source0" $ sourceUrl pkgver-  mapM_ (\ (n,p) -> putHdr ("Source" ++ n) (sourceUrl p)) $ number subpackages+  mapM_ (\ (n,p) -> putHdr ("Source" ++ n) (sourceUrl p)) $ number subpkgs   when (revision /= "0") $     if distro == SUSE     then putHdr "Source1" $ "https://hackage.haskell.org/package" </> pkgver </> "revision" </> revision ++ ".cabal#" </> pkg_name ++ ".cabal"@@ -296,7 +297,7 @@     put "%global main_version %{version}"     putNewline     put "%if %{defined ghclibdir}"-    mapM_ (\p -> put $ "%ghc_lib_subpackage" +-+ p) subpackages+    mapM_ (\p -> put $ "%ghc_lib_subpackage" +-+ p) subpkgs     put "%endif"     putNewline     put "%global version %{main_version}"@@ -304,7 +305,7 @@    put "%prep"   put $ "%setup -q" ++ (if pkgname /= name then " -n" +-+ pkgver else "") +-+-    (if hasSubpkgs then unwords (map (("-a" ++) . fst) $ number subpackages) else  "")+    (if hasSubpkgs then unwords (map (("-a" ++) . fst) $ number subpkgs) else  "")   when (distro == SUSE && revision /= "0") $     put $ "cp -p %{SOURCE1}" +-+ pkg_name ++ ".cabal"   sectionNewline@@ -316,7 +317,9 @@     let cabalFlags = [ "-f" ++ (if b then "" else "-") ++ n | (FlagName n, b) <- rpmConfigurationsFlags flags ]     put $ "%define cabal_configure_options " ++ unwords cabalFlags   let pkgType = if hasLib then "lib" else "bin"-  put $ "%ghc_" ++ pkgType ++ "_build"+  if hasLib && not exposesModules+    then put $ "%ghc_" ++ pkgType ++ "_build_without_haddock"+    else put $ "%ghc_" ++ pkgType ++ "_build"   sectionNewline    put "%install"@@ -351,8 +354,8 @@   when (hasLib && not exposesModules) $     put "mv %{buildroot}%{_ghcdocdir}{,-devel}" -  when selfdep $-    put "mv %{buildroot}%{_ghcdocdir}/{,ghc-}%{name}"+  when (selfdep && binlib) $+    put "mv %{buildroot}%{_ghclicensedir}/{,ghc-}%{name}"    sectionNewline 
src/Dependencies.hs view
@@ -21,6 +21,7 @@   notInstalled,   packageDependencies,   showDep,+  subPackages,   testsuiteDependencies   ) where @@ -33,7 +34,7 @@ #endif import Control.Monad (filterM, when) -import Data.List (delete, nub)+import Data.List (delete, isSuffixOf, nub) import Data.Maybe (catMaybes, isNothing)  import Distribution.Package  (Dependency (..), PackageName (..))@@ -168,3 +169,11 @@     singleLine :: String -> String     singleLine "" = ""     singleLine s = (head . lines) s++subPackages :: Maybe FilePath -> PackageDescription -> IO [String]+subPackages mspec pkgDesc = do+  develSubpkgs <- filter ("-devel" `isSuffixOf`) . lines <$> maybe (return "") (\ f -> cmd "rpmspec" ["-q", "--qf", "%{name}\n", f]) mspec+  let self = packageName $ package pkgDesc+      subpkgs = delete (showDep self) develSubpkgs+  missing <- missingPackages pkgDesc+  return $ nub (subpkgs ++ missing)
src/PackageUtils.hs view
@@ -28,6 +28,7 @@   pkgInstall,   prepare,   removePrefix,+  removeSuffix,   repoquery,   rpmbuild,   rpmInstall,@@ -368,7 +369,7 @@       else do         createDirectoryIfMissing True dir         copyFile (head tarballs) dest-        -- cabal fetch creates tarballs with mode 0600+        -- cabal-1.18 fetch creates tarballs with mode 0600         stat <- getFileStatus dest         when (fileMode stat /= 0o100644) $           setFileMode dest 0o0644@@ -457,7 +458,7 @@       let exec = if hard then cmd_ else trySystem       fedora <- cmd "rpm" ["--eval", "%fedora"]       let nogpgcheck = ["--nogpgcheck" | fedora `elem` ["22", "23"]]-      exec (fromMaybe pkginstaller maybeSudo) $ maybe [] (const pkginstaller) maybeSudo : "install" : args ++ nogpgcheck+      exec (fromMaybe pkginstaller maybeSudo) $ maybe [] (const [pkginstaller]) maybeSudo ++ ("install" : args ++ nogpgcheck)         where           showPkg :: String -> String           showPkg p = if '(' `elem` p then show p else p
src/SysCmd.hs view
@@ -86,7 +86,7 @@   requireProgram c   (ret, out, err) <- readProcessWithExitCode c args ""   case ret of-    ExitSuccess -> return $removeTrailingNewline out+    ExitSuccess -> return $ removeTrailingNewline out     ExitFailure n -> die ("\"" ++ c +-+ unwords args ++ "\"" +-+ "failed with status" +-+ show n ++ "\n" ++ err)  -- hide stdout