commit a15874da2ed713d318c19ef490ad2f42cbcf0e13d9b90a91e0d4554ddf1e3067
Author: Adrian Schröter <adrian@suse.de>
Date:   Tue Dec 24 17:25:14 2024 +0100

    Sync from SUSE:SLFO:Main rubygem-bootsnap revision 7bf27d3e4df340dfc887c1f168199287

diff --git a/.gitattributes b/.gitattributes
new file mode 100644
index 0000000..9b03811
--- /dev/null
+++ b/.gitattributes
@@ -0,0 +1,23 @@
+## Default LFS
+*.7z filter=lfs diff=lfs merge=lfs -text
+*.bsp filter=lfs diff=lfs merge=lfs -text
+*.bz2 filter=lfs diff=lfs merge=lfs -text
+*.gem filter=lfs diff=lfs merge=lfs -text
+*.gz filter=lfs diff=lfs merge=lfs -text
+*.jar filter=lfs diff=lfs merge=lfs -text
+*.lz filter=lfs diff=lfs merge=lfs -text
+*.lzma filter=lfs diff=lfs merge=lfs -text
+*.obscpio filter=lfs diff=lfs merge=lfs -text
+*.oxt filter=lfs diff=lfs merge=lfs -text
+*.pdf filter=lfs diff=lfs merge=lfs -text
+*.png filter=lfs diff=lfs merge=lfs -text
+*.rpm filter=lfs diff=lfs merge=lfs -text
+*.tbz filter=lfs diff=lfs merge=lfs -text
+*.tbz2 filter=lfs diff=lfs merge=lfs -text
+*.tgz filter=lfs diff=lfs merge=lfs -text
+*.ttf filter=lfs diff=lfs merge=lfs -text
+*.txz filter=lfs diff=lfs merge=lfs -text
+*.whl filter=lfs diff=lfs merge=lfs -text
+*.xz filter=lfs diff=lfs merge=lfs -text
+*.zip filter=lfs diff=lfs merge=lfs -text
+*.zst filter=lfs diff=lfs merge=lfs -text
diff --git a/bootsnap-1.18.4.gem b/bootsnap-1.18.4.gem
new file mode 100644
index 0000000..8636e43
--- /dev/null
+++ b/bootsnap-1.18.4.gem
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:ac4c42af397f7ee15521820198daeff545e4c360d2772c601fbdc2c07d92af55
+size 41984
diff --git a/gem2rpm.yml b/gem2rpm.yml
new file mode 100644
index 0000000..d182d92
--- /dev/null
+++ b/gem2rpm.yml
@@ -0,0 +1,72 @@
+# ---
+# ## used by gem2rpm
+# :summary: this is a custom summary
+# ## used by gem2rpm
+# :description: |-
+#   this is a custom description
+#
+#   it can be multiline
+# ## used by gem2rpm
+# :license: MIT or Ruby
+# ## used by gem2rpm and gem_packages
+# :version_suffix: -x_y
+# ## used by gem2rpm and gem_packages
+# :disable_docs: true
+# ## used by gem2rpm
+# :disable_automatic_rdoc_dep: true
+# ## used by gem2rpm
+# :preamble: |-
+#   BuildRequires: foobar
+#   Requires: foobar
+# ## used by gem2rpm
+# :patches:
+#   foo.patch: -p1
+#   bar.patch:
+# :post_patch:
+#   if you need to fiddle with the source dir before rebuilding the gem
+# ## used by gem2rpm
+:sources:
+# - foo.desktop
+# - bar.desktop
+# :gem_install_args: '....'
+# ## used by gem2rpm
+# :pre_install: |-
+#   %if 0%{?use_system_libev}
+#   export USE_VENDORED_LIBEV="no"
+#   %endif
+# ## used by gem2rpm
+# :post_install: |-
+#   # delete custom files here or do other fancy stuff
+#   install -D -m 0644 %{S:1} %{buildroot}%{_bindir}/gem2rpm-opensuse
+# ## used by gem2rpm
+# :testsuite_command: |-
+#   (pushd %{buildroot}%{gem_base}/gems/%{mod_full_name} && rake test)
+# ## used by gem2rpm
+# :filelist: |-
+#   /usr/bin/gem2rpm-opensuse
+# ## used by gem2rpm
+# :scripts:
+#   :post: |-
+#     /bin/echo foo
+# ## used by gem_packages
+# :main:
+#   :preamble: |-
+#     Requires: util-linux
+#     Recommends: pwgen
+#   :filelist: |-
+#     /usr/bin/gem2rpm-opensuse
+# ## used by gem_packages
+# :custom_pkgs:
+#   apache:
+#     :preamble: |-
+#       Requires: .....
+#     :filelist: |-
+#       /etc/apache2/conf.d/passenger.conf
+#     :summary: Custom summary is optional
+#     :description: |-
+#       Custom description is optional
+#
+#       bar
+#     :post: |-
+#       /bin/echo foo
+#
diff --git a/rubygem-bootsnap.changes b/rubygem-bootsnap.changes
new file mode 100644
index 0000000..5192557
--- /dev/null
+++ b/rubygem-bootsnap.changes
@@ -0,0 +1,387 @@
+-------------------------------------------------------------------
+Mon Nov  4 16:20:10 UTC 2024 - Dan Čermák <dan.cermak@posteo.net>
+
+- New upstream release 1.18.4, see bundled CHANGELOG.md
+
+-------------------------------------------------------------------
+Fri Jun 21 09:33:29 UTC 2024 - Dan Čermák <dan.cermak@posteo.net>
+
+- # 1.18.3
+
+* Fix the cache corruption issue in the revalidation feature. See #474.
+  The cache revalidation feature remains opt-in for now, until it is more battle tested.
+
+# 1.18.2
+
+* Disable stale cache entries revalidation by default as it seems to cause cache corruption issues. See #471 and #474.
+  Will be re-enabled in a future version once the root cause is identified.
+* Fix a potential compilation issue on some systems. See #470.
+
+# 1.18.1
+
+* Handle `EPERM` errors when opening files with `O_NOATIME`.
+
+# 1.18.0
+
+* `Bootsnap.instrumentation` now receive `:hit` events.
+* Add `Bootsnap.log_stats!` to print hit rate statistics on process exit. Can also be enabled with `BOOTSNAP_STATS=1`.
+* Revalidate stale cache entries by digesting the source content.
+  This should significantly improve performance in environments where `mtime` isn't preserved (e.g. CI systems doing a git clone, etc).
+  See #468.
+* Open source files and cache entries with `O_NOATIME` when available to reduce disk accesses. See #469.
+* `bootsnap precompile --gemfile` now look for `.rb` files in the whole gem and not just the `lib/` directory. See #466.
+
+
+-------------------------------------------------------------------
+Mon Jan 29 13:47:58 UTC 2024 - Dan Čermák <dan.cermak@posteo.net>
+
+- New upstream release 1.17.1, see bundled CHANGELOG.md
+
+-------------------------------------------------------------------
+Thu Nov  2 15:40:16 UTC 2023 - Dan Čermák <dan.cermak@posteo.net>
+
+- # 1.17.0
+
+* Ensure `$LOAD_PATH.dup` is Ractor shareable to fix an conflit with `did_you_mean`.
+* Allow to ignore direcotries using absolute paths.
+* Support YAML and JSON CompileCache on TruffleRuby.
+* Support LoadPathCache on TruffleRuby.
+
+# 1.16.0
+
+* Use `RbConfig::CONFIG["rubylibdir"]` instead of `RbConfig::CONFIG["libdir"]` to check for stdlib files. See #431.
+* Fix the cached version of `YAML.load_file` being slightly more permissive than the default `Psych` one. See #434.
+  `Date` and `Time` values are now properly rejected, as well as aliases.
+  If this causes a regression in your application, it is recommended to load *trusted* YAML files with `YAML.unsafe_load_file`.
+
+
+-------------------------------------------------------------------
+Wed Dec  7 11:13:46 UTC 2022 - Stephan Kulow <coolo@suse.com>
+
+updated to version 1.15.0
+ see installed CHANGELOG.md
+
+  # 1.15.0
+  
+  * Add a readonly mode, for environments in which the updated cache wouldn't be persisted. See #428 and #423.
+  
+  # 1.14.0
+  
+  * Require Ruby 2.6.
+  * Add a way to skip directories during load path scanning.
+    If you have large non-ruby directories in the middle of your load path, it can severely slow down scanning.
+    Typically this is a problem with `node_modules`. See #277.
+  * Fix `Bootsnap.unload_cache!`, it simply wouldn't work at all becaue of a merge mistake. See #421.
+  
+
+-------------------------------------------------------------------
+Thu Aug  4 12:59:41 UTC 2022 - Stephan Kulow <coolo@suse.com>
+
+updated to version 1.13.0
+ see installed CHANGELOG.md
+
+  # 1.13.0
+  
+  * Stop decorating `Kernel.load`. This used to be very useful in development because the Rails "classic" autoloader
+    was using `Kernel.load` in dev and `Kernel.require` in production. But Zeitwerk is now the default, and it doesn't
+    use `Kernel.load` at all.
+  
+    People still using the classic autoloader might want to stick to `bootsnap 1.12`.
+  
+  * Add `Bootsnap.unload_cache!`. Applications can call it at the end of their boot sequence when they know
+    no more code will be loaded to reclaim a bit of memory.
+  
+
+-------------------------------------------------------------------
+Mon Jun 13 16:52:37 UTC 2022 - Manuel Schnitzer <mschnitzer@suse.com>
+
+- updated to version 1.12.0
+
+  * `bootsnap precompile` CLI will now also precompile `Rakefile` and `.rake` files.
+
+  * Stop decorating `Module#autoload` as it was only useful for supporting Ruby 2.2 and older.
+
+  * Remove `uname` and other patform specific version from the cache keys. `RUBY_PLATFORM + RUBY_REVISION` should be
+    enough to ensure bytecode compatibility. This should improve caching for alpine based setups. See #409.
+
+-------------------------------------------------------------------
+Thu Mar 10 15:43:33 UTC 2022 - Manuel Schnitzer <mschnitzer@suse.com>
+
+- updated to version 1.11.1
+
+  * Fix the `can't modify frozen Hash` error on load path cache mutation. See #411.
+
+  # 1.11.0
+
+  * Drop dependency on `fileutils`.
+
+  * Better respect `Kernel#require` duck typing. While it almost never comes up in practice, `Kernel#require`
+    follow a fairly intricate duck-typing protocol on its argument implemented as `rb_get_path(VALUE)` in MRI.
+    So when applicable we bind `rb_get_path` and use it for improved compatibility. See #396 and #406.
+
+  * Get rid of the `Kernel.require_relative` decorator by resolving `$LOAD_PATH` members to their real path.
+    This way we handle symlinks in `$LOAD_PATH` much more efficiently. See #402 for the detailed explanation.
+
+  * Drop support for Ruby 2.3 (to allow getting rid of the `Kernel.require_relative` decorator).
+
+-------------------------------------------------------------------
+Tue Feb 15 07:24:24 UTC 2022 - Stephan Kulow <coolo@suse.com>
+
+updated to version 1.10.3
+ see installed CHANGELOG.md
+
+  # 1.10.3
+  
+  * Fix Regexp and Date type support in YAML compile cache. (#400)
+  
+  * Improve the YAML compile cache to support `UTF-8` symbols. (#398, #399)
+    [The default `MessagePack` symbol serializer assumes all symbols are ASCII](https://github.com/msgpack/msgpack-ruby/pull/211),
+    because of this, non-ASCII compatible symbol would be restored with `ASCII_8BIT` encoding (AKA `BINARY`).
+    Bootsnap now properly cache them in `UTF-8`.
+  
+    Note that the above only apply for actual YAML symbols (e..g `--- :foo`).
+    The issue is still present for string keys parsed with `YAML.load_file(..., symbolize_names: true)`, that is a bug
+    in `msgpack` that will hopefully be solved soon, see: https://github.com/msgpack/msgpack-ruby/pull/246
+  
+  * Entirely disable the YAML compile cache if `Encoding.default_internal` is set to an encoding not supported by `msgpack`. (#398)
+    `Psych` coerce strings to `Encoding.default_internal`, but `MessagePack` doesn't. So in this scenario we can't provide
+    YAML caching at all without returning the strings in the wrong encoding.
+    This never came up in practice but might as well be safe.
+  
+
+-------------------------------------------------------------------
+Tue Jan 25 06:40:49 UTC 2022 - Stephan Kulow <coolo@suse.com>
+
+updated to version 1.10.2
+ see installed CHANGELOG.md
+
+  # 1.10.2
+  
+  * Reduce the `Kernel.require` extra stack frames some more. Now bootsnap should only add one extra frame per `require` call.
+  
+  * Better check `freeze` option support in JSON compile cache.
+    Previously `JSON.load_file(..., freeze: true)` would be cached even when the msgpack version is missing support for it.
+  
+  # 1.10.1
+  
+  * Fix `Kernel#autoload`'s fallback path always being executed.
+  
+  * Consider `unlink` failing with `ENOENT` as a success.
+  
+  # 1.10.0
+  
+  * Delay requiring `FileUtils`. (#285)
+    `FileUtils` can be installed as a gem, so it's best to wait for bundler to have setup the load path before requiring it.
+  
+  * Improve support of Psych 4. (#392)
+    Since `1.8.0`, `YAML.load_file` was no longer cached when Psych 4 was used. This is because `load_file` loads
+    in safe mode by default, so the Bootsnap cache could defeat that safety.
+    Now when precompiling YAML files, Bootsnap first try to parse them in safe mode, and if it can't fallback to unsafe mode,
+    and the cache contains a flag that records wether it was generated in safe mode or not.
+    `YAML.unsafe_load_file` will use safe caches just fine, but `YAML.load_file` will fallback to uncached YAML parsing
+    if the cache was generated using unsafe parsing.
+  
+  * Minimize the Kernel.require extra stack frames. (#393)
+    This should reduce the noise generated by bootsnap on `LoadError`.
+  
+  # 1.9.4
+  
+  * Ignore absolute paths in the loaded feature index. (#385)
+    This fixes a compatibility issue with Zeitwerk when Zeitwerk is loaded before bootsnap. It also should
+    reduce the memory usage and improve load performance of Zeitwerk managed files.
+  
+  * Automatically invalidate the load path cache whenever the Ruby version change. (#387)
+    This is to avoid issues in case the same installation path is re-used for subsequent ruby patch releases.
+  
+
+-------------------------------------------------------------------
+Tue Dec 21 22:47:57 UTC 2021 - Manuel Schnitzer <mschnitzer@suse.com>
+
+- updated to version 1.9.3
+
+  # 1.9.3
+
+  * Only disable the compile cache for source files impacted by [Ruby 3.0.3 [Bug 18250]](https://bugs.ruby-lang.org/issues/18250).
+    This should keep the performance loss to a minimum.
+
+  # 1.9.2
+
+  * Disable compile cache if [Ruby 3.0.3's ISeq cache bug](https://bugs.ruby-lang.org/issues/18250) is detected.
+    AKA `iseq.rb:13 to_binary: wrong argument type false (expected Symbol)`
+  * Fix `Kernel.load` behavior: before `load 'a'` would load `a.rb` (and other tried extensions) and
+    wouldn't load `a` unless `development_mode: true`, now only `a` would be loaded and files with
+    extensions wouldn't be.
+
+-------------------------------------------------------------------
+Sat Oct  9 09:04:24 UTC 2021 - Manuel Schnitzer <mschnitzer@suse.com>
+
+- updated to version 1.9.1
+
+  * Removed a forgotten debug statement in JSON precompilation
+
+-------------------------------------------------------------------
+Wed Aug 25 05:06:34 UTC 2021 - Manuel Schnitzer <mschnitzer@suse.com>
+
+- updated to version 1.7.7
+
+  * Fix `require_relative` in evaled code on latest ruby 3.1.0-dev. (#366)
+
+-------------------------------------------------------------------
+Thu Jul 29 08:40:13 UTC 2021 - Manuel Schnitzer <mschnitzer@suse.com>
+
+- updated to version 1.7.6
+
+  * Fix reliance on `set` to be required.
+  * Fix `Encoding::UndefinedConversionError` error for Rails applications when precompiling cache. (#364)
+
+-------------------------------------------------------------------
+Fri May 14 16:00:26 UTC 2021 - Manuel Schnitzer <mschnitzer@suse.com>
+
+- updated to version 1.7.5
+
+  # 1.7.5
+
+  * Handle a regression of Ruby 2.7.3 causing Bootsnap to call the deprecated `untaint` method. (#360)
+  * Gracefully handle read-only file system as well as other errors preventing to persist the load path cache. (#358)
+
+  # 1.7.4
+
+  * Stop raising errors when encoutering various file system errors. The cache is now best effort,
+    if somehow it can't be saved, bootsnapp will gracefully fallback to the original operation (e.g. `Kernel.require`).
+    (#353, #177, #262)
+
+-------------------------------------------------------------------
+Tue Mar 23 06:00:28 UTC 2021 - Manuel Schnitzer <mschnitzer@suse.com>
+
+- updated to version 1.7.3
+
+  * Disable YAML precompilation when encountering YAML tags. (#351)
+
+-------------------------------------------------------------------
+Mon Feb 15 13:32:13 UTC 2021 - Manuel Schnitzer <mschnitzer@suse.com>
+
+- updated to version 1.7.2
+
+  * Fix compatibility with msgpack < 1. (#349)
+
+-------------------------------------------------------------------
+Sat Feb  6 11:27:04 UTC 2021 - Manuel Schnitzer <mschnitzer@suse.com>
+
+- updated to version 1.7.1
+
+  * no changelog found in CHANGELOG.md
+
+-------------------------------------------------------------------
+Tue Nov 10 21:00:10 UTC 2020 - Manuel Schnitzer <mschnitzer@suse.com>
+
+- updated to version 1.5.1
+
+  * Workaround a Ruby bug in InstructionSequence.compile_file. (#332)
+
+-------------------------------------------------------------------
+Sun Nov  1 14:46:59 UTC 2020 - Manuel Schnitzer <mschnitzer@suse.com>
+
+- updated to version 1.4.9
+
+  * [Windows support](https://github.com/Shopify/bootsnap/pull/319)
+  * [Fix potential crash](https://github.com/Shopify/bootsnap/pull/322)
+
+-------------------------------------------------------------------
+Sat Aug 22 12:59:34 UTC 2020 - Manuel Schnitzer <mschnitzer@suse.com>
+
+- updated to version 1.4.8
+
+  # 1.4.8
+
+  * [Prevent FallbackScan from polluting exception cause](https://github.com/Shopify/bootsnap/pull/314)
+
+  # 1.4.7
+
+  * Various performance enhancements
+  * Fix race condition in heavy concurrent load scenarios that would cause bootsnap to raise
+
+-------------------------------------------------------------------
+Tue Mar  3 11:01:39 UTC 2020 - Manuel Schnitzer <mschnitzer@suse.com>
+
+- updated to version 1.4.6
+
+  * no changelog found
+
+-------------------------------------------------------------------
+Tue Nov 12 16:42:47 UTC 2019 - Manuel Schnitzer <mschnitzer@suse.com>
+
+- updated to version 1.4.5
+
+  * MRI 2.7 support
+  * Fixed concurrency bugs
+
+-------------------------------------------------------------------
+Sun May  5 09:19:48 UTC 2019 - Stephan Kulow <coolo@suse.com>
+
+- updated to version 1.4.4
+ see installed CHANGELOG.md
+
+  # 1.4.4
+  
+  * Disable ISeq cache in `bootsnap/setup` by default in Ruby 2.5
+  
+  # 1.4.3
+  
+  * Fix some cache permissions and umask issues after switch to mkstemp
+
+-------------------------------------------------------------------
+Fri Mar 29 05:56:31 UTC 2019 - Stephan Kulow <coolo@suse.com>
+
+- updated to version 1.4.2
+ see installed CHANGELOG.md
+
+  # 1.4.2
+  
+  * Fix bug when removing features loaded by relative path from `$LOADED_FEATURES`
+  * Fix bug with propagation of `NameError` up from nested calls to `require`
+
+-------------------------------------------------------------------
+Sat Mar  2 15:05:33 UTC 2019 - Stephan Kulow <coolo@suse.com>
+
+- updated to version 1.4.1
+ see installed CHANGELOG.md
+
+  # 1.4.1
+  
+  * Don't register change observers to frozen objects.
+  
+  # 1.4.0
+  
+  * When running in development mode, always fall back to a full path scan on LoadError, making
+    bootsnap more able to detect newly-created files. (#230)
+  * Respect `$LOADED_FEATURES.delete` in order to support code reloading, for integration with
+    Zeitwerk. (#230)
+  * Minor performance improvement: flow-control exceptions no longer generate backtraces.
+  * Better support for requiring from environments where some features are not supported (especially
+    JRuby). (#226)k
+  * More robust handling of OS errors when creating files. (#225)
+
+-------------------------------------------------------------------
+Mon Sep 17 09:29:37 UTC 2018 - mschnitzer@suse.com
+
+- updated to version 1.3.2
+
+  * Fix Spring + Bootsnap incompatibility when there are files with similar names.
+  * Fix `YAML.load_file` monkey patch to keep accepting File objects as arguments.
+  * Fix the API for `ActiveSupport::Dependencies#autoloadable_module?`.
+  * Some performance improvements.
+
+-------------------------------------------------------------------
+Wed Jul 11 18:00:51 UTC 2018 - factory-auto@kulow.org
+
+- updated to version 1.3.1
+ see installed CHANGELOG.md
+
+  # 1.3.1
+  
+  * Change load path scanning to more correctly follow symlinks.
+
+-------------------------------------------------------------------
+Fri Jul  6 21:15:48 UTC 2018 - mschnitzer@suse.com
+
+- Initial package release
diff --git a/rubygem-bootsnap.spec b/rubygem-bootsnap.spec
new file mode 100644
index 0000000..0142993
--- /dev/null
+++ b/rubygem-bootsnap.spec
@@ -0,0 +1,57 @@
+#
+# spec file for package rubygem-bootsnap
+#
+# Copyright (c) 2024 SUSE LLC
+#
+# All modifications and additions to the file contributed by third parties
+# remain the property of their copyright owners, unless otherwise agreed
+# upon. The license for this file, and modifications and additions to the
+# file, is the same license as for the pristine package itself (unless the
+# license for the pristine package is not an Open Source License, in which
+# case the license is the MIT License). An "Open Source License" is a
+# license that conforms to the Open Source Definition (Version 1.9)
+# published by the Open Source Initiative.
+
+# Please submit bugfixes or comments via https://bugs.opensuse.org/
+#
+
+
+#
+# This file was generated with a gem2rpm.yml and not just plain gem2rpm.
+# All sections marked as MANUAL, license headers, summaries and descriptions
+# can be maintained in that file. Please consult this file before editing any
+# of those fields
+#
+
+Name:           rubygem-bootsnap
+Version:        1.18.4
+Release:        0
+%define mod_name bootsnap
+%define mod_full_name %{mod_name}-%{version}
+BuildRequires:  %{rubydevel >= 2.6.0}
+BuildRequires:  %{rubygem gem2rpm}
+BuildRequires:  ruby-macros >= 5
+BuildRequires:  update-alternatives
+URL:            https://github.com/Shopify/bootsnap
+Source:         https://rubygems.org/gems/%{mod_full_name}.gem
+Source1:        gem2rpm.yml
+Summary:        Boot large ruby/rails apps faster
+License:        MIT
+
+%description
+Boot large ruby/rails apps faster.
+
+%prep
+
+%build
+
+%install
+%gem_install \
+  --symlink-binaries \
+  --doc-files="CHANGELOG.md LICENSE.txt README.md" \
+  -f
+%gem_cleanup
+
+%gem_packages
+
+%changelog