On 2017-01-08 14:47, David Craven wrote:
+ (add-before 'install 'create-dest-dirs
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out")))
+ (mkdir out)
+ (mkdir (string-append out "/bin")))))
+ (replace 'install
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out")))
+ (system (string-append "./install.sh " out "/opt"))
+ (symlink
+ (string-append out "/opt/nim/bin/nim")
+ (string-append out "/bin/nim"))))))))
Done. Nim is installed in /opt because it's the easiest and
recommended
way of installing it.
What do you think about patching install.sh to not create a nim
subfolder?
Then you could replace these two phases with
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out")))
+ (system* "./install.sh" out))
It would pollute the root directory, but as it's going to be alone in
his own
directory... I don't know, but here you have another patch that does
exactly
that. If you're going to add it, feel free to choose the one you prefer
(if you
choose the first, change the version, they updated to 0.16.0 ;) )
--
José Miguel Sánchez García
From ca6fd2b7fb995b93d3ae96c39952d6445c0bba7f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jos=C3=A9=20Miguel=20S=C3=A1nchez=20Garc=C3=ADa?=
<jm...@openmailbox.org>
Date: Mon, 9 Jan 2017 18:15:37 +0100
Subject: [PATCH] gnu: Add nim
* gnu/local.mk (GNU_SYSTEM_MODULES): Add nim.scm.
* gnu/packages/nim.scm: New file.
---
gnu/local.mk | 1 +
gnu/packages/nim.scm | 61 ++++++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 62 insertions(+)
create mode 100644 gnu/packages/nim.scm
diff --git a/gnu/local.mk b/gnu/local.mk
index cc42a122d..a7b917e6e 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -272,6 +272,7 @@ GNU_SYSTEM_MODULES = \
%D%/packages/networking.scm \
%D%/packages/nfs.scm \
%D%/packages/nickle.scm \
+ %D%/packages/nim.scm \
%D%/packages/ninja.scm \
%D%/packages/node.scm \
%D%/packages/noweb.scm \
diff --git a/gnu/packages/nim.scm b/gnu/packages/nim.scm
new file mode 100644
index 000000000..0370be68e
--- /dev/null
+++ b/gnu/packages/nim.scm
@@ -0,0 +1,61 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2012 Nikita Karetnikov <nik...@karetnikov.org>
+;;; Copyright © 2015, 2016 Efraim Flashner <efr...@flashner.co.il>
+;;; Copyright © 2016 Rene Saavedra <ren...@openmailbox.org>
+;;;
+;;; 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 (jmi2k packages nim)
+ #:use-module ((guix licenses) #:prefix license:)
+ #:use-module (guix packages)
+ #:use-module (guix download)
+ #:use-module (guix build-system gnu))
+
+(define-public nim
+ (package
+ (name "nim")
+ (version "0.16.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "http://nim-lang.org/download/"
+ name "-" version ".tar.xz"))
+ (sha256
+ (base32
+ "0rsibhkc5n548bn9yyb9ycrdgaph5kq84sfxc9gabjs7pqirh6cy"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:tests? #f
+ #:phases
+ (modify-phases %standard-phases
+ (delete 'configure)
+ (add-after 'unpack 'patch-installer
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out")))
+ (substitute* "install.sh"
+ (("1/nim") "1")))))
+ (replace 'install
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out")))
+ (system* "./install.sh" out)))))))
+ (home-page "http://nim-lang.org")
+ (synopsis "Statically-typed, imperative programming language")
+ (description
+ "Nim (formerly known as Nimrod) is a statically-typed, imperative
+programming language that tries to give the programmer ultimate power without
+compromises on runtime efficiency. This means it focuses on compile-time
+mechanisms in all their various forms.")
+ (license license:expat)))
--
2.11.0