From mboxrd@z Thu Jan 1 00:00:00 1970 From: Leo Famulari Subject: [v2 1/1] gnu: Add peg-markdown. Date: Sat, 28 Nov 2015 16:32:01 -0500 Message-ID: <91abb64a6b8279ea62bcefff711586f790c83734.1448746196.git.leo@famulari.name> References: Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:47634) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1a2n4K-0004cn-7s for guix-devel@gnu.org; Sat, 28 Nov 2015 16:30:09 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1a2n4G-0000QP-7w for guix-devel@gnu.org; Sat, 28 Nov 2015 16:30:08 -0500 Received: from out4-smtp.messagingengine.com ([66.111.4.28]:41178) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1a2n4G-0000QG-4C for guix-devel@gnu.org; Sat, 28 Nov 2015 16:30:04 -0500 Received: from localhost.localdomain (ec2-52-5-4-205.compute-1.amazonaws.com [52.5.4.205]) by mail.messagingengine.com (Postfix) with ESMTPA id 6C87D6800C0 for ; Sat, 28 Nov 2015 16:30:03 -0500 (EST) In-Reply-To: In-Reply-To: References: List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org Sender: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org To: guix-devel@gnu.org * gnu/packages/markdown.scm (peg-markdown): New variable. --- gnu/packages/markdown.scm | 63 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) diff --git a/gnu/packages/markdown.scm b/gnu/packages/markdown.scm index a20eef6..e90329a 100644 --- a/gnu/packages/markdown.scm +++ b/gnu/packages/markdown.scm @@ -23,8 +23,11 @@ #:use-module (guix packages) #:use-module (guix build-system gnu) #:use-module (guix build-system trivial) + #:use-module (gnu packages glib) #:use-module (gnu packages perl) + #:use-module (gnu packages pkg-config) #:use-module (gnu packages python) + #:use-module (gnu packages valgrind) #:use-module (gnu packages web) #:use-module (gnu packages zip)) @@ -98,3 +101,63 @@ you to write using an easy-to-read, easy-to-write plain text format, then convert it to structurally valid XHTML (or HTML).") (license (non-copyleft "file://License.text" "See License.text in the distribution.")))) + +(define-public peg-markdown + (package + (name "peg-markdown") + (version "0.4.14") + (source (origin + (method url-fetch) + (uri (string-append + "https://github.com/jgm/peg-markdown/archive/" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1019f6hy1njmiigz16rrdgncrxz235sfq6zi1a4i3vfgb1hca6qi")))) + (build-system gnu-build-system) + (arguments + `(#:test-target "test" + #:make-flags (list "CC=gcc") + #:phases (modify-phases %standard-phases + (delete 'configure) + ;; The Makefile offers a memory leak test using + ;; Valgrind. + (add-after 'check 'leak-check + (lambda _ + (zero? (system* "make" "leak-check")))) + (replace + 'install + (lambda* (#:key outputs #:allow-other-keys) + ;; The Makefile does not check if the output paths exist. + (let* ((out (assoc-ref %outputs "out")) + (bin (string-append out "/bin")) + (doc (string-append out "/share/man/man1"))) + (mkdir-p bin) + ;; The top-level Makefile does not have an install + ;; target, so we have to do this manually. + (zero? + (system* "make" "-C" "peg-0.1.4" + (string-append "PREFIX=" %output) + "CC=gcc" "install")) + ;; The Makefile does not install the manpage. + (install-file "peg-0.1.4/peg.1" doc) + ;; The manpage applies to both peg and leg. + (symlink + (string-append doc "/peg.1") + (string-append doc "/leg.1")) + #t)))))) + (native-inputs + `(("pkg-config" ,pkg-config) + ("valgrind" ,valgrind))) + (inputs + `(("perl" ,perl) + ("glib" ,glib))) + (synopsis "Implementation of markdown in C, using a PEG grammar") + (description "This is an implementation of John Gruber's markdown in C. It +uses a parsing expression grammar (PEG) to define the syntax. This should allow +easy modification and extension. It currently supports output in HTML, LaTeX, +ODF, or groff_mm formats. Both a library and a standalone program are +provided.") + (home-page "https://github.com/jgm/peg-markdown") + (license (list gpl2+ expat)))) ; Dual-licensed -- 2.6.2