GNU bug report logs -
#67594
Cannot reproduce hash calculation of erlang package
Previous Next
To reply to this bug, email your comments to 67594 AT debbugs.gnu.org.
Toggle the display of automated, internal messages from the tracker.
Report forwarded
to
bug-guix <at> gnu.org
:
bug#67594
; Package
guix
.
(Sun, 03 Dec 2023 01:56:01 GMT)
Full text and
rfc822 format available.
Acknowledgement sent
to
Leo Famulari <leo <at> famulari.name>
:
New bug report received and forwarded. Copy sent to
bug-guix <at> gnu.org
.
(Sun, 03 Dec 2023 01:56:01 GMT)
Full text and
rfc822 format available.
Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
As reported on #guix by jeremyc [0], the standard method for calculating
the hash of a Git checkout is not working as expected for the Erlang
package [1].
Currently, our Erlang package has this source block:
------
(version "25.3.2")
(source (origin
(method git-fetch)
;; The tarball from http://erlang.org/download contains many
;; pre-compiled files, so we use this snapshot of the source
;; repository.
(uri (git-reference
(url "https://github.com/erlang/otp")
(commit (string-append "OTP-" version))))
(file-name (git-file-name name version))
(sha256
(base32
"092lym5a181gz89nscw7kqhw1wa6qvgcpkj80q4i9p79mxmsr1nj"))
(patches (search-patches "erlang-man-path.patch"))))
------
So, I clone otp.git, check out the tag, and calculate the hash according
to the manual:
------
$ git clone https://github.com/erlang/otp
Cloning into 'otp'...
remote: Enumerating objects: 491375, done.
remote: Counting objects: 100% (102345/102345), done.
remote: Compressing objects: 100% (3576/3576), done.
remote: Total 491375 (delta 100266), reused 99037 (delta 98766), pack-reused 389030
Receiving objects: 100% (491375/491375), 485.70 MiB | 14.17 MiB/s, done.
Resolving deltas: 100% (396274/396274), done.
Updating files: 100% (12078/12078), done.
$ cd otp
$ git checkout OTP-25.3.2
Note: switching to 'OTP-25.3.2'.
You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by switching back to a branch.
If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -c with the switch command. Example:
git switch -c <new-branch-name>
Or undo this operation with:
git switch -
Turn off this advice by setting config variable advice.detachedHead to false
HEAD is now at 0418c10ec3 Updated OTP version
$ guix hash -x --serializer=nar .
05m2fixgfn2gcisz13zp002hy5i8580ayai3lqs77q8gwzdb22mz
------
It's not the same hash as in the package definition.
Additionally, I used '--check' to make sure I'm not crazy. I commented
out the patch that we apply to the otp.git, and then used this command,
which returned successfully:
------
$ ./pre-inst-env guix build --no-grafts erlang -S --no-substitutes --no-offload --check
------
What's up? Are me and jeremyc missing something here?
[0]
http://logs.guix.gnu.org/guix/2023-12-03.log#020056
[1]
https://git.savannah.gnu.org/cgit/guix.git/tree/gnu/packages/erlang.scm?id=06ebc45e15f2a1bd4526a5a716eed657c902a0c1#n48
Information forwarded
to
bug-guix <at> gnu.org
:
bug#67594
; Package
guix
.
(Fri, 08 Dec 2023 17:52:03 GMT)
Full text and
rfc822 format available.
Message #8 received at 67594 <at> debbugs.gnu.org (full text, mbox):
Hi,
On Sat, 02 Dec 2023 at 20:55, Leo Famulari <leo <at> famulari.name> wrote:
> (source (origin
> (method git-fetch)
> ;; The tarball from http://erlang.org/download contains many
> ;; pre-compiled files, so we use this snapshot of the source
> ;; repository.
> (uri (git-reference
> (url "https://github.com/erlang/otp")
> (commit (string-append "OTP-" version))))
> (file-name (git-file-name name version))
> (sha256
> (base32
> "092lym5a181gz89nscw7kqhw1wa6qvgcpkj80q4i9p79mxmsr1nj"))
> $ git clone https://github.com/erlang/otp
> $ cd otp
> $ git checkout OTP-25.3.2
> HEAD is now at 0418c10ec3 Updated OTP version
> $ guix hash -x --serializer=nar .
> 05m2fixgfn2gcisz13zp002hy5i8580ayai3lqs77q8gwzdb22mz
> It's not the same hash as in the package definition.
Indeed, and I think the issue is coming from that:
./lib/dialyzer/test/options1_SUITE_data/my_include/CVS
It is another case of bug#65979 [1]. Because there is both .git and
CVS, the current implementation of vcs-file? is confused and so exclude
some folders when it should not.
This is fixed by <https://issues.guix.gnu.org/66961#7> that I will push
shortly the last revision v4. :-)
--8<---------------cut here---------------start------------->8---
$ ./pre-inst-env guix hash -x --serializer=nar /tmp/otp
092lym5a181gz89nscw7kqhw1wa6qvgcpkj80q4i9p79mxmsr1nj
--8<---------------cut here---------------end--------------->8---
1: https://issues.guix.gnu.org/issue/65979
Cheers,
simon
This bug report was last modified 1 year and 186 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.