GNU bug report logs - #57133
[PATCH] gnu: Add rizin.

Previous Next

Package: guix-patches;

Reported by: iyzsong <at> envs.net

Date: Thu, 11 Aug 2022 06:39:02 UTC

Severity: normal

Tags: patch

Done: 宋文武 <iyzsong <at> envs.net>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 57133 in the body.
You can then email your comments to 57133 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to guix-patches <at> gnu.org:
bug#57133; Package guix-patches. (Thu, 11 Aug 2022 06:39:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to iyzsong <at> envs.net:
New bug report received and forwarded. Copy sent to guix-patches <at> gnu.org. (Thu, 11 Aug 2022 06:39:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: iyzsong <at> envs.net
To: guix-patches <at> gnu.org
Cc: 宋文武 <iyzsong <at> member.fsf.org>
Subject: [PATCH] gnu: Add rizin.
Date: Thu, 11 Aug 2022 14:37:49 +0800
From: 宋文武 <iyzsong <at> member.fsf.org>

* gnu/packages/engineering.scm (rizin): New variable.
---
 gnu/packages/engineering.scm | 68 ++++++++++++++++++++++++++++++++++++
 1 file changed, 68 insertions(+)

diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm
index ed87cd8d6a..7752e92f09 100644
--- a/gnu/packages/engineering.scm
+++ b/gnu/packages/engineering.scm
@@ -67,6 +67,7 @@ (define-module (gnu packages engineering)
   #:use-module (guix build-system cmake)
   #:use-module (guix build-system emacs)
   #:use-module (guix build-system gnu)
+  #:use-module (guix build-system meson)
   #:use-module (guix build-system python)
   #:use-module (guix build-system qt)
   #:use-module (gnu packages)
@@ -88,6 +89,7 @@ (define-module (gnu packages engineering)
   #:use-module (gnu packages digest)
   #:use-module (gnu packages docbook)
   #:use-module (gnu packages documentation)
+  #:use-module (gnu packages file)
   #:use-module (gnu packages flex)
   #:use-module (gnu packages fontutils)
   #:use-module (gnu packages fpga)
@@ -142,6 +144,7 @@ (define-module (gnu packages engineering)
   #:use-module (gnu packages tbb)
   #:use-module (gnu packages tcl)
   #:use-module (gnu packages texinfo)
+  #:use-module (gnu packages text-editors)
   #:use-module (gnu packages tls)
   #:use-module (gnu packages tex)
   #:use-module (gnu packages version-control)
@@ -3757,3 +3760,68 @@ (define-public candle
 @item Visualizing G-code files.
 @end itemize")
       (license license:gpl3+))))
+
+(define-public rizin
+  (package
+    (name "rizin")
+    (version "0.4.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "https://github.com/rizinorg/rizin/releases/download/v"
+                    version "/rizin-src-v" version ".tar.xz"))
+              (sha256
+               (base32
+                "0nkb6v9lks25w5sv5s6p2ghgqnnnsf39md8nlx1cy4z89xlaisq9"))))
+    (build-system meson-build-system)
+    (arguments
+     (list
+      #:configure-flags
+      #~(list "-Dpackager=guix"
+              (string-append "-Dpackager_version=" #$version)
+              "-Duse_sys_capstone=enabled"
+              "-Duse_sys_magic=enabled"
+              "-Duse_sys_libzip=enabled"
+              "-Duse_sys_zlib=enabled"
+              "-Duse_sys_lz4=enabled"
+              "-Duse_sys_xxhash=enabled"
+              "-Duse_sys_openssl=enabled"
+              "-Duse_sys_tree_sitter=enabled"
+              "-Duse_sys_libuv=enabled"
+              "-Duse_gpl=true")
+      #:phases
+      #~(modify-phases %standard-phases
+          (add-after 'unpack 'prepare-testbins
+            (lambda _
+              (copy-recursively
+               #$(origin
+                   (method git-fetch)
+                   (uri (git-reference
+                         (url "https://github.com/rizinorg/rizin-testbins")
+                         (commit "7d0c31ac7711de9c4d37f5047200dc5a407ff713")))
+                   (sha256
+                    (base32
+                     "00cmc7pws9m4hcm0bpdjm6n4agl5mqgczc4ccswfhywyzzvr7sqh")))
+               "test/bins")))
+          (add-before 'configure 'skip-failing-tests
+            (lambda _
+              ;; Skip 2 failing tests, reported upstream:
+              ;; <https://github.com/rizinorg/rizin/issues/2905>.
+              (substitute* "test/integration/meson.build"
+                (("'analysis_global_var'") "#")
+                (("'sign_integration'") "#")))))))
+    (native-inputs (list pkg-config))
+    (inputs
+     (list capstone file libuv libzip lz4 openssl tree-sitter xxhash zlib))
+    (home-page "https://rizin.re")
+    (synopsis "Disasm, debug, analyze and manipulate binary files")
+    (description
+     "Rizin is a reverse engineering framework and a set of small command-line
+utilities, providing a complete binary analysis experience with features like
+disassembler, hexadecimal editor, emulation, binary inspection, debugger, and
+more.")
+    ;; Most files are under LGPL-3.0-only, other are under: Apache-2.0,
+    ;; BSD-2-Clause, BSD-3-Clause, CC0-1.0, CC-BY-SA-4.0, GPL-1.0-or-later,
+    ;; GPL-2.0-only, GPL-2.0-or-later, GPL-3.0-or-later, LGPL-2.0-or-later,
+    ;; LGPL-2.1-only, LGPL-2.1-or-later, LGPL-3.0-only, MIT, NCSA.
+    (license license:gpl3+)))
-- 
2.37.1





Information forwarded to guix-patches <at> gnu.org:
bug#57133; Package guix-patches. (Thu, 11 Aug 2022 12:45:02 GMT) Full text and rfc822 format available.

Message #8 received at 57133 <at> debbugs.gnu.org (full text, mbox):

From: Jean Pierre De Jesus DIAZ <me <at> jeandudey.tech>
To: "57133 <at> debbugs.gnu.org" <57133 <at> debbugs.gnu.org>
Subject: [PATCH] gnu: Add rizin.
Date: Thu, 11 Aug 2022 12:44:00 +0000
Hello, 

>+          (add-after 'unpack 'prepare-testbins
>+            (lambda _
>+              (copy-recursively
>+               #$(origin
>+                   (method git-fetch)
>+                   (uri (git-reference
>+                         (url "https://github.com/rizinorg/rizin-testbins")
>+                         (commit "7d0c31ac7711de9c4d37f5047200dc5a407ff713")))
>+                   (sha256
>+                    (base32
>+                     "00cmc7pws9m4hcm0bpdjm6n4agl5mqgczc4ccswfhywyzzvr7sqh")))
>+               "test/bins")))

Could this instead be replaced with a package? The repository also says that
the binaries could be regenerated and it's worth a look looking into if it
can be done so the built binaries can be removed (through snippets for example)
and re-compiled from sources, of course, those that can be re-generated should
be left as is. If the binaries can't be regenerated feel free to ignore this
comment :).

—
Jean-Pierre De Jesus DIAZ




Information forwarded to guix-patches <at> gnu.org:
bug#57133; Package guix-patches. (Thu, 11 Aug 2022 19:08:01 GMT) Full text and rfc822 format available.

Message #11 received at 57133 <at> debbugs.gnu.org (full text, mbox):

From: Maxime Devos <maximedevos <at> telenet.be>
To: iyzsong <at> envs.net, 57133 <at> debbugs.gnu.org
Cc: 宋文武 <iyzsong <at> member.fsf.org>
Subject: Re: [bug#57133] [PATCH] gnu: Add rizin.
Date: Thu, 11 Aug 2022 21:07:18 +0200
[Message part 1 (text/plain, inline)]
On 11-08-2022 08:37, iyzsong--- via Guix-patches via wrote:
> +               #$(origin
> +                   (method git-fetch)
> +                   (uri (git-reference
> +                         (url"https://github.com/rizinorg/rizin-testbins")
> +                         (commit "7d0c31ac7711de9c4d37f5047200dc5a407ff713")))
> +                   (sha256
> +                    (base32
> +                     "00cmc7pws9m4hcm0bpdjm6n4agl5mqgczc4ccswfhywyzzvr7sqh")))
> +               "test/bins")))

What's the license for those binaries? I doubt all of them are gpl3+.

I'm seeing a copy of libstdc++.so.6 in there. IIRC, it has a license of 
the GPL family, which requires providing the source, so we need the 
source code of it as well because of the licensing terms (the source 
code of that particular variant of libstdc++, which might differ from 
the version currently in Guix). Likewise for the other binaries.

Personally, I think it would be more practical to ignore rizin-testbins, 
even if that requires skipping some of the tests (hopefully not all of 
them).
> + ;; Most files are under LGPL-3.0-only, other are under: Apache-2.0,
> + ;; BSD-2-Clause, BSD-3-Clause, CC0-1.0, CC-BY-SA-4.0, GPL-1.0-or-later,
> + ;; GPL-2.0-only, GPL-2.0-or-later, GPL-3.0-or-later, LGPL-2.0-or-later,
> + ;; LGPL-2.1-only, LGPL-2.1-or-later, LGPL-3.0-only, MIT, NCSA.
> + (license license:gpl3+))) 

You can put multiple licenses in the license field, using (license (list 
this that foo bar ...)).

Greetings,
Maxime.

[OpenPGP_0x49E3EE22191725EE.asc (application/pgp-keys, attachment)]
[OpenPGP_signature (application/pgp-signature, attachment)]

Information forwarded to guix-patches <at> gnu.org:
bug#57133; Package guix-patches. (Mon, 15 Aug 2022 01:35:02 GMT) Full text and rfc822 format available.

Message #14 received at 57133 <at> debbugs.gnu.org (full text, mbox):

From: 宋文武 <iyzsong <at> envs.net>
To: Maxime Devos <maximedevos <at> telenet.be>
Cc: 宋文武 <iyzsong <at> member.fsf.org>, 57133 <at> debbugs.gnu.org
Subject: Re: bug#57133: [PATCH] gnu: Add rizin.
Date: Mon, 15 Aug 2022 09:34:16 +0800
[Message part 1 (text/plain, inline)]
Maxime Devos <maximedevos <at> telenet.be> writes:

Hello, thank for the review!

> On 11-08-2022 08:37, iyzsong--- via Guix-patches via wrote:
>> +               #$(origin
>> +                   (method git-fetch)
>> +                   (uri (git-reference
>> +                         (url"https://github.com/rizinorg/rizin-testbins")
>> +                         (commit "7d0c31ac7711de9c4d37f5047200dc5a407ff713")))
>> +                   (sha256
>> +                    (base32
>> +                     "00cmc7pws9m4hcm0bpdjm6n4agl5mqgczc4ccswfhywyzzvr7sqh")))
>> +               "test/bins")))
>
> What's the license for those binaries? I doubt all of them are gpl3+.
>
> I'm seeing a copy of libstdc++.so.6 in there. IIRC, it has a license
> of the GPL family, which requires providing the source, so we need the
> source code of it as well because of the licensing terms (the source
> code of that particular variant of libstdc++, which might differ from
> the version currently in Guix). Likewise for the other binaries.
>
> Personally, I think it would be more practical to ignore
> rizin-testbins, even if that requires skipping some of the tests
> (hopefully not all of them).

I think those binaries as data, not programs to be run.  Well, most of
them don't have sources in the repository, so I'll remove it and skip
the integration tests.

>> + ;; Most files are under LGPL-3.0-only, other are under: Apache-2.0,
>> + ;; BSD-2-Clause, BSD-3-Clause, CC0-1.0, CC-BY-SA-4.0, GPL-1.0-or-later,
>> + ;; GPL-2.0-only, GPL-2.0-or-later, GPL-3.0-or-later, LGPL-2.0-or-later,
>> + ;; LGPL-2.1-only, LGPL-2.1-or-later, LGPL-3.0-only, MIT, NCSA.
>> + (license license:gpl3+))) 
>
> You can put multiple licenses in the license field, using (license
> (list this that foo bar ...)).

For the license field, do we need to list all licenses of source code
files, or the whole license of the package?  And if the later,
`(list license:gpl2+ license:lgpl3+)` would say the package is dual
licenses, under GPL2+ or LGPL3+ at user's choice.

I think with all those licenses, the whole package is under
GPL-3.0-or-later.

Correct me if wrong, thank you!


Patch updated to remove rizin-testsbin and skip integration tests:
[0001-gnu-Add-rizin.patch (text/x-patch, inline)]
From 26b9a23efd456ec3ef439fbf3159823e0984c0eb Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=AE=8B=E6=96=87=E6=AD=A6?= <iyzsong <at> member.fsf.org>
Date: Thu, 11 Aug 2022 14:37:49 +0800
Subject: [PATCH v2] gnu: Add rizin.

* gnu/packages/engineering.scm (rizin): New variable.
---
 gnu/packages/engineering.scm | 57 ++++++++++++++++++++++++++++++++++++
 1 file changed, 57 insertions(+)

diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm
index f350da0042..892a05d5d0 100644
--- a/gnu/packages/engineering.scm
+++ b/gnu/packages/engineering.scm
@@ -67,6 +67,7 @@ (define-module (gnu packages engineering)
   #:use-module (guix build-system cmake)
   #:use-module (guix build-system emacs)
   #:use-module (guix build-system gnu)
+  #:use-module (guix build-system meson)
   #:use-module (guix build-system python)
   #:use-module (guix build-system qt)
   #:use-module (gnu packages)
@@ -88,6 +89,7 @@ (define-module (gnu packages engineering)
   #:use-module (gnu packages digest)
   #:use-module (gnu packages docbook)
   #:use-module (gnu packages documentation)
+  #:use-module (gnu packages file)
   #:use-module (gnu packages flex)
   #:use-module (gnu packages fontutils)
   #:use-module (gnu packages fpga)
@@ -142,6 +144,7 @@ (define-module (gnu packages engineering)
   #:use-module (gnu packages tbb)
   #:use-module (gnu packages tcl)
   #:use-module (gnu packages texinfo)
+  #:use-module (gnu packages text-editors)
   #:use-module (gnu packages tls)
   #:use-module (gnu packages tex)
   #:use-module (gnu packages version-control)
@@ -3757,3 +3760,57 @@ (define-public candle
 @item Visualizing G-code files.
 @end itemize")
       (license license:gpl3+))))
+
+(define-public rizin
+  (package
+    (name "rizin")
+    (version "0.4.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "https://github.com/rizinorg/rizin/releases/download/v"
+                    version "/rizin-src-v" version ".tar.xz"))
+              (sha256
+               (base32
+                "0nkb6v9lks25w5sv5s6p2ghgqnnnsf39md8nlx1cy4z89xlaisq9"))))
+    (build-system meson-build-system)
+    (arguments
+     (list
+      #:configure-flags
+      #~(list "-Dpackager=guix"
+              (string-append "-Dpackager_version=" #$version)
+              "-Duse_sys_capstone=enabled"
+              "-Duse_sys_magic=enabled"
+              "-Duse_sys_libzip=enabled"
+              "-Duse_sys_zlib=enabled"
+              "-Duse_sys_lz4=enabled"
+              "-Duse_sys_xxhash=enabled"
+              "-Duse_sys_openssl=enabled"
+              "-Duse_sys_tree_sitter=enabled"
+              "-Duse_sys_libuv=enabled"
+              "-Duse_gpl=true")
+      #:phases
+      #~(modify-phases %standard-phases
+          (add-before 'configure 'skip-integration-tests
+            (lambda _
+              ;; Skip integration tests, which require prebuilt binaries at:
+              ;; <https://github.com/rizinorg/rizin-testbins>.
+              ;; And 2 of them are failing, reported upstream:
+              ;; <https://github.com/rizinorg/rizin/issues/2905>.
+              (substitute* "test/meson.build"
+                (("subdir\\('integration'\\)") "")))))))
+    (native-inputs (list pkg-config))
+    (inputs
+     (list capstone file libuv libzip lz4 openssl tree-sitter xxhash zlib))
+    (home-page "https://rizin.re")
+    (synopsis "Disasm, debug, analyze and manipulate binary files")
+    (description
+     "Rizin is a reverse engineering framework and a set of small command-line
+utilities, providing a complete binary analysis experience with features like
+disassembler, hexadecimal editor, emulation, binary inspection, debugger, and
+more.")
+    ;; Most files are under LGPL-3.0-only, other are under: Apache-2.0,
+    ;; BSD-2-Clause, BSD-3-Clause, CC0-1.0, CC-BY-SA-4.0, GPL-1.0-or-later,
+    ;; GPL-2.0-only, GPL-2.0-or-later, GPL-3.0-or-later, LGPL-2.0-or-later,
+    ;; LGPL-2.1-only, LGPL-2.1-or-later, LGPL-3.0-only, MIT, NCSA.
+    (license license:gpl3+)))
-- 
2.37.1


Information forwarded to guix-patches <at> gnu.org:
bug#57133; Package guix-patches. (Mon, 15 Aug 2022 01:37:02 GMT) Full text and rfc822 format available.

Message #17 received at 57133 <at> debbugs.gnu.org (full text, mbox):

From: 宋文武 <iyzsong <at> envs.net>
To: Jean Pierre De Jesus DIAZ <me <at> jeandudey.tech>
Cc: "57133 <at> debbugs.gnu.org" <57133 <at> debbugs.gnu.org>
Subject: Re: bug#57133: [PATCH] gnu: Add rizin.
Date: Mon, 15 Aug 2022 09:36:20 +0800
Jean Pierre De Jesus DIAZ <me <at> jeandudey.tech> writes:

> Hello, 
>
>>+          (add-after 'unpack 'prepare-testbins
>>+            (lambda _
>>+              (copy-recursively
>>+               #$(origin
>>+                   (method git-fetch)
>>+                   (uri (git-reference
>>+                         (url "https://github.com/rizinorg/rizin-testbins")
>>+                         (commit "7d0c31ac7711de9c4d37f5047200dc5a407ff713")))
>>+                   (sha256
>>+                    (base32
>>+                     "00cmc7pws9m4hcm0bpdjm6n4agl5mqgczc4ccswfhywyzzvr7sqh")))
>>+               "test/bins")))
>
> Could this instead be replaced with a package? The repository also says that
> the binaries could be regenerated and it's worth a look looking into if it
> can be done so the built binaries can be removed (through snippets for example)
> and re-compiled from sources, of course, those that can be re-generated should
> be left as is. If the binaries can't be regenerated feel free to ignore this
> comment :).

Well I find no way to regenerate those binaries, so I'd remove it and
skip integration tests as suggested by Maxime Devos.  Thanks for the
comment!




Reply sent to 宋文武 <iyzsong <at> envs.net>:
You have taken responsibility. (Fri, 19 Aug 2022 01:21:01 GMT) Full text and rfc822 format available.

Notification sent to iyzsong <at> envs.net:
bug acknowledged by developer. (Fri, 19 Aug 2022 01:21:01 GMT) Full text and rfc822 format available.

Message #22 received at 57133-done <at> debbugs.gnu.org (full text, mbox):

From: 宋文武 <iyzsong <at> envs.net>
To: Maxime Devos <maximedevos <at> telenet.be>
Cc: 宋文武 <iyzsong <at> member.fsf.org>,
 57133-done <at> debbugs.gnu.org
Subject: Re: bug#57133: [PATCH] gnu: Add rizin.
Date: Fri, 19 Aug 2022 09:20:13 +0800
Pushed now!




Information forwarded to guix-patches <at> gnu.org:
bug#57133; Package guix-patches. (Fri, 26 Aug 2022 13:50:02 GMT) Full text and rfc822 format available.

Message #25 received at 57133 <at> debbugs.gnu.org (full text, mbox):

From: Maxime Devos <maximedevos <at> telenet.be>
To: 宋文武 <iyzsong <at> envs.net>
Cc: 宋文武 <iyzsong <at> member.fsf.org>, 57133 <at> debbugs.gnu.org
Subject: Re: bug#57133: [PATCH] gnu: Add rizin.
Date: Fri, 26 Aug 2022 15:49:48 +0200
[Message part 1 (text/plain, inline)]
On 15-08-2022 03:34, 宋文武 wrote:
>> You can put multiple licenses in the license field, using (license
>> (list this that foo bar ...)).
> For the license field, do we need to list all licenses of source code
> files, or the whole license of the package?  And if the later,
> `(list license:gpl2+ license:lgpl3+)` would say the package is dual
> licenses, under GPL2+ or LGPL3+ at user's choice.
>
> I think with all those licenses, the whole package is under
> GPL-3.0-or-later.
>
> Correct me if wrong, thank you!
I do not think it's stated anywhere which one exactly, but my own 
interpretation of the 'license' field is 'all the relevant licenses', 
without any claims whether it is a 'choose this or that' situation or a 
'one component is licensed as X, another is licensed as Y' situation.

Greetings,
Maxime.

[Message part 2 (text/html, inline)]
[OpenPGP_0x49E3EE22191725EE.asc (application/pgp-keys, attachment)]
[OpenPGP_signature (application/pgp-signature, attachment)]

Information forwarded to guix-patches <at> gnu.org:
bug#57133; Package guix-patches. (Fri, 26 Aug 2022 13:55:01 GMT) Full text and rfc822 format available.

Message #28 received at 57133 <at> debbugs.gnu.org (full text, mbox):

From: Maxime Devos <maximedevos <at> telenet.be>
To: 宋文武 <iyzsong <at> envs.net>
Cc: 宋文武 <iyzsong <at> member.fsf.org>, 57133 <at> debbugs.gnu.org
Subject: Re: bug#57133: [PATCH] gnu: Add rizin.
Date: Fri, 26 Aug 2022 15:54:38 +0200
[Message part 1 (text/plain, inline)]
On 15-08-2022 03:34, 宋文武 wrote:

>> What's the license for those binaries? I doubt all of them are gpl3+.
>>
>> I'm seeing a copy of libstdc++.so.6 in there. IIRC, it has a license
>> of the GPL family, which requires providing the source, so we need the
>> source code of it as well because of the licensing terms (the source
>> code of that particular variant of libstdc++, which might differ from
>> the version currently in Guix). Likewise for the other binaries.
>>
>> Personally, I think it would be more practical to ignore
>> rizin-testbins, even if that requires skipping some of the tests
>> (hopefully not all of them).
> I think those binaries as data, not programs to be run.  Well, most of
> them don't have sources in the repository, so I'll remove it and skip
> the integration tests.

This 'data' is still under various different licenses, some of which 
require providing source code. Copyright law not only covers programs to 
be run.

Greetings,
Maxime.

[Message part 2 (text/html, inline)]
[OpenPGP_0x49E3EE22191725EE.asc (application/pgp-keys, attachment)]
[OpenPGP_signature (application/pgp-signature, attachment)]

bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Sat, 24 Sep 2022 11:24:08 GMT) Full text and rfc822 format available.

This bug report was last modified 1 year and 208 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.