summary refs log tree commit diff
path: root/gnu/packages/compression.scm
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2021-07-18 16:05:21 +0200
committerLudovic Courtès <ludo@gnu.org>2021-07-18 19:50:01 +0200
commit0e47fcced442d8e7c1b05184fdc1c14f10ed04ec (patch)
tree4ae844bc0ec3c670f8697bdc24362c122fa718ad /gnu/packages/compression.scm
parente4b70bc55a538569465bcedee19d1f2607308e65 (diff)
parent8b1bde7bb3936a64244824500ffe60f123704437 (diff)
downloadguix-0e47fcced442d8e7c1b05184fdc1c14f10ed04ec.tar.gz
Merge branch 'master' into core-updates
Diffstat (limited to 'gnu/packages/compression.scm')
-rw-r--r--gnu/packages/compression.scm112
1 files changed, 90 insertions, 22 deletions
diff --git a/gnu/packages/compression.scm b/gnu/packages/compression.scm
index 719cd36235..d46b383189 100644
--- a/gnu/packages/compression.scm
+++ b/gnu/packages/compression.scm
@@ -85,6 +85,7 @@
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages python)
   #:use-module (gnu packages qt)
+  #:use-module (gnu packages selinux)
   #:use-module (gnu packages tls)
   #:use-module (gnu packages valgrind)
   #:use-module (gnu packages version-control)
@@ -857,7 +858,7 @@ time for compression ratio.")
 (define-public squashfs-tools
   (package
     (name "squashfs-tools")
-    (version "4.4")
+    (version "4.4-git.1")               ; ‘A point release of […] 4.4’
     (source
      (origin
        (method git-fetch)
@@ -866,15 +867,7 @@ time for compression ratio.")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0697fv8n6739mcyn57jclzwwbbqwpvjdfkv1qh9s56lvyqnplwaw"))
-       (modules '((guix build utils)))
-       (snippet
-        '(begin
-           ;; Fix build with -fno-common (default in GCC 10).
-           ;; Remove for squashfs-tools > 4.4.
-           (substitute* "squashfs-tools/mksquashfs.h"
-             (("struct cache \\*bwriter_buffer" all)
-              (string-append "extern " all)))))))
+        (base32 "1hb95iy445hs2p3f7hg51jkrpkfi3bphddk60p2la0qmcdjkgbbm"))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f                      ; no check target
@@ -905,14 +898,87 @@ time for compression ratio.")
     (home-page "https://github.com/plougher/squashfs-tools")
     (synopsis "Tools to create and extract squashfs file systems")
     (description
-     "Squashfs is a highly compressed read-only file system for Linux.  It uses
-zlib to compress files, inodes, and directories.  All blocks are packed to
-minimize the data overhead, and block sizes of between 4K and 1M are supported.
-It is intended to be used for archival use, for live CDs, and for embedded
-systems where low overhead is needed.  This package allows you to create and
-extract such file systems.")
+     "Squashfs is a highly compressed read-only file system for Linux.  It
+compresses files, inodes, and directories with one of several compressors.
+All blocks are packed to minimize the data overhead, and block sizes of
+between 4K and 1M are supported.  It is intended to be used for archival use,
+for live media, and for embedded systems where low overhead is needed.
+This package allows you to create and extract such file systems.")
     (license license:gpl2+)))
 
+(define-public squashfs-tools-ng
+  (package
+    (name "squashfs-tools-ng")
+    (version "1.1.2")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/AgentD/squashfs-tools-ng")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "13gx6mc57wjjnrpnkb74zi2wiqazz2q715y1zz7rff02wh1vb5k9"))
+       (modules '((guix build utils)))
+       (snippet
+        '(begin
+           ;; Delete bundled third-party libraries.
+           (for-each (lambda (directory)
+                       (substitute* "Makefile.am"
+                         (((format #f "^include ~a.*" directory)) ""))
+                       (delete-file-recursively directory))
+                     (list "lib/lz4"
+                           "lib/zlib"))))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:configure-flags
+       (list "--disable-static")))
+    (native-inputs
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("libtool" ,libtool)
+       ("pkg-config" ,pkg-config)))
+    (inputs
+     `(("libselinux" ,libselinux)
+
+       ;; Compression algorithms.
+       ("bzip2" ,bzip2)
+       ("lz4" ,lz4)
+       ("lzo" ,lzo)
+       ("xz" ,xz)
+       ("zlib" ,zlib)
+       ("zstd:lib" ,zstd "lib")))
+    (home-page "https://github.com/AgentD/squashfs-tools-ng")
+    (synopsis "Tools to create and extract squashfs file systems")
+    (description
+     "Squashfs is a highly compressed read-only file system for Linux.  It
+compresses files, inodes, and directories with one of several compressors.
+All blocks are packed to minimize the data overhead, and block sizes of
+between 4K and 1M are supported.  It is intended to be used for archival use,
+for live media, and for embedded systems where low overhead is needed.
+
+The squashfs-tools-ng package offers alternative tooling to create and extract
+such file systems.  It is not based on the older squashfs-tools package and
+its tools have different names:
+
+@enumerate
+@item @command{gensquashfs} produces SquashFS images from a directory or
+@command{gen_init_cpio}-like file listings and can generate SELinux labels.
+@item @command{rdsquashfs} inspects and unpacks SquashFS images.
+@item @command{sqfs2tar} and @command{tar2sqfs} convert between SquashFS and
+tarballs.
+@item @command{sqfsdiff} compares the contents of two SquashFS images.
+@end enumerate
+
+These commands are largely command-line wrappers around the included
+@code{libsquashfs} library that intends to make SquashFS available to other
+applications as an embeddable, extensible archive format.
+
+Both the library and tools operate deterministically: same input will produce
+byte-for-byte identical output.")
+    ;; Upstream goes to some lengths to ensure that libsquashfs is LGPL3+.
+    (license license:gpl3+)))
+
 (define-public pigz
   (package
     (name "pigz")
@@ -1836,21 +1902,23 @@ timestamps in the file header with a fixed time (1 January 2008).
 (define-public libzip
   (package
     (name "libzip")
-    (version "1.7.3")
+    (version "1.8.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
                     "https://libzip.org/download/libzip-" version ".tar.xz"))
               (sha256
                (base32
-                "0ck1dk7zn5qzpgxklg0r26nfsf04xb6c46gsig060hkvvgzp6156"))))
+                "0zn9vaiwy2izj8cnm8i7c2mbdn38n328grqb8f07x55s4kd3nxph"))))
     (native-inputs
-     `(("perl" ,perl)))
+     `(("perl" ,perl)
+       ("pkg-config" ,pkg-config)))
     (inputs
      `(("gnutls" ,gnutls)
        ("liblzma" ,xz)
        ("openssl" ,openssl)
-       ("zlib" ,zlib)))
+       ("zlib" ,zlib)
+       ("zstd:lib" ,zstd "lib")))
     (build-system cmake-build-system)
     (home-page "https://libzip.org")
     (synopsis "C library for reading, creating, and modifying zip archives")
@@ -2464,14 +2532,14 @@ to their original, binary CD format.")
 (define-public tarlz
   (package
     (name "tarlz")
-    (version "0.19")
+    (version "0.21")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://savannah/lzip/tarlz/"
                            "tarlz-" version ".tar.lz"))
        (sha256
-        (base32 "09xal55973ivzpaja93jcc1pfla8gb3vrk8dx7pj9qvvz5aynf9n"))))
+        (base32 "1x5dw03lcwfigcv97cg70gkbkfycjmv1012s9lwnl4izvl9235qg"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("lzip" ,lzip)))