me
/
guix
Archived
1
0
Fork 0

gnu: bap: Update to 2.5.0-alpha.

* gnu/packages/ocaml.scm (bap): Update to 2.5.0-alpha.
master
Julien Lepiller 2022-06-19 08:43:00 +02:00
parent 0d5c88737b
commit 404df667e3
No known key found for this signature in database
GPG Key ID: 53D457B2D636EE82
1 changed files with 55 additions and 49 deletions

View File

@ -4074,7 +4074,7 @@ necessary set of rewriters.")
(define-public bap
(package
(name "bap")
(version "2.0.0")
(version "2.5.0-alpha")
(home-page "https://github.com/BinaryAnalysisPlatform/bap")
(source (origin
(method git-fetch)
@ -4084,58 +4084,64 @@ necessary set of rewriters.")
(file-name (git-file-name name version))
(sha256
(base32
"0lb9xkfp67wjjqr75p6krivmjra7l5673236v9ny4gp0xi0755bk"))))
"1fw9pp0xnssc08qqfkcafffap4f46hw7zmk80gif5yc4nazga8w5"))))
(build-system ocaml-build-system)
(native-inputs
`(("ocaml-oasis" ,(package-with-ocaml4.07 ocaml-oasis))
("clang" ,clang-3.8)
("ocaml-ounit" ,(package-with-ocaml4.07 ocaml-ounit))))
(propagated-inputs
`(("camlzip" ,(package-with-ocaml4.07 camlzip))
("ocaml-bitstring" ,(package-with-ocaml4.07 ocaml-bitstring))
("ocaml-cmdliner" ,(package-with-ocaml4.07 ocaml-cmdliner))
("ocaml-core-kernel" ,ocaml4.07-core-kernel)
("ocaml-ezjsonm" ,(package-with-ocaml4.07 ocaml-ezjsonm))
("ocaml-fileutils" ,(package-with-ocaml4.07 ocaml-fileutils))
("ocaml-frontc" ,(package-with-ocaml4.07 ocaml-frontc))
("ocaml-graph" ,(package-with-ocaml4.07 ocaml-graph))
("ocaml-ocurl" ,(package-with-ocaml4.07 ocaml-ocurl))
("ocaml-piqi" ,(package-with-ocaml4.07 ocaml-piqi))
("ocaml-ppx-jane" ,ocaml4.07-ppx-jane)
("ocaml-utop" ,ocaml4.07-utop)
("ocaml-uuidm" ,(package-with-ocaml4.07 ocaml-uuidm))
("ocaml-uri" ,ocaml4.07-uri)
("ocaml-zarith" ,(package-with-ocaml4.07 ocaml-zarith))))
(inputs
(list gmp llvm-3.8 ncurses))
(arguments
`(#:use-make? #t
(list
#:use-make? #t
#:phases
(modify-phases %standard-phases
(add-before 'configure 'fix-ncurses
(lambda _
(substitute* "oasis/llvm"
(("-lcurses") "-lncurses"))
#t))
(replace 'configure
(lambda* (#:key outputs inputs #:allow-other-keys)
;; add write for user, to prevent a failure in the install phase
(for-each
(lambda (file)
(let ((stat (stat file)))
(chmod file (+ #o200 (stat:mode stat)))))
(find-files "." "."))
(invoke "./configure" "--prefix"
(assoc-ref outputs "out")
"--libdir"
(string-append
#~(modify-phases %standard-phases
(add-before 'configure 'fix-ncurses
(lambda _
(substitute* "oasis/llvm"
(("-lcurses") "-lncurses"))
#t))
(replace 'configure
(lambda* (#:key outputs inputs #:allow-other-keys)
(for-each make-file-writable (find-files "." "."))
;; Package name changed
(substitute* "oasis/elf-loader"
(("bitstring.ppx") "ppx_bitstring"))
;; We don't have a monolithic llvm
(substitute* "oasis/llvm.setup.ml.in"
(("llvm_static = \"true\"") "true"))
(invoke "./configure" "--prefix"
(assoc-ref outputs "out")
"/lib/ocaml/site-lib")
"--with-llvm-version=3.8"
"--with-llvm-config=llvm-config"
"--enable-everything"))))
#:ocaml ,ocaml-4.07
#:findlib ,ocaml4.07-findlib))
"--libdir"
(string-append
(assoc-ref outputs "out")
"/lib/ocaml/site-lib")
(string-append "--with-llvm-version=" #$(package-version llvm))
"--with-llvm-config=llvm-config"
"--disable-ghidra"
"--disable-llvm-static"
"--enable-llvm"
"--enable-everything"))))))
(native-inputs (list clang ocaml-oasis ocaml-ounit))
(propagated-inputs
(list
camlzip
ocaml-bitstring
ocaml-cmdliner
ocaml-core-kernel
ocaml-ezjsonm
ocaml-fileutils
ocaml-frontc
ocaml-graph
ocaml-linenoise
ocaml-ocurl
ocaml-piqi
ocaml-ppx-bap
ocaml-ppx-bitstring
ocaml-re
ocaml-uri
ocaml-utop
ocaml-uuidm
ocaml-yojson
ocaml-z3
ocaml-zarith))
(inputs
(list gmp llvm ncurses))
(synopsis "Binary Analysis Platform")
(description "Binary Analysis Platform is a framework for writing program
analysis tools, that target binary files. The framework consists of a plethora