xezat 0.3.0 → 0.3.1

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: 44f20fb8c8d53290ca2aa712f0305df3a64fa92b5fd495e74d9c251cea4bd38c
4
- data.tar.gz: 43aa81a90789ba5ab3d9c64b7b8aa4b93bf04d96cde0c51ceba7a35238623771
3
+ metadata.gz: 6bca5b54e336456b6aa2c9cc5af28c2f40c896e536a44df6374ce39dfdab700d
4
+ data.tar.gz: fce7bb85622494444eb694b0973437b85de48d8ffb3e71cac01e118f08eda012
5
5
  SHA512:
6
- metadata.gz: fde0d1e68848308d416fe1e06749bfcaec89a558a40454fc8924a0038103ddbbc07db8900894d48b825a21633e112c83ce72899e40133b8766f082749a3a2f12
7
- data.tar.gz: 0cbca3957598e70390bdb6c87bddfe94585d5d1afe85b97057158b23dae17a2ab1555c7b63410595417cf996382124e42907dd42f1aa1e43831710f26295184d
6
+ metadata.gz: 8ccfb592b7c4462ec9b9ffbf71db32e8fa7749ca858760a85c67925ec4b9ba276b264365d8737aa34462f3ac1765580ff783b1815af277e85d6adc03c23c53bc
7
+ data.tar.gz: 6a2a950848dae1d7cb967555209cb61e78d711659aac02ea6fa85061625ba381845b585d559667fc8e55aa78cba5bcef131b293530895f8a74d0b8b823c07914
@@ -14,8 +14,10 @@ module Xezat
14
14
  additional_path = candidate_files.map do |file|
15
15
  File.dirname(file)
16
16
  end.sort.uniq.join(':')
17
+ Xezat.logger.debug(" Additional PATH = #{additional_path.gsub(Regexp.new(variables[:D]), '')}")
17
18
  command = ['bash', File.expand_path(File.join(DATA_DIR, 'cygport_dep.sh')), cygport]
18
- result, error, status = Open3.capture3({ 'PATH' => "#{ENV.fetch('PATH')}:#{additional_path}" }, command.join(' '))
19
+ result, error, status = Open3.capture3({ 'PATH' => "#{additional_path}:#{ENV.fetch('PATH')}" }, command.join(' '))
20
+ Xezat.logger.warn(" Stderr = #{error}") unless error.empty?
19
21
  raise CygportProcessError, error unless status.success?
20
22
 
21
23
  result
@@ -13,12 +13,29 @@ module Xezat
13
13
  runtime_packages = result.gsub(/^.*\*\*\*.*$/, '').split($INPUT_RECORD_SEPARATOR).map(&:lstrip)
14
14
  build_requires = variables[:BUILD_REQUIRES].nil? ? [] : variables[:BUILD_REQUIRES].split.map(&:to_sym)
15
15
  runtime_packages.delete(pkgs[:'libssl-devel']) if build_requires.include?(:'libssl1.0-devel')
16
- runtime_packages.map! { |pkg| pkg == 'python3' ? pkgs[:python39] : pkg }
16
+ runtime_packages.map! do |pkg|
17
+ resolve_pseudo(pkg, pkgs)
18
+ end
17
19
  variables[:REQUIRES]&.split&.each do |req|
18
20
  runtime_packages << pkgs[req.to_sym]
19
21
  end
20
22
  runtime_packages.sort.uniq
21
23
  end
24
+
25
+ private
26
+
27
+ def resolve_pseudo(pkg, pkgs)
28
+ case pkg
29
+ when 'python3'
30
+ pkgs[:python39]
31
+ when 'perl5_036'
32
+ pkgs[:perl_base]
33
+ when 'ruby_32'
34
+ pkgs[:ruby]
35
+ else
36
+ pkg
37
+ end
38
+ end
22
39
  end
23
40
  end
24
41
  end
@@ -9,9 +9,9 @@ module Xezat
9
9
  def get_src_uri(variables, cygclasses = CygclassManager.new)
10
10
  Xezat.logger.debug(' Collect SRC_URI')
11
11
  cygclasses.vcs.each do |vcs|
12
- next unless variables.key?("_#{vcs}_CYGCLASS_".intern)
12
+ next unless variables.key?(:"_#{vcs}_CYGCLASS_")
13
13
 
14
- src_uri_key = "#{vcs.to_s.upcase}_URI".intern
14
+ src_uri_key = :"#{vcs.to_s.upcase}_URI"
15
15
  return variables[src_uri_key].split if variables.key?(src_uri_key)
16
16
  end
17
17
  variables[:SRC_URI].split
@@ -65,7 +65,7 @@ module Xezat
65
65
  vcs_class = cygclass
66
66
  end
67
67
  vcs_prefix = vcs_class.to_s.upcase if vcs_class
68
- vcs_uri = "#{vcs_prefix}_URI".intern
68
+ vcs_uri = :"#{vcs_prefix}_URI"
69
69
  {
70
70
  :HOMEPAGE => original_template_variables[:HOMEPAGE],
71
71
  vcs_uri => original_template_variables[vcs_uri]
@@ -7,24 +7,18 @@ module Xezat
7
7
  module Command
8
8
  class Validate
9
9
  def validate_config(variables, gcc_version)
10
- configs = Dir.glob(File.join(variables[:D], '/usr/bin/*-config'))
11
- configs.each do |config|
12
- basename = File.basename(config)
13
- Xezat.logger.debug(" #{basename} found")
10
+ Dir.glob(File.join(variables[:D], '/usr/bin/*-config')).each do |config|
11
+ Xezat.logger.debug(" #{File.basename(config)} found")
14
12
 
15
- result, _, status = Open3.capture3("#{config} --cflags")
16
- if status.success?
17
- Xezat.logger.debug(" cflags = #{result.strip}")
18
- else
19
- Xezat.logger.warn(' cflags not supported')
13
+ begin
14
+ executable?(config)
15
+ rescue StandardError
16
+ next
20
17
  end
21
18
 
22
- result, _, status = Open3.capture3("#{config} --cxxflags")
23
- if status.success?
24
- Xezat.logger.debug(" cxxflags = #{result.strip}")
25
- else
26
- Xezat.logger.warn(' cxxflags not supported')
27
- end
19
+ validate_modversion(config, variables)
20
+ validate_cflags(config)
21
+ validate_cxxflags(config)
28
22
 
29
23
  result, _, status = Open3.capture3("#{config} --libs")
30
24
  if status.success?
@@ -35,6 +29,45 @@ module Xezat
35
29
  end
36
30
  end
37
31
  end
32
+
33
+ private
34
+
35
+ def executable?(config)
36
+ Open3.capture3(config.to_s)
37
+ rescue StandardError => e
38
+ Xezat.logger.warn(" #{config} not executable: #{e}")
39
+ raise e
40
+ end
41
+
42
+ def validate_modversion(config, variables)
43
+ result, _, status = Open3.capture3("#{config} --version")
44
+ if status.success?
45
+ modversion = result.strip
46
+ Xezat.logger.debug(" modversion = #{modversion}")
47
+ pv = variables[:PV][0].gsub(/\+.+$/, '')
48
+ Xezat.logger.error(" modversion differs from $PN = #{pv}") unless modversion == pv
49
+ else
50
+ Xezat.logger.warn(' modversion not supported')
51
+ end
52
+ end
53
+
54
+ def validate_cflags(config)
55
+ result, _, status = Open3.capture3("#{config} --cflags")
56
+ if status.success?
57
+ Xezat.logger.debug(" cflags = #{result.strip}")
58
+ else
59
+ Xezat.logger.warn(' cflags not supported')
60
+ end
61
+ end
62
+
63
+ def validate_cxxflags(config)
64
+ result, _, status = Open3.capture3("#{config} --cxxflags")
65
+ if status.success?
66
+ Xezat.logger.debug(" cxxflags = #{result.strip}")
67
+ else
68
+ Xezat.logger.warn(' cxxflags not supported')
69
+ end
70
+ end
38
71
  end
39
72
  end
40
73
  end
@@ -19,6 +19,9 @@ module Xezat
19
19
  license_uri = vars[:LICENSE_URI]
20
20
  if license_uri.nil? || license_uri.empty?
21
21
  Xezat.logger.warn(' LICENSE_URI is not defined')
22
+ elsif license_uri.start_with?('https://', 'http://')
23
+ Xezat.logger.debug(" LICENSE_URI = #{license_uri}")
24
+ livecheck(license_uri)
22
25
  elsif File.exist?(File.join(vars[:S], license_uri))
23
26
  Xezat.logger.debug(" LICENSE_URI = #{license_uri}")
24
27
  else
@@ -63,17 +63,8 @@ module Xezat
63
63
  end
64
64
 
65
65
  def validate_homepage(homepage)
66
- response = Net::HTTP.get_response(URI.parse(homepage))
67
- code = response.code
68
- if code == '200'
69
- Xezat.logger.debug(" code = #{code}")
70
- else
71
- Xezat.logger.error(" code = #{code}")
72
- end
73
- rescue OpenSSL::SSL::SSLError => e
74
- raise e unless @options[:ignore]
75
-
76
- Xezat.logger.warn(' Ignore SSLError')
66
+ Xezat.logger.debug(" HOMEPAGE = #{homepage}")
67
+ livecheck(homepage)
77
68
  end
78
69
 
79
70
  def validate_build_requires(build_requires, pkgs)
@@ -113,6 +104,22 @@ module Xezat
113
104
  end
114
105
  end
115
106
  end
107
+
108
+ private
109
+
110
+ def livecheck(url)
111
+ response = Net::HTTP.get_response(URI.parse(url))
112
+ code = response.code
113
+ if code == '200'
114
+ Xezat.logger.debug(" code = #{code}")
115
+ else
116
+ Xezat.logger.error(" code = #{code}")
117
+ end
118
+ rescue OpenSSL::SSL::SSLError => e
119
+ raise e unless @options[:ignore]
120
+
121
+ Xezat.logger.warn(' Ignore SSLError')
122
+ end
116
123
  end
117
124
  end
118
125
  end
@@ -10,23 +10,10 @@ module Xezat
10
10
  %i[_cmake_CYGCLASS_ _meson_CYGCLASS_ _ninja_CYGCLASS_].include?(key)
11
11
  end.nil?
12
12
 
13
- cygautoreconf = false
14
- File.foreach(File.join(variables[:top], variables[:cygportfile])) do |line|
15
- if line.index('cygautoreconf')
16
- cygautoreconf = true
17
- return true
18
- end
19
- end
20
-
21
- unless cygautoreconf
22
- File.foreach(File.join(variables[:top], variables[:cygportfile])) do |line|
23
- return false if line.index('src_compile')
24
- end
25
- end
26
-
27
13
  Find.find(variables[:S]) do |file|
28
14
  return true if file.end_with?('.am')
29
15
  end
16
+
30
17
  false
31
18
  end
32
19
  end
@@ -0,0 +1,20 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'find'
4
+
5
+ module Xezat
6
+ module Detector
7
+ class Docbook2x
8
+ def detect(variables)
9
+ Find.find(variables[:S]) do |file|
10
+ next unless file.end_with?("#{File::SEPARATOR}configure.ac", "#{File::SEPARATOR}configure.in")
11
+
12
+ File.foreach(file) do |line|
13
+ return true if line.include?('docbook2x-man')
14
+ end
15
+ end
16
+ false
17
+ end
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,18 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Xezat
4
+ module Detector
5
+ class GettextDevel
6
+ def detect(variables)
7
+ Find.find(variables[:S]) do |file|
8
+ next unless file.end_with?("#{File::SEPARATOR}configure.ac", "#{File::SEPARATOR}configure.in")
9
+
10
+ File.foreach(file) do |line|
11
+ return true if /AM_GNU_GETTEXT|AM_ICONV|AC_GGZ_INTL/.match?(line.lstrip)
12
+ end
13
+ end
14
+ false
15
+ end
16
+ end
17
+ end
18
+ end
data/lib/xezat/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Xezat
4
- VERSION = '0.3.0'
4
+ VERSION = '0.3.1'
5
5
  end
data/xezat.gemspec CHANGED
@@ -24,18 +24,18 @@ Gem::Specification.new do |spec|
24
24
  spec.required_ruby_version = '>= 3.2.2'
25
25
 
26
26
  spec.add_runtime_dependency 'facets', '>= 3.1.0'
27
- spec.add_runtime_dependency 'github-linguist', '>= 7.26.0'
28
- spec.add_runtime_dependency 'pkg-config', '>= 1.5.2'
27
+ spec.add_runtime_dependency 'github-linguist', '>= 7.28.0'
28
+ spec.add_runtime_dependency 'pkg-config', '>= 1.5.6'
29
29
  spec.add_runtime_dependency 'spdx', '>= 4.1.3'
30
30
  spec.add_runtime_dependency 'thor', '>= 1.2.2'
31
31
  spec.add_runtime_dependency 'thor-zsh_completion', '>= 0.1.10'
32
32
 
33
- spec.add_development_dependency 'bundler', '>= 1.15.3'
34
- spec.add_development_dependency 'fasterer', '>= 0.10.1'
33
+ spec.add_development_dependency 'bundler', '>= 2.4.10'
34
+ spec.add_development_dependency 'fasterer', '>= 0.11.0'
35
35
  spec.add_development_dependency 'rake', '>= 13.0'
36
36
  spec.add_development_dependency 'rspec', '>= 3.12.0'
37
- spec.add_development_dependency 'rubocop', '>= 1.54.1'
38
- spec.add_development_dependency 'rubocop-performance', '>= 1.18.0'
37
+ spec.add_development_dependency 'rubocop', '>= 1.59.0'
38
+ spec.add_development_dependency 'rubocop-performance', '>= 1.20.1'
39
39
  spec.add_development_dependency 'simplecov-cobertura', '>= 2.1.0'
40
40
 
41
41
  spec.metadata['rubygems_mfa_required'] = 'true'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: xezat
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Daisuke Fujimura (fd0)
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-07-09 00:00:00.000000000 Z
11
+ date: 2023-12-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: facets
@@ -30,28 +30,28 @@ dependencies:
30
30
  requirements:
31
31
  - - ">="
32
32
  - !ruby/object:Gem::Version
33
- version: 7.26.0
33
+ version: 7.28.0
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - ">="
39
39
  - !ruby/object:Gem::Version
40
- version: 7.26.0
40
+ version: 7.28.0
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: pkg-config
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - ">="
46
46
  - !ruby/object:Gem::Version
47
- version: 1.5.2
47
+ version: 1.5.6
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - ">="
53
53
  - !ruby/object:Gem::Version
54
- version: 1.5.2
54
+ version: 1.5.6
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: spdx
57
57
  requirement: !ruby/object:Gem::Requirement
@@ -100,28 +100,28 @@ dependencies:
100
100
  requirements:
101
101
  - - ">="
102
102
  - !ruby/object:Gem::Version
103
- version: 1.15.3
103
+ version: 2.4.10
104
104
  type: :development
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
108
  - - ">="
109
109
  - !ruby/object:Gem::Version
110
- version: 1.15.3
110
+ version: 2.4.10
111
111
  - !ruby/object:Gem::Dependency
112
112
  name: fasterer
113
113
  requirement: !ruby/object:Gem::Requirement
114
114
  requirements:
115
115
  - - ">="
116
116
  - !ruby/object:Gem::Version
117
- version: 0.10.1
117
+ version: 0.11.0
118
118
  type: :development
119
119
  prerelease: false
120
120
  version_requirements: !ruby/object:Gem::Requirement
121
121
  requirements:
122
122
  - - ">="
123
123
  - !ruby/object:Gem::Version
124
- version: 0.10.1
124
+ version: 0.11.0
125
125
  - !ruby/object:Gem::Dependency
126
126
  name: rake
127
127
  requirement: !ruby/object:Gem::Requirement
@@ -156,28 +156,28 @@ dependencies:
156
156
  requirements:
157
157
  - - ">="
158
158
  - !ruby/object:Gem::Version
159
- version: 1.54.1
159
+ version: 1.59.0
160
160
  type: :development
161
161
  prerelease: false
162
162
  version_requirements: !ruby/object:Gem::Requirement
163
163
  requirements:
164
164
  - - ">="
165
165
  - !ruby/object:Gem::Version
166
- version: 1.54.1
166
+ version: 1.59.0
167
167
  - !ruby/object:Gem::Dependency
168
168
  name: rubocop-performance
169
169
  requirement: !ruby/object:Gem::Requirement
170
170
  requirements:
171
171
  - - ">="
172
172
  - !ruby/object:Gem::Version
173
- version: 1.18.0
173
+ version: 1.20.1
174
174
  type: :development
175
175
  prerelease: false
176
176
  version_requirements: !ruby/object:Gem::Requirement
177
177
  requirements:
178
178
  - - ">="
179
179
  - !ruby/object:Gem::Version
180
- version: 1.18.0
180
+ version: 1.20.1
181
181
  - !ruby/object:Gem::Dependency
182
182
  name: simplecov-cobertura
183
183
  requirement: !ruby/object:Gem::Requirement
@@ -246,7 +246,9 @@ files:
246
246
  - lib/xezat/detector/automake.rb
247
247
  - lib/xezat/detector/boost.m4.rb
248
248
  - lib/xezat/detector/cmake.rb
249
+ - lib/xezat/detector/docbook2X.rb
249
250
  - lib/xezat/detector/gengetopt.rb
251
+ - lib/xezat/detector/gettext-devel.rb
250
252
  - lib/xezat/detector/gnulib.rb
251
253
  - lib/xezat/detector/gobject-introspection.rb
252
254
  - lib/xezat/detector/halibut.rb