;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2014, 2015, 2016, 2017 Ludovic Courtès ;;; Copyright © 2015 Joshua S. Grant ;;; Copyright © 2017 Mathieu Othacehe ;;; ;;; 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) #:use-module (guix i18n) #:use-module (guix utils) #:use-module (srfi srfi-34) #:use-module (srfi srfi-35) #:use-module (ice-9 match) #:use-module (guix packages) #:use-module (gnu packages) #:use-module (gnu services) #:export (use-package-modules use-service-modules use-system-modules)) ;;; Commentary: ;;; ;;; This composite module re-exports core parts the (gnu …) public modules. ;;; ;;; Code: (eval-when (eval load compile) (begin (define %public-modules '((gnu system) (gnu system mapped-devices) (gnu system file-systems) (gnu bootloader) (gnu bootloader grub) (gnu system pam) (gnu system shadow) ; 'user-account' (gnu system linux-initrd) (gnu system nss) (gnu services) (gnu services base) (gnu packages) (gnu packages base) (guix gexp))) ; so gexps can be used (for-each (let ((i (module-
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2012, 2013 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;;
;;; 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 lout)
  #:use-module (guix licenses)
  #:use-module (guix packages)
  #:use-module (guix download)
  #:use-module (guix build-system gnu)
  #:use-module (gnu packages ghostscript))

(define-public lout
  (package
    (name "lout")
    (version "3.40")
    (source (origin
              (method url-fetch)
              (uri (string-append "mirror://savannah/lout/lout-"
                                  version ".tar.gz"))
              (sha256
               (base32
                "1gb8vb1wl7ikn269dd1c7ihqhkyrwk19jwx5kd0rdvbk6g7g25ix"))))
    (build-system gnu-build-system)     ; actually, just a makefile
    (outputs '("out" "doc"))
    (native-inputs
     (list ghostscript))
    (arguments
     `(#:modules ((guix build utils)
                  (guix build gnu-build-system)
                  (srfi srfi-1))        ; we need SRFI-1
       #:tests? #f                      ; no "check" target
       #:phases
       (modify-phases %standard-phases
         ;; This package is a bit tricky, because it doesn't follow the GNU
         ;; Build System rules.  Instead, it has a makefile that has to be
         ;; patched to set the prefix, etc., and it has no makefile rules to
         ;; build its documentation.
         (replace 'configure
           (lambda* (#:key outputs #:allow-other-keys)
             (let ((out (assoc-ref outputs "out"))
                   (doc (assoc-ref outputs "doc")))
               (substitute* "makefile"
                 (("^PREFIX[[:blank:]]*=.*$")
                  (string-append "PREFIX = " out "\n"))
                 (("^LOUTLIBDIR[[:blank:]]*=.*$")
                  (string-append "LOUTLIBDIR = " out "/lib/lout\n"))
                 (("^LOUTDOCDIR[[:blank:]]*=.*$")
                  (string-append "LOUTDOCDIR = " doc "/share/doc/lout\n"))
                 (("^MANDIR[[:blank:]]*=.*$")
                  (string-append "MANDIR = " out "/man\n")))
               (mkdir out)
               (mkdir (string-append out "/bin"))
               (mkdir (string-append out "/lib"))
               (mkdir (string-append out "/man"))
               (mkdir-p (string-append doc "/share/d