Add a public method ruby_fakegem_extensions_installed to add the
marker that rubygems uses to determine if extensions have been
installed. We were already adding this as part of the extensions code,
but rubygems also expects this to be present for extensions that we
either ignore or handle differently. Without this marker rubygems
3.2.22 and newer will ignore this gem.
Signed-off-by: Hans de Graaff <
graaff@gentoo.org>
---
eclass/ruby-fakegem.eclass | 24 ++++++++++++++++++++----
1 file changed, 20 insertions(+), 4 deletions(-)
diff --git a/eclass/ruby-fakegem.eclass b/eclass/ruby-fakegem.eclass
index 1ef40aa2fad9..3832165761c9 100644
--- a/eclass/ruby-fakegem.eclass
+++ b/eclass/ruby-fakegem.eclass
@@ -546,6 +546,24 @@ if [[ ${RUBY_FAKEGEM_RECIPE_TEST} != none ]]; then
}
fi
+# @FUNCTION: ruby_fakegem_extensions_installed
+# @DESCRIPTION:
+# Install the marker indicating that extensions have been
+# installed. This is normally done as part of the extension
+# installation, but may be useful when we handle extensions manually. +ruby_fakegem_extensions_installed() {
+ mkdir -p "${ED}$(ruby_fakegem_extensionsdir)" || die
+ touch "${ED}$(ruby_fakegem_extensionsdir)/gem.build_complete" || die
+}
+
+# @FUNCTION: ruby_fakegem_extensionsdir
+# @DESCRIPTION:
+# The directory where rubygems expects extensions for this package
+# version.
+ruby_fakegem_extensionsdir() {
+ echo "$(ruby_fakegem_gemsdir)