aboutsummaryrefslogtreecommitdiff
path: root/academic/ViennaRNA/swig4.patch
diff options
context:
space:
mode:
Diffstat (limited to 'academic/ViennaRNA/swig4.patch')
-rw-r--r--academic/ViennaRNA/swig4.patch203
1 files changed, 203 insertions, 0 deletions
diff --git a/academic/ViennaRNA/swig4.patch b/academic/ViennaRNA/swig4.patch
new file mode 100644
index 0000000000000..88df2eb933001
--- /dev/null
+++ b/academic/ViennaRNA/swig4.patch
@@ -0,0 +1,203 @@
+commit c8a867dc017f58a4ffbfb2d3d976506947e5d9d6
+Author: Ronny Lorenz <ronny@tbi.univie.ac.at>
+Date: Mon May 13 08:22:42 2019 +0200
+
+ SWIG: Fix install for wrappers generated by swig 4
+
+ - We now default to install _RNA.*so files for Python2/3 into the RNA/
+ subdirectory. This seems necessary to avoid problems when importing
+ the RNA package, where the underlying loader changed from swig 3 to
+ swig 4.
+ - We also require swig 3.0.0 or later from now on to generate the
+ wrapper code, and we drop the -modern flag
+
+diff --git a/interfaces/Python/Makefile.am b/interfaces/Python/Makefile.am
+index df279501..41be4c08 100644
+--- a/interfaces/Python/Makefile.am
++++ b/interfaces/Python/Makefile.am
+@@ -16,9 +16,8 @@ INTERFACE_FILES = $(SWIG_src) \
+ $(LANG_SPECIFIC_INTERFACE_FILES)
+
+ pkgpy2execdir = $(py2execdir)/RNA
+-pkgpy2cmoddir = $(py2execdir)
+
+-pkgpy2cmod_LTLIBRARIES = _RNA.la
++pkgpy2exec_LTLIBRARIES = _RNA.la
+ pkgpy2exec_DATA = RNA/__init__.py
+
+ _RNA_la_SOURCES = $(INTERFACE_FILES) \
+@@ -73,7 +72,7 @@ $(SWIG_wrapper): $(SWIG_src) $(INTERFACE_FILES)
+ $(swig_verbose)$(SWIG) -I$(top_srcdir)/src \
+ -I$(srcdir) -I$(builddir) \
+ $(RNA_CPPFLAGS) \
+- -python -modern -c++ \
++ -python -c++ \
+ -o $(SWIG_wrapper) \
+ $(SWIG_main_src)
+
+@@ -87,27 +86,33 @@ RNA/__init__.py: $(SWIG_module_name).py
+ $(AM_V_GEN)( test -d RNA || $(MKDIR_P) RNA ) && \
+ cp `test -f RNA.py || echo '$(srcdir)/'`RNA.py RNA/__init__.py
+
+-_RNA$(PYTHON2_SO): _RNA.la
+- $(AM_V_GEN)( $(LIBTOOL) --config > libtoolconfig.tmp ) && \
+- ( . ./libtoolconfig.tmp; cp $$objdir/_RNA$(PYTHON2_SO) . ) && \
++RNA/_RNA$(PYTHON2_SO): _RNA.la
++ $(AM_V_GEN)( test -d RNA || $(MKDIR_P) RNA ) && \
++ ( $(LIBTOOL) --config > libtoolconfig.tmp ) && \
++ ( . ./libtoolconfig.tmp; cp $$objdir/_RNA$(PYTHON2_SO) RNA ) && \
+ rm -f libtoolconfig.tmp
+
+-all-local: _RNA$(PYTHON2_SO)
++CLEANFILES = \
++ RNA/_RNA$(PYTHON2_SO) \
++ RNA/__init__.py \
++ RNA/__init__.pyc
++
++all-local: RNA/_RNA$(PYTHON2_SO)
+
+ clean-local:
+- -rm -rf RNA _RNA$(PYTHON2_SO)
++ -rm -rf RNA
+
+ # Remove the .la file - RNA.la is never linked against (it's a module)
+ # and Python doesn't use libltdl. Note that the library gets installed by
+ # install-data, so that's where we need to hook.
+ install-data-hook:
+- rm -f $(DESTDIR)$(pkgpy2cmoddir)/_RNA.la
++ rm -f $(DESTDIR)$(pkgpy2execdir)/_RNA.la
+
+ # Because we don't install the .la file, "make uninstall" doesn't work and
+ # we need to remove the file ourselves.
+ uninstall-local:
+- eval `grep '^dlname=' $(pkgpy2cmod_LTLIBRARIES)` ; \
+- rm -f $(DESTDIR)$(pkgpy2cmoddir)/"$$dlname"
++ eval `grep '^dlname=' $(pkgpy2exec_LTLIBRARIES)` ; \
++ rm -f $(DESTDIR)$(pkgpy2execdir)/"$$dlname"
+
+ ## remove all generated content
+ maintainer-clean-local:
+diff --git a/interfaces/Python3/Makefile.am b/interfaces/Python3/Makefile.am
+index de9b049e..67824a99 100644
+--- a/interfaces/Python3/Makefile.am
++++ b/interfaces/Python3/Makefile.am
+@@ -17,10 +17,9 @@ INTERFACE_FILES = $(SWIG_src) \
+ $(LANG_SPECIFIC_INTERFACE_FILES)
+
+ pkgpyexecdir = $(py3execdir)/RNA
+-pkgpycmoddir = $(py3execdir)
+ pkgpycachedir = $(pkgpyexecdir)/__pycache__
+
+-pkgpycmod_LTLIBRARIES = _RNA.la
++pkgpyexec_LTLIBRARIES = _RNA.la
+ pkgpyexec_DATA = RNA/__init__.py
+ pkgpycache_DATA = RNA/__pycache__/__init__.@PYTHON3_CACHE_TAG@.pyc \
+ RNA/__pycache__/__init__.@PYTHON3_CACHE_OPT1_EXT@
+@@ -75,7 +74,7 @@ $(SWIG_wrapper): $(SWIG_src) $(INTERFACE_FILES)
+ -I$(srcdir) -I$(builddir) \
+ -DPY3 \
+ $(RNA_CPPFLAGS) \
+- -python -modern -py3 -c++ \
++ -python -py3 -c++ \
+ -o $(SWIG_wrapper) \
+ $(SWIG_main_src)
+
+@@ -91,42 +90,43 @@ RNA/__init__.py: $(SWIG_module_name).py
+
+ # We "import _RNA" first so that if we fail to import the glue library
+ # we don't generate a broken .pyc or .pyo.
+-RNA/__pycache__/__init__.@PYTHON3_CACHE_TAG@.pyc: RNA/__init__.py _RNA$(PYTHON3_SO)
++RNA/__pycache__/__init__.@PYTHON3_CACHE_TAG@.pyc: RNA/__init__.py RNA/_RNA$(PYTHON3_SO)
+ $(AM_V_GEN)( PYTHONPATH="RNA:$$PYTHONPATH" $(PYTHON3) -c "import _RNA" ; \
+ PYTHONPATH=".:$$PYTHONPATH" $(PYTHON3) -c "import RNA" )
+
+-RNA/__pycache__/__init__.@PYTHON3_CACHE_OPT1_EXT@: RNA/__init__.py _RNA$(PYTHON3_SO)
++RNA/__pycache__/__init__.@PYTHON3_CACHE_OPT1_EXT@: RNA/__init__.py RNA/_RNA$(PYTHON3_SO)
+ $(AM_V_GEN)( PYTHONPATH="RNA:$$PYTHONPATH" $(PYTHON3) -O -c "import _RNA" ; \
+ PYTHONPATH=".:$$PYTHONPATH" $(PYTHON3) -O -c "import RNA" )
+
+-_RNA$(PYTHON3_SO): _RNA.la
+- $(AM_V_GEN)( $(LIBTOOL) --config > libtoolconfig.tmp ) && \
+- ( . ./libtoolconfig.tmp; cp $$objdir/_RNA$(PYTHON3_SO) . ) && \
++RNA/_RNA$(PYTHON3_SO): _RNA.la
++ $(AM_V_GEN)( test -d RNA || $(MKDIR_P) RNA ) && \
++ ( $(LIBTOOL) --config > libtoolconfig.tmp ) && \
++ ( . ./libtoolconfig.tmp; cp $$objdir/_RNA$(PYTHON3_SO) RNA ) && \
+ rm -f libtoolconfig.tmp
+
+ CLEANFILES = \
+- _RNA$(PYTHON3_SO) \
++ RNA/_RNA$(PYTHON3_SO) \
+ RNA/__init__.py \
+ RNA/__pycache__/__init__.@PYTHON3_CACHE_TAG@.pyc \
+ RNA/__pycache__/__init__.@PYTHON3_CACHE_OPT1_EXT@\
+ $(srcdir)/*.pyc
+
+-all-local: _RNA$(PYTHON3_SO)
++all-local: RNA/_RNA$(PYTHON3_SO)
+
+ clean-local:
+- -rm -rf RNA _RNA$(PYTHON3_SO)
++ -rm -rf RNA
+
+ # Remove the .la file - RNA.la is never linked against (it's a module)
+ # and Python doesn't use libltdl. Note that the library gets installed by
+ # install-data, so that's where we need to hook.
+ install-data-hook:
+- rm -f $(DESTDIR)$(pkgpycmoddir)/_RNA.la
++ rm -f $(DESTDIR)$(pkgpyexecdir)/_RNA.la
+
+ # Because we don't install the .la file, "make uninstall" doesn't work and
+ # we need to remove the file ourselves.
+ uninstall-local:
+- eval `grep '^dlname=' $(pkgpycmod_LTLIBRARIES)` ; \
+- rm -f $(DESTDIR)$(pkgpycmoddir)/"$$dlname"
++ eval `grep '^dlname=' $(pkgpyexec_LTLIBRARIES)` ; \
++ rm -f $(DESTDIR)$(pkgpyexecdir)/"$$dlname"
+
+ ## remove all generated content
+ maintainer-clean-local:
+diff --git a/interfaces/RNA.i b/interfaces/RNA.i
+index fb2260d6..6ae86641 100644
+--- a/interfaces/RNA.i
++++ b/interfaces/RNA.i
+@@ -1,4 +1,9 @@
++#ifdef SWIGPYTHON
++%module(moduleimport="from . import _RNA") RNA
++#else
+ %module RNA
++#endif
++
+ //%pragma(perl5) modulecode="@EXPORT=qw(fold);"
+ %pragma(perl5) include="RNA.pod"
+
+diff --git a/m4/ac_rna_swig.m4 b/m4/ac_rna_swig.m4
+index 98583bed..29ea398f 100644
+--- a/m4/ac_rna_swig.m4
++++ b/m4/ac_rna_swig.m4
+@@ -9,13 +9,12 @@ AC_DEFUN([RNA_ENABLE_SWIG_INTERFACES],[
+
+ AS_IF([test "x$with_swig" != "xno"],[
+ wants_swig="yes"
+- AX_PKG_SWIG(2.0.0, [has_swig="yes"], [has_swig="no"])
++ AX_PKG_SWIG(3.0.0, [has_swig="yes"], [has_swig="no"])
+ ],[
+ wants_swig="no"
+ ])
+
+ AM_CONDITIONAL(HAS_SWIG, test "x$has_swig" != "xno")
+-
+ RNA_ENABLE_SWIG_PERL
+ RNA_ENABLE_SWIG_PYTHON
+ RNA_ENABLE_SWIG_PYTHON3
+@@ -55,10 +54,6 @@ AC_DEFUN([RNA_ENABLE_SWIG_PERL],[
+ AC_MSG_ERROR([Perl is required to build.])
+ [enable_perl_status="Perl is required to build."]
+ fi
+-# AX_PERL_EXT_FLAGS([PERLXS_CFLAGS], [PERLXS_LDFLAGS])
+-# AX_PERL_EXT_LINK_CHECK([with_perl])
+-# AC_SUBST([PERLXS_CFLAGS])
+-# AC_SUBST([PERLXS_LDFLAGS])
+ ])
+
+ # prepare all files for perl interface