From: "Andreas Sturmlechner" <asturm@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] repo/gentoo:master commit in: sci-libs/libsigrok/, sci-libs/libsigrok/files/
Date: Mon, 6 Jul 2020 18:16:02 +0000 (UTC) [thread overview]
Message-ID: <1594059324.d444c133186ee28d7b6ef65d27c692378c93a372.asturm@gentoo> (raw)
commit: d444c133186ee28d7b6ef65d27c692378c93a372
Author: Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
AuthorDate: Sun Jul 5 22:20:04 2020 +0000
Commit: Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
CommitDate: Mon Jul 6 18:15:24 2020 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d444c133
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 <AT> gentoo.org>
.../files/libsigrok-0.5.2-ruby-swig-docs.patch | 63 ++++++++++++++++++++++
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 00000000000..808227a2fff
--- /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 03ae49481ed..7e3111fc54d 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
next reply other threads:[~2020-07-06 18:16 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-07-06 18:16 Andreas Sturmlechner [this message]
-- strict thread matches above, loose matches on Subject: below --
2020-09-06 16:46 [gentoo-commits] repo/gentoo:master commit in: sci-libs/libsigrok/, sci-libs/libsigrok/files/ Andreas Sturmlechner
2024-06-11 17:58 Sam James
2024-08-31 19:27 Sven Wegener
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1594059324.d444c133186ee28d7b6ef65d27c692378c93a372.asturm@gentoo \
--to=asturm@gentoo.org \
--cc=gentoo-commits@lists.gentoo.org \
--cc=gentoo-dev@lists.gentoo.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox