unofficial mirror of guix-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: "José Miguel Sánchez García" <jmi2k@openmailbox.org>
To: David Craven <david@craven.ch>
Cc: guix-devel <guix-devel@gnu.org>
Subject: Re: [PATCH] gnu: Add nim.
Date: Mon, 09 Jan 2017 17:23:03 +0100	[thread overview]
Message-ID: <6ff4e48ed27418388191f45be561dba0@openmailbox.org> (raw)
In-Reply-To: <CAL1_imnt0oAi08-aR_qCmWJLoKth7GkTv3sYuRq7MQmdn61VLA@mail.gmail.com>

[-- Attachment #1: Type: text/plain, Size: 1455 bytes --]

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

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0001-gnu-Add-nim.patch --]
[-- Type: text/x-diff; name=0001-gnu-Add-nim.patch, Size: 3619 bytes --]

From ca6fd2b7fb995b93d3ae96c39952d6445c0bba7f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jos=C3=A9=20Miguel=20S=C3=A1nchez=20Garc=C3=ADa?=
 <jmi2k@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 <nikita@karetnikov.org>
+;;; Copyright © 2015, 2016 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2016 Rene Saavedra <rennes@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


  reply	other threads:[~2017-01-09 16:23 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-01-06 16:27 [PATCH] gnu: Add nim José Miguel Sánchez García
2017-01-07  0:37 ` José Miguel Sánchez García
2017-01-07 16:41   ` José Miguel Sánchez García
2017-01-07 23:50     ` José Miguel Sánchez García
2017-01-08 13:47       ` David Craven
2017-01-09 16:23         ` José Miguel Sánchez García [this message]
2017-01-09 17:09           ` David Craven
2017-01-09 17:21             ` José Miguel Sánchez García
2017-01-09 17:37               ` David Craven

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://guix.gnu.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=6ff4e48ed27418388191f45be561dba0@openmailbox.org \
    --to=jmi2k@openmailbox.org \
    --cc=david@craven.ch \
    --cc=guix-devel@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).