README 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. Disarchive
  2. **********
  3. Disarchive can disassemble software archives into data and metadata.
  4. The goal is to create a small amount of metadata that can be used to
  5. recreate a software archive bit-for-bit from the original files. For
  6. example, a software archive made using tar and Gzip will need to
  7. describe the order of files in the tarball and the compression
  8. parameters used by Gzip.
  9. The purpose of all of this is to provide a bridge between the data
  10. stored by Software Heritage <https://www.softwareheritage.org/> and
  11. the artifacts that have been traditionally used to distribute software
  12. (compressed tarballs with a lot of incidental metadata). Because
  13. verification and signing usually happen at the archive (compressed
  14. tarball) level, it is important to be able to recover those artifacts.
  15. For the discussions that inspired this project, see
  16. <https://forge.softwareheritage.org/T2430>, and
  17. <https://issues.guix.gnu.org/42162>.
  18. Requirements
  19. ============
  20. Disarchive is written in Guile Scheme and needs GNU Guile version
  21. 3.0.x <https://gnu.org/software/guile/>.
  22. Disarchive needs to be able to load Guile modules from:
  23. - Guile-Gcrypt <https://notabug.org/cwebber/guile-gcrypt>;
  24. - Guile-LZMA <https://git.ngyro.com/guile-lzma>; and
  25. - Guile-bzip2 <https://git.ngyro.com/guile-bzip2>.
  26. Optionally, in order to download directories from the Software
  27. Heritage archive, Disarchive will try to load modules from:
  28. - GNU Guix <https://guix.gnu.org/>.
  29. Additionally, Disarchive needs to run the following utilities:
  30. - GNU Tar <https://gnu.org/software/tar/>;
  31. - GNU Gzip <https://gnu.org/software/gzip/>;
  32. - XZ <https://tukaani.org/xz/>; and
  33. - bzip2 <https://sourceware.org/bzip2/>.
  34. Installing
  35. ==========
  36. To install, you may use the standard GNU approach:
  37. ./configure
  38. make
  39. make install
  40. You can find more details about installing in the 'INSTALL' file.
  41. If you are installing from a Git checkout, you will need to run
  42. autoreconf -vif
  43. to generate the 'configure' script and Makefile. To do so, you will
  44. need Autoconf, Automake, and pkg-config.
  45. Testing
  46. =======
  47. Disarchive makes use of randomized property-based testing, so in order
  48. to run the tests you will need:
  49. - Guile-QuickCheck <https://git.ngyro.com/guile-quickcheck>.
  50. Copying Disarchive
  51. ==================
  52. This is free software released under the GNU GPLv3 (or later). See
  53. 'COPYING' for the full license. Enjoy!
  54. Copying this file
  55. =================
  56. This file was written by Timothy Sample <samplet@ngyro.com>.
  57. To the extent possible under law, the author(s) have waived all
  58. copyright and related or neighboring rights to this file.
  59. You should have received a copy of the CC0 legalcode along with this
  60. work. If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.