unofficial mirror of guix-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Mark H Weaver <mhw@netris.org>
To: Matthew Jordan <matthewjordandevops@yandex.com>
Cc: Guix-devel <guix-devel@gnu.org>
Subject: Re: [PATCH] envstore-2.1
Date: Sat, 14 May 2016 20:14:17 -0400	[thread overview]
Message-ID: <87d1oomb3a.fsf@netris.org> (raw)
In-Reply-To: <87zirssmjz.fsf@mailerver.i-did-not-set--mail-host-address--so-tickle-me> (Matthew Jordan's message of "Sat, 14 May 2016 11:10:08 -0400")

Hi,

Matthew Jordan <matthewjordandevops@yandex.com> writes:

> From 8de06b6e26d9e1eb7bb7ef6df163f54a46db3d89 Mon Sep 17 00:00:00 2001
> From: Matthew Jordan <matthewjordandevops@yandex.com>
> Date: Thu, 12 May 2016 14:57:34 -0400
> Subject: [PATCH] gnu: Added envstore package.

The summary line should be "gnu: Add envstore."

>
> * gnu/package/enstore.scm: New file.

You misspelled "envstore.scm", but it would be better to find an
existing file in gnu/package/*.scm that would be appropriate for this.

> diff --git a/gnu/packages/envstore.scm b/gnu/packages/envstore.scm
> new file mode 100644
> index 0000000..e3ec99d
> --- /dev/null
> +++ b/gnu/packages/envstore.scm
> @@ -0,0 +1,42 @@
> +(define-module (gnu packages envstore)

When adding a new *.scm file, it needs to contain a copyright notice and
header at the top, as with our other source files.

> +  #:use-module (guix)
> +  #:use-module (guix packages)
> +  #:use-module (guix build-system gnu)
> +  #:use-module (gnu packages)
> +  #:use-module (guix download)
> +  #:use-module (guix utils)
> +  #:use-module (guix licenses))
> +
> +(define-public envstore
> +  (package
> +    (name "envstore")
> +    (version "2.1")
> +    (source
> +     (origin
> +       (method url-fetch)
> +       (uri (string-append "https://github.com/derf/" name "/archive/"
> +                           version ".tar.gz"))

How about using

  https://finalrewind.org/projects/envstore/envstore-2.1.tar.bz2

instead?  That's the tarball linked from the project's home page, and
unlike the github tarball, it's digitally signed.

> +       (sha256
> +        (base32 "097yd6w0fql8a3xh0gmz8bf40w61j4893rp8c28rngrrk80bk9a8"))))
> +    (build-system gnu-build-system)
> +    (arguments
> +     `(#:test-target "test"
> +       #:phases
> +       (modify-phases %standard-phases
> +         (delete 'configure)
> +         (replace 'build
> +           (lambda _
> +             (setenv "CC" (which "gcc"))
> +             (system* "make")))

Instead of replacing the 'build' phase, it would be better to add this
to the 'arguments':

  #:make-flags (list "CC=gcc")

See 'dvtm' in dvtm.scm for an example.

> +         (replace 'install
> +           (lambda* (#:key outputs #:allow-other-keys)
> +             (let ((out (assoc-ref outputs "out")))
> +               (setenv "PREFIX" "/")
> +               (setenv "DESTDIR" out)
> +               (system* "make" "install")))))))

These are incorrect settings for PREFIX and DESTDIR.  In general, PREFIX
tells where the installed files will be located when the program is run,
and DESTDIR names a temporary staging directory where "make install"
will put the files, on the assumption that they will later be moved to
PREFIX before they are run.

So, PREFIX should be set to (assoc-ref outputs "out"), and DESTDIR
should be left alone.

Also, as with the 'build' phase, it would be better to simply add these
to make-flags, like this:

  #:make-flags (list "CC=gcc"
                     (string-append "PREFIX=" (assoc-ref %outputs "out")))

> +    (home-page "https://finalrewind.org/projects/envstore/")
> +    (synopsis "Save and restore environment variables")
> +    (description "Envstore is a program for sharing environment variables
> +between various shells or commands.")
> +    (license
> +     (non-copyleft "http://www.wtfpl.net/txt/copying/"))))

Can you send an updated patch?

     Thanks,
       Mark

  reply	other threads:[~2016-05-15  0:14 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-05-14 15:10 [PATCH] envstore-2.1 Matthew Jordan
2016-05-15  0:14 ` Mark H Weaver [this message]
2016-05-15 11:16   ` Matthew Jordan
2016-05-15 17:14     ` Efraim Flashner
2016-05-16  0:01       ` Matthew Jordan
2016-05-18 17:34       ` Matthew Jordan
2016-05-19  3:35         ` Mark H Weaver
2016-05-19 18:10           ` Matthew Jordan
2016-05-21 21:24             ` Ludovic Courtès

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=87d1oomb3a.fsf@netris.org \
    --to=mhw@netris.org \
    --cc=guix-devel@gnu.org \
    --cc=matthewjordandevops@yandex.com \
    /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).