-
Notifications
You must be signed in to change notification settings - Fork 1.9k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
dev-libs/xapian-bindings: Fix the build with slibtool
Bug: https://bugs.gentoo.org/793428 Upstream-PR: xapian/xapian#322 Signed-off-by: orbea <orbea@riseup.net>
- Loading branch information
Showing
2 changed files
with
485 additions
and
0 deletions.
There are no files selected for viewing
133 changes: 133 additions & 0 deletions
133
dev-libs/xapian-bindings/files/xapian-bindings-1.4.20-slibtool.patch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,133 @@ | ||
Upstream-PR: https://github.com/xapian/xapian/pull/322 | ||
|
||
From c513b0d31d2df31eb57ccbe08bbe46821863557d Mon Sep 17 00:00:00 2001 | ||
From: orbea <orbea@riseup.net> | ||
Date: Wed, 20 Jul 2022 13:37:20 -0700 | ||
Subject: [PATCH] xapian-bindings: Fix the build with slibtool | ||
|
||
With slibtool the --config argument works differently than in GNU | ||
libtool which results in 'auto/Xapian/Xapian$(PERL_SO)' failing to be | ||
created. This can be worked around by using libtool --mode=install where | ||
slibtool can copy the module to the intended location. | ||
|
||
However GNU libtool still requires using --config otherwise it fails | ||
during --mode=install with the following error. | ||
|
||
/bin/bash ../libtool --mode=install cp Xapian.la /home/runner/work/xapian/xapian/perl/auto/Xapian/Xapian.la | ||
libtool: error: error: cannot install 'Xapian.la' to a directory not ending in /usr/local/lib/x86_64-linux-gnu/perl/5.26.1/auto/Xapian | ||
|
||
gentoo issue: https://bugs.gentoo.org/793428 | ||
--- | ||
java/run-java-test | 21 +++++++++++++++++---- | ||
perl/Makefile.am | 9 +++++++-- | ||
python3/Makefile.am | 9 +++++++-- | ||
tcl8/run-tcl-test | 20 +++++++++++++------- | ||
4 files changed, 44 insertions(+), 15 deletions(-) | ||
|
||
diff --git a/java/run-java-test b/java/run-java-test | ||
index d0e97af300e..a838de98492 100755 | ||
--- a/java/run-java-test | ||
+++ b/java/run-java-test | ||
@@ -1,11 +1,24 @@ | ||
#!/bin/sh | ||
# To run `jdb` instead of `java` set JAVA=jdb | ||
# To run under gdb, set JAVA='gdb --args java' | ||
+LIBTOOL="${LIBTOOL-../libtool}" | ||
arg=`echo "$1"|sed 's!.*/!!;s!\.class$!!'` | ||
+ | ||
+# GNU libtool and slibtool have different and incompatible usage for --config. | ||
+if ${LIBTOOL} --config > libtoolconfig.$$ 2>/dev/null; then | ||
+ . ./libtoolconfig.$$ | ||
+else | ||
+ objdir="built/libs" | ||
+ rm -rf "$objdir" | ||
+ mkdir -p "$objdir" | ||
+ ${LIBTOOL} --mode=install cp libxapian_jni.la "$objdir" | ||
+fi | ||
+rm -f libtoolconfig.$$ | ||
+ | ||
# Use libtool's -dlopen option to ensure that libxapian_jni.so (or whatever) | ||
# is in the shared library path. | ||
-${LIBTOOL-../libtool} --config > libtoolconfig.$$ | ||
-. ./libtoolconfig.$$ | ||
-rm -f libtoolconfig.$$ | ||
-${LIBTOOL-../libtool} -dlopen libxapian_jni.la --mode=execute \ | ||
+${LIBTOOL} -dlopen libxapian_jni.la --mode=execute \ | ||
$OSX_SIP_HACK_ENV ${JAVA-java} -Djava.library.path="$objdir" -classpath built/xapian.jar${PATHSEP-:}. "$arg" | ||
+rc=$? | ||
+rm -rf built/libs | ||
+exit $rc | ||
diff --git a/perl/Makefile.am b/perl/Makefile.am | ||
index 4f2e5e4283d..f71579736e5 100644 | ||
--- a/perl/Makefile.am | ||
+++ b/perl/Makefile.am | ||
@@ -55,9 +55,14 @@ BUILT_SOURCES = Xapian.pm xapian_wrap.cc \ | ||
|
||
auto/Xapian/Xapian$(PERL_SO): Xapian.la | ||
@$(MKDIR_P) auto/Xapian | ||
- $(LIBTOOL) --config > libtoolconfig.tmp | ||
+## GNU libtool and slibtool have different and incompatible usage for --config. | ||
+ if $(LIBTOOL) --config > libtoolconfig.tmp 2>/dev/null; then \ | ||
## ksh requires a path on the sourced file. | ||
- . ./libtoolconfig.tmp; cp "$$objdir/Xapian$(PERL_SO)" auto/Xapian | ||
+ . ./libtoolconfig.tmp; \ | ||
+ cp "$$objdir/Xapian$(PERL_SO)" auto/Xapian; \ | ||
+ else \ | ||
+ $(LIBTOOL) --mode=install cp $< $@; \ | ||
+ fi; | ||
rm -f libtoolconfig.tmp | ||
|
||
EXTRA_DIST = perl.i except.i extra.i $(TESTS) \ | ||
diff --git a/python3/Makefile.am b/python3/Makefile.am | ||
index 3c692a9e2d4..9bf01833636 100644 | ||
--- a/python3/Makefile.am | ||
+++ b/python3/Makefile.am | ||
@@ -88,9 +88,14 @@ xapian/__pycache__/__init__.@PYTHON3_CACHE_OPT1_EXT@: xapian/__init__.py xapian/ | ||
|
||
xapian/_xapian$(PYTHON3_EXT_SUFFIX): _xapian.la | ||
$(MKDIR_P) xapian | ||
- $(LIBTOOL) --config > libtoolconfig.tmp | ||
+## GNU libtool and slibtool have different and incompatible usage for --config. | ||
+ if $(LIBTOOL) --config > libtoolconfig.tmp 2>/dev/null; then \ | ||
## ksh requires a path on the sourced file. | ||
- . ./libtoolconfig.tmp; cp $$objdir/_xapian$(PYTHON3_EXT_SUFFIX) xapian | ||
+ . ./libtoolconfig.tmp; \ | ||
+ cp $$objdir/_xapian$(PYTHON3_EXT_SUFFIX) xapian; \ | ||
+ else \ | ||
+ $(LIBTOOL) --mode=install cp $< $@; \ | ||
+ fi; | ||
rm -f libtoolconfig.tmp | ||
|
||
CLEANFILES = \ | ||
diff --git a/tcl8/run-tcl-test b/tcl8/run-tcl-test | ||
index 206b5e0e056..71511032024 100755 | ||
--- a/tcl8/run-tcl-test | ||
+++ b/tcl8/run-tcl-test | ||
@@ -1,14 +1,20 @@ | ||
#!/bin/sh | ||
-${LIBTOOL-../libtool} --config > libtoolconfig.$$ | ||
-. ./libtoolconfig.$$ | ||
-rm -f libtoolconfig.$$ | ||
+tclshlibext=`echo 'puts [info sharedlibextension]'|${TCLSH-tclsh}` | ||
+rm -f xapian$tclshlibext | ||
+ | ||
+LIBTOOL="${LIBTOOL-../libtool}" | ||
module=yes | ||
-eval shlibext=$shrext_cmds | ||
|
||
-tclshlibext=`echo 'puts [info sharedlibextension]'|${TCLSH-tclsh}` | ||
+# GNU libtool and slibtool have different and incompatible usage for --config. | ||
+if ${LIBTOOL} --config > libtoolconfig.$$ 2>/dev/null; then | ||
+ . ./libtoolconfig.$$ | ||
+ eval shlibext=$shrext_cmds | ||
+ ln -s $objdir/xapian$shlibext xapian$tclshlibext | ||
+else | ||
+ ${LIBTOOL} --mode=install cp xapian.la ./xapian$tclshlibext | ||
+fi | ||
+rm -f libtoolconfig.$$ | ||
|
||
-rm -f xapian$tclshlibext | ||
-ln -s $objdir/xapian$shlibext xapian$tclshlibext | ||
$OSX_SIP_HACK_ENV ${TCLSH-tclsh} ${srcdir-.}/runtest.tcl ${srcdir-.}/smoketest.tcl | ||
rc=$? | ||
rm -f xapian$tclshlibext |
Oops, something went wrong.