mini_portile2 2.8.5.rc1 → 2.8.5.rc2

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: 235fc41ae2e4aab6133eb8edb741bb535194af46c1aca4e70f0785d2c1253322
4
- data.tar.gz: 4ffdc351e59c3cec669361e0fb7b50b536d113363a7ed1c91d8fb681453df4fa
3
+ metadata.gz: ca5eb330aa4b2b6093e3cbe77641dfd14b3eff2601dce6c97f7de69f42fffcb5
4
+ data.tar.gz: ad64c2536ab3e978c22d71bc380144f1fa579cf01993e97bf63553ec4732b851
5
5
  SHA512:
6
- metadata.gz: 03deed0dd932686706f7956fda4f167fb46c73f87f443c058163226019de21d16252c509b453fccfaa8b661bf3f9667b0c1f2fec66edcef042a968fcd847811f
7
- data.tar.gz: a5d574f3b181ed8303ae0c799e6092fde2166fd1dc5937961f7b8016eef441a287cf80c4abf1bb2ec0f036894a12ea80f12edb30cec631981f6d8f042ad87959
6
+ metadata.gz: 67530e1e366cb1605a272234bbfe7ccd6d8659ebd081352a93848de694c03ad0bac23425f2a13c94f67b5c0a55273f178577f31ad088d452f4bfa810e8445c45
7
+ data.tar.gz: 47e6b00a089e83e422f51c833744226c275af1a8700a21fa11a7f81c70b952da78fbf6df3a0cd8e1347be89b8c1ce6ac0f430a6339b3d0f3340aa2fe1efa0afb
data/CHANGELOG.md CHANGED
@@ -1,12 +1,14 @@
1
1
  ## mini_portile changelog
2
2
 
3
- ### 2.8.5.rc1 / 2023-09-13
3
+ ### 2.8.5.rc2 / 2023-09-17
4
4
 
5
5
  #### Added
6
6
 
7
7
  - New method `MiniPortile#mkmf_config` will set up MakeMakefile variables to properly link against the recipe. This should make it easier for C extensions to package third-party libraries.
8
8
  - With no arguments, will set up just `$INCFLAGS`, `$libs`, and `$LIBPATH`.
9
9
  - Optionally, if provided a pkg-config file, will use that config to more precisely set `$INCFLAGS`, `$libs`, `$LIBPATH`, and `$CFLAGS`/`$CXXFLAGS`.
10
+ - Optionally, if provided the name of a static archive, will rewrite linker flags to ensure correct linkage.
11
+ - New methods `#lib_path` and `#include_path` which point at the installed directories under `ports`.
10
12
 
11
13
 
12
14
  ### 2.8.4 / 2023-07-18
@@ -27,6 +27,8 @@ class Net::HTTP
27
27
  end
28
28
  end
29
29
 
30
+ $MINI_PORTILE_STATIC_LIBS = {}
31
+
30
32
  class MiniPortile
31
33
  DEFAULT_TIMEOUT = 10
32
34
 
@@ -237,11 +239,10 @@ class MiniPortile
237
239
  end
238
240
 
239
241
  def activate
240
- lib_path = File.join(port_path, "lib")
241
242
  vars = {
242
243
  'PATH' => File.join(port_path, 'bin'),
243
- 'CPATH' => File.join(port_path, 'include'),
244
- 'LIBRARY_PATH' => lib_path
244
+ 'CPATH' => include_path,
245
+ 'LIBRARY_PATH' => lib_path,
245
246
  }.reject { |env, path| !File.directory?(path) }
246
247
 
247
248
  output "Activating #{@name} #{@version} (from #{port_path})..."
@@ -268,11 +269,19 @@ class MiniPortile
268
269
  end
269
270
  end
270
271
 
271
- def mkmf_config(pkg: nil, dir: nil)
272
+ # pkg: the pkg-config file name (without the .pc extension)
273
+ # dir: inject the directory path for the pkg-config file (probably only useful for tests)
274
+ # static: the name of the static library archive (without the "lib" prefix or the file extension), or nil for dynamic linking
275
+ #
276
+ # we might be able to be terribly clever and infer the name of the static archive file, but
277
+ # unfortunately projects have so much freedom in what they can report (for name, for libs, etc.)
278
+ # that it feels unreliable to try to do so, so I'm preferring to just have the developer make it
279
+ # explicit.
280
+ def mkmf_config(pkg: nil, dir: nil, static: nil)
272
281
  require "mkmf"
273
282
 
274
283
  if pkg
275
- dir ||= File.join(path, "lib", "pkgconfig")
284
+ dir ||= File.join(lib_path, "pkgconfig")
276
285
  pcfile = File.join(dir, "#{pkg}.pc")
277
286
  unless File.exist?(pcfile)
278
287
  raise ArgumentError, "pkg-config file '#{pcfile}' does not exist"
@@ -288,42 +297,81 @@ class MiniPortile
288
297
 
289
298
  incflags = minimal_pkg_config(pcfile, "cflags-only-I")
290
299
  cflags = minimal_pkg_config(pcfile, "cflags-only-other")
291
- ldflags = minimal_pkg_config(pcfile, "libs-only-L", "static")
292
- libflags = minimal_pkg_config(pcfile, "libs-only-l", "static")
300
+ if static
301
+ ldflags = minimal_pkg_config(pcfile, "libs-only-L", "static")
302
+ libflags = minimal_pkg_config(pcfile, "libs-only-l", "static")
303
+ else
304
+ ldflags = minimal_pkg_config(pcfile, "libs-only-L")
305
+ libflags = minimal_pkg_config(pcfile, "libs-only-l")
306
+ end
293
307
  else
294
308
  output "Configuring MakeMakefile for #{@name} #{@version} (from #{path})\n"
295
309
 
296
- include_path = File.join(path, "include")
297
- lib_path = File.join(path, "lib")
298
-
299
310
  lib_name = name.sub(/\Alib/, "") # TODO: use delete_prefix when we no longer support ruby 2.4
300
311
 
301
- incflags = "-I#{include_path}" if Dir.exist?(include_path)
302
- ldflags = "-L#{lib_path}" if Dir.exist?(lib_path)
303
- libflags = "-l#{lib_name}" if Dir.exist?(lib_path)
312
+ incflags = Dir.exist?(include_path) ? "-I#{include_path}" : ""
313
+ cflags = ""
314
+ ldflags = Dir.exist?(lib_path) ? "-L#{lib_path}" : ""
315
+ libflags = Dir.exist?(lib_path) ? "-l#{lib_name}" : ""
304
316
  end
305
317
 
306
- if ldflags
307
- libpaths = ldflags.split.map { |f| f.sub(/\A-L/, "") }
318
+ if static
319
+ libdir = lib_path
320
+ if pcfile
321
+ variables = minimal_pkg_config(pcfile, "print-variables").split("\n").map(&:strip)
322
+ if variables.include?("libdir")
323
+ libdir = minimal_pkg_config(pcfile, "variable=libdir")
324
+ end
325
+ end
326
+
327
+ #
328
+ # keep track of the libraries we're statically linking against, and fix up ldflags and
329
+ # libflags to make sure we link statically against the recipe's libaries.
330
+ #
331
+ # this avoids the unintentionally dynamically linking against system libraries, and makes sure
332
+ # that if multiple pkg-config files reference each other that we are able to intercept flags
333
+ # from dependent packages that reference the static archive.
334
+ #
335
+ $MINI_PORTILE_STATIC_LIBS[static] = libdir
336
+ static_ldflags = $MINI_PORTILE_STATIC_LIBS.values.map { |v| "-L#{v}" }
337
+ static_libflags = $MINI_PORTILE_STATIC_LIBS.keys.map { |v| "-l#{v}" }
338
+
339
+ # remove `-L#{libdir}` and `-lfoo`. we don't need them since we link against the static
340
+ # archive using the full path.
341
+ ldflags = ldflags.shellsplit.reject { |f| static_ldflags.include?(f) }.shelljoin
342
+ libflags = libflags.shellsplit.reject { |f| static_libflags.include?(f) }.shelljoin
343
+
344
+ # prepend the full path to the static archive to the linker flags
345
+ static_archive = File.join(libdir, "lib#{static}.#{$LIBEXT}")
346
+ libflags = [static_archive, libflags].join(" ").strip
308
347
  end
309
348
 
310
- # prefer this package by prepending directories to the search path
349
+ # prefer this package by prepending to search paths and library flags
311
350
  #
312
- # use $LIBPATH instead of $LDFLAGS to ensure we get the `-Wl,-rpath` linker flag for re-finding
313
- # shared libraries
314
- $INCFLAGS = [incflags, $INCFLAGS].join(" ").strip if incflags
315
- $LIBPATH = libpaths | $LIBPATH if libpaths
351
+ # convert the ldflags into a list of directories and append to $LIBPATH (instead of just using
352
+ # $LDFLAGS) to ensure we get the `-Wl,-rpath` linker flag for re-finding shared libraries.
353
+ $INCFLAGS = [incflags, $INCFLAGS].join(" ").strip
354
+ libpaths = ldflags.shellsplit.map { |f| f.sub(/\A-L/, "") }
355
+ $LIBPATH = libpaths | $LIBPATH
356
+ $libs = [libflags, $libs].join(" ").strip
316
357
 
317
- # prefer this package's flags by appending them to the command line
318
- $CFLAGS = [$CFLAGS, cflags].join(" ").strip if cflags
319
- $CXXFLAGS = [$CXXFLAGS, cflags].join(" ").strip if cflags
320
- $libs = [$libs, libflags].join(" ").strip if libflags
358
+ # prefer this package's compiler flags by appending them to the command line
359
+ $CFLAGS = [$CFLAGS, cflags].join(" ").strip
360
+ $CXXFLAGS = [$CXXFLAGS, cflags].join(" ").strip
321
361
  end
322
362
 
323
363
  def path
324
364
  File.expand_path(port_path)
325
365
  end
326
366
 
367
+ def include_path
368
+ File.join(path, "include")
369
+ end
370
+
371
+ def lib_path
372
+ File.join(path, "lib")
373
+ end
374
+
327
375
  def gcc_cmd
328
376
  (ENV["CC"] || @gcc_command || RbConfig::CONFIG["CC"] || "gcc").dup
329
377
  end
@@ -1,3 +1,3 @@
1
1
  class MiniPortile
2
- VERSION = "2.8.5.rc1"
2
+ VERSION = "2.8.5.rc2"
3
3
  end
@@ -3,11 +3,17 @@ require File.expand_path('../helper', __FILE__)
3
3
  require "mkmf" # initialize $LDFLAGS et al here, instead of in the middle of a test
4
4
 
5
5
  class TestMkmfConfig < TestCase
6
- attr_reader :recipe, :include_path, :lib_path
6
+ attr_reader :recipe
7
7
 
8
8
  LIBXML_PCP = File.join(__dir__, "assets", "pkgconf", "libxml2")
9
9
  LIBXSLT_PCP = File.join(__dir__, "assets", "pkgconf", "libxslt")
10
10
 
11
+ def make_recipe(name, version)
12
+ MiniPortile.new(name, version).tap do |recipe|
13
+ recipe.logger = StringIO.new # hush output
14
+ end
15
+ end
16
+
11
17
  def setup
12
18
  super
13
19
 
@@ -19,14 +25,11 @@ class TestMkmfConfig < TestCase
19
25
  $CFLAGS = "-xxx"
20
26
  $CXXFLAGS = "-xxx"
21
27
  $libs = "-lxxx"
28
+ $MINI_PORTILE_STATIC_LIBS = {}
22
29
 
23
30
  FileUtils.rm_rf(["tmp", "ports"]) # remove any previous test files
24
31
 
25
- @recipe = MiniPortile.new("libfoo", "1.0.0").tap do |recipe|
26
- recipe.logger = StringIO.new
27
- end
28
- @include_path = File.join(@recipe.path, "include")
29
- @lib_path = File.join(@recipe.path, "lib")
32
+ @recipe = make_recipe("libfoo", "1.0.0")
30
33
  end
31
34
 
32
35
  def teardown
@@ -37,6 +40,7 @@ class TestMkmfConfig < TestCase
37
40
  $CFLAGS = ""
38
41
  $CXXFLAGS = ""
39
42
  $libs = ""
43
+ $MINI_PORTILE_STATIC_LIBS = {}
40
44
  @save_env.each do |var, val|
41
45
  ENV[var] = val
42
46
  end
@@ -47,35 +51,48 @@ class TestMkmfConfig < TestCase
47
51
  def test_mkmf_config_recipe_LIBPATH_global_lib_dir_does_not_exist
48
52
  recipe.mkmf_config
49
53
 
50
- refute_includes($LIBPATH, lib_path)
51
- refute_includes($libs.split, "-lfoo")
54
+ refute_includes($LIBPATH, recipe.lib_path)
55
+ refute_includes($libs.shellsplit, "-lfoo")
52
56
  end
53
57
 
54
- def test_mkmf_config_recipe_LIBPATH_global
55
- FileUtils.mkdir_p(lib_path)
58
+ def test_mkmf_config_recipe_LIBPATH_global_not_static
59
+ FileUtils.mkdir_p(recipe.lib_path)
56
60
 
57
61
  recipe.mkmf_config
58
62
 
59
- assert_includes($LIBPATH, lib_path)
60
- assert_operator($LIBPATH.index(lib_path), :<, $LIBPATH.index("xxx")) # prepend
63
+ assert_includes($LIBPATH, recipe.lib_path)
64
+ assert_operator($LIBPATH.index(recipe.lib_path), :<, $LIBPATH.index("xxx")) # prepend
65
+
66
+ assert_includes($libs.shellsplit, "-lfoo") # note the recipe name is "libfoo"
67
+ assert_match(%r{-lfoo.*-lxxx}, $libs) # prepend
68
+ end
69
+
70
+ def test_mkmf_config_recipe_LIBPATH_global_static
71
+ FileUtils.mkdir_p(recipe.lib_path)
72
+ static_lib_path = File.join(recipe.lib_path, "libfoo.#{$LIBEXT}")
73
+
74
+ recipe.mkmf_config(static: "foo")
75
+
76
+ refute_includes($LIBPATH, recipe.lib_path)
61
77
 
62
- assert_includes($libs.split, "-lfoo") # note the recipe name is "libfoo"
63
- assert_match(%r{-lxxx.*-lfoo}, $libs) # append
78
+ refute_includes($libs.shellsplit, "-lfoo") # note the recipe name is "libfoo"
79
+ assert_includes($libs.shellsplit, static_lib_path)
80
+ assert_match(%r{#{static_lib_path}.*-lxxx}, $libs) # prepend
64
81
  end
65
82
 
66
83
  def test_mkmf_config_recipe_INCFLAGS_global_include_dir_does_not_exist
67
84
  recipe.mkmf_config
68
85
 
69
- refute_includes($INCFLAGS.split, "-I#{include_path}")
86
+ refute_includes($INCFLAGS.shellsplit, "-I#{recipe.include_path}")
70
87
  end
71
88
 
72
89
  def test_mkmf_config_recipe_INCFLAGS_global
73
- FileUtils.mkdir_p(include_path)
90
+ FileUtils.mkdir_p(recipe.include_path)
74
91
 
75
92
  recipe.mkmf_config
76
93
 
77
- assert_includes($INCFLAGS.split, "-I#{include_path}")
78
- assert_match(%r{-I#{include_path}.*-I/xxx}, $INCFLAGS) # prepend
94
+ assert_includes($INCFLAGS.shellsplit, "-I#{recipe.include_path}")
95
+ assert_match(%r{-I#{recipe.include_path}.*-I/xxx}, $INCFLAGS) # prepend
79
96
  end
80
97
 
81
98
  def test_mkmf_config_pkgconf_does_not_exist
@@ -84,7 +101,7 @@ class TestMkmfConfig < TestCase
84
101
  end
85
102
  end
86
103
 
87
- def test_mkmf_config_pkgconf_LIBPATH_global
104
+ def test_mkmf_config_pkgconf_LIBPATH_global_not_static
88
105
  # can't get the pkgconf utility to install on windows with ruby 2.3 in CI
89
106
  skip if MiniPortile.windows? && RUBY_VERSION < "2.4"
90
107
 
@@ -92,9 +109,28 @@ class TestMkmfConfig < TestCase
92
109
 
93
110
  assert_includes($LIBPATH, "/foo/libxml2/2.11.5/lib")
94
111
  assert_operator($LIBPATH.index("/foo/libxml2/2.11.5/lib"), :<, $LIBPATH.index("xxx")) # prepend
112
+ refute_includes($LIBPATH, "/foo/zlib/1.3/lib")
113
+
114
+ assert_includes($libs.shellsplit, "-lxml2")
115
+ assert_match(%r{-lxml2.*-lxxx}, $libs) # prepend
116
+ refute_includes($libs.shellsplit, "-lz")
117
+ end
118
+
119
+ def test_mkmf_config_pkgconf_LIBPATH_global_static
120
+ # can't get the pkgconf utility to install on windows with ruby 2.3 in CI
121
+ skip if MiniPortile.windows? && RUBY_VERSION < "2.4"
122
+
123
+ static_lib_path = "/foo/libxml2/2.11.5/lib/libxml2.#{$LIBEXT}"
95
124
 
96
- assert_includes($libs.split, "-lxml2")
97
- assert_match(%r{-lxxx.*-lxml2}, $libs) # append
125
+ recipe.mkmf_config(pkg: "libxml-2.0", dir: LIBXML_PCP, static: "xml2")
126
+
127
+ refute_includes($LIBPATH, "/foo/libxml2/2.11.5/lib")
128
+ refute_includes($libs.shellsplit, "-lxml2")
129
+ assert_includes($libs.shellsplit, static_lib_path)
130
+ assert_match(%r{#{static_lib_path}.*-lxxx}, $libs) # prepend
131
+
132
+ assert_includes($LIBPATH, "/foo/zlib/1.3/lib") # from --static
133
+ assert_includes($libs.shellsplit, "-lz") # from --static
98
134
  end
99
135
 
100
136
  def test_mkmf_config_pkgconf_CFLAGS_global
@@ -103,14 +139,14 @@ class TestMkmfConfig < TestCase
103
139
 
104
140
  recipe.mkmf_config(pkg: "libxml-2.0", dir: LIBXML_PCP)
105
141
 
106
- assert_includes($INCFLAGS.split, "-I/foo/libxml2/2.11.5/include/libxml2")
142
+ assert_includes($INCFLAGS.shellsplit, "-I/foo/libxml2/2.11.5/include/libxml2")
107
143
  assert_match(%r{-I/foo/libxml2/2.11.5/include/libxml2.*-I/xxx}, $INCFLAGS) # prepend
108
144
 
109
- assert_includes($CFLAGS.split, "-ggdb3")
110
- assert_match(%r{-xxx.*-ggdb3}, $CFLAGS) # prepend
145
+ assert_includes($CFLAGS.shellsplit, "-ggdb3")
146
+ assert_match(%r{-xxx.*-ggdb3}, $CFLAGS) # append
111
147
 
112
- assert_includes($CXXFLAGS.split, "-ggdb3")
113
- assert_match(%r{-xxx.*-ggdb3}, $CXXFLAGS) # prepend
148
+ assert_includes($CXXFLAGS.shellsplit, "-ggdb3")
149
+ assert_match(%r{-xxx.*-ggdb3}, $CXXFLAGS) # append
114
150
  end
115
151
 
116
152
  def test_mkmf_config_pkgconf_path_accumulation
@@ -122,37 +158,44 @@ class TestMkmfConfig < TestCase
122
158
  refute_includes(pcpaths, LIBXSLT_PCP)
123
159
  end
124
160
 
125
- recipe.mkmf_config(pkg: "libxml-2.0", dir: LIBXML_PCP)
161
+ make_recipe("libxml2", "2.11.5").tap do |recipe|
162
+ recipe.mkmf_config(pkg: "libxml-2.0", dir: LIBXML_PCP, static: "xml2")
126
163
 
127
- ENV["PKG_CONFIG_PATH"].split(File::PATH_SEPARATOR).tap do |pcpaths|
128
- assert_includes(pcpaths, LIBXML_PCP)
129
- refute_includes(pcpaths, LIBXSLT_PCP)
164
+ ENV["PKG_CONFIG_PATH"].split(File::PATH_SEPARATOR).tap do |pcpaths|
165
+ assert_includes(pcpaths, LIBXML_PCP)
166
+ refute_includes(pcpaths, LIBXSLT_PCP)
167
+ end
130
168
  end
131
169
 
132
- recipe.mkmf_config(pkg: "libxslt", dir: LIBXSLT_PCP)
170
+ make_recipe("libxslt", "1.13.8").tap do |recipe|
171
+ recipe.mkmf_config(pkg: "libxslt", dir: LIBXSLT_PCP, static: "xslt")
133
172
 
134
- ENV["PKG_CONFIG_PATH"].split(File::PATH_SEPARATOR).tap do |pcpaths|
135
- assert_includes(pcpaths, LIBXML_PCP)
136
- assert_includes(pcpaths, LIBXSLT_PCP)
137
- end
173
+ ENV["PKG_CONFIG_PATH"].split(File::PATH_SEPARATOR).tap do |pcpaths|
174
+ assert_includes(pcpaths, LIBXML_PCP)
175
+ assert_includes(pcpaths, LIBXSLT_PCP)
176
+ end
138
177
 
139
- recipe.mkmf_config(pkg: "libexslt", dir: LIBXSLT_PCP)
178
+ recipe.mkmf_config(pkg: "libexslt", dir: LIBXSLT_PCP, static: "exslt")
179
+ end
140
180
 
141
- $INCFLAGS.split.tap do |incflags|
181
+ $INCFLAGS.shellsplit.tap do |incflags|
142
182
  assert_includes(incflags, "-I/foo/libxml2/2.11.5/include/libxml2")
143
183
  assert_includes(incflags, "-I/foo/libxslt/1.1.38/include")
144
184
  end
145
- assert_includes($LIBPATH, "/foo/libxml2/2.11.5/lib")
146
- assert_includes($LIBPATH, "/foo/libxslt/1.1.38/lib")
147
- assert_includes($LIBPATH, "/foo/zlib/1.3/lib") # from `--static`
148
- $CFLAGS.split.tap do |cflags|
185
+ $CFLAGS.shellsplit.tap do |cflags|
149
186
  assert_includes(cflags, "-ggdb3")
150
187
  assert_includes(cflags, "-Wno-deprecated-enum-enum-conversion")
151
188
  end
152
- $libs.split.tap do |libflags|
153
- assert_includes(libflags, "-lxml2")
154
- assert_includes(libflags, "-lxslt")
155
- assert_includes(libflags, "-lexslt")
189
+ refute_includes($LIBPATH, "/foo/libxml2/2.11.5/lib")
190
+ refute_includes($LIBPATH, "/foo/libxslt/1.1.38/lib")
191
+ assert_includes($LIBPATH, "/foo/zlib/1.3/lib") # from `--static`
192
+ $libs.shellsplit.tap do |libflags|
193
+ refute_includes(libflags, "-lxml2")
194
+ assert_includes(libflags, "/foo/libxml2/2.11.5/lib/libxml2.#{$LIBEXT}")
195
+ refute_includes(libflags, "-lxslt")
196
+ assert_includes(libflags, "/foo/libxslt/1.1.38/lib/libxslt.#{$LIBEXT}")
197
+ refute_includes(libflags, "-lexslt")
198
+ assert_includes(libflags, "/foo/libxslt/1.1.38/lib/libexslt.#{$LIBEXT}")
156
199
  assert_includes(libflags, "-lz") # from `--static`
157
200
  end
158
201
  end
@@ -0,0 +1,18 @@
1
+ require File.expand_path('../helper', __FILE__)
2
+
3
+ class TestRecipe < TestCase
4
+ def test_path
5
+ recipe = MiniPortile.new("libfoo", "1.0.0")
6
+ assert_equal(File.expand_path(File.join(recipe.target, recipe.host, recipe.name, recipe.version)), recipe.path)
7
+ end
8
+
9
+ def test_lib_path
10
+ recipe = MiniPortile.new("libfoo", "1.0.0")
11
+ assert_equal(File.join(recipe.path, "lib"), recipe.lib_path)
12
+ end
13
+
14
+ def test_include_path
15
+ recipe = MiniPortile.new("libfoo", "1.0.0")
16
+ assert_equal(File.join(recipe.path, "include"), recipe.include_path)
17
+ end
18
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mini_portile2
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.8.5.rc1
4
+ version: 2.8.5.rc2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Luis Lavena
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2023-09-13 00:00:00.000000000 Z
13
+ date: 2023-09-17 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: bundler
@@ -139,6 +139,7 @@ files:
139
139
  - test/test_execute.rb
140
140
  - test/test_mkmf_config.rb
141
141
  - test/test_proxy.rb
142
+ - test/test_recipe.rb
142
143
  homepage: https://github.com/flavorjones/mini_portile
143
144
  licenses:
144
145
  - MIT
@@ -184,3 +185,4 @@ test_files:
184
185
  - test/test_execute.rb
185
186
  - test/test_mkmf_config.rb
186
187
  - test/test_proxy.rb
188
+ - test/test_recipe.rb