2014-04-06 21:36:40 +02:00
|
|
|
;;; GNU Guix --- Functional package management for GNU
|
2015-04-12 22:19:18 +02:00
|
|
|
;;; Copyright © 2012, 2014, 2015 Ludovic Courtès <ludo@gnu.org>
|
2014-04-06 21:36:40 +02:00
|
|
|
;;; Copyright © 2014 David Thompson <dthompson2@worcester.edu>
|
2016-09-07 10:25:42 +02:00
|
|
|
;;; Copyright © 2015, 2016 Ricardo Wurmus <rekado@elephly.net>
|
2015-07-21 16:04:10 +02:00
|
|
|
;;; Copyright © 2015 Alex Kost <alezost@gmail.com>
|
2016-01-11 08:37:50 +01:00
|
|
|
;;; Copyright © 2015, 2016 Efraim Flashner <efraim@flashner.co.il>
|
2014-04-06 21:36:40 +02:00
|
|
|
;;;
|
|
|
|
;;; 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 <http://www.gnu.org/licenses/>.
|
|
|
|
|
|
|
|
(define-module (gnu packages man)
|
|
|
|
#:use-module (guix licenses)
|
|
|
|
#:use-module (guix download)
|
|
|
|
#:use-module (guix packages)
|
2014-04-07 02:25:01 +02:00
|
|
|
#:use-module (guix build-system gnu)
|
2015-10-29 16:48:32 +01:00
|
|
|
#:use-module (gnu packages databases)
|
2014-04-07 02:25:01 +02:00
|
|
|
#:use-module (gnu packages flex)
|
2015-02-27 08:32:58 +01:00
|
|
|
#:use-module (gnu packages gawk)
|
2014-04-07 02:25:01 +02:00
|
|
|
#:use-module (gnu packages groff)
|
|
|
|
#:use-module (gnu packages less)
|
2014-04-07 02:30:37 +02:00
|
|
|
#:use-module (gnu packages perl)
|
2015-07-21 16:04:10 +02:00
|
|
|
#:use-module (gnu packages pkg-config)
|
|
|
|
#:use-module (gnu packages linux))
|
2014-04-06 21:36:40 +02:00
|
|
|
|
|
|
|
(define-public libpipeline
|
|
|
|
(package
|
|
|
|
(name "libpipeline")
|
2017-07-10 21:04:40 +02:00
|
|
|
(version "1.4.2")
|
2014-04-06 21:36:40 +02:00
|
|
|
(source (origin
|
|
|
|
(method url-fetch)
|
|
|
|
(uri (string-append
|
|
|
|
"mirror://savannah/libpipeline/libpipeline-"
|
|
|
|
version ".tar.gz"))
|
|
|
|
(sha256
|
|
|
|
(base32
|
2017-07-10 21:04:40 +02:00
|
|
|
"1gkrfqkphdc6gk8gic68asallj59i3cfq6nd31ppks0cljdgrwgy"))))
|
2014-04-06 21:36:40 +02:00
|
|
|
(build-system gnu-build-system)
|
|
|
|
(home-page "http://libpipeline.nongnu.org/")
|
|
|
|
(synopsis "C library for manipulating pipelines of subprocesses")
|
|
|
|
(description
|
|
|
|
"libpipeline is a C library for manipulating pipelines of subprocesses in
|
|
|
|
a flexible and convenient way.")
|
|
|
|
(license gpl3+)))
|
2014-04-07 02:25:01 +02:00
|
|
|
|
|
|
|
(define-public man-db
|
|
|
|
(package
|
|
|
|
(name "man-db")
|
2017-07-10 21:04:58 +02:00
|
|
|
(version "2.7.6.1")
|
2014-04-07 02:25:01 +02:00
|
|
|
(source (origin
|
|
|
|
(method url-fetch)
|
|
|
|
(uri (string-append "mirror://savannah/man-db/man-db-"
|
|
|
|
version ".tar.xz"))
|
|
|
|
(sha256
|
|
|
|
(base32
|
2017-07-10 21:04:58 +02:00
|
|
|
"0gqgs4zc3r87apns0k5qp689p2ylxx2596s2mkmkxjjay99brv88"))))
|
2014-04-07 02:25:01 +02:00
|
|
|
(build-system gnu-build-system)
|
|
|
|
(arguments
|
|
|
|
'(#:phases
|
2016-09-07 10:25:42 +02:00
|
|
|
(modify-phases %standard-phases
|
|
|
|
(add-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?
|
2016-09-07 10:44:24 +02:00
|
|
|
(find-files "src/tests" ".*"))))))
|
|
|
|
(add-after 'unpack 'patch-iconv-path
|
|
|
|
(lambda* (#:key inputs #:allow-other-keys)
|
|
|
|
(substitute* "src/man.c"
|
|
|
|
(("\"iconv\"")
|
|
|
|
(string-append "\"" (which "iconv") "\"")))
|
|
|
|
#t)))
|
2014-04-07 02:25:01 +02:00
|
|
|
#:configure-flags
|
|
|
|
(let ((groff (assoc-ref %build-inputs "groff"))
|
|
|
|
(less (assoc-ref %build-inputs "less"))
|
|
|
|
(gzip (assoc-ref %build-inputs "gzip"))
|
2015-07-21 16:04:10 +02:00
|
|
|
(bzip2 (assoc-ref %build-inputs "bzip2"))
|
|
|
|
(xz (assoc-ref %build-inputs "xz"))
|
|
|
|
(util (assoc-ref %build-inputs "util-linux")))
|
2014-04-07 02:25:01 +02:00
|
|
|
;; Invoke groff, less, gzip, bzip2, and xz directly from the store.
|
2017-07-10 21:04:58 +02:00
|
|
|
(append (list ;; Disable setuid man user.
|
|
|
|
"--disable-setuid"
|
|
|
|
;; Don't constrain ownership of system-wide cache files.
|
|
|
|
;; Otherwise creating the manpage database fails with
|
|
|
|
;; man-db > 2.7.5.
|
|
|
|
"--disable-cache-owner"
|
2014-04-07 02:25:01 +02:00
|
|
|
(string-append "--with-pager=" less "/bin/less")
|
|
|
|
(string-append "--with-gzip=" gzip "/bin/gzip")
|
|
|
|
(string-append "--with-bzip2=" bzip2 "/bin/gzip")
|
2015-07-21 16:04:10 +02:00
|
|
|
(string-append "--with-xz=" xz "/bin/xz")
|
2015-07-21 16:15:09 +02:00
|
|
|
(string-append "--with-col=" util "/bin/col")
|
|
|
|
;; Default value is "/usr/lib/tmpfiles.d" (not
|
|
|
|
;; prefix-sensitive).
|
|
|
|
(string-append "--with-systemdtmpfilesdir="
|
|
|
|
%output "/lib/tmpfiles.d"))
|
2014-04-07 02:25:01 +02:00
|
|
|
(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)
|
2015-07-21 16:04:10 +02:00
|
|
|
("libpipeline" ,libpipeline)
|
|
|
|
("util-linux" ,util-linux)))
|
2014-04-15 22:23:12 +02:00
|
|
|
(native-search-paths
|
|
|
|
(list (search-path-specification
|
|
|
|
(variable "MANPATH")
|
packages: Add 'file-type' field to 'search-path-specification'.
Fixes <http://bugs.gnu.org/18033>.
* guix/packages.scm (<search-path-specification>): Rename 'directories'
field to 'files'. Add 'file-type'.
(search-path-specification->sexp): Honor 'file-type'.
* gnu/packages/autotools.scm, gnu/packages/bootstrap.scm,
gnu/packages/cross-base.scm, gnu/packages/games.scm,
gnu/packages/gcc.scm, gnu/packages/glib.scm,
gnu/packages/guile.scm, gnu/packages/man.scm,
gnu/packages/perl.scm, gnu/packages/pkg-config.scm,
gnu/packages/python.scm, gnu/packages/ruby.scm,
gnu/packages/xfce.scm: Change 'directories' to 'files'.
* tests/packages.scm ("search paths"): Change 'directories' field to
'files'.
* guix/scripts/environment.scm (for-each-search-path): Likewise.
2014-12-27 23:22:08 +01:00
|
|
|
(files '("share/man")))))
|
2014-04-07 02:25:01 +02:00
|
|
|
(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+)))
|
2014-04-07 02:30:37 +02:00
|
|
|
|
2014-04-12 23:46:58 +02:00
|
|
|
(define-public man-pages
|
|
|
|
(package
|
|
|
|
(name "man-pages")
|
2017-05-04 12:47:23 +02:00
|
|
|
(version "4.11")
|
2014-04-12 23:46:58 +02:00
|
|
|
(source (origin
|
|
|
|
(method url-fetch)
|
2016-01-11 08:37:50 +01:00
|
|
|
(uri
|
|
|
|
(list
|
|
|
|
(string-append
|
2014-04-14 13:55:59 +02:00
|
|
|
"mirror://kernel.org/linux/docs/man-pages/man-pages-"
|
2016-01-11 08:37:50 +01:00
|
|
|
version ".tar.xz")
|
|
|
|
(string-append
|
|
|
|
"mirror://kernel.org/linux/docs/man-pages/Archive/"
|
|
|
|
"man-pages-" version ".tar.xz")))
|
2014-04-12 23:46:58 +02:00
|
|
|
(sha256
|
|
|
|
(base32
|
2017-05-04 12:47:23 +02:00
|
|
|
"097m0gsbaz0gf9ir4lmph3h5jj6wmydk1rglfz82dysybx4q1pmd"))))
|
2014-04-12 23:46:58 +02:00
|
|
|
(build-system gnu-build-system)
|
|
|
|
(arguments
|
|
|
|
'(#:phases (alist-delete 'configure %standard-phases)
|
2014-11-02 23:23:43 +01:00
|
|
|
|
|
|
|
;; The 'all' target depends on three targets that directly populate
|
|
|
|
;; $(MANDIR) based on its current contents. Doing that in parallel
|
|
|
|
;; leads to undefined behavior (see <http://bugs.gnu.org/18701>.)
|
|
|
|
#:parallel-build? #f
|
|
|
|
|
2014-04-12 23:46:58 +02:00
|
|
|
#:tests? #f
|
|
|
|
#:make-flags (list (string-append "MANDIR="
|
|
|
|
(assoc-ref %outputs "out")
|
|
|
|
"/share/man"))))
|
2017-03-15 16:04:06 +01:00
|
|
|
(home-page "https://www.kernel.org/doc/man-pages/")
|
2014-04-12 23:46:58 +02:00
|
|
|
(synopsis "Development manual pages from the Linux project")
|
|
|
|
(description
|
|
|
|
"This package provides traditional Unix \"man pages\" documenting the
|
|
|
|
Linux kernel and C library interfaces employed by user-space programs.")
|
|
|
|
|
|
|
|
;; Each man page has its own license; some are GPLv2+, some are MIT/X11.
|
|
|
|
(license gpl2+)))
|
|
|
|
|
2014-04-07 02:30:37 +02:00
|
|
|
(define-public help2man
|
|
|
|
(package
|
|
|
|
(name "help2man")
|
2016-07-10 20:34:11 +02:00
|
|
|
(version "1.47.4")
|
2014-04-07 02:30:37 +02:00
|
|
|
(source
|
|
|
|
(origin
|
|
|
|
(method url-fetch)
|
|
|
|
(uri (string-append "mirror://gnu/help2man/help2man-"
|
|
|
|
version ".tar.xz"))
|
|
|
|
(sha256
|
|
|
|
(base32
|
2016-07-10 20:34:11 +02:00
|
|
|
"0lvp4306f5nq08f3snffs5pp1zwv8l35z6f5g0dds51zs6bzdv6l"))))
|
2014-04-07 02:30:37 +02:00
|
|
|
(build-system gnu-build-system)
|
|
|
|
(arguments `(;; There's no `check' target.
|
|
|
|
#:tests? #f))
|
|
|
|
(inputs
|
|
|
|
`(("perl" ,perl)
|
|
|
|
;; TODO: Add these optional dependencies.
|
|
|
|
;; ("perl-LocaleGettext" ,perl-LocaleGettext)
|
2016-09-25 09:33:02 +02:00
|
|
|
;; ("gettext" ,gettext-minimal)
|
2014-04-07 02:30:37 +02:00
|
|
|
))
|
2017-03-30 00:48:16 +02:00
|
|
|
(home-page "https://www.gnu.org/software/help2man/")
|
2014-04-07 02:30:37 +02:00
|
|
|
(synopsis "Automatically generate man pages from program --help")
|
|
|
|
(description
|
|
|
|
"GNU help2man is a program that converts the output of standard
|
|
|
|
\"--help\" and \"--version\" command-line arguments into a manual page
|
|
|
|
automatically.")
|
|
|
|
(license gpl3+)))
|
2015-02-27 08:32:58 +01:00
|
|
|
|
|
|
|
(define-public txt2man
|
|
|
|
(package
|
|
|
|
(name "txt2man")
|
2017-03-01 07:05:03 +01:00
|
|
|
(version "1.6.0")
|
2015-02-27 08:32:58 +01:00
|
|
|
(source
|
|
|
|
(origin
|
|
|
|
(method url-fetch)
|
|
|
|
(uri (string-append
|
|
|
|
"https://github.com/mvertes/txt2man/archive/txt2man-"
|
|
|
|
version ".tar.gz"))
|
|
|
|
(sha256
|
|
|
|
(base32
|
2017-03-01 07:05:03 +01:00
|
|
|
"168cj96974n2z0igin6j1ic1m45zyic7nm5ark7frq8j78rrx4zn"))))
|
2015-02-27 08:32:58 +01:00
|
|
|
(build-system gnu-build-system)
|
|
|
|
(arguments
|
|
|
|
`(#:tests? #f ; no "check" target
|
|
|
|
#:make-flags (list (string-append "prefix=" (assoc-ref %outputs "out")))
|
|
|
|
#:phases (alist-delete 'configure %standard-phases)))
|
|
|
|
(inputs
|
|
|
|
`(("gawk" ,gawk)))
|
|
|
|
(home-page "https://github.com/mvertes/txt2man")
|
|
|
|
(synopsis "Convert text to man page")
|
|
|
|
(description "Txt2man converts flat ASCII text to man page format.")
|
|
|
|
(license gpl2+)))
|