lib/xezat/command/validate.rb in xezat-0.2.2 vs lib/xezat/command/validate.rb in xezat-0.2.3
- old
+ new
@@ -1,10 +1,13 @@
# frozen_string_literal: true
require 'net/http'
-require 'pkg-config'
require 'uri'
+require 'xezat/command/validate/config'
+require 'xezat/command/validate/license'
+require 'xezat/command/validate/pkgconfig'
+require 'xezat/cygversion'
require 'xezat/packages'
require 'xezat/variables'
module Xezat
module Command
@@ -19,25 +22,33 @@
def execute
Xezat.logger.debug('Start validating')
vars = variables(@cygport)
pkgs = packages
+ gcc_version = Cygversion.new(pkgs[:'gcc-core'].gsub(/^gcc-core-/, '')).version.split('.')[0]
+
Xezat.logger.debug(' Validate .cygport')
validate_cygport(@cygport)
Xezat.logger.debug(' Validate category')
validate_category(vars[:CATEGORY])
Xezat.logger.debug(' Validate homepage')
validate_homepage(vars[:HOMEPAGE])
+ Xezat.logger.debug(' Validate licenses')
+ validate_license(vars)
+
Xezat.logger.debug(' Validate BUILD_REQUIRES')
validate_build_requires(vars[:BUILD_REQUIRES], pkgs)
Xezat.logger.debug(' Validate *.pc')
- validate_pkgconfig(vars)
+ validate_pkgconfig(vars, gcc_version)
+ Xezat.logger.debug(' Validate *-config')
+ validate_config(vars, gcc_version)
+
Xezat.logger.debug('End validating')
end
def validate_cygport(cygport)
original_string = File.read(cygport)
@@ -52,13 +63,13 @@
def validate_homepage(homepage)
response = Net::HTTP.get_response(URI.parse(homepage))
code = response.code
if code == '200'
- Xezat.logger.debug(" code = #{response.code}")
+ Xezat.logger.debug(" code = #{code}")
else
- Xezat.logger.error(" code = #{response.code}")
+ Xezat.logger.error(" code = #{code}")
end
rescue OpenSSL::SSL::SSLError => e
raise e unless @options[:ignore]
Xezat.logger.error(' Ignore SSLError')
@@ -75,28 +86,11 @@
Xezat.logger.debug(" #{build_require_pkg}")
end
end
end
- def validate_pkgconfig(variables)
- pkgconfig_path = File.join(variables[:D], 'usr', 'lib', 'pkgconfig')
- PKGConfig.add_path(pkgconfig_path)
- Dir.glob('*.pc', 0, base: pkgconfig_path).each do |pc|
- basename = File.basename(pc, '.pc')
- Xezat.logger.debug(" #{basename}.pc found")
- modversion = PKGConfig.modversion(basename)
- Xezat.logger.debug(" modversion = #{modversion}")
- pv = variables[:PV][0].gsub(/\+.+$/, '')
- Xezat.logger.error(" modversion differs from $PN = #{pv}") unless modversion == pv
- Xezat.logger.debug(" cflags = #{PKGConfig.cflags(basename)}")
- libs = PKGConfig.libs(basename)
- Xezat.logger.debug(" libs = #{libs}")
- validate_libs(variables, libs)
- end
- end
-
- def validate_libs(variables, libs)
- lib_dirs = [File.join(variables[:D], '/usr/lib'), '/usr/lib', '/usr/lib/w32api', '/usr/lib/gcc/x86_64-pc-cygwin/11']
+ def validate_libs(variables, libs, gcc_version)
+ lib_dirs = [File.join(variables[:D], '/usr/lib'), '/usr/lib', '/usr/lib/w32api', "/usr/lib/gcc/x86_64-pc-cygwin/#{gcc_version}"]
libs.split do |option|
if option.start_with?('-l')
lib_name = option[2, 255] # Assume file length limit
found = false
lib_dirs.each do |dir|