packaging_rake_tasks 1.5.1 → 1.5.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 99d2716778ca9f5bae89a0ff9a024ed8287c1892907b1a9bd6b57da3e35be4b6
4
- data.tar.gz: 5c53d47b4e44df0f737f6de4650bed1780f3f4c197514e8ac6dc3bbdcb140080
3
+ metadata.gz: b51c3cd7c0620ced6018b4efe708293083eec2426b21aa1eac2475f3a6375ecd
4
+ data.tar.gz: fbf59488ffb0527701ab74c2ef0e9774d7eccac73de402c846abf4fc8b4c8057
5
5
  SHA512:
6
- metadata.gz: de603feead7958f7ac02a6263a7fe6b8aa36691d948c995398b7327d9f3ed9c753f564409e4e2aaa18df590856f5181e14cb20e07be4468a1763dd4b6a8e74c7
7
- data.tar.gz: 167c400d98bd31136c73dbaf88e62308878e155ca9d43f63a7e8fb6ecbcdec2867e8719a1f05b4cec501b9dfab7ce5af7b6c13f34aeb3bd6837e09545e95143c
6
+ metadata.gz: ff56da780a5b28abc3e2722f414f7f9141f7c9a29d7c73eb631c3113d8c1301a8463c1be80a52f11d7e07ae8535e1a289a514473ff6ac894d66f2cb8968d8bab
7
+ data.tar.gz: 13215646f023675f0157fce2e8cec42c97cd1d3c56c00773f824b17d5ff2a2321926323a4d481ec48ceaca893a50d6dc0e04c7152e637b10ac4e39f9dd43f2bc
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.5.1
1
+ 1.5.3
@@ -20,19 +20,46 @@ require "shellwords"
20
20
  require "open3"
21
21
 
22
22
  namespace :build_dependencies do
23
- def buildrequires
24
- buildrequires = []
23
+ # Read the multi build targets from the "_multibuild" file.
24
+ # @return [Array<String>] list of multi build targets or empty Array if the
25
+ # "_multibuild" file does not exist
26
+ def multibuild_flavors
27
+ flavors = []
25
28
 
26
- config = Packaging::Configuration.instance
27
- Dir.glob("#{config.package_dir}/*.spec").each do |spec_file|
28
- # get the BuildRequires from the spec files, this also expands the RPM macros like %{rubygem}
29
- # use Open3 as the command produces some bogus error messages on stderr even on success,
30
- # but in case of error it provides a hint what failed
31
- stdout, stderr, status = Open3.capture3("rpmspec", "-q", "--buildrequires", spec_file)
29
+ # parse the _multibuild XML file if it is present
30
+ mbfile = File.join(Packaging::Configuration.instance.package_dir, "_multibuild")
31
+ if File.exist?(mbfile)
32
+ require "rexml/document"
33
+ doc = REXML::Document.new(File.read(mbfile))
34
+ doc.elements.each("//multibuild/flavor | //multibuild/package") do |node|
35
+ flavors << node.text.strip
36
+ end
37
+ end
32
38
 
33
- raise "Parsing #{spec_file} failed:\n#{stderr}" unless status.success?
39
+ puts "Found multibuild targets: #{flavors.join(", ")}" if verbose
40
+ flavors
41
+ end
42
+
43
+ # Read the build dependencies from all spec files. For multi build packages
44
+ # evaluate all package flavors.
45
+ # @return [Array<String>] list of build dependencies
46
+ def buildrequires
47
+ buildrequires = []
48
+ # OBS additionally runs a default build with empty flavor in multi build packages,
49
+ # for simplification use it also for single build packages
50
+ flavors = multibuild_flavors + [ "" ]
51
+ Dir.glob("#{Packaging::Configuration.instance.package_dir}/*.spec").each do |spec_file|
52
+ # replace the "@BUILD_FLAVOR@" placeholder by each flavor defined
53
+ flavors.each do |flavor|
54
+ spec_content = File.read(spec_file).gsub("@BUILD_FLAVOR@", flavor)
34
55
 
35
- buildrequires.concat(stdout.split("\n"))
56
+ # get the BuildRequires from the spec files, this also expands the RPM macros like %{rubygem}
57
+ # use Open3 as the command produces some bogus error messages on stderr even on success,
58
+ # but in case of error it provides a hint what failed
59
+ stdout, stderr, status = Open3.capture3("rpmspec", "-q", "--buildrequires", "/dev/stdin", stdin_data: spec_content)
60
+ raise "Parsing #{spec_file} (flavor #{flavor.inspect})failed:\n#{stderr}" unless status.success?
61
+ buildrequires.concat(stdout.split("\n"))
62
+ end
36
63
  end
37
64
 
38
65
  # remove the duplicates and sort the packages for easier reading
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: packaging_rake_tasks
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.5.1
4
+ version: 1.5.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Josef Reidinger
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-09-02 00:00:00.000000000 Z
11
+ date: 2023-05-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -49,7 +49,7 @@ files:
49
49
  - lib/tasks/tarball.rake
50
50
  homepage: https://github.com/openSUSE/packaging_rake_tasks
51
51
  licenses:
52
- - LGPL v2.1
52
+ - LGPL-2.1
53
53
  metadata: {}
54
54
  post_install_message:
55
55
  rdoc_options: []