aboutsummaryrefslogtreecommitdiff
path: root/gnu/packages/c.scm
diff options
context:
space:
mode:
authorMaxim Cournoyer <maxim.cournoyer@gmail.com>2023-03-31 15:07:00 -0400
committerMaxim Cournoyer <maxim.cournoyer@gmail.com>2023-04-01 17:28:59 -0400
commit9800aaca91d5dab8cefbf2f9f1d119a8fed653e4 (patch)
tree5bb1c787771d91df5be6375e2cb18e8fb794c37c /gnu/packages/c.scm
parent09a20d115d89c7c3ff964f41199f6f80e0631b49 (diff)
downloadguix-9800aaca91d5dab8cefbf2f9f1d119a8fed653e4.tar
guix-9800aaca91d5dab8cefbf2f9f1d119a8fed653e4.tar.gz
gnu: Add orangeduck-mpc.
* gnu/packages/c.scm (orangeduck-mpc): New variable. * gnu/packages/patches/orangeduck-mpc-fix-pkg-config.patch: New file. * gnu/local.mk (dist_patch_DATA): Register it.
Diffstat (limited to 'gnu/packages/c.scm')
-rw-r--r--gnu/packages/c.scm50
1 files changed, 49 insertions, 1 deletions
diff --git a/gnu/packages/c.scm b/gnu/packages/c.scm
index b2f16613dd..96b4e904f7 100644
--- a/gnu/packages/c.scm
+++ b/gnu/packages/c.scm
@@ -9,7 +9,7 @@
;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2020, 2021 Marius Bakke <marius@gnu.org>
;;; Copyright © 2020 Katherine Cox-Buday <cox.katherine.e@gmail.com>
-;;; Copyright © 2020, 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2020, 2022, 2023 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2020, 2021 Greg Hogan <code@greghogan.com>
;;; Copyright © 2021 David Dashyan <mail@davie.li>
;;; Copyright © 2021 Foo Chuan Wei <chuanwei.foo@hotmail.com>
@@ -1145,6 +1145,54 @@ Telemetry Transport (MQTT) publish-subscribe messaging protocol.")
(home-page "https://microsoft.github.io/mimalloc/")
(license license:expat)))
+;;; The package is named orangeduck-mpc to differentiate it from GNU mpc.
+(define-public orangeduck-mpc
+ ;; The last release lacks an 'install' target.
+ (let ((commit "7c910e9303833c349f7432188ff77f2745254df2")
+ (revision "0"))
+ (package
+ (name "orangeduck-mpc")
+ (version (git-version "0.9.0" revision commit))
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/orangeduck/mpc")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "01a4vcxdnz0fbn90c9zc3jzklyqqvp9sfjpjwpq0f5r0l2pp37ad"))
+ (patches
+ (search-patches "orangeduck-mpc-fix-pkg-config.patch"))))
+ (build-system gnu-build-system)
+ (arguments
+ (list #:make-flags #~(list (string-append "CC=" #$(cc-for-target))
+ (string-append "PREFIX=" #$output))
+ #:phases #~(modify-phases %standard-phases
+ (add-after 'unpack 'patch-Makefile
+ (lambda _
+ (substitute* "Makefile"
+ ;; Do not attempt to alter the permissions,
+ ;; otherwise 'install' would error with
+ ;; "cannot stat [...] Permission denied"
+ ;; errors.
+ (("\\s\\-m[0-9]{3}\\s")
+ " "))))
+ (delete 'configure))))
+ (home-page "https://github.com/orangeduck/mpc")
+ (synopsis "Parser Combinator library for C ")
+ (description "@code{mpc} is a lightweight Parser Combinator library for C.
+@code{mpc} can help with tasks such as:
+@itemize
+@item Building a new programming language
+@item Building a new data format
+@item Parsing an existing programming language
+@item Parsing an existing data format
+@item Embedding a Domain Specific Language
+@item Implementing Greenspun's Tenth Rule.
+@end itemize")
+ (license license:bsd-2))))
+
;;; Factored out of the ck package so that it can be adjusted and called on
;;; the host side easily, without impacting the package definition.
(define (gnu-triplet->ck-machine target)