1 |
Add a public method ruby_fakegem_extensions_installed to add the |
2 |
marker that rubygems uses to determine if extensions have been |
3 |
installed. We were already adding this as part of the extensions code, |
4 |
but rubygems also expects this to be present for extensions that we |
5 |
either ignore or handle differently. Without this marker rubygems |
6 |
3.2.22 and newer will ignore this gem. |
7 |
|
8 |
Signed-off-by: Hans de Graaff <graaff@g.o> |
9 |
--- |
10 |
eclass/ruby-fakegem.eclass | 24 ++++++++++++++++++++---- |
11 |
1 file changed, 20 insertions(+), 4 deletions(-) |
12 |
|
13 |
diff --git a/eclass/ruby-fakegem.eclass b/eclass/ruby-fakegem.eclass |
14 |
index 1ef40aa2fad9..3832165761c9 100644 |
15 |
--- a/eclass/ruby-fakegem.eclass |
16 |
+++ b/eclass/ruby-fakegem.eclass |
17 |
@@ -546,6 +546,24 @@ if [[ ${RUBY_FAKEGEM_RECIPE_TEST} != none ]]; then |
18 |
} |
19 |
fi |
20 |
|
21 |
+# @FUNCTION: ruby_fakegem_extensions_installed |
22 |
+# @DESCRIPTION: |
23 |
+# Install the marker indicating that extensions have been |
24 |
+# installed. This is normally done as part of the extension |
25 |
+# installation, but may be useful when we handle extensions manually. |
26 |
+ruby_fakegem_extensions_installed() { |
27 |
+ mkdir -p "${ED}$(ruby_fakegem_extensionsdir)" || die |
28 |
+ touch "${ED}$(ruby_fakegem_extensionsdir)/gem.build_complete" || die |
29 |
+} |
30 |
+ |
31 |
+# @FUNCTION: ruby_fakegem_extensionsdir |
32 |
+# @DESCRIPTION: |
33 |
+# The directory where rubygems expects extensions for this package |
34 |
+# version. |
35 |
+ruby_fakegem_extensionsdir() { |
36 |
+ echo "$(ruby_fakegem_gemsdir)/extensions/$(ruby_rbconfig_value 'arch')/$(ruby_rbconfig_value 'ruby_version')/${RUBY_FAKEGEM_NAME}-${RUBY_FAKEGEM_VERSION}" |
37 |
+} |
38 |
+ |
39 |
# @FUNCTION: each_fakegem_install |
40 |
# @DESCRIPTION: |
41 |
# Install the package for each ruby target. |
42 |
@@ -562,14 +580,12 @@ each_fakegem_install() { |
43 |
|
44 |
if [[ -n ${RUBY_FAKEGEM_EXTENSIONS} ]] && [ ${#RUBY_FAKEGEM_EXTENSIONS[@]} -ge 0 ]; then |
45 |
einfo "installing extensions" |
46 |
- local _extensionsdir="$(ruby_fakegem_gemsdir)/extensions/$(ruby_rbconfig_value 'arch')/$(ruby_rbconfig_value 'ruby_version')/${RUBY_FAKEGEM_NAME}-${RUBY_FAKEGEM_VERSION}" |
47 |
|
48 |
for extension in ${RUBY_FAKEGEM_EXTENSIONS[@]} ; do |
49 |
- emake V=1 sitearchdir="${ED}${_extensionsdir}" sitelibdir="${ED}$(ruby_rbconfig_value 'sitelibdir')" -C ${extension%/*} install |
50 |
+ emake V=1 sitearchdir="${ED}$(ruby_fakegem_extensionsdir)" sitelibdir="${ED}$(ruby_rbconfig_value 'sitelibdir')" -C ${extension%/*} install |
51 |
done |
52 |
|
53 |
- # Add the marker to indicate that the extensions are installed |
54 |
- touch "${ED}${_extensionsdir}/gem.build_complete" || die |
55 |
+ ruby_fakegem_extensions_installed |
56 |
fi |
57 |
} |
58 |
|
59 |
-- |
60 |
2.32.0 |