Subject: [bug#47027] [PATCH 2/2] gnu: Add disarchive.

From: Timothy Sample <[email-masked]>
Date: Tue, 9 Mar 2021 14:39:25 -0500

* gnu/packages/archival.scm: New file.
* gnu/local.mk (GNU_SYSTEM_MODULES): Add it.
---
 gnu/local.mk              |  1 +
 gnu/packages/archival.scm | 60 +++++++++++++++++++++++++++++++++++++++
 2 files changed, 61 insertions(+)
 create mode 100644 gnu/packages/archival.scm

diff --git a/gnu/local.mk b/gnu/local.mk
index 3a516d487f..775080190e 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -88,6 +88,7 @@ GNU_SYSTEM_MODULES =				\
   %D%/packages/apl.scm				\
   %D%/packages/apr.scm				\
   %D%/packages/arcan.scm			\
+  %D%/packages/archival.scm			\
   %D%/packages/aspell.scm			\
   %D%/packages/assembly.scm			\
   %D%/packages/astronomy.scm			\
diff --git a/gnu/packages/archival.scm b/gnu/packages/archival.scm
new file mode 100644
index 0000000000..6bb1370664
--- /dev/null
+++ b/gnu/packages/archival.scm
@@ -0,0 +1,60 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2021 Timothy Sample <[email-masked]>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (gnu packages archival)
+  #:use-module (gnu packages compression)
+  #:use-module (gnu packages gnupg)
+  #:use-module (gnu packages guile)
+  #:use-module (gnu packages guile-xyz)
+  #:use-module (gnu packages pkg-config)
+  #:use-module (guix build-system gnu)
+  #:use-module (guix download)
+  #:use-module ((guix licenses) #:prefix license:)
+  #:use-module (guix packages))
+
+(define with-guile-3.0-latest
+  (package-input-rewriting `((,guile-3.0 . ,guile-3.0-latest)) #:deep? #f))
+
+(define-public disarchive
+  (package
+    (name "disarchive")
+    (version "0.1.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://files.ngyro.com/disarchive/"
+                                  "disarchive-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0yvcfv2zlfqwmigd2xpzfkairz4w32b9gi1pbj5id55z21p0k49c"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("pkg-config" ,pkg-config)
+       ("guile-quickcheck" ,(with-guile-3.0-latest guile-quickcheck))))
+    (inputs
+     `(("guile" ,guile-3.0-latest)
+       ("guile-gcrypt" ,(with-guile-3.0-latest guile-gcrypt))
+       ("zlib" ,zlib)))
+    (home-page "https://ngyro.com/software/disarchive.html")
+    (synopsis "Software archive disassembler")
+    (description "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.")
+    (license license:gpl3+)))
-- 
2.30.1