From: Troy Sankey <sankeytms@gmail.com>
To: Leo Famulari <leo@famulari.name>
Cc: guix-devel <guix-devel@gnu.org>
Subject: Re: [PATCH] doc: clarification for hashing git checkouts
Date: Mon, 11 Jul 2016 01:18:31 -0400 [thread overview]
Message-ID: <20160711051831.15418.45217@what> (raw)
In-Reply-To: <20160710231630.GA10509@jasmine>
[-- Attachment #1: Type: text/plain, Size: 1195 bytes --]
Quoting Leo Famulari (2016-07-10 19:16:30)
> On Sun, Jul 10, 2016 at 05:54:38PM -0400, Troy Sankey wrote:
> > When hashing git checkouts of packages, packagers must first remove the .git
> > directory. This commit adds this clarification to the "Invoking guix hash"
> > page in the documentation.
>
> Yes! This is one that *everybody* has to ask.
I've asked it, and I've since seen two more ask on IRC :)
> I think it would be better in section '5.1.2 origin reference', because
> that is where the origin methods (url-fetch, git-fetch, etc) and the
> sha256 field are documented.
>
> In that case, it could go along with explanations of how to calculate
> the hash for cvs-download, hg-download, and svn-download.
>
> What do others think?
I think what is really missing is a reference to 'Invoking guix hash' from
'5.1.2 origin reference'. My new patch includes that reference, along with
your other suggested explainations about other VCS. I think it is important
that we direct people to the right tools for the job---beginning packagers
should not yet be concerned about the specifics of using 'guix hash' before
they learn the name of the tool.
Troy
[-- Attachment #2: 0001-doc-clarification-for-hashing-git-checkouts.patch --]
[-- Type: text/x-diff, Size: 2216 bytes --]
From 42b26d3601a6318bcefa4dfe4018daddc521e27a Mon Sep 17 00:00:00 2001
From: Troy Sankey <sankeytms@gmail.com>
Date: Sun, 10 Jul 2016 17:45:55 -0400
Subject: [PATCH] doc: clarification for hashing git checkouts
When hashing git checkouts of packages, packagers must first remove the .git
directory. This commit adds this clarification to the "Invoking guix hash"
section in the documentation, and makes a few more related changes throughout
the rest of the document.
---
doc/guix.texi | 11 +++++++++--
1 file changed, 9 insertions(+), 2 deletions(-)
diff --git a/doc/guix.texi b/doc/guix.texi
index c9d9bd8..26284ac 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -2425,7 +2425,7 @@ The @code{sha256} field specifies the expected SHA256 hash of the file
being downloaded. It is mandatory, and allows Guix to check the
integrity of the file. The @code{(base32 @dots{})} form introduces the
base32 representation of the hash. You can obtain this information with
-@code{guix download} (@pxref{Invoking guix download}) and @code{guix
+@code{guix download} (@pxref{Invoking guix download}) or @code{guix
hash} (@pxref{Invoking guix hash}).
@cindex patches
@@ -2684,7 +2684,9 @@ specified in the @code{uri} field as a @code{git-reference} object; a
@item @code{sha256}
A bytevector containing the SHA-256 hash of the source. Typically the
@code{base32} form is used here to generate the bytevector from a
-base-32 string.
+base-32 string. You can obtain this information with @code{guix
+download} (@pxref{Invoking guix download}) or @code{guix hash}
+(@pxref{Invoking guix hash}).
@item @code{file-name} (default: @code{#f})
The file name under which the source code should be saved. When this is
@@ -4533,6 +4535,11 @@ hash (@pxref{Invoking guix archive}).
@c FIXME: Replace xref above with xref to an ``Archive'' section when
@c it exists.
+When hashing a git checkout, be sure to remove the git configuration
+directory (@code{rm -r .git}) as it will erroneously impact the hash.
+The same is true for other version control checkouts (@code{rm -r .hg},
+@code{rm -r .svn}, etc.)
+
@end table
@node Invoking guix import
--
2.1.4
next prev parent reply other threads:[~2016-07-11 5:18 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-07-10 21:54 [PATCH] doc: clarification for hashing git checkouts Troy Sankey
2016-07-10 23:16 ` Leo Famulari
2016-07-11 0:13 ` Pjotr Prins
2016-07-11 5:33 ` Troy Sankey
2016-07-11 15:36 ` Pjotr Prins
2016-07-11 16:17 ` Leo Famulari
2016-07-11 5:18 ` Troy Sankey [this message]
2016-07-11 16:35 ` ng0
2016-07-11 17:50 ` Troy Sankey
2016-07-13 22:04 ` 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=20160711051831.15418.45217@what \
--to=sankeytms@gmail.com \
--cc=guix-devel@gnu.org \
--cc=leo@famulari.name \
/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).