xezat 0.3.0 → 0.3.1

Sign up to get free protection for your applications and to get access to all the features.
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