ffi-libarchive-binary 0.2.4-x86_64-darwin → 0.2.5-x86_64-darwin

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
- SHA1:
3
- metadata.gz: 6707d7d1146c009ffd730b6470bc3c53d14b03db
4
- data.tar.gz: 0e0700380e96c08dfbb8839aefc1c22c71852d4c
2
+ SHA256:
3
+ metadata.gz: b5a0ba692e713a1f61212dd855f15252875c518df9bcfc3e252e9c4c9050a3c8
4
+ data.tar.gz: bf6290fab49d24d277d7ef8a777eeb9416f0fbd52dfa18cb025dd0fe38719583
5
5
  SHA512:
6
- metadata.gz: ddd26a773e359ee0a74678e0818ac95d3ab483f17d47af7fbb4662b1d2b1c48f4c27dd24861d766b826d046d82773bf12b91c4ee1478a869d07b176435fd1d37
7
- data.tar.gz: 3b6444a517fd1a41c4361b0a868ac0666cfc9c3538e94deaa0399678b8a6c1eafeb63d4a8e21376a53eb55a032f31ffab1cd23f335d0f93634aeaeaccf0dc28b
6
+ metadata.gz: f14bacd0a9d7d4649a7b67c427ffaeb383427466a35a58e61d76da072b29e7e8f140216d273b3cce724ba5a4abc9b07635c7e72dd0ba3c15a8c0dd4b154dd136
7
+ data.tar.gz: 9a7c361ca76c1b4c7c42ae5d18eda317533751fd21911fe985f033a541184ec5c983e9508ea3e85366b830140fb29e6b0a1d248fa6df968f7fe0d35379daa68f
@@ -1,6 +1,9 @@
1
1
  require "mini_portile2"
2
2
  require "pathname"
3
3
 
4
+ require_relative "zlib_recipe"
5
+ require_relative "libexpat_recipe"
6
+
4
7
  module LibarchiveBinary
5
8
  class LibarchiveRecipe < MiniPortile
6
9
  ROOT = Pathname.new(File.expand_path("../..", __dir__))
@@ -13,6 +16,9 @@ module LibarchiveBinary
13
16
  sha256: "9015d109ec00bb9ae1a384b172bf2fc1dff41e2c66e5a9eeddf933af9db37f5a"
14
17
  }
15
18
 
19
+ @zlib_recipe = ZLibRecipe.new
20
+ @expat_recipe = LibexpatRecipe.new
21
+
16
22
  @target = ROOT.join(@target).to_s
17
23
  end
18
24
 
@@ -36,11 +42,56 @@ module LibarchiveBinary
36
42
  ]
37
43
  end
38
44
 
45
+ def configure
46
+ paths = [@zlib_recipe.path, @expat_recipe.path]
47
+ cflags = paths.map { |k| "-I#{k}/include" }.join(" ")
48
+ cmd = ["env", "CFLAGS=#{cflags}", "./configure"] + computed_options
49
+
50
+ execute("configure", cmd)
51
+
52
+ # drop default libexpat and zlib
53
+ libz = File.join(@zlib_recipe.path, "lib", "libz.a")
54
+ libexpat = File.join(@expat_recipe.path, "lib", "libexpat.a")
55
+
56
+ if LibarchiveBinary::windows?
57
+ # https://stackoverflow.com/a/14112368/902217
58
+ static_link_pref = "-Wl,-Bstatic,"
59
+ libz = libz.prepend(static_link_pref)
60
+ libexpat = libexpat.prepend(static_link_pref)
61
+ end
62
+
63
+ makefile = File.join(work_path, "Makefile")
64
+ replace_in_file(" -lz ", " #{libz} ", makefile)
65
+ replace_in_file(" -lexpat ", " #{libexpat} ", makefile)
66
+ end
67
+
68
+ def replace_in_file(search_str, replace_str, filename)
69
+ puts "Replace \"#{search_str}\" with \"#{replace_str}\" in #{filename}"
70
+
71
+ f = File.open(filename, "r")
72
+ content = f.read
73
+ f.close
74
+
75
+ content.gsub!(search_str, replace_str)
76
+
77
+ File.open(filename, "w") { |f| f << content }
78
+ end
79
+
80
+ def activate
81
+ @zlib_recipe.activate
82
+ @expat_recipe.activate
83
+
84
+ super
85
+ end
86
+
39
87
  def cook_if_not
40
88
  cook unless File.exist?(checkpoint)
41
89
  end
42
90
 
43
91
  def cook
92
+ @zlib_recipe.cook_if_not
93
+ @expat_recipe.cook_if_not
94
+
44
95
  super
45
96
 
46
97
  FileUtils.touch(checkpoint)
@@ -0,0 +1,46 @@
1
+ require "mini_portile2"
2
+
3
+ module LibarchiveBinary
4
+ # based on
5
+ class LibexpatRecipe < MiniPortile
6
+ ROOT = Pathname.new(File.expand_path("../..", __dir__))
7
+
8
+ def initialize
9
+ super("libexpat", "2.4.1")
10
+
11
+ @files << {
12
+ url: "https://github.com/libexpat/libexpat/releases/download/R_2_4_1/expat-2.4.1.tar.gz",
13
+ sha256: "a00ae8a6b96b63a3910ddc1100b1a7ef50dc26dceb65ced18ded31ab392f132b"
14
+ }
15
+
16
+ @target = ROOT.join(@target).to_s
17
+ end
18
+
19
+ def configure_defaults
20
+ [
21
+ "--host=#{@host}",
22
+ "--disable-shared",
23
+ "--enable-static",
24
+ ]
25
+ end
26
+
27
+ def configure
28
+ cmd = ["env", "CFLAGS=-fPIC", "LDFLAGS=-fPIC", "./configure"] + computed_options
29
+ execute("configure", cmd)
30
+ end
31
+
32
+ def checkpoint
33
+ File.join(@target, "#{self.name}-#{self.version}-#{self.host}.installed")
34
+ end
35
+
36
+ def cook_if_not
37
+ cook unless File.exist?(checkpoint)
38
+ end
39
+
40
+ def cook
41
+ super
42
+
43
+ FileUtils.touch(checkpoint)
44
+ end
45
+ end
46
+ end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module LibarchiveBinary
4
- VERSION = "0.2.4"
4
+ VERSION = "0.2.5"
5
5
  end
@@ -0,0 +1,89 @@
1
+ require "mini_portile2"
2
+ require "pathname"
3
+
4
+ module LibarchiveBinary
5
+ def self.windows?
6
+ RbConfig::CONFIG["target_os"] =~ /mingw32|mswin/
7
+ end
8
+
9
+ # inspired by https://github.com/sparklemotion/nokogiri/blob/35823bd/ext/nokogiri/extconf.rb#L655
10
+ class ZLibRecipe < MiniPortile
11
+ ROOT = Pathname.new(File.expand_path("../..", __dir__))
12
+
13
+ def initialize
14
+ super("zlib", "1.2.11")
15
+
16
+ @files << {
17
+ url: "http://zlib.net/fossils/zlib-1.2.11.tar.gz",
18
+ sha256: "c3e5e9fdd5004dcb542feda5ee4f0ff0744628baf8ed2dd5d66f8ca1197cb1a1"
19
+ }
20
+
21
+ @target = ROOT.join(@target).to_s
22
+ end
23
+
24
+ def configure_defaults
25
+ [
26
+ "--static"
27
+ ]
28
+ end
29
+
30
+ def configure
31
+ if LibarchiveBinary::windows?
32
+ Dir.chdir(work_path) do
33
+ mk = File.read("win32/Makefile.gcc")
34
+ File.open("win32/Makefile.gcc", "wb") do |f|
35
+ f.puts "BINARY_PATH = #{path}/bin"
36
+ f.puts "LIBRARY_PATH = #{path}/lib"
37
+ f.puts "INCLUDE_PATH = #{path}/include"
38
+ f.puts "SHARED_MODE = 0"
39
+ f.puts "LOC = -fPIC"
40
+ f.puts mk
41
+ end
42
+ end
43
+ else
44
+ cmd = ["env", "CFLAGS=-fPIC", "LDFLAGS=-fPIC", "./configure"] + computed_options
45
+ execute("configure", cmd)
46
+ end
47
+ end
48
+
49
+ def configured?
50
+ if LibarchiveBinary::windows?
51
+ Dir.chdir(work_path) do
52
+ !!(File.read("win32/Makefile.gcc") =~ /^BINARY_PATH/)
53
+ end
54
+ else
55
+ super
56
+ end
57
+ end
58
+
59
+ def compile
60
+ if LibarchiveBinary::windows?
61
+ execute("compile", "make -f win32/Makefile.gcc libz.a")
62
+ else
63
+ super
64
+ end
65
+ end
66
+
67
+ def install
68
+ if LibarchiveBinary::windows?
69
+ execute("install", "make -f win32/Makefile.gcc install")
70
+ else
71
+ super
72
+ end
73
+ end
74
+
75
+ def checkpoint
76
+ File.join(@target, "#{self.name}-#{self.version}-#{self.host}.installed")
77
+ end
78
+
79
+ def cook_if_not
80
+ cook unless File.exist?(checkpoint)
81
+ end
82
+
83
+ def cook
84
+ super
85
+
86
+ FileUtils.touch(checkpoint)
87
+ end
88
+ end
89
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ffi-libarchive-binary
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.4
4
+ version: 0.2.5
5
5
  platform: x86_64-darwin
6
6
  authors:
7
7
  - Ribose Inc.
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-04-21 00:00:00.000000000 Z
11
+ date: 2021-09-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: ffi-libarchive
@@ -42,7 +42,9 @@ files:
42
42
  - lib/ffi-libarchive-binary.rb
43
43
  - lib/ffi-libarchive-binary/libarchive.dylib
44
44
  - lib/ffi-libarchive-binary/libarchive_recipe.rb
45
+ - lib/ffi-libarchive-binary/libexpat_recipe.rb
45
46
  - lib/ffi-libarchive-binary/version.rb
47
+ - lib/ffi-libarchive-binary/zlib_recipe.rb
46
48
  - updates/config.guess
47
49
  - updates/config.sub
48
50
  homepage: https://github.com/fontist/ffi-libarchive-binary
@@ -68,7 +70,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
68
70
  version: '0'
69
71
  requirements: []
70
72
  rubyforge_project:
71
- rubygems_version: 2.6.14.4
73
+ rubygems_version: 2.7.6.3
72
74
  signing_key:
73
75
  specification_version: 4
74
76
  summary: Binaries for ffi-libarchive