From a0269a3830dfc2dd9cc6b8402a571a7efd90e717 Mon Sep 17 00:00:00 2001 From: David Thompson Date: Sun, 6 Apr 2014 20:25:01 -0400 Subject: [PATCH 2/3] gnu: Add man-db. * gnu/packages.man.scm (man-db): New variable. --- gnu/packages/man.scm | 69 +++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 68 insertions(+), 1 deletion(-) diff --git a/gnu/packages/man.scm b/gnu/packages/man.scm index e68b1f2..5457037 100644 --- a/gnu/packages/man.scm +++ b/gnu/packages/man.scm @@ -20,7 +20,13 @@ #:use-module (guix licenses) #:use-module (guix download) #:use-module (guix packages) - #:use-module (guix build-system gnu)) + #:use-module (guix build-system gnu) + #:use-module (gnu packages flex) + #:use-module (gnu packages gdbm) + #:use-module (gnu packages groff) + #:use-module (gnu packages less) + #:use-module (gnu packages lynx) + #:use-module (gnu packages pkg-config)) (define-public libpipeline (package @@ -41,3 +47,64 @@ "libpipeline is a C library for manipulating pipelines of subprocesses in a flexible and convenient way.") (license gpl3+))) + +(define-public man-db + (package + (name "man-db") + (version "2.6.6") + (source (origin + (method url-fetch) + (uri (string-append + "http://download.savannah.gnu.org/releases/man-db/man-db-" + version ".tar.xz")) + (sha256 + (base32 + "1hv6byj6sg6cp3jyf08gbmdm4pwhvd5hzmb94xl0w7prin6hzabx")))) + (build-system gnu-build-system) + (arguments + '(#:phases + (alist-cons-after + 'patch-source-shebangs 'patch-test-shebangs + (lambda* (#:key outputs #:allow-other-keys) + ;; Patch shebangs in test scripts. + (let ((out (assoc-ref outputs "out"))) + (for-each (lambda (file) + (substitute* file + (("#! /bin/sh") + (string-append "#!" (which "sh"))))) + (remove file-is-directory? + (find-files "src/tests" ".*"))))) + %standard-phases) + #:configure-flags + (let ((groff (assoc-ref %build-inputs "groff")) + (less (assoc-ref %build-inputs "less")) + (gzip (assoc-ref %build-inputs "gzip")) + (bzip2 (assoc-ref %build-inputs "bzip2")) + (xz (assoc-ref %build-inputs "xz"))) + ;; Invoke groff, less, gzip, bzip2, and xz directly from the store. + (append (list "--disable-setuid" ;; Disable setuid man user. + (string-append "--with-pager=" less "/bin/less") + (string-append "--with-gzip=" gzip "/bin/gzip") + (string-append "--with-bzip2=" bzip2 "/bin/gzip") + (string-append "--with-xz=" xz "/bin/xz")) + (map (lambda (prog) + (string-append "--with-" prog "=" groff "/bin/" prog)) + '("nroff" "eqn" "neqn" "tbl" "refer" "pic")))) + #:modules ((guix build gnu-build-system) + (guix build utils) + (srfi srfi-1)))) + (native-inputs + `(("pkg-config" ,pkg-config))) + (inputs + `(("flex" ,flex) + ("gdbm" ,gdbm) + ("groff" ,groff) + ("less" ,less) + ("libpipeline" ,libpipeline))) + (home-page "http://man-db.nongnu.org/") + (synopsis "Standard Unix documentation system") + (description + "Man-db is an implementation of the standard Unix documentation system +accessed using the man command. It uses a Berkeley DB database in place of +the traditional flat-text whatis databases.") + (license gpl2+))) -- 1.8.4