guix-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH 2/3] gnu: Add man-db


From: Mark H Weaver
Subject: Re: [PATCH 2/3] gnu: Add man-db
Date: Mon, 07 Apr 2014 01:12:50 -0400
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3 (gnu/linux)

Hi David,

David Thompson <address@hidden> writes:

> From e67306f142b9878f3f08688fc837f2faf967a5cb Mon Sep 17 00:00:00 2001
> From: David Thompson <address@hidden>
> 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 | 54 
> +++++++++++++++++++++++++++++++++++++++++++++++++++-
>  1 file changed, 53 insertions(+), 1 deletion(-)
>
> diff --git a/gnu/packages/man.scm b/gnu/packages/man.scm
> index aeb7c15..47eb892 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,49 @@
>       "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.
> +                   (use-modules (srfi srfi-1))

Instead of putting the 'use-modules' form within the lambda (I'm
surprised this even works, and I wouldn't expect it to necessarily work
in future versions of guile) the way to do this is to add a #:modules
keyword to the arguments list.  See 'hop' in scheme.scm for an example.

Be sure to include (guix build gnu-build-system) and (guix build utils)
in addition to (srfi srfi-1).  Those first two modules are included by
default, and you'll need them.

> +                   (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 '("--disable-setuid"))) ;; Disable setuid man user.
> +    (native-inputs
> +     `(("pkg-config" ,pkg-config)))
> +    (inputs
> +     `(("flex" ,flex)
> +       ("gdbm" ,gdbm)
> +       ("libpipeline" ,libpipeline)
> +       ("lynx" ,lynx)))

Why is 'lynx' an input?  I remember you mentioning on IRC that if PAGER
is not set, it launched a web browser by default.  I wonder: if you
included 'less' and not 'lynx', would it use 'less' by default instead?

    Thanks!
      Mark



reply via email to

[Prev in Thread] Current Thread [Next in Thread]