David Thompson <dthomps...@worcester.edu> writes: > "Taylan Ulrich Bayırlı/Kammer" <taylanbayi...@gmail.com> writes: > >> From c770ed88c66c10de47e8fe7f84c3df6cf7b14aa4 Mon Sep 17 00:00:00 2001 >> From: =?UTF-8?q?Taylan=20Ulrich=20Bay=C4=B1rl=C4=B1/Kammer?= >> <taylanbayi...@gmail.com> >> Date: Sun, 1 Feb 2015 02:21:11 +0100 >> Subject: [PATCH] gnu: Add moreutils. >> >> * gnu-system.am (GNU_SYSTEM_MODULES): Add moreutils.scm. >> * gnu/packages/moreutils.scm: New file. >> --- >> gnu-system.am | 1 + >> gnu/packages/moreutils.scm | 71 >> ++++++++++++++++++++++++++++++++++++++++++++++ >> 2 files changed, 72 insertions(+) >> create mode 100644 gnu/packages/moreutils.scm >> >> diff --git a/gnu-system.am b/gnu-system.am >> index 706ad57..8ae5b79 100644 >> --- a/gnu-system.am >> +++ b/gnu-system.am >> @@ -187,6 +187,7 @@ GNU_SYSTEM_MODULES = \ >> gnu/packages/miscfiles.scm \ >> gnu/packages/mit-krb5.scm \ >> gnu/packages/moe.scm \ >> + gnu/packages/moreutils.scm \ >> gnu/packages/mpd.scm \ >> gnu/packages/mp3.scm \ >> gnu/packages/mpi.scm \ >> diff --git a/gnu/packages/moreutils.scm b/gnu/packages/moreutils.scm >> new file mode 100644 >> index 0000000..da3df89 >> --- /dev/null >> +++ b/gnu/packages/moreutils.scm >> @@ -0,0 +1,71 @@ >> +;;; GNU Guix --- Functional package management for GNU >> +;;; Copyright © 2014 Taylan Ulrich Bayırlı/Kammer <taylanbayi...@gmail.com> >> +;;; >> +;;; 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 moreutils) >> + #:use-module ((guix licenses) #:prefix l:) >> + #:use-module (guix packages) >> + #:use-module (guix download) >> + #:use-module (guix build-system gnu) >> + #:use-module (gnu packages perl) >> + #:use-module (gnu packages xml) >> + #:use-module (gnu packages docbook)) >> + >> +(define-public moreutils >> + (package >> + (name "moreutils") >> + (version "0.55") >> + (source (origin >> + (method url-fetch) >> + (uri (string-append >> + >> "http://ftp.debian.org/debian/pool/main/m/moreutils/moreutils_" >> + version ".orig.tar.gz")) >> + (sha256 >> + (base32 >> + "1dcah2jx8dbznn8966xl7sf1jrld2qfh6l6xcmx9dsnf8p8mr7fs")))) >> + (build-system gnu-build-system) >> + (inputs `(("perl" ,perl) >> + ("libxml2" ,libxml2) >> + ("libxslt" ,libxslt) >> + ("docbook-xml" ,docbook-xml-4.4) >> + ("docbook-xsl" ,docbook-xsl))) >> + (arguments >> + `(#:phases >> + (alist-replace >> + 'configure >> + (lambda* (#:key inputs outputs #:allow-other-keys) >> + (let ((out (assoc-ref outputs "out")) >> + (docbook-xml (assoc-ref inputs "docbook-xml")) >> + (docbook-xsl (assoc-ref inputs "docbook-xsl"))) >> + (substitute* "Makefile" >> + (("PREFIX\\?=/usr") >> + (string-append "PREFIX?=" out)) > > In GNU Make, the '?=' operator for variable assignment means "assign if > the variable isn't already defined"[1]. So, rather than a substitution, > how about just setting an environment variable? > > (setenv "PREFIX" out)
Another way is to add "PREFIX=..." to #:make-flags like this: #:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out"))) See 'freedink-data' in gnu/packages/games.scm for an example of this. Mark