Disassembler of software archives for long-term preservation

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

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 .