Disarchive
**********
Disarchive can disassemble software archives into data and metadata.
The goal is to create a small amount of metadata that can be used to
recreate a software archive bit-for-bit from the original files. For
example, a software archive made using tar and Gzip will need to
describe the order of files in the tarball and the compression
parameters used by Gzip.
The purpose of all of this is to provide a bridge between the data
stored by Software Heritage and
the artifacts that have been traditionally used to distribute software
(compressed tarballs with a lot of incidental metadata). Because
verification and signing usually happen at the archive (compressed
tarball) level, it is important to be able to recover those artifacts.
For the discussions that inspired this project, see
, and
.
Requirements
============
Disarchive is written in Guile Scheme and needs GNU Guile version
3.0.x .
Disarchive needs to be able to load Guile modules from:
- Guile-Gcrypt ;
- Guile-LZMA ; and
- Guile-bzip2 .
Optionally, in order to download directories from the Software
Heritage archive, Disarchive will try to load modules from:
- GNU Guix .
Additionally, Disarchive needs to run the following utilities:
- GNU Tar ;
- GNU Gzip ;
- XZ ; and
- bzip2 .
Installing
==========
To install, you may use the standard GNU approach:
./configure
make
make install
You can find more details about installing in the 'INSTALL' file.
If you are installing from a Git checkout, you will need to run
autoreconf -vif
to generate the 'configure' script and Makefile. To do so, you will
need Autoconf, Automake, and pkg-config.
Testing
=======
Disarchive makes use of randomized property-based testing, so in order
to run the tests you will need:
- Guile-QuickCheck .
Copying Disarchive
==================
This is free software released under the GNU GPLv3 (or later). See
'COPYING' for the full license. Enjoy!
Copying this file
=================
This file was written by Timothy Sample .
To the extent possible under law, the author(s) have waived all
copyright and related or neighboring rights to this file.
You should have received a copy of the CC0 legalcode along with this
work. If not, see .