;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2014, 2015 David Thompson ;;; Copyright © 2014 Andreas Enge ;;; Copyright © 2014 Cyrill Schenkel ;;; Copyright © 2014 Ian Denhardt ;;; Copyright © 2015 Paul van der Walt ;;; Copyright © 2016, 2018, 2019, 2020 Leo Famulari ;;; Copyright © 2018–2021 Tobias Geerinckx-Rice ;;; Copyright © 2019 Evan Straw ;;; Copyright © 2020, 2021 Ricardo Wurmus ;;; Copyright © 2020 Lars-Dominik Braun ;;; Copyright © 2020–2023 Simon Streit ;;; Copyright © 2021 Noah Evans ;;; ;;; This file is part of GNU Guix. ;;; ;;; GNU Guix is free software; you can redistribute it and/or modify it ;;; under the terms of the GNU General Public License as published by ;;; the Free Software Foundation; either version 3 of the License, or (at ;;; your option) any later version. ;;; ;;; GNU Guix is distributed in the hope that it will be useful, but ;;; WITHOUT ANY WARRANTY; without even the implied warranty of ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;;; GNU General Public License for more details. ;;; ;;; You should have received a copy of the GNU General Public License ;;; along with GNU Guix. If not, see . (define-module (gnu packages mpd) #:use-module (gnu packages) #:use-module ((guix licenses) #:prefix license:) #:use-module (guix gexp) #:use-module (guix packages) #:use-module (guix download) #:use-module (guix git-download) #:use-module (guix utils) #:use-module (guix build-system cmake) #:use-module (guix build-system gnu) #:use-module (guix build-system meson) #:use-module (guix build-system python) #:use-module (gnu packages audio) #:use-module (gnu packages autotools) #:use-module (gnu packages avahi) #:use-module (gnu packages base) #:use-module (gnu packages bash) #:use-module (gnu packages boost) #:use-module (gnu packages cdrom) #:use-module (gnu packages cpp) #:use-module (gnu packages file-systems) #:use-module (gnu packages freedesktop) ;elogind #:use-module (gnu packages gettext) #:use-module (gnu packages gnome) #:use-module (gnu packages gnupg) #:use-module (gnu packages gtk) #:use-module (gnu packages icu4c) #:use-module (gnu packages libusb) #:use-module (gnu packages lua) #:use-module (gnu packages readline) #:use-module (gnu packages ruby) #:use-module (gnu packages check) #:use-module (gnu packages compression) #:use-module (gnu packages curl) #:use-module (gnu packages documentation) #:use-module (gnu packages glib) #:use-module (gnu packages linux) #:use-module (gnu packages mp3) #:use-module (gnu packages music) #:use-module (gnu packages ncurses) #:use-module (gnu packages pcre) #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) #:use-module (gnu packages pretty-print) #:use-module (gnu packages python) #:use-module (gnu packages python-xyz) #:use-module (gnu packages pulseaudio) #:use-module (gnu packages qt) #:use-module (gnu packages serialization) #:use-module (gnu packages sphinx) #:use-module (gnu packages sqlite) #:use-module (gnu packages tls) #:use-module (gnu packages video) #:use-module (gnu packages web) #:use-module (gnu packages xiph) #:use-module (gnu packages xml)) (define-public libmpdclient (package (name "libmpdclient") (version "2.20") (source (origin (method url-fetch) (uri (string-append "https://musicpd.org/download/libmpdclient/" (car (string-split version #\.)) "/libmpdclient-" version ".tar.xz")) (sha256 (base32 "0z979qcjc0dqmpn3q9j174a29-rw-r--r--gnu/packages/ocaml.scm210
1 files changed, 149 insertions, 61 deletions
diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm
index 4569c526ab..ff24861eb0 100644
--- a/gnu/packages/ocaml.scm
+++ b/gnu/packages/ocaml.scm
@@ -902,7 +902,7 @@ Git-friendly development workflow.")
(define-public ocaml-camlp-streams
(package
(name "ocaml-camlp-streams")
- (version "5.0")
+ (version "5.0.1")
(source
(origin
(method git-fetch)
@@ -911,7 +911,7 @@ Git-friendly development workflow.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "1wd5k0irzwi841b27pbx0n5fdybbgx97184zm8cjajizd2j8w0g5"))))
+ (base32 "0r3wvffkzyyk4als78akirxanzbib5hvc3kvwxpk36mlmc38aywh"))))
(build-system dune-build-system)
(arguments
;; No tests
@@ -1704,7 +1704,7 @@ full_split, cut, rcut, etc..")
(define dune-bootstrap
(package
(name "dune")
- (version "3.2.0")
+ (version "3.3.1")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -1713,7 +1713,7 @@ full_split, cut, rcut, etc..")
(file-name (git-file-name name version))
(sha256
(base32
- "0fa8fkj2piis8b56phl6p77pl1na81krdnmmvyw16hq45zbmm9rk"))))
+ "0wdja70l7y1cj1d0sijm0q0cbics8xd9wqka7zyb29y1cc57pasa"))))
(build-system ocaml-build-system)
(arguments
`(#:tests? #f; require odoc
@@ -1868,18 +1868,18 @@ module of this library is parameterised by the type of S-expressions.")
(define-public ocaml-migrate-parsetree
(package
(name "ocaml-migrate-parsetree")
- (version "2.3.0")
+ (version "2.4.0")
(home-page "https://github.com/ocaml-ppx/ocaml-migrate-parsetree")
(source
(origin
(method git-fetch)
(uri (git-reference
(url home-page)
- (commit (string-append "v" version))))
+ (commit version)))
(file-name (git-file-name name version))
(sha256
(base32
- "1nqmhsc72xmgm865nn8q0hngklhvqav281hgnx1gf5ns49a0n3ig"))))
+ "0a1qy0ik36j8hpqxvh3fxf4aibjqax989mihj73jncchv8qv4ynq"))))
(build-system dune-build-system)
(arguments `(#:tests? #f))
(propagated-inputs
@@ -1939,6 +1939,30 @@ functions to the next and/or previous version.")
ocaml-migrate-parsetree")
(license license:expat))))
+(define-public ocaml-linenoise
+ (package
+ (name "ocaml-linenoise")
+ (version "1.3.1")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/ocaml-community/ocaml-linenoise")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0s98695skz1wvrak0rdlh80w3cv6piic1dxqpn9rv1yymbklafg4"))))
+ (build-system dune-build-system)
+ (arguments
+ ;; No tests
+ `(#:tests? #f))
+ (propagated-inputs (list ocaml-result ocaml-odoc))
+ (home-page "https://github.com/ocaml-community/ocaml-linenoise")
+ (synopsis "Lightweight readline alternative")
+ (description "This package is a line-reading library for OCaml that aims
+to replace readline.")
+ (license license:bsd-2)))
+
(define-public ocaml-bitstring
(package
(name "ocaml-bitstring")
@@ -1992,6 +2016,22 @@ powerful.")
(propagated-inputs
`(("ocaml-ppx-tools-versioned" ,ocaml4.07-ppx-tools-versioned)))
(properties '()))))
+
+(define-public ocaml-ppx-bitstring
+ (package
+ (inherit ocaml-bitstring)
+ (name "ocaml-ppx-bitstring")
+ (arguments
+ `(#:package "ppx_bitstring"
+ ;; No tests
+ #:tests? #f))
+ (propagated-inputs (list ocaml-bitstring ocaml-ppxlib))
+ (native-inputs (list ocaml-ounit))
+ (properties `((upstream-name . "ppx_bitstring")))
+ (synopsis "PPX extension for bitstrings and bitstring matching")
+ (description
+ "This package provides a way to write bitstrings and matching over
+bitsrings in Erlang style as primitives to the language.")))
(define-public ocaml-result
(package
@@ -2557,7 +2597,7 @@ for mapping files in memory. This function is the same as the
(define-public ocaml-lwt
(package
(name "ocaml-lwt")
- (version "5.5.0")
+ (version "5.6.1")
(source
(origin
(method git-fetch)
@@ -2566,7 +2606,7 @@ for mapping files in memory. This function is the same as the
(commit version)))
(file-name (git-file-name name version))
(sha256 (base32
- "1jbjz2rsz3j56k8vh5qlmm87hhkr250bs2m3dvpy9vsri8rkzj9z"))))
+ "0cfmhw4nsnwba49p06l9fbnbcq75w9fd3kvrr615ihjc9frlmjsy"))))
(build-system dune-build-system)
(arguments
`(#:package "lwt"))
@@ -2588,17 +2628,17 @@ locks or other synchronization primitives.")
(package
(inherit ocaml-lwt)
(name "ocaml-lwt-react")
- (version "1.1.5")
+ (version "1.2.0")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/ocsigen/lwt")
;; Version from opam
- (commit "5.5.0")))
+ (commit "5.6.0")))
(file-name (git-file-name name version))
(sha256
(base32
- "1jbjz2rsz3j56k8vh5qlmm87hhkr250bs2m3dvpy9vsri8rkzj9z"))))
+ "12sglfwdx4anfslj437g7gxchklgzfvba6i4p478kmqr56j2xd0c"))))
(arguments
`(#:package "lwt_react"))
(properties `((upstream-name . "lwt_react")))
@@ -3989,10 +4029,52 @@ It provides a uniform interface for serializing OCaml data structures to JSON,
XML and Protocol Buffers formats.")
(license license:asl2.0)))
+(define-public ocaml-ppx-bap
+ (package
+ (name "ocaml-ppx-bap")
+ (version "0.14.0")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/BinaryAnalysisPlatform/ppx_bap")
+ (commit (string-append "v" (version-major+minor version)))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1c6rcdp8bicdiwqc2mb59cl9l2vxlp3y8hmnr9x924fq7acly248"))))
+ (build-system dune-build-system)
+ (arguments
+ ;; No tests
+ `(#:tests? #f))
+ (propagated-inputs (list ocaml-base-quickcheck
+ ocaml-ppx-assert
+ ocaml-ppx-bench
+ ocaml-ppx-bin-prot
+ ocaml-ppx-cold
+ ocaml-ppx-compare
+ ocaml-ppx-enumerate
+ ocaml-ppx-fields-conv
+ ocaml-ppx-hash
+ ocaml-ppx-here
+ ocaml-ppx-optcomp
+ ocaml-ppx-sexp-conv
+ ocaml-ppx-sexp-value
+ ocaml-ppx-variants-conv
+ ocaml-ppxlib))
+ (properties `((upstream-name . "ppx_bap")))
+ (home-page "https://github.com/BinaryAnalysisPlatform/ppx_bap")
+ (synopsis "The set of ppx rewriters for BAP")
+ (description
+ "@code{ppx_bap} is the set of blessed ppx rewriters used in BAP projects.
+It fills the same role as @code{ppx_base} or @code{ppx_jane} (from which it is
+derived), but doesn't impose any style requirements and has only the minimal
+necessary set of rewriters.")
+ (license license:expat)))
+
(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)
@@ -4002,58 +4084,64 @@ XML and Protocol Buffers formats.")
(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
regex" "test_http_client")))) (add-after 'install 'move-doc (lambda _ (let ((old (string-append #$output "/share/doc")) (new (string-append #$output:doc "/share/doc"))) (mkdir-p (dirname new)) (rename-file old new))))))) (native-inputs (list jekyll jq perl pkg-config)) (inputs (list flac libid3tag lua openssl pcre2)) (home-page "https://jcorporation.github.io/") (synopsis "Web-based MPD client") (description "MyMPD is a mobile-friendly web client for the Music Player Daemon (MPD).") (license license:gpl3+)))