From 6d73e17bb47062d66c96ff3453692a0bd413ca5d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Wed, 3 Jul 2013 15:10:34 +0200 Subject: [PATCH] gnu: Add noweb. * gnu/packages/noweb.scm: New file. * gnu-system.am (GNU_SYSTEM_MODULES): Add it. --- gnu-system.am | 1 + gnu/packages/noweb.scm | 96 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 97 insertions(+) create mode 100644 gnu/packages/noweb.scm diff --git a/gnu-system.am b/gnu-system.am index 9e71b80a23..37072957ce 100644 --- a/gnu-system.am +++ b/gnu-system.am @@ -118,6 +118,7 @@ GNU_SYSTEM_MODULES = \ gnu/packages/ncurses.scm \ gnu/packages/netpbm.scm \ gnu/packages/nettle.scm \ + gnu/packages/noweb.scm \ gnu/packages/ocaml.scm \ gnu/packages/oggvorbis.scm \ gnu/packages/openldap.scm \ diff --git a/gnu/packages/noweb.scm b/gnu/packages/noweb.scm new file mode 100644 index 0000000000..155639f57e --- /dev/null +++ b/gnu/packages/noweb.scm @@ -0,0 +1,96 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2013 Ludovic Courtès +;;; +;;; 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 noweb) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix build-system gnu) + #:use-module (guix licenses)) + +(define-public noweb + (package + (name "noweb") + (version "2.11b") + (source (origin + (method url-fetch) + (uri (string-append "ftp://www.eecs.harvard.edu/pub/nr/noweb-" + version ".tgz")) + (sha256 + (base32 + "10hdd6mrk26kyh4bnng4ah5h1pnanhsrhqa7qwqy6dyv3rng44y9")))) + (build-system gnu-build-system) + (arguments + '(#:phases (alist-cons-before + 'install 'pre-install + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (mkdir-p (string-append out "/share/texmf/tex/latex")) + #t)) + (alist-cons-after + 'install 'post-install + (lambda* (#:key outputs inputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out")) + (cu (assoc-ref inputs "coreutils")) + (du (assoc-ref inputs "diffutils"))) + (with-directory-excursion out + (for-each (lambda (prog) + (substitute* prog + (("nawk") (which "awk")))) + (append (map (lambda (x) + (string-append "bin/" x)) + '("noweb" "nountangle" + "noroots" "noroff" + "noindex")) + (map (lambda (x) + (string-append "lib/" x)) + '("btdefn" "emptydefn" "noidx" + "pipedocs" "toascii" "tohtml" + "toroff" "totex" "unmarkup")))) + (substitute* "bin/cpif" + (("^PATH=.*$") + (string-append "PATH=" cu "/bin:" du "/bin\n")))) + #t)) + (alist-replace + 'configure + (lambda _ + ;; Jump in the source. + (chdir "src") + + ;; The makefile reads "source: FAQ", but FAQ isn't + ;; available. + (substitute* "Makefile" + (("FAQ") ""))) + %standard-phases))) + #:make-flags (let ((out (assoc-ref %outputs "out"))) + (list (string-append "BIN=" out "/bin") + (string-append "LIB=" out "/lib") + (string-append "MAN=" out "/share/man") + (string-append "TEXINPUTS=" out + "/share/texmf/tex/latex"))) + #:tests? #f)) ; no tests + (home-page "http://www.cs.tufts.edu/~nr/noweb/") + (synopsis "Literate programming tool") + (description + "noweb is designed to meet the needs of literate programmers while +remaining as simple as possible. Its primary advantages are simplicity, +extensibility, and language-independence—especially noticeable when compared +with other literate-programming tools. noweb uses 5 control sequences to +WEB's 27. The noweb manual is only 4 pages; an additional page explains how +to customize its LaTeX output. noweb works “out of the box” with any +programming language, and supports TeX, LaTeX, HTML, and troff back ends.") + (license (fsf-free "http://www.cs.tufts.edu/~nr/noweb/#copyright"))))