pngcheck 0.2.5 → 0.2.6

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: 8538794c331c3eefe5a4aff7c853db22e20aaebcc042a27842faaf1b885756f7
4
- data.tar.gz: f94d9281e7c0a4f473a58cba444fe99b4a2504e93525fc36d958e890d50f2d5e
3
+ metadata.gz: b5346e7ca03a75938de15f52148de7e578c49038fb42e288289571b2781c506c
4
+ data.tar.gz: 315fbcad03d7a4996264cfe77837897b87c053cf019482d2909d76faccaad874
5
5
  SHA512:
6
- metadata.gz: 4bed6f839abd1c4a0a597d451fb4d3271019b29b13200c394a0fb820175afe3b154d8b27db95d48f19cb2ec35f051616b87c286b10d9193de13b4bb01e7e5e37
7
- data.tar.gz: 2a479f9dafab807d5581f1511f4cfc578932c49c8f9dd4789a8065032b94fdc74c48928f3fccb7fa088256b5f0181d23b48ab1520735e936581b4bd54233fab6
6
+ metadata.gz: ebf508fb8d0bffb9e90bc6bbd5e86114ed4216efc7ae84e1d262499e71e59882d746f69d350d0ad8f00890fda65f5c30e7661e3ea426c4130539923f0c8c7d54
7
+ data.tar.gz: efe6d966571264cf0560ede66941162006c3d3b2078d30c8501cc120214fbce49dbe85fc2b3e159a05e269fbc9dca331b3942804e751adc6608404602aa4e5b4
@@ -13,12 +13,16 @@ module PngCheck
13
13
  ROOT = Pathname.new(File.expand_path("../..", __dir__))
14
14
  COMMON_FLAGS = "-shared -fPIC -Wall -O -DUSE_ZLIB"
15
15
 
16
- def files_to_load
16
+ def files_to_load_all
17
17
  @files << {
18
18
  url: "http://www.libpng.org/pub/png/src/pngcheck-3.0.3.tar.gz",
19
19
  sha256: "c36a4491634af751f7798ea421321642f9590faa032eccb0dd5fb4533609dee6", # rubocop:disable Layout/LineLength
20
20
  }
21
- if target_platform.eql?("aarch64-linux")
21
+ end
22
+
23
+ def files_to_load_cross
24
+ if target_platform.eql?("aarch64-linux") &&
25
+ !host_platform.eql?("aarch64-linux")
22
26
  @files << {
23
27
  url: "http://ports.ubuntu.com/pool/main/z/zlib/zlib1g-dev_1.2.11.dfsg-2ubuntu1.3_arm64.deb", # rubocop:disable Layout/LineLength
24
28
  sha256: "0ebadc1ff2a70f0958d4e8e21ffa97d9fa4da23555eaae87782e963044a26fcf", # rubocop:disable Layout/LineLength
@@ -28,17 +32,27 @@ module PngCheck
28
32
 
29
33
  def initialize
30
34
  super("pngcheck", "3.0.3")
31
- files_to_load
35
+ files_to_load_all
36
+ files_to_load_cross
32
37
  @target = ROOT.join(@target).to_s
33
38
  @printed = {}
34
39
  end
35
40
 
41
+ def lib_filename
42
+ @lib_filename ||=
43
+ if MiniPortile.windows?
44
+ "pngcheck.dll"
45
+ else
46
+ "pngcheck.so"
47
+ end
48
+ end
49
+
50
+ def lib_workpath
51
+ @lib_workpath ||= File.join(work_path, lib_filename)
52
+ end
53
+
36
54
  def make_cmd
37
- if MiniPortile.windows?
38
- "gcc #{COMMON_FLAGS} -o pngcheck.dll wrapper.c -lz"
39
- else
40
- "#{cc} #{cflags} #{COMMON_FLAGS} -o pngcheck.so wrapper.c -lz"
41
- end
55
+ "#{cc} #{cflags} #{COMMON_FLAGS} -o #{lib_filename} wrapper.c -lz"
42
56
  end
43
57
 
44
58
  def cook_if_not
@@ -56,29 +70,25 @@ module PngCheck
56
70
 
57
71
  def configure
58
72
  FileUtils.cp(ROOT.join("ext", "wrapper.c"), work_path, verbose: false)
59
- if target_platform.eql?("aarch64-linux")
73
+ if target_platform.eql?("aarch64-linux") &&
74
+ !host_platform.eql?("aarch64-linux")
60
75
  extract_file("#{work_path}/../data.tar.xz", work_path.to_s)
61
76
  end
62
77
  end
63
78
 
64
- def libs_to_verify
65
- Dir.glob(ROOT.join("lib", "pngcheck",
66
- "pngcheck.{so,dylib,dll}"))
67
- end
68
-
69
- def verify_libs
70
- libs_to_verify.each do |l|
71
- out, st = Open3.capture2("file #{l}")
72
- out = out.strip
73
-
74
- raise "Failed to query file #{l}: #{out}" unless st.exitstatus.zero?
79
+ def verify_lib
80
+ begin
81
+ out, = Open3.capture2("file #{lib_workpath}")
82
+ rescue StandardError
83
+ message("Failed to call file, skipped library verification ...\n")
84
+ return
85
+ end
75
86
 
76
- if out.include?(target_format)
77
- message("Verifying #{l} ... OK\n")
78
- else
79
- raise "Invalid file format '#{out}', '#{@target_format}' expected"
80
- end
87
+ unless out.include?(target_format)
88
+ raise "Invalid file format '#{out.strip}', '#{@target_format}' expected"
81
89
  end
90
+
91
+ message("Verifying #{lib_workpath} ... OK\n")
82
92
  end
83
93
 
84
94
  def install
@@ -86,7 +96,7 @@ module PngCheck
86
96
  .grep(%r{/(?:lib)?[a-zA-Z0-9\-]+\.(?:so|dylib|dll)$})
87
97
 
88
98
  FileUtils.cp_r(libs, ROOT.join("lib", "pngcheck"), verbose: false)
89
- verify_libs
99
+ verify_lib
90
100
  end
91
101
 
92
102
  def execute(action, command, command_opts = {})
@@ -174,11 +184,11 @@ module PngCheck
174
184
 
175
185
  def cflags
176
186
  @cflags ||=
177
- if target_platform.eql?(host_platform) ||
178
- !target_platform.eql?("aarch64-linux")
179
- ""
180
- else
187
+ if target_platform.eql?("aarch64-linux") &&
188
+ !host_platform.eql?("aarch64-linux")
181
189
  "-I./usr/include -L./usr/lib/#{target_platform}-gnu"
190
+ else
191
+ ""
182
192
  end
183
193
  end
184
194
  # rubocop:enable Metrics/CyclomaticComplexity
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module PngCheck
4
- VERSION = "0.2.5"
4
+ VERSION = "0.2.6"
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pngcheck
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.5
4
+ version: 0.2.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ribose Inc.