all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* [bug#28053] Add radare2
@ 2017-08-11 18:56 Julien Lepiller
  2017-08-16 15:19 ` Ricardo Wurmus
  0 siblings, 1 reply; 7+ messages in thread
From: Julien Lepiller @ 2017-08-11 18:56 UTC (permalink / raw)
  To: 28053

[-- Attachment #1: Type: text/plain, Size: 53 bytes --]

Hi, these patches add radare2, a reversing framework.

[-- Attachment #2: 0001-gnu-Add-capstone.patch --]
[-- Type: text/x-patch, Size: 2346 bytes --]

From fa5478ac8eccf51a62af574ef2be6316ba5c247b Mon Sep 17 00:00:00 2001
From: Julien Lepiller <julien@lepiller.eu>
Date: Fri, 11 Aug 2017 20:41:39 +0200
Subject: [PATCH 1/3] gnu: Add capstone.

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

diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm
index 650ac2b89..8c6280c14 100644
--- a/gnu/packages/engineering.scm
+++ b/gnu/packages/engineering.scm
@@ -1013,3 +1013,38 @@ specified in high-level description language into ready-to-compile C code for
 the API of spice simulators.  Based on transformations specified in XML
 language, ADMS transforms Verilog-AMS code into other target languages.")
     (license license:gpl3)))
+
+(define-public capstone
+  (package
+    (name "capstone")
+    (version "3.0.5-rc2")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://github.com/aquynh/capstone/archive/"
+                                  version ".tar.gz"))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1cqms9r2p43aiwp5spd84zaccp16ih03r7sjhrv16nddahj0jz2q"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:tests? #f
+       #:make-flags (list (string-append "PREFIX=" %output)
+                          "CC=gcc")
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'configure)
+         (add-before 'build 'fix-cstool-ldflags
+           (lambda* (#:key outputs #:allow-other-keys)
+             (substitute* "cstool/Makefile"
+               (("LDFLAGS =")
+                (string-append "LDFLAGS = -Wl,-rpath=" (assoc-ref outputs "out")
+                               "/lib"))))))))
+    (home-page "http://www.capstone-engine.org")
+    (synopsis "Lightweight multi-platform, multi-architecture disassembly framework")
+    (description
+     "Capstone is a lightweight multi-platform, multi-architecture disassembly
+framework.  Capstone can disassemble machine code for many supported architectures
+such as x86, x86_64, arm, arm64, mips, ppc, sparc, sysz and xcore.  It provides
+bindings for Python, Java, OCaml and more.")
+    (license license:bsd-3)))
-- 
2.14.1


[-- Attachment #3: 0002-gnu-Add-python-capstone.patch --]
[-- Type: text/x-patch, Size: 2090 bytes --]

From 078c0cdedb620e7acdf9baea8924499ad5f8311a Mon Sep 17 00:00:00 2001
From: Julien Lepiller <julien@lepiller.eu>
Date: Fri, 11 Aug 2017 20:49:04 +0200
Subject: [PATCH 2/3] gnu: Add python-capstone.

* gnu/packages/engineering.scm (python-capstone, python2-capstone): New
variables.
---
 gnu/packages/engineering.scm | 27 ++++++++++++++++++++++++++-
 1 file changed, 26 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm
index 8c6280c14..6ba5131e7 100644
--- a/gnu/packages/engineering.scm
+++ b/gnu/packages/engineering.scm
@@ -32,7 +32,7 @@
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix build-system cmake)
   #:use-module (guix build-system gnu)
-  #:use-module (guix build-system cmake)
+  #:use-module (guix build-system python)
   #:use-module (gnu packages)
   #:use-module (gnu packages algebra)
   #:use-module (gnu packages autotools)
@@ -1048,3 +1048,28 @@ framework.  Capstone can disassemble machine code for many supported architectur
 such as x86, x86_64, arm, arm64, mips, ppc, sparc, sysz and xcore.  It provides
 bindings for Python, Java, OCaml and more.")
     (license license:bsd-3)))
+
+;; This package has a timestamp embedded in
+;; lib/python3.5/site-packages/capstone/__pycache__/__iti__.cpython-35.pyc
+(define-public python-capstone
+  (package
+    (inherit capstone)
+    (name "python-capstone")
+    (propagated-inputs
+     `(("capstone" ,capstone)))
+    (build-system python-build-system)
+    (arguments
+     `(#:tests? #f
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'chdir-and-fix-setup-py
+           (lambda _
+             (chdir "bindings/python")
+             (substitute* "setup.py" ((".*   build_libraries.*") ""))
+             (substitute* "capstone/__init__.py"
+               (("pkg_resources.resource_filename.*")
+                (string-append "'" (assoc-ref %build-inputs "capstone") "/lib',\n")))
+             #t)))))))
+
+(define-public python2-capstone
+  (package-with-python2 python-capstone))
-- 
2.14.1


[-- Attachment #4: 0003-gnu-Add-radare2.patch --]
[-- Type: text/x-patch, Size: 2656 bytes --]

From ad50754454fdda9d4be91f6bc739df07fe63ecb6 Mon Sep 17 00:00:00 2001
From: Julien Lepiller <julien@lepiller.eu>
Date: Fri, 11 Aug 2017 20:54:40 +0200
Subject: [PATCH 3/3] gnu: Add radare2.

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

diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm
index 6ba5131e7..130703e93 100644
--- a/gnu/packages/engineering.scm
+++ b/gnu/packages/engineering.scm
@@ -1073,3 +1073,52 @@ bindings for Python, Java, OCaml and more.")
 
 (define-public python2-capstone
   (package-with-python2 python-capstone))
+
+(define-public radare2
+  (package
+    (name "radare2")
+    (version "1.6.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "http://radare.mikelloc.com/get/" version "/"
+                                  name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "16ggsk40zz6hyvclvqj1r4bh4hb78jf0d6ppry1jk4r0j30wm7cm"))
+              (modules '((guix build utils)))
+              (snippet
+                '(begin
+                  (substitute* "libr/asm/p/Makefile"
+                    (("LDFLAGS\\+=") "LDFLAGS+=-Wl,-rpath=$(LIBDIR) "))
+                  (substitute* "libr/parse/p/Makefile"
+                    (("LDFLAGS\\+=") "LDFLAGS+=-Wl,-rpath=$(LIBDIR) "))
+                  (substitute* "libr/bin/p/Makefile"
+                    (("LDFLAGS\\+=") "LDFLAGS+=-Wl,-rpath=$(LIBDIR) "))))))
+    (build-system gnu-build-system)
+    (arguments
+     '(#:tests? #f
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'configure 'mklibdir
+           (lambda* (#:key inputs #:allow-other-keys)
+             (mkdir-p (string-append (assoc-ref %outputs "out") "/lib")))))
+       #:configure-flags
+       (list "--with-sysmagic" "--with-syszip" "--with-openssl"
+             "--without-nonpic" "--with-rpath" "--with-syscapstone")
+       #:make-flags
+       (list "CC=gcc")))
+    (inputs
+     `(("openssl" ,openssl)
+       ("zip" ,zip)
+       ("gmp" ,gmp)
+       ("capstone" ,capstone)))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (home-page "https://radare.org/")
+    (synopsis "Portable reversing framework")
+    (description
+      "Radare project started as a forensics tool, a scriptable commandline
+hexadecimal editor able to open disk files, but later support for analyzing
+binaries, disassembling code, debugging programs, attaching to remote gdb
+servers, ...")
+    (license license:lgpl3)))
-- 
2.14.1


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [bug#28053] Add radare2
  2017-08-11 18:56 [bug#28053] Add radare2 Julien Lepiller
@ 2017-08-16 15:19 ` Ricardo Wurmus
  2017-08-16 22:24   ` Marius Bakke
  2017-08-17 19:22   ` [bug#28053] Add radare2 (v2) Julien Lepiller
  0 siblings, 2 replies; 7+ messages in thread
From: Ricardo Wurmus @ 2017-08-16 15:19 UTC (permalink / raw)
  To: Julien Lepiller; +Cc: 28053


Hi Julien,

> Hi, these patches add radare2, a reversing framework.>From fa5478ac8eccf51a62af574ef2be6316ba5c247b Mon Sep 17 00:00:00 2001
> From: Julien Lepiller <julien@lepiller.eu>
> Date: Fri, 11 Aug 2017 20:41:39 +0200
> Subject: [PATCH 1/3] gnu: Add capstone.
>
> * gnu/packages/engineering.scm (capstone): New variable.
> ---

Don’t forget to add a copyright line for yourself!

> +
> +(define-public capstone
> +  (package
> +    (name "capstone")
> +    (version "3.0.5-rc2")
> +    (source (origin
> +              (method url-fetch)
> +              (uri (string-append "https://github.com/aquynh/capstone/archive/"
> +                                  version ".tar.gz"))
> +              (file-name (string-append name "-" version ".tar.gz"))
> +              (sha256
> +               (base32
> +                "1cqms9r2p43aiwp5spd84zaccp16ih03r7sjhrv16nddahj0jz2q"))))
> +    (build-system gnu-build-system)
> +    (arguments
> +     `(#:tests? #f
> +       #:make-flags (list (string-append "PREFIX=" %output)
> +                          "CC=gcc")
> +       #:phases
> +       (modify-phases %standard-phases
> +         (delete 'configure)
> +         (add-before 'build 'fix-cstool-ldflags
> +           (lambda* (#:key outputs #:allow-other-keys)
> +             (substitute* "cstool/Makefile"
> +               (("LDFLAGS =")
> +                (string-append "LDFLAGS = -Wl,-rpath=" (assoc-ref outputs "out")
> +                               "/lib"))))))))

Please add “#t” to the end of this phase.  Is it necessary to do this in
a build phase or could we add this to the make-flags instead?

>>From 078c0cdedb620e7acdf9baea8924499ad5f8311a Mon Sep 17 00:00:00 2001
> From: Julien Lepiller <julien@lepiller.eu>
> Date: Fri, 11 Aug 2017 20:49:04 +0200
> Subject: [PATCH 2/3] gnu: Add python-capstone.
>
> * gnu/packages/engineering.scm (python-capstone, python2-capstone): New
> variables.
> ---
>  gnu/packages/engineering.scm | 27 ++++++++++++++++++++++++++-
>  1 file changed, 26 insertions(+), 1 deletion(-)
>
> diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm
> index 8c6280c14..6ba5131e7 100644
> --- a/gnu/packages/engineering.scm
> +++ b/gnu/packages/engineering.scm
> @@ -32,7 +32,7 @@
>    #:use-module ((guix licenses) #:prefix license:)
>    #:use-module (guix build-system cmake)
>    #:use-module (guix build-system gnu)
> -  #:use-module (guix build-system cmake)
> +  #:use-module (guix build-system python)
>    #:use-module (gnu packages)
>    #:use-module (gnu packages algebra)
>    #:use-module (gnu packages autotools)
> @@ -1048,3 +1048,28 @@ framework.  Capstone can disassemble machine code for many supported architectur
>  such as x86, x86_64, arm, arm64, mips, ppc, sparc, sysz and xcore.  It provides
>  bindings for Python, Java, OCaml and more.")
>      (license license:bsd-3)))
> +
> +;; This package has a timestamp embedded in
> +;; lib/python3.5/site-packages/capstone/__pycache__/__iti__.cpython-35.pyc

Please add “FIXME: ” before the comment.

> +(define-public python-capstone
> +  (package
> +    (inherit capstone)
> +    (name "python-capstone")
> +    (propagated-inputs
> +     `(("capstone" ,capstone)))
> +    (build-system python-build-system)
> +    (arguments
> +     `(#:tests? #f

Please add a comment that tells us why the tests are disabled.

> +       #:phases
> +       (modify-phases %standard-phases
> +         (add-after 'unpack 'chdir-and-fix-setup-py
> +           (lambda _
> +             (chdir "bindings/python")
> +             (substitute* "setup.py" ((".*   build_libraries.*") ""))
> +             (substitute* "capstone/__init__.py"
> +               (("pkg_resources.resource_filename.*")
> +                (string-append "'" (assoc-ref %build-inputs "capstone") "/lib',\n")))
> +             #t)))))))

Could you please add a comment explaining why these substitutions are
necessary?

>>From ad50754454fdda9d4be91f6bc739df07fe63ecb6 Mon Sep 17 00:00:00 2001
> From: Julien Lepiller <julien@lepiller.eu>
> Date: Fri, 11 Aug 2017 20:54:40 +0200
> Subject: [PATCH 3/3] gnu: Add radare2.
>
> * gnu/packages/engineering.scm (radare2): New variable.
> ---
>  gnu/packages/engineering.scm | 49 ++++++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 49 insertions(+)
>
> diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm
> index 6ba5131e7..130703e93 100644
> --- a/gnu/packages/engineering.scm
> +++ b/gnu/packages/engineering.scm
> @@ -1073,3 +1073,52 @@ bindings for Python, Java, OCaml and more.")
>
>  (define-public python2-capstone
>    (package-with-python2 python-capstone))
> +
> +(define-public radare2
> +  (package
> +    (name "radare2")
> +    (version "1.6.0")
> +    (source (origin
> +              (method url-fetch)
> +              (uri (string-append "http://radare.mikelloc.com/get/" version "/"
> +                                  name "-" version ".tar.gz"))
> +              (sha256
> +               (base32
> +                "16ggsk40zz6hyvclvqj1r4bh4hb78jf0d6ppry1jk4r0j30wm7cm"))
> +              (modules '((guix build utils)))
> +              (snippet
> +                '(begin
> +                  (substitute* "libr/asm/p/Makefile"
> +                    (("LDFLAGS\\+=") "LDFLAGS+=-Wl,-rpath=$(LIBDIR) "))
> +                  (substitute* "libr/parse/p/Makefile"
> +                    (("LDFLAGS\\+=") "LDFLAGS+=-Wl,-rpath=$(LIBDIR) "))
> +                  (substitute* "libr/bin/p/Makefile"
> +                    (("LDFLAGS\\+=") "LDFLAGS+=-Wl,-rpath=$(LIBDIR) "))))))
> +    (build-system gnu-build-system)
> +    (arguments
> +     '(#:tests? #f

As above, please add a comment here.

> +       #:phases
> +       (modify-phases %standard-phases
> +         (add-before 'configure 'mklibdir
> +           (lambda* (#:key inputs #:allow-other-keys)
> +             (mkdir-p (string-append (assoc-ref %outputs "out") "/lib")))))

Please use

        (add-before 'configure 'mklibdir
          (lambda* (#:key outputs #:allow-other-keys)
            (mkdir-p (string-append (assoc-ref outputs "out") "/lib"))
            #t)))

Why does this need to happen before the configure phase?  Can this be
done before the install phase?

> +       #:configure-flags
> +       (list "--with-sysmagic" "--with-syszip" "--with-openssl"
> +             "--without-nonpic" "--with-rpath" "--with-syscapstone")

Why “without-nonpic”?  Should we add support for nonpic at a later
point?

> +    (description
> +      "Radare project started as a forensics tool, a scriptable commandline
> +hexadecimal editor able to open disk files, but later support for analyzing
> +binaries, disassembling code, debugging programs, attaching to remote gdb
> +servers, ...")

The description could be improved.  The sentence is not complete as it’s
missing a verb.

> +    (license license:lgpl3)))

LGPL version 3 only?

--
Ricardo

GPG: BCA6 89B6 3655 3801 C3C6  2150 197A 5888 235F ACAC
https://elephly.net

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [bug#28053] Add radare2
  2017-08-16 15:19 ` Ricardo Wurmus
@ 2017-08-16 22:24   ` Marius Bakke
  2017-08-17  6:57     ` Ricardo Wurmus
  2017-08-17 19:22   ` [bug#28053] Add radare2 (v2) Julien Lepiller
  1 sibling, 1 reply; 7+ messages in thread
From: Marius Bakke @ 2017-08-16 22:24 UTC (permalink / raw)
  To: Ricardo Wurmus, Julien Lepiller; +Cc: 28053

[-- Attachment #1: Type: text/plain, Size: 445 bytes --]

Ricardo Wurmus <rekado@elephly.net> writes:
>> +
>> +;; This package has a timestamp embedded in
>> +;; lib/python3.5/site-packages/capstone/__pycache__/__iti__.cpython-35.pyc
>
> Please add “FIXME: ” before the comment.

FYI, there is an upstream patch (in review) that makes Python respect
SOURCE_DATE_EPOCH when compiling bytecode.  I'm going to try picking
that for the 3.6 update, so this comment won't be necessary for long.

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 487 bytes --]

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [bug#28053] Add radare2
  2017-08-16 22:24   ` Marius Bakke
@ 2017-08-17  6:57     ` Ricardo Wurmus
  2017-08-17 20:35       ` Marius Bakke
  0 siblings, 1 reply; 7+ messages in thread
From: Ricardo Wurmus @ 2017-08-17  6:57 UTC (permalink / raw)
  To: Marius Bakke; +Cc: 28053


Marius Bakke <mbakke@fastmail.com> writes:

> Ricardo Wurmus <rekado@elephly.net> writes:
>>> +
>>> +;; This package has a timestamp embedded in
>>> +;; lib/python3.5/site-packages/capstone/__pycache__/__iti__.cpython-35.pyc
>>
>> Please add “FIXME: ” before the comment.
>
> FYI, there is an upstream patch (in review) that makes Python respect
> SOURCE_DATE_EPOCH when compiling bytecode.  I'm going to try picking
> that for the 3.6 update, so this comment won't be necessary for long.

Oh, that’s good.  Will this fix the remaining reproducibility problems
with Python?

--
Ricardo

GPG: BCA6 89B6 3655 3801 C3C6  2150 197A 5888 235F ACAC
https://elephly.net

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [bug#28053] Add radare2 (v2)
  2017-08-16 15:19 ` Ricardo Wurmus
  2017-08-16 22:24   ` Marius Bakke
@ 2017-08-17 19:22   ` Julien Lepiller
  2017-08-26 11:04     ` bug#28053: " Julien Lepiller
  1 sibling, 1 reply; 7+ messages in thread
From: Julien Lepiller @ 2017-08-17 19:22 UTC (permalink / raw)
  To: 28053

[-- Attachment #1: Type: text/plain, Size: 43 bytes --]

Hi,

here is the new version of the patches

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0001-gnu-Add-capstone.patch --]
[-- Type: text/x-patch, Size: 2835 bytes --]

From 0e893d50f3352d235bb70d1e3f1ce8f1b246d99e Mon Sep 17 00:00:00 2001
From: Julien Lepiller <julien@lepiller.eu>
Date: Fri, 11 Aug 2017 20:41:39 +0200
Subject: [PATCH 1/3] gnu: Add capstone.

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

diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm
index 650ac2b89..db8dbff1e 100644
--- a/gnu/packages/engineering.scm
+++ b/gnu/packages/engineering.scm
@@ -5,6 +5,7 @@
 ;;; Copyright © 2016 David Thompson <davet@gnu.org>
 ;;; Copyright © 2016, 2017 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2016, 2017 Theodoros Foradis <theodoros.for@openmailbox.org>
+;;; Copyright © 2017 Julien Lepiller <julien@lepiller.eu>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -1013,3 +1014,40 @@ specified in high-level description language into ready-to-compile C code for
 the API of spice simulators.  Based on transformations specified in XML
 language, ADMS transforms Verilog-AMS code into other target languages.")
     (license license:gpl3)))
+
+(define-public capstone
+  (package
+    (name "capstone")
+    (version "3.0.5-rc2")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://github.com/aquynh/capstone/archive/"
+                                  version ".tar.gz"))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1cqms9r2p43aiwp5spd84zaccp16ih03r7sjhrv16nddahj0jz2q"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:tests? #f
+       #:make-flags (list (string-append "PREFIX=" %output)
+                          "CC=gcc")
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'configure)
+         ;; cstool's Makefile overrides LDFLAGS, so we cannot pass it as a make flag.
+         (add-before 'build 'fix-cstool-ldflags
+           (lambda* (#:key outputs #:allow-other-keys)
+             (substitute* "cstool/Makefile"
+               (("LDFLAGS =")
+                (string-append "LDFLAGS = -Wl,-rpath=" (assoc-ref outputs "out")
+                               "/lib")))
+             #t)))))
+    (home-page "http://www.capstone-engine.org")
+    (synopsis "Lightweight multi-platform, multi-architecture disassembly framework")
+    (description
+     "Capstone is a lightweight multi-platform, multi-architecture disassembly
+framework.  Capstone can disassemble machine code for many supported architectures
+such as x86, x86_64, arm, arm64, mips, ppc, sparc, sysz and xcore.  It provides
+bindings for Python, Java, OCaml and more.")
+    (license license:bsd-3)))
-- 
2.14.1


[-- Attachment #3: 0002-gnu-Add-python-capstone.patch --]
[-- Type: text/x-patch, Size: 2257 bytes --]

From e881c1cc7b4073e74294e6bf4817743ff0a08d02 Mon Sep 17 00:00:00 2001
From: Julien Lepiller <julien@lepiller.eu>
Date: Fri, 11 Aug 2017 20:49:04 +0200
Subject: [PATCH 2/3] gnu: Add python-capstone.

* gnu/packages/engineering.scm (python-capstone, python2-capstone): New
variables.
---
 gnu/packages/engineering.scm | 29 ++++++++++++++++++++++++++++-
 1 file changed, 28 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm
index db8dbff1e..b4ccc446f 100644
--- a/gnu/packages/engineering.scm
+++ b/gnu/packages/engineering.scm
@@ -33,7 +33,7 @@
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix build-system cmake)
   #:use-module (guix build-system gnu)
-  #:use-module (guix build-system cmake)
+  #:use-module (guix build-system python)
   #:use-module (gnu packages)
   #:use-module (gnu packages algebra)
   #:use-module (gnu packages autotools)
@@ -1051,3 +1051,30 @@ framework.  Capstone can disassemble machine code for many supported architectur
 such as x86, x86_64, arm, arm64, mips, ppc, sparc, sysz and xcore.  It provides
 bindings for Python, Java, OCaml and more.")
     (license license:bsd-3)))
+
+;; FIXME: This package has a timestamp embedded in
+;; lib/python3.5/site-packages/capstone/__pycache__/__iti__.cpython-35.pyc
+(define-public python-capstone
+  (package
+    (inherit capstone)
+    (name "python-capstone")
+    (propagated-inputs
+     `(("capstone" ,capstone)))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'chdir-and-fix-setup-py
+           (lambda _
+             (chdir "bindings/python")
+             ;; Do not build the library again, because we already have it.
+             (substitute* "setup.py" ((".*   build_libraries.*") ""))
+             ;; This substitution tells python-capstone where to find the
+             ;; library.
+             (substitute* "capstone/__init__.py"
+               (("pkg_resources.resource_filename.*")
+                (string-append "'" (assoc-ref %build-inputs "capstone") "/lib',\n")))
+             #t)))))))
+
+(define-public python2-capstone
+  (package-with-python2 python-capstone))
-- 
2.14.1


[-- Attachment #4: 0003-gnu-Add-radare2.patch --]
[-- Type: text/x-patch, Size: 3574 bytes --]

From 659376711046c89b2dbb1e00410a3684fb0d81a0 Mon Sep 17 00:00:00 2001
From: Julien Lepiller <julien@lepiller.eu>
Date: Fri, 11 Aug 2017 20:54:40 +0200
Subject: [PATCH 3/3] gnu: Add radare2.

* gnu/packages/engineering.scm (radare2): New variable.
---
 gnu/packages/engineering.scm | 55 ++++++++++++++++++++++++++++++++++++++++++--
 1 file changed, 53 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm
index b4ccc446f..008a96b24 100644
--- a/gnu/packages/engineering.scm
+++ b/gnu/packages/engineering.scm
@@ -23,6 +23,7 @@
 ;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
 
 (define-module (gnu packages engineering)
+  #:use-module (srfi srfi-1)
   #:use-module (guix packages)
   #:use-module (guix download)
   #:use-module (guix gexp)
@@ -60,6 +61,7 @@
   #:use-module (gnu packages linux)               ;FIXME: for pcb
   #:use-module (gnu packages m4)
   #:use-module (gnu packages maths)
+  #:use-module (gnu packages multiprecision)
   #:use-module (gnu packages ncurses)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages pkg-config)
@@ -71,8 +73,7 @@
   #:use-module (gnu packages tls)
   #:use-module (gnu packages tex)
   #:use-module (gnu packages wxwidgets)
-  #:use-module (gnu packages xorg)
-  #:use-module (srfi srfi-1))
+  #:use-module (gnu packages xorg))
 
 (define-public librecad
   (package
@@ -1078,3 +1079,53 @@ bindings for Python, Java, OCaml and more.")
 
 (define-public python2-capstone
   (package-with-python2 python-capstone))
+
+(define-public radare2
+  (package
+    (name "radare2")
+    (version "1.6.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "http://radare.mikelloc.com/get/" version "/"
+                                  name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "16ggsk40zz6hyvclvqj1r4bh4hb78jf0d6ppry1jk4r0j30wm7cm"))
+              (modules '((guix build utils)))
+              (snippet
+                '(begin
+                  (substitute* "libr/asm/p/Makefile"
+                    (("LDFLAGS\\+=") "LDFLAGS+=-Wl,-rpath=$(LIBDIR) "))
+                  (substitute* "libr/parse/p/Makefile"
+                    (("LDFLAGS\\+=") "LDFLAGS+=-Wl,-rpath=$(LIBDIR) "))
+                  (substitute* "libr/bin/p/Makefile"
+                    (("LDFLAGS\\+=") "LDFLAGS+=-Wl,-rpath=$(LIBDIR) "))))))
+    (build-system gnu-build-system)
+    (arguments
+     '(#:tests? #f; tests require git and network access
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'configure 'mklibdir
+           (lambda* (#:key inputs #:allow-other-keys)
+             (mkdir-p (string-append (assoc-ref %outputs "out") "/lib"))
+             #t)))
+       #:configure-flags
+       (list "--with-sysmagic" "--with-syszip" "--with-openssl"
+             "--without-nonpic" "--with-rpath" "--with-syscapstone")
+       #:make-flags
+       (list "CC=gcc")))
+    (inputs
+     `(("openssl" ,openssl)
+       ("zip" ,zip)
+       ("gmp" ,gmp)
+       ("capstone" ,capstone)))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (home-page "https://radare.org/")
+    (synopsis "Portable reversing framework")
+    (description
+      "Radare project started as a forensics tool, a scriptable commandline
+hexadecimal editor able to open disk files, but later support for analyzing
+binaries, disassembling code, debugging programs, attaching to remote gdb
+servers, ...")
+    (license license:lgpl3)))
-- 
2.14.1


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [bug#28053] Add radare2
  2017-08-17  6:57     ` Ricardo Wurmus
@ 2017-08-17 20:35       ` Marius Bakke
  0 siblings, 0 replies; 7+ messages in thread
From: Marius Bakke @ 2017-08-17 20:35 UTC (permalink / raw)
  To: Ricardo Wurmus; +Cc: 28053

[-- Attachment #1: Type: text/plain, Size: 806 bytes --]

Ricardo Wurmus <rekado@elephly.net> writes:

> Marius Bakke <mbakke@fastmail.com> writes:
>
>> Ricardo Wurmus <rekado@elephly.net> writes:
>>>> +
>>>> +;; This package has a timestamp embedded in
>>>> +;; lib/python3.5/site-packages/capstone/__pycache__/__iti__.cpython-35.pyc
>>>
>>> Please add “FIXME: ” before the comment.
>>
>> FYI, there is an upstream patch (in review) that makes Python respect
>> SOURCE_DATE_EPOCH when compiling bytecode.  I'm going to try picking
>> that for the 3.6 update, so this comment won't be necessary for long.
>
> Oh, that’s good.  Will this fix the remaining reproducibility problems
> with Python?

We also need to provide a stable PYTHONHASHSEED, but I do believe these
measures will fix the vast majority of Python reproducibility issues.

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 487 bytes --]

^ permalink raw reply	[flat|nested] 7+ messages in thread

* bug#28053: Add radare2 (v2)
  2017-08-17 19:22   ` [bug#28053] Add radare2 (v2) Julien Lepiller
@ 2017-08-26 11:04     ` Julien Lepiller
  0 siblings, 0 replies; 7+ messages in thread
From: Julien Lepiller @ 2017-08-26 11:04 UTC (permalink / raw)
  To: 28053-done

Pushed as 6febda9443e34adda38b7c365ff2d7368f589995 -
446695775d6d8d15546c5d0fc535e9f5c83a7b7e

Le Thu, 17 Aug 2017 21:22:44 +0200,
Julien Lepiller <julien@lepiller.eu> a écrit :

> Hi,
> 
> here is the new version of the patches

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2017-08-26 11:06 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-08-11 18:56 [bug#28053] Add radare2 Julien Lepiller
2017-08-16 15:19 ` Ricardo Wurmus
2017-08-16 22:24   ` Marius Bakke
2017-08-17  6:57     ` Ricardo Wurmus
2017-08-17 20:35       ` Marius Bakke
2017-08-17 19:22   ` [bug#28053] Add radare2 (v2) Julien Lepiller
2017-08-26 11:04     ` bug#28053: " Julien Lepiller

Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/guix.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.