rbe-tebako 0.16.2 → 0.16.3

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: ae8e7d799dcd1f708aae6e207f52209723ddc002d974630329f366f5868e4969
4
- data.tar.gz: 43fde362f15747f05c1ac17c6d87e642fb6726cf63aad5518631b61b79349d2d
3
+ metadata.gz: 91a00856fa000e838737ec686563147f9c02df3af6aa167dbb611b711bda3782
4
+ data.tar.gz: b5948f0e4c9a65251252936937a577c767d962937ff48ca5eb3c1f84429dd618
5
5
  SHA512:
6
- metadata.gz: d4544ed4430fa4c6feebeca5faed6aae71a5e1b8059760d0cd3eae4ca0b9bfc6058f48606dba2ee050b728a7eb7ceca1bf4d965b51a9f118ceff84c4456bb0c8
7
- data.tar.gz: 92100591623e76a5078ff059d54b8071443a6bd1bd9e7a8bfd8879c7c511d325fb937984ee228045025a136b469aefb1c4446eab9d56d293968f85159035cdae
6
+ metadata.gz: 2623677a0b4432aa5266ea3af65f12e6542ba3d77469643b287d27ac58df800a6d577b332bf1d47419397e5f4b9c658f67bcc611326761a56845c341a7259b60
7
+ data.tar.gz: ef68f1160e4892b3e20857865b0e285d2f76504729bacb024e2d3658e53673278f902b4d1092e06787d71e93ff3fa3bac6e53fefbc34f43e2a40a5a48f61c409
@@ -6,6 +6,7 @@
6
6
 
7
7
  require "digest"
8
8
  require "fileutils"
9
+ require "find"
9
10
  require "json"
10
11
  require "pathname"
11
12
  require "rubygems/package"
@@ -47,6 +48,7 @@ module Tebako
47
48
  relocate_install(temporary, manifest, destination)
48
49
  activate_runtime(temporary, manifest) if manifest["runtime_path"]
49
50
  register_environment(temporary)
51
+ normalize_mtimes(temporary)
50
52
  publish_install(temporary, destination)
51
53
  manifest
52
54
  ensure
@@ -310,6 +312,23 @@ module Tebako
310
312
  File.symlink(link, target)
311
313
  end
312
314
 
315
+ # The archive stores no mtimes: extraction stamps each file as it is
316
+ # written, in archive (alphabetical) order — which inverts autotools
317
+ # dependencies. "configure" sorts before "configure.ac", so make inside
318
+ # the installed Ruby build tree would try to regenerate configure with
319
+ # autoconf (absent on build runners). One shared timestamp across the
320
+ # whole tree makes it quiescent: make rebuilds only when a prerequisite
321
+ # is strictly NEWER than its target. Runs last, after relocation and
322
+ # activation have finished mutating files.
323
+ def normalize_mtimes(root)
324
+ stamp = Time.now
325
+ Find.find(root) do |path|
326
+ File.utime(stamp, stamp, path) unless File.symlink?(path)
327
+ end
328
+ rescue SystemCallError => e
329
+ raise Tebako::Error.new("Unable to normalize runtime SDK timestamps: #{e.message}", 121)
330
+ end
331
+
313
332
  def publish_install(temporary, destination)
314
333
  destination = File.expand_path(destination)
315
334
  backup = "#{destination}.previous"
@@ -26,5 +26,5 @@
26
26
  # POSSIBILITY OF SUCH DAMAGE.
27
27
 
28
28
  module Tebako
29
- VERSION = "0.16.2"
29
+ VERSION = "0.16.3"
30
30
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rbe-tebako
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.16.2
4
+ version: 0.16.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrea Fomera
@@ -310,7 +310,7 @@ licenses:
310
310
  - BSD-2-Clause
311
311
  metadata:
312
312
  homepage_uri: https://github.com/RubyEverywhere/tebako
313
- source_code_uri: https://github.com/RubyEverywhere/tebako/tree/v0.16.2
313
+ source_code_uri: https://github.com/RubyEverywhere/tebako/tree/v0.16.3
314
314
  allowed_push_host: https://rubygems.org
315
315
  rdoc_options: []
316
316
  require_paths: