diff options
author | Andreas Sturmlechner <asturm@gentoo.org> | 2020-07-06 00:20:04 +0200 |
---|---|---|
committer | Andreas Sturmlechner <asturm@gentoo.org> | 2020-07-06 20:15:24 +0200 |
commit | d444c133186ee28d7b6ef65d27c692378c93a372 (patch) | |
tree | 5e948c99cc99ba98267afa112920e867a03c1451 /sci-libs/libsigrok | |
parent | sci-libs/libsigrok: Fix build with IUSE=java and >=dev-lang/swig-4 (diff) | |
download | gentoo-d444c133186ee28d7b6ef65d27c692378c93a372.tar.gz gentoo-d444c133186ee28d7b6ef65d27c692378c93a372.tar.bz2 gentoo-d444c133186ee28d7b6ef65d27c692378c93a372.zip |
sci-libs/libsigrok: Fix build with IUSE=ruby
Closes: https://bugs.gentoo.org/705074
Package-Manager: Portage-2.3.103, Repoman-2.3.23
Signed-off-by: Andreas Sturmlechner <asturm@gentoo.org>
Diffstat (limited to 'sci-libs/libsigrok')
-rw-r--r-- | sci-libs/libsigrok/files/libsigrok-0.5.2-ruby-swig-docs.patch | 63 | ||||
-rw-r--r-- | sci-libs/libsigrok/libsigrok-0.5.2.ebuild | 8 |
2 files changed, 69 insertions, 2 deletions
diff --git a/sci-libs/libsigrok/files/libsigrok-0.5.2-ruby-swig-docs.patch b/sci-libs/libsigrok/files/libsigrok-0.5.2-ruby-swig-docs.patch new file mode 100644 index 000000000000..808227a2fffb --- /dev/null +++ b/sci-libs/libsigrok/files/libsigrok-0.5.2-ruby-swig-docs.patch @@ -0,0 +1,63 @@ +From bae9308ec157378bd22ce4f4a0226f1e7ef23594 Mon Sep 17 00:00:00 2001 +From: Anatol Pomozov <anatol.pomozov@gmail.com> +Date: Mon, 8 Jun 2020 20:46:44 -0700 +Subject: [PATCH] Fix ruby SWIG bindings generation + +bindings/swig/doc.py generates a swig interface file for ruby bindings +that includes docstrings with comments braces ( /* and */ ) like this: + + %feature("docstring") sigrok::Channel::type "/* Type of this channel. */\n"; + %feature("docstring") sigrok::Channel::enabled "/* Enabled status of this channel. */\n"; + +SWIG generates *.cxx and adds its own braces to the docstring: + +/*/* Document-class: Sigrok::Error +Exception thrown when an error code is returned by any libsigrok call. */ +*/ + +this causes compilation error for Ruby bindings. + +To fix the error we should not add extra braces to the docstring. +With this patch libsigrok compiles fine with with ruby 2.7 and swig 4.0.2. + +Fixes bug #1526 + +Signed-off-by: Anatol Pomozov <anatol.pomozov@gmail.com> +--- + bindings/swig/doc.py | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +diff --git a/bindings/swig/doc.py b/bindings/swig/doc.py +index e8767af8..182f5477 100644 +--- a/bindings/swig/doc.py ++++ b/bindings/swig/doc.py +@@ -46,7 +46,7 @@ for compound in index.findall('compound'): + if language == 'python': + print('%%feature("docstring") %s "%s";' % (class_name, brief)) + elif language == 'ruby': +- print('%%feature("docstring") %s "/* Document-class: %s\\n%s */\\n";' % (class_name, class_name.replace("sigrok", "Sigrok", 1), brief)) ++ print('%%feature("docstring") %s "Document-class: %s\\n%s\\n";' % (class_name, class_name.replace("sigrok", "Sigrok", 1), brief)) + elif language == 'java': + print('%%typemap(javaclassmodifiers) %s "/** %s */\npublic class"' % ( + class_name, brief)) +@@ -77,10 +77,10 @@ for compound in index.findall('compound'): + for name, desc in parameters.items()]) + '";') + if language == 'ruby' and kind == 'public-func': + print(str.join('\n', [ +- '%%feature("docstring") %s::%s "/* %s' % ( ++ '%%feature("docstring") %s::%s "%s' % ( + class_name, member_name, brief)] + [ + '@param %s %s' % (name, desc) +- for name, desc in parameters.items()]) + ' */\\n";') ++ for name, desc in parameters.items()]) + '\\n";') + elif language == 'java' and kind == 'public-func': + print(str.join('\n', [ + '%%javamethodmodifiers %s::%s "/** %s' % ( +@@ -111,4 +111,4 @@ for compound in index.findall('compound'): + print('%}') + elif language == 'ruby' and constants: + for member_name, brief in constants: +- print('%%feature("docstring") %s::%s "/* %s */\\n";' % (class_name, member_name, brief)) ++ print('%%feature("docstring") %s::%s "%s\\n";' % (class_name, member_name, brief)) +-- +2.27.0 diff --git a/sci-libs/libsigrok/libsigrok-0.5.2.ebuild b/sci-libs/libsigrok/libsigrok-0.5.2.ebuild index 03ae49481eda..7e3111fc54d1 100644 --- a/sci-libs/libsigrok/libsigrok-0.5.2.ebuild +++ b/sci-libs/libsigrok/libsigrok-0.5.2.ebuild @@ -67,8 +67,12 @@ DEPEND="${LIB_DEPEND//\[static-libs(+)]} S="${WORKDIR}"/${P} -# https://sigrok.org/bugzilla/show_bug.cgi?id=1527 -PATCHES=( "${FILESDIR}/${P}-swig-4.patch" ) +PATCHES=( + # https://sigrok.org/bugzilla/show_bug.cgi?id=1527 + "${FILESDIR}/${P}-swig-4.patch" + # https://sigrok.org/bugzilla/show_bug.cgi?id=1526 + "${FILESDIR}/${P}-ruby-swig-docs.patch" # bug 705074 +) pkg_setup() { use python && python_setup |