Disassembler of software archives for long-term preservation

Timothy Sample f7fcf96e66 Update NEWS for 0.6.0. 10 months ago
build-aux 084a155848 Flesh out the Unix interface. 2 years ago
disarchive 8da6adb57f Add basic bzip2 support. 10 months ago
libexec d26c5ed3da zgz: Pull in upstream nondeterminism fix. 3 years ago
scripts 084a155848 Flesh out the Unix interface. 2 years ago
tests 7c5fe91fa4 Fix swapped XZ test names. 10 months ago
.dir-locals.el 8fe6190ab3 Add XZ support. 2 years ago
.gitignore ac801c373e Use git-version-gen for the package version. 3 years ago
COPYING d8c2270ccc Add README, INSTALL, COPYING, and COPYING.CC0. 4 years ago
COPYING.CC0 d8c2270ccc Add README, INSTALL, COPYING, and COPYING.CC0. 4 years ago
ChangeLog 7ed9c3641a Add a ChangeLog using gitlog-to-changelog. 3 years ago
INSTALL d8c2270ccc Add README, INSTALL, COPYING, and COPYING.CC0. 4 years ago
Makefile.am 8da6adb57f Add basic bzip2 support. 10 months ago
NEWS f7fcf96e66 Update NEWS for 0.6.0. 10 months ago
README bae8e5eb5e Add bzip2 as a dependency. 10 months ago
configure.ac bae8e5eb5e Add bzip2 as a dependency. 10 months ago
disarchive.scm 084a155848 Flesh out the Unix interface. 2 years ago
manifest.scm bae8e5eb5e Add bzip2 as a dependency. 10 months ago

README

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 .