From debbugs-submit-bounces@debbugs.gnu.org Wed Aug 16 11:19:32 2017 Received: (at 28053) by debbugs.gnu.org; 16 Aug 2017 15:19:32 +0000 Received: from localhost ([127.0.0.1]:41342 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1di06T-0003dw-2z for submit@debbugs.gnu.org; Wed, 16 Aug 2017 11:19:32 -0400 Received: from sender-of-o51.zoho.com ([135.84.80.216]:21101) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1di06Q-0003dn-DN for 28053@debbugs.gnu.org; Wed, 16 Aug 2017 11:19:27 -0400 Received: from localhost (141.80.247.215 [141.80.247.215]) by mx.zohomail.com with SMTPS id 1502896761923999.369577737597; Wed, 16 Aug 2017 08:19:21 -0700 (PDT) References: <20170811205612.14cc6088@lepiller.eu> User-agent: mu4e 0.9.18; emacs 25.2.1 From: Ricardo Wurmus To: Julien Lepiller Subject: Re: [bug#28053] Add radare2 In-reply-to: <20170811205612.14cc6088@lepiller.eu> X-URL: https://elephly.net X-PGP-Key: https://elephly.net/rekado.pubkey X-PGP-Fingerprint: BCA6 89B6 3655 3801 C3C6 2150 197A 5888 235F ACAC Date: Wed, 16 Aug 2017 17:19:19 +0200 Message-ID: <87a82zk0aw.fsf@elephly.net> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-ZohoMailClient: External X-Spam-Score: 1.0 (+) X-Debbugs-Envelope-To: 28053 Cc: 28053@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 1.0 (+) Hi Julien, > Hi, these patches add radare2, a reversing framework.>From fa5478ac8eccf51a62af574ef2be6316ba5c247b Mon Sep 17 00:00:00 2001 > From: Julien Lepiller > 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 > 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 > 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