From 9165bb9ebef94c1ec7f74b8ad91b64f49bd262a5 Mon Sep 17 00:00:00 2001
From: Stan Hu <stanhu@gmail.com>
Date: Wed, 18 Sep 2024 13:00:13 -0700
Subject: [PATCH] Update ffi gem to v1.17.0

ffi v1.15.5 does not appear to compile on macOS with clang 16.0 at the
moment. Update to ffi v1.17.0 to fix this, but don't use the
newly-introduced precompiled gems because Omnibus needs to compile
this in order to get the right default LD_LIBRARY_PATH.

Omnibus GitLab has already been using ffi v1.17.0 since GitLab 17.1
(https://gitlab.com/gitlab-org/omnibus-gitlab/-/merge_requests/7670).

Diff: https://my.diffend.io/gems/ffi/1.16.3/1.17.0

Changelog: changed
---
 Gemfile               |  4 ++++
 Gemfile.checksum      | 20 +++++++++++++++-----
 Gemfile.lock          |  3 ++-
 Gemfile.next.checksum | 20 +++++++++++++++-----
 Gemfile.next.lock     |  2 +-
 5 files changed, 37 insertions(+), 12 deletions(-)

diff --git a/Gemfile b/Gemfile
index f7b91087fc842..f7d1a2a874056 100644
--- a/Gemfile
+++ b/Gemfile
@@ -39,6 +39,10 @@ gem 'activerecord-gitlab', path: 'gems/activerecord-gitlab' # rubocop:todo Gemfi
 
 gem 'bootsnap', '~> 1.18.3', require: false # rubocop:todo Gemfile/MissingFeatureCategory
 
+# Avoid the precompiled native gems because Omnibus needs to build this to ensure
+# LD_LIBRARY_PATH is correct: https://gitlab.com/gitlab-org/omnibus-gitlab/-/merge_requests/7730
+gem 'ffi', '~> 1.17', force_ruby_platform: true, feature_category: :shared
+
 gem 'openssl', '~> 3.0' # rubocop:todo Gemfile/MissingFeatureCategory
 gem 'ipaddr', '~> 1.2.5' # rubocop:todo Gemfile/MissingFeatureCategory
 
diff --git a/Gemfile.checksum b/Gemfile.checksum
index a46f6fd53059c..9d28df1854d2b 100644
--- a/Gemfile.checksum
+++ b/Gemfile.checksum
@@ -174,11 +174,21 @@
 {"name":"fast_blank","version":"1.0.1","platform":"ruby","checksum":"269fc30414fed4e6403bc4a49081e1ea539f8b9226e59276ed1efaefabaa17ea"},
 {"name":"fast_gettext","version":"2.3.0","platform":"ruby","checksum":"0253e26423ccab68061c42387827e3b99243a1b15ad614df1c800ba870d64f84"},
 {"name":"ffaker","version":"2.23.0","platform":"ruby","checksum":"9d2dfb5cc284a92c8571bddcbe0c573127a2f3238f4b0aa56e08ccf3e4858498"},
-{"name":"ffi","version":"1.15.5","platform":"java","checksum":"610b9a993e67b812123cfedc1c45a639aa2f2455747af5443d54f98e092b1abe"},
-{"name":"ffi","version":"1.15.5","platform":"ruby","checksum":"6f2ed2fa68047962d6072b964420cba91d82ce6fa8ee251950c17fca6af3c2a0"},
-{"name":"ffi","version":"1.15.5","platform":"x64-mingw-ucrt","checksum":"3dea5573d11cd4c8a965e861052b0036098b239140caa0a98940c5c84eb5990d"},
-{"name":"ffi","version":"1.15.5","platform":"x64-mingw32","checksum":"9acc4e474bef25dbcf827b1e6fce4067e9a1eff74a0296d25f0af392fafcd096"},
-{"name":"ffi","version":"1.15.5","platform":"x86-mingw32","checksum":"6e52c39fdbbccc085ae05d489d1b835ce05dcdf2a4c88ba739e3b42afd2b5404"},
+{"name":"ffi","version":"1.17.0","platform":"aarch64-linux-gnu","checksum":"228c8fb79e6b018a31c75414115a75ca65f74e8138b2c9c97d22041e4e12f2c1"},
+{"name":"ffi","version":"1.17.0","platform":"aarch64-linux-musl","checksum":"f31ab84b3d7a850a22d2767b66dafebaebe12f64eaa9a4d1748d417ad1123109"},
+{"name":"ffi","version":"1.17.0","platform":"arm-linux-gnu","checksum":"ae3b5bf4701c84263002f13eadfde35fe1e6f88720e7c6f15f1f08f46d745857"},
+{"name":"ffi","version":"1.17.0","platform":"arm-linux-musl","checksum":"6f9dc84817e2dfb62fd209649097e134625c9a66db43c441fa7a8ddb17f40fc9"},
+{"name":"ffi","version":"1.17.0","platform":"arm64-darwin","checksum":"609c874e76614542c6d485b0576e42a7a38ffcdf086612f9a300c4ec3fcd0d12"},
+{"name":"ffi","version":"1.17.0","platform":"java","checksum":"f65f022616970fcde83fe176393eb873a7b959ef2703f94931cf0af6ab55ec7a"},
+{"name":"ffi","version":"1.17.0","platform":"ruby","checksum":"51630e43425078311c056ca75f961bb3bda1641ab36e44ad4c455e0b0e4a231c"},
+{"name":"ffi","version":"1.17.0","platform":"x64-mingw-ucrt","checksum":"1f05f7fb40387c99bea8fa66be384825fd2bbc3fb3d2645de6058f5f0f032bb8"},
+{"name":"ffi","version":"1.17.0","platform":"x64-mingw32","checksum":"63c9b1c847036550c655237526c151ee535dbbeb638e70d9dd3ccbc6104c713b"},
+{"name":"ffi","version":"1.17.0","platform":"x86-linux-gnu","checksum":"81b80d24392be2b8ec6bd66da6b488fd05242af5c0868b59c8b716e5a633c8b5"},
+{"name":"ffi","version":"1.17.0","platform":"x86-linux-musl","checksum":"6917c10e928b80dbf9b16abf9696aa9d7ca417a24d0cc5c1d53fb4ce9799c8c1"},
+{"name":"ffi","version":"1.17.0","platform":"x86-mingw32","checksum":"e6f55971b8d4909d95c19647adb1f9e8abfa5461d62deaaa1f69b8dccaf6c932"},
+{"name":"ffi","version":"1.17.0","platform":"x86_64-darwin","checksum":"fdcd48c69db3303ef95aec5c64d6275fcf9878a02c0bec0afddc506ceca0f56b"},
+{"name":"ffi","version":"1.17.0","platform":"x86_64-linux-gnu","checksum":"1015e59d5919dd6bbcb0704325b0bd639be664a79b1e2189943ceb18faa34198"},
+{"name":"ffi","version":"1.17.0","platform":"x86_64-linux-musl","checksum":"6573299eedf8dd16668f8a435b72c4236b61bca0279bb73c811e3cbdb395e877"},
 {"name":"ffi-compiler","version":"1.0.1","platform":"ruby","checksum":"019f389b078a2fec9de7f4f65771095f80a447e34436b4588bcb629e2a564c30"},
 {"name":"ffi-yajl","version":"2.6.0","platform":"ruby","checksum":"69baa612273991e4c79667464eb25f3feb169899aab33929a33b03234af24336"},
 {"name":"ffi-yajl","version":"2.6.0","platform":"universal-java","checksum":"1159a093c51d75d67578e31d2ed429f2481ef7e73021c5d667ebf6ab481a0d21"},
diff --git a/Gemfile.lock b/Gemfile.lock
index addd9aea14093..80ea43c8ebf1a 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -611,7 +611,7 @@ GEM
     fast_blank (1.0.1)
     fast_gettext (2.3.0)
     ffaker (2.23.0)
-    ffi (1.15.5)
+    ffi (1.17.0)
     ffi-compiler (1.0.1)
       ffi (>= 1.0.0)
       rake
@@ -2035,6 +2035,7 @@ DEPENDENCIES
   faraday_middleware-aws-sigv4 (~> 1.0.1)
   fast_blank (~> 1.0.1)
   ffaker (~> 2.23)
+  ffi (~> 1.17)
   flipper (~> 0.26.2)
   flipper-active_record (~> 0.26.2)
   flipper-active_support_cache_store (~> 0.26.2)
diff --git a/Gemfile.next.checksum b/Gemfile.next.checksum
index ad06bb96ee157..82695117ceafd 100644
--- a/Gemfile.next.checksum
+++ b/Gemfile.next.checksum
@@ -175,11 +175,21 @@
 {"name":"fast_blank","version":"1.0.1","platform":"ruby","checksum":"269fc30414fed4e6403bc4a49081e1ea539f8b9226e59276ed1efaefabaa17ea"},
 {"name":"fast_gettext","version":"2.3.0","platform":"ruby","checksum":"0253e26423ccab68061c42387827e3b99243a1b15ad614df1c800ba870d64f84"},
 {"name":"ffaker","version":"2.23.0","platform":"ruby","checksum":"9d2dfb5cc284a92c8571bddcbe0c573127a2f3238f4b0aa56e08ccf3e4858498"},
-{"name":"ffi","version":"1.15.5","platform":"java","checksum":"610b9a993e67b812123cfedc1c45a639aa2f2455747af5443d54f98e092b1abe"},
-{"name":"ffi","version":"1.15.5","platform":"ruby","checksum":"6f2ed2fa68047962d6072b964420cba91d82ce6fa8ee251950c17fca6af3c2a0"},
-{"name":"ffi","version":"1.15.5","platform":"x64-mingw-ucrt","checksum":"3dea5573d11cd4c8a965e861052b0036098b239140caa0a98940c5c84eb5990d"},
-{"name":"ffi","version":"1.15.5","platform":"x64-mingw32","checksum":"9acc4e474bef25dbcf827b1e6fce4067e9a1eff74a0296d25f0af392fafcd096"},
-{"name":"ffi","version":"1.15.5","platform":"x86-mingw32","checksum":"6e52c39fdbbccc085ae05d489d1b835ce05dcdf2a4c88ba739e3b42afd2b5404"},
+{"name":"ffi","version":"1.17.0","platform":"aarch64-linux-gnu","checksum":"228c8fb79e6b018a31c75414115a75ca65f74e8138b2c9c97d22041e4e12f2c1"},
+{"name":"ffi","version":"1.17.0","platform":"aarch64-linux-musl","checksum":"f31ab84b3d7a850a22d2767b66dafebaebe12f64eaa9a4d1748d417ad1123109"},
+{"name":"ffi","version":"1.17.0","platform":"arm-linux-gnu","checksum":"ae3b5bf4701c84263002f13eadfde35fe1e6f88720e7c6f15f1f08f46d745857"},
+{"name":"ffi","version":"1.17.0","platform":"arm-linux-musl","checksum":"6f9dc84817e2dfb62fd209649097e134625c9a66db43c441fa7a8ddb17f40fc9"},
+{"name":"ffi","version":"1.17.0","platform":"arm64-darwin","checksum":"609c874e76614542c6d485b0576e42a7a38ffcdf086612f9a300c4ec3fcd0d12"},
+{"name":"ffi","version":"1.17.0","platform":"java","checksum":"f65f022616970fcde83fe176393eb873a7b959ef2703f94931cf0af6ab55ec7a"},
+{"name":"ffi","version":"1.17.0","platform":"ruby","checksum":"51630e43425078311c056ca75f961bb3bda1641ab36e44ad4c455e0b0e4a231c"},
+{"name":"ffi","version":"1.17.0","platform":"x64-mingw-ucrt","checksum":"1f05f7fb40387c99bea8fa66be384825fd2bbc3fb3d2645de6058f5f0f032bb8"},
+{"name":"ffi","version":"1.17.0","platform":"x64-mingw32","checksum":"63c9b1c847036550c655237526c151ee535dbbeb638e70d9dd3ccbc6104c713b"},
+{"name":"ffi","version":"1.17.0","platform":"x86-linux-gnu","checksum":"81b80d24392be2b8ec6bd66da6b488fd05242af5c0868b59c8b716e5a633c8b5"},
+{"name":"ffi","version":"1.17.0","platform":"x86-linux-musl","checksum":"6917c10e928b80dbf9b16abf9696aa9d7ca417a24d0cc5c1d53fb4ce9799c8c1"},
+{"name":"ffi","version":"1.17.0","platform":"x86-mingw32","checksum":"e6f55971b8d4909d95c19647adb1f9e8abfa5461d62deaaa1f69b8dccaf6c932"},
+{"name":"ffi","version":"1.17.0","platform":"x86_64-darwin","checksum":"fdcd48c69db3303ef95aec5c64d6275fcf9878a02c0bec0afddc506ceca0f56b"},
+{"name":"ffi","version":"1.17.0","platform":"x86_64-linux-gnu","checksum":"1015e59d5919dd6bbcb0704325b0bd639be664a79b1e2189943ceb18faa34198"},
+{"name":"ffi","version":"1.17.0","platform":"x86_64-linux-musl","checksum":"6573299eedf8dd16668f8a435b72c4236b61bca0279bb73c811e3cbdb395e877"},
 {"name":"ffi-compiler","version":"1.0.1","platform":"ruby","checksum":"019f389b078a2fec9de7f4f65771095f80a447e34436b4588bcb629e2a564c30"},
 {"name":"ffi-yajl","version":"2.6.0","platform":"ruby","checksum":"69baa612273991e4c79667464eb25f3feb169899aab33929a33b03234af24336"},
 {"name":"ffi-yajl","version":"2.6.0","platform":"universal-java","checksum":"1159a093c51d75d67578e31d2ed429f2481ef7e73021c5d667ebf6ab481a0d21"},
diff --git a/Gemfile.next.lock b/Gemfile.next.lock
index 4b3eb28976484..b45db30256bfc 100644
--- a/Gemfile.next.lock
+++ b/Gemfile.next.lock
@@ -621,7 +621,7 @@ GEM
     fast_blank (1.0.1)
     fast_gettext (2.3.0)
     ffaker (2.23.0)
-    ffi (1.15.5)
+    ffi (1.17.0)
     ffi-compiler (1.0.1)
       ffi (>= 1.0.0)
       rake
-- 
GitLab