rpmbuild-order 0.4.11 → 0.4.12
raw patch · 5 files changed
+37/−67 lines, 5 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
Files
- ChangeLog.md +5/−0
- README.md +3/−1
- rpmbuild-order.1 +0/−43
- rpmbuild-order.cabal +3/−4
- src/Distribution/RPM/Build/ProvReqs.hs +26/−19
ChangeLog.md view
@@ -1,3 +1,8 @@+# 0.4.12 (2024-08-04)+- fix ordering of rust crates and rubygems+ by mapping their dynamic BRs to package names+- drop the manpage generated from --help+ # 0.4.11 (2024-02-18) - ProvReqs: new module for rpmspec dependency functions - ProvReqs: generate pkgconfig and cmake provides from %files (#4)
README.md view
@@ -12,10 +12,12 @@ ## Usage `$ rpmbuild-order --version`+ ```-0.4.11+0.4.12 ``` `$ rpmbuild-order --help`+ ``` Order packages by build dependencies
− rpmbuild-order.1
@@ -1,43 +0,0 @@-.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.49.3.-.TH RPMBUILD-ORDER "1" "February 2024" "rpmbuild-order 0.4.11" "User Commands"-.SH NAME-rpmbuild-order \- manual page for rpmbuild-order 0.4.11-.SH SYNOPSIS-.B rpmbuild-order-[\fI\,--version\/\fR] \fI\,COMMAND\/\fR-.SH DESCRIPTION-Order packages by build dependencies-.IP-Sort package sources (spec files) in build dependency order-.SS "Available options:"-.TP-\fB\-h\fR,\-\-help-Show this help text-.TP-\fB\-\-version\fR-Show version-.SS "Available commands:"-.TP-sort-sort packages-.TP-deps-sort dependencies in neighbouring package dirs-.TP-rdeps-sort dependents in neighbouring package dirs-.TP-layers-ordered output of dependency layers-.TP-chain-ordered output suitable for a chain\-build-.TP-leaves-List of the top leaves of package graph-.TP-roots-List lowest root packages-.TP-render-Show graph with graphviz
rpmbuild-order.cabal view
@@ -1,5 +1,5 @@ Name: rpmbuild-order-Version: 0.4.11+Version: 0.4.12 License: BSD3 License-File: LICENSE Author: Jens Petersen <petersen@redhat.com>,@@ -26,12 +26,11 @@ Since version 0.4, a library API is provided. Tested-with: GHC == 8.0.2, GHC == 8.2.2, GHC == 8.4.4, GHC == 8.6.5, GHC == 8.8.4, GHC == 8.10.7, GHC == 9.0.2, GHC == 9.2.8,- GHC == 9.4.8, GHC == 9.6.4, GHC == 9.8.1+ GHC == 9.4.8, GHC == 9.6.6, GHC == 9.8.2 Cabal-Version: 1.18 Build-Type: Simple Extra-doc-files: README.md TODO ChangeLog.md-Extra-source-files: rpmbuild-order.1- test/pkgs/A/A.spec+Extra-source-files: test/pkgs/A/A.spec test/pkgs/B/B.spec test/pkgs/C/C.spec test/pkgs/D1.0/D1.0.spec
src/Distribution/RPM/Build/ProvReqs.hs view
@@ -15,7 +15,8 @@ import Data.Maybe (mapMaybe) import SimpleCmd (cmdFull, cmdLines, cmdStdErr, egrep_, error', grep, warning, (+-+))-import System.Directory (doesFileExist)+import SimpleCmd.Git (isGitDir)+import System.Directory (doesFileExist, getCurrentDirectory) import System.Exit (exitFailure) import System.FilePath import System.IO.Extra (withTempDir)@@ -29,9 +30,8 @@ rpmspecProvidesBuildRequires :: Bool -- ^ lenient (allow failure) -> [String] -- ^ RPM opts -> FilePath -- ^ spec file- -> IO (Maybe ([String], -- ^ Provides- [String] -- ^ BuildRequires- ))+ -- ghc 8.10 haddock cannot annotate inside type+ -> IO (Maybe ([String], [String])) -- ^ (Provs,BRs) rpmspecProvidesBuildRequires lenient rpmopts spec = do dynbr <- generateBuildRequires spec if dynbr@@ -41,7 +41,7 @@ dynprovs <- dynProvides prs <- rpmspecProvides lenient rpmopts spec return $ dynprovs ++ prs- return $ Just (provs, brs)+ return $ Just (provs, mapMaybe simplifyDep brs) else do mcontent <- rpmspecParse case mcontent of@@ -111,21 +111,28 @@ _ -> Just dep rpmspecDynBuildRequires :: FilePath -> IO [String]-rpmspecDynBuildRequires spec = do+rpmspecDynBuildRequires spec = withTempDir $ \tmpdir -> do- (out,err) <- cmdStdErr "rpmbuild" ["-br", "--nodeps", "--define", "_srcrpmdir" +-+ tmpdir, spec]- -- Wrote: /current/dir/SRPMS/name-version-release.buildreqs.nosrc.rpm- let errmsg =- "failed to generate srpm for dynamic buildrequires for" +-+ spec ++- "\n\n" ++ err- case words out of- [] -> error' errmsg- ws -> do- let srpm = last ws- exists <- doesFileExist srpm- if exists- then cmdLines "rpm" ["-qp", "--requires", last ws]- else error' errmsg+ sourceopt <- do+ isgit <- isGitDir "."+ if isgit+ then do+ cwd <- getCurrentDirectory+ return ["--define", "_sourcedir" +-+ cwd]+ else return []+ (out,err) <- cmdStdErr "rpmbuild" $ ["-br", "--nodeps", "--define", "_srcrpmdir" +-+ tmpdir, spec] ++ sourceopt+ -- Wrote: /current/dir/SRPMS/name-version-release.buildreqs.nosrc.rpm+ let errmsg =+ "failed to generate srpm for dynamic buildrequires for" +-+ spec +++ "\n\n" ++ err+ case words out of+ [] -> error' errmsg+ ws -> do+ let srpm = last ws+ exists <- doesFileExist srpm+ if exists+ then cmdLines "rpm" ["-qp", "--requires", last ws]+ else error' errmsg rpmspecProvides :: Bool -> [String] -> FilePath -> IO [String] rpmspecProvides lenient rpmopts spec = do