[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
disarchive: disassemble then assemble tarball
From: |
Simon Tournier |
Subject: |
disarchive: disassemble then assemble tarball |
Date: |
Mon, 03 Apr 2023 16:58:50 +0200 |
Hi,
Discussing in #62153 [1], it is noticed that Disarchive is not working
as expected.
For instance, using the ’gnu’ folder containing ’.go’ files.
$ tar cvf my-gnu.tar gnu
$ guix shell disarchive guile guile-lzma
$ mkdir sha256
$ guile
scheme@(guile-user)> ,module(disarchive assemblers tarball)
scheme@(disarchive assemblers tarball)> (assemble-tarball (disassemble-tarball
"my-gnu.tar") ".")
scheme@(disarchive assemblers tarball)> ,q
$ ls sha256/
7a94f577d3235a5ab954f0bc56b15fbe5518c56354c4235574618f6e666f6a38
$ file
sha256/7a94f577d3235a5ab954f0bc56b15fbe5518c56354c4235574618f6e666f6a38
sha256/7a94f577d3235a5ab954f0bc56b15fbe5518c56354c4235574618f6e666f6a38: POSIX
tar archive (GNU)
$ tar tf
sha256/7a94f577d3235a5ab954f0bc56b15fbe5518c56354c4235574618f6e666f6a38
gnu/
gnu/ci.scm
gnu/tests/databases.go
gnu/packages/gpodder.scm
[...]
gnu/build/accounts.go
tar: Unexpected EOF in archive
tar: Error is not recoverable: exiting now
$ disarchive disassemble my-gnu.tar > spec
Disassembling the tarball my-gnu.tar
Read 2741 headers
Extracting the tarball my-gnu.tar
Disassembling the directory my-gnu
Saving directory in cache:
/tmp/disarchive-directory.GGqLse/sha256/e9013143a529feb6568dbe42d6587d6fcebe4b264f1e955cc0d614c52125c998
Finished disassembly of my-gnu.tar
Checking that it can be assembled... ok
Checking that it can be deserialized... ok
$ tail spec
(chksum 5343)))
(padding 0)
(input (directory-ref
(version 0)
(name "my-gnu")
(addresses
(swhid "swh:1:dir:5acd725958b0642e98cabb4cb2db670f2e32384e"))
(digest
(sha256
"e9013143a529feb6568dbe42d6587d6fcebe4b264f1e955cc0d614c52125c998"))))))
Well, I am not sure to understand why the name “my-gnu”. And then I do
not understand how to use “disarchive assemble”; I get something like:
--8<---------------cut here---------------start------------->8---
Checking my-gnu digest... fail
Output is incorrect
--8<---------------cut here---------------end--------------->8---
What do I do wrong?
1: https://issues.guix.gnu.org/msgid/87h6ugapwh.fsf@gmail.com
Cheers,
simon
- disarchive: disassemble then assemble tarball,
Simon Tournier <=