gnu: Add squashfs-tools-ng.
* gnu/packages/compression.scm (squashfs-tools-ng): New public variable.
This commit is contained in:
		
							parent
							
								
									a7e0266c9b
								
							
						
					
					
						commit
						460392d1f0
					
				
					 1 changed files with 74 additions and 0 deletions
				
			
		|  | @ -84,6 +84,7 @@ | ||||||
|   #:use-module (gnu packages pkg-config) |   #:use-module (gnu packages pkg-config) | ||||||
|   #:use-module (gnu packages python) |   #:use-module (gnu packages python) | ||||||
|   #:use-module (gnu packages qt) |   #:use-module (gnu packages qt) | ||||||
|  |   #:use-module (gnu packages selinux) | ||||||
|   #:use-module (gnu packages tls) |   #:use-module (gnu packages tls) | ||||||
|   #:use-module (gnu packages valgrind) |   #:use-module (gnu packages valgrind) | ||||||
|   #:use-module (gnu packages version-control) |   #:use-module (gnu packages version-control) | ||||||
|  | @ -904,6 +905,79 @@ for live media, and for embedded systems where low overhead is needed. | ||||||
| This package allows you to create and extract such file systems.") | This package allows you to create and extract such file systems.") | ||||||
|     (license license:gpl2+))) |     (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 | (define-public pigz | ||||||
|   (package |   (package | ||||||
|     (name "pigz") |     (name "pigz") | ||||||
|  |  | ||||||
		Reference in a new issue