* gnu/packages/golang-compression.scm (go-github-com-pierrec-lz4, go-github-com-pierrec-lz4-v4, go-lz4c): New variables. Change-Id: Ie337a1cbfbc5af2dfd258999a4edb508bd552e03
		
			
				
	
	
		
			292 lines
		
	
	
	
		
			11 KiB
		
	
	
	
		
			Scheme
		
	
	
	
	
	
			
		
		
	
	
			292 lines
		
	
	
	
		
			11 KiB
		
	
	
	
		
			Scheme
		
	
	
	
	
	
| ;;; GNU Guix --- Functional package management for GNU
 | ||
| ;;; Copyright © 2017 Leo Famulari <leo@famulari.name>
 | ||
| ;;; Copyright © 2020 Danny Milosavljevic <dannym@scratchpost.org>
 | ||
| ;;; Copyright © 2021 Arun Isaac <arunisaac@systemreboot.net>
 | ||
| ;;; Copyright © 2021 Efraim Flashner <efraim@flashner.co.il>
 | ||
| ;;; Copyright © 2022 Sharlatan Hellseher <sharlatanus@gmail.com>
 | ||
| ;;; Copyright © 2024 Troy Figiel <troy@troyfigiel.com>
 | ||
| ;;;
 | ||
| ;;; 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 golang-compression)
 | ||
|   #:use-module ((guix licenses) #:prefix license:)
 | ||
|   #:use-module (guix build-system go)
 | ||
|   #:use-module (guix gexp)
 | ||
|   #:use-module (guix git-download)
 | ||
|   #:use-module (guix packages)
 | ||
|   #:use-module (guix utils)
 | ||
|   #:use-module (gnu packages)
 | ||
|   #:use-module (gnu packages golang-xyz))
 | ||
| 
 | ||
| ;;; Commentary:
 | ||
| ;;;
 | ||
| ;;; Please: Try to add new module packages in alphabetic order.
 | ||
| ;;;
 | ||
| ;;; Code:
 | ||
| 
 | ||
| (define-public go-github-com-andybalholm-brotli
 | ||
|   (package
 | ||
|     (name "go-github-com-andybalholm-brotli")
 | ||
|     (version "1.0.4")
 | ||
|     (source
 | ||
|      (origin
 | ||
|        (method git-fetch)
 | ||
|        (uri (git-reference
 | ||
|              (url "https://github.com/andybalholm/brotli")
 | ||
|              (commit (string-append "v" version))))
 | ||
|        (file-name (git-file-name name version))
 | ||
|        (sha256
 | ||
|         (base32 "1zvmj7gbnkq9xwv1bvcxk9acxl06y902148qwbd2kqwgs52wy2c0"))))
 | ||
|     (build-system go-build-system)
 | ||
|     (arguments
 | ||
|      `(#:import-path "github.com/andybalholm/brotli"))
 | ||
|     (home-page "https://github.com/andybalholm/brotli")
 | ||
|     (synopsis "Pure Go Brotli encoder and decoder")
 | ||
|     (description
 | ||
|      "This package is a brotli compressor and decompressor implemented in Go.
 | ||
| It was translated from the reference implementation
 | ||
| (@url{https://github.com/google/brotli,https://github.com/google/brotli}) with
 | ||
| the @code{c2go} tool at
 | ||
| @url{https://github.com/andybalholm/c2go,https://github.com/andybalholm/c2go}.")
 | ||
|     (license license:expat)))
 | ||
| 
 | ||
| (define-public go-github-com-golang-snappy
 | ||
|   (package
 | ||
|     (name "go-github-com-golang-snappy")
 | ||
|     (version "0.0.4")
 | ||
|     (source
 | ||
|      (origin
 | ||
|        (method git-fetch)
 | ||
|        (uri (git-reference
 | ||
|              (url "https://github.com/golang/snappy")
 | ||
|              (commit (string-append "v" version))))
 | ||
|        (file-name (git-file-name name version))
 | ||
|        (sha256
 | ||
|         (base32 "004cw699yz3pdpawhjhpa0y94c4w479nw1rf39zj6h6027kpwv2j"))
 | ||
|        (patches (search-patches "go-github-com-golang-snappy-32bit-test.patch"))))
 | ||
|     (build-system go-build-system)
 | ||
|     (arguments
 | ||
|      `(#:import-path "github.com/golang/snappy"))
 | ||
|     (home-page "https://github.com/golang/snappy")
 | ||
|     (synopsis "Snappy compression format in the Go programming language")
 | ||
|     (description "This package provides a Go implementation of the Snappy
 | ||
| compression format.")
 | ||
|     (license license:bsd-3)))
 | ||
| 
 | ||
| (define-public go-github-com-hhrutter-lzw
 | ||
|   (package
 | ||
|     (name "go-github-com-hhrutter-lzw")
 | ||
|     (version "1.0.0")
 | ||
|     (source
 | ||
|      (origin
 | ||
|        (method git-fetch)
 | ||
|        (uri (git-reference
 | ||
|              (url "https://github.com/hhrutter/lzw")
 | ||
|              (commit (string-append "v" version))))
 | ||
|        (file-name (git-file-name name version))
 | ||
|        (sha256
 | ||
|         (base32 "1n13qhf8ih08jzm10wprdvjy56ylmy6fhakyqrddm6nszf397wch"))))
 | ||
|     (build-system go-build-system)
 | ||
|     (arguments
 | ||
|      (list
 | ||
|       #:import-path "github.com/hhrutter/lzw"))
 | ||
|     (home-page "https://github.com/hhrutter/lzw")
 | ||
|     (synopsis "Extended version of @code{compress/lzw}")
 | ||
|     (description
 | ||
|      "This package provides an enhanced version of the @code{compress/lzw}
 | ||
| library included in the stdlib, and supports GIF, TIFF and PDF.")
 | ||
|     (license license:bsd-3)))
 | ||
| 
 | ||
| (define-public go-github-com-klauspost-compress
 | ||
|   (package
 | ||
|     (name "go-github-com-klauspost-compress")
 | ||
|     (version "1.13.1")
 | ||
|     (source
 | ||
|      (origin
 | ||
|        (method git-fetch)
 | ||
|        (uri (git-reference
 | ||
|              (url "https://github.com/klauspost/compress")
 | ||
|              (commit (string-append "v" version))))
 | ||
|        (file-name (git-file-name name version))
 | ||
|        (sha256
 | ||
|         (base32 "0ydnf9rizlhm8rilh14674qqx272sbwbkjx06xn9pqvy6mmn2r3r"))))
 | ||
|     (build-system go-build-system)
 | ||
|     (arguments
 | ||
|      `(#:import-path "github.com/klauspost/compress"
 | ||
|        #:phases
 | ||
|        (modify-phases %standard-phases
 | ||
|          (add-before 'reset-gzip-timestamps 'fix-permissions
 | ||
|            (lambda* (#:key outputs #:allow-other-keys)
 | ||
|              ;; Provide write permissions on gzip files so that
 | ||
|              ;; reset-gzip-timestamps has sufficient permissions.
 | ||
|              (for-each make-file-writable
 | ||
|                        (find-files (assoc-ref outputs "out") ".gz$")))))))
 | ||
|     (propagated-inputs
 | ||
|      (list go-github-com-golang-snappy))
 | ||
|     (home-page "https://github.com/klauspost/compress")
 | ||
|     (synopsis "Go compression library")
 | ||
|     (description "@code{compress} provides various compression algorithms.")
 | ||
|     (license license:bsd-3)))
 | ||
| 
 | ||
| (define-public go-github-com-klauspost-pgzip
 | ||
|   (package
 | ||
|     (name "go-github-com-klauspost-pgzip")
 | ||
|     (version "1.2.6")
 | ||
|     (source
 | ||
|      (origin
 | ||
|        (method git-fetch)
 | ||
|        (uri (git-reference
 | ||
|              (url "https://github.com/klauspost/pgzip")
 | ||
|              (commit (string-append "v" version))))
 | ||
|        (file-name (git-file-name name version))
 | ||
|        (sha256
 | ||
|         (base32 "1j29wr6nd9ncdbkjphyziv0h8p5s2mj222cgcfqxmzjnfn7623d8"))))
 | ||
|     (build-system go-build-system)
 | ||
|     (arguments
 | ||
|      (list
 | ||
|       #:import-path "github.com/klauspost/pgzip"))
 | ||
|     (propagated-inputs (list go-github-com-klauspost-compress))
 | ||
|     (home-page "https://github.com/klauspost/pgzip")
 | ||
|     (synopsis "Parallel (de)compression of gzip files in Go")
 | ||
|     (description
 | ||
|      "This package implements parallel gzip compression and decompression in
 | ||
| Golang and is fully compatible with @code{compress/gzip} from the standard
 | ||
| library.  This is beneficial for large amounts of data, say more than 1MB at a
 | ||
| time, as otherwise the internal gzip library will likely be faster.")
 | ||
|     (license (list license:bsd-3 license:expat))))
 | ||
| 
 | ||
| (define-public go-github-com-nwaples-rardecode-v2
 | ||
|   (package
 | ||
|     (name "go-github-com-nwaples-rardecode-v2")
 | ||
|     (version "2.0.0-beta.2")
 | ||
|     (source
 | ||
|      (origin
 | ||
|        (method git-fetch)
 | ||
|        (uri (git-reference
 | ||
|              (url "https://github.com/nwaples/rardecode")
 | ||
|              (commit (string-append "v" version))))
 | ||
|        (file-name (git-file-name name version))
 | ||
|        (sha256
 | ||
|         (base32 "1344mxfdgs5fps6mqxk6352arrfszi33kmq394rgmqpf4394f1y7"))))
 | ||
|     (build-system go-build-system)
 | ||
|     (arguments
 | ||
|      (list
 | ||
|       #:import-path "github.com/nwaples/rardecode"))
 | ||
|     (home-page "https://github.com/nwaples/rardecode")
 | ||
|     (synopsis "Reading RAR archives in Go")
 | ||
|     (description
 | ||
|      "This package provides a library for reading RAR archives with Golang.")
 | ||
|     (license license:bsd-2)))
 | ||
| 
 | ||
| (define-public go-github-com-pierrec-lz4
 | ||
|   (package
 | ||
|     (name "go-github-com-pierrec-lz4")
 | ||
|     (version "2.6.1")
 | ||
|     (source
 | ||
|      (origin
 | ||
|        (method git-fetch)
 | ||
|        (uri (git-reference
 | ||
|              (url "https://github.com/pierrec/lz4")
 | ||
|              (commit (string-append "v" version))))
 | ||
|        (file-name (git-file-name name version))
 | ||
|        (sha256
 | ||
|         (base32 "0vfn01gd3hcpbj6gb4ig3pw6bv0g4j5780awr0fv4kf9id8gjvyy"))))
 | ||
|     (build-system go-build-system)
 | ||
|     (arguments
 | ||
|      (list
 | ||
|       #:import-path "github.com/pierrec/lz4"))
 | ||
|     (home-page "https://github.com/pierrec/lz4")
 | ||
|     (synopsis "LZ4 compression in pure Go")
 | ||
|     (description
 | ||
|      "@code{lz4} provides a streaming interface to
 | ||
| @url{http://fastcompression.blogspot.fr/2013/04/lz4-streaming-format-final.html,
 | ||
| LZ4 data streams} as well as low level compress and uncompress functions for
 | ||
| LZ4 data blocks.  The implementation is based on the reference C
 | ||
| @url{https://github.com/lz4/lz4, one}.")
 | ||
|     (license license:bsd-3)))
 | ||
| 
 | ||
| (define-public go-github-com-pierrec-lz4-v4
 | ||
|   (package
 | ||
|     (inherit go-github-com-pierrec-lz4)
 | ||
|     (name "go-github-com-pierrec-lz4-v4")
 | ||
|     (version "4.1.21")
 | ||
|     (source
 | ||
|      (origin
 | ||
|        (method git-fetch)
 | ||
|        (uri (git-reference
 | ||
|              (url "https://github.com/pierrec/lz4")
 | ||
|              (commit (string-append "v" version))))
 | ||
|        (file-name (git-file-name name version))
 | ||
|        (sha256
 | ||
|         (base32 "0nc2aprbw4s6cx2mijaqdswkgnizx8fqb0mzha82wrznl3gz69ni"))))
 | ||
|     (build-system go-build-system)
 | ||
|     (arguments
 | ||
|      (list
 | ||
|       #:import-path "github.com/pierrec/lz4/v4"))))
 | ||
| 
 | ||
| (define-public go-github-com-ulikunitz-xz
 | ||
|   (package
 | ||
|     (name "go-github-com-ulikunitz-xz")
 | ||
|     (version "0.5.11")
 | ||
|     (source
 | ||
|      (origin
 | ||
|        (method git-fetch)
 | ||
|        (uri (git-reference
 | ||
|              (url "https://github.com/ulikunitz/xz")
 | ||
|              (commit (string-append "v" version))))
 | ||
|        (file-name (git-file-name name version))
 | ||
|        (sha256
 | ||
|         (base32 "1hbs3x7s7d5ch6ipaqi265w0fwpijs0j19xdbhbjjsyr4khxbqd0"))))
 | ||
|     (build-system go-build-system)
 | ||
|     (arguments
 | ||
|      (list
 | ||
|       #:import-path "github.com/ulikunitz/xz"))
 | ||
|     (home-page "https://github.com/ulikunitz/xz")
 | ||
|     (synopsis "Read and write xz compressed streams in Go")
 | ||
|     (description
 | ||
|      "This package provides a support of reading and writing of xz
 | ||
| compressed streams.  It includes also a gxz command for compressing and
 | ||
| decompressing data.  The package is completely written in Go and doesn't have
 | ||
| any dependency on any C code.")
 | ||
|     (license license:bsd-3)))
 | ||
| 
 | ||
| ;;;
 | ||
| ;;; Executables:
 | ||
| ;;;
 | ||
| 
 | ||
| (define-public go-lz4c
 | ||
|   (package
 | ||
|     (inherit go-github-com-pierrec-lz4-v4)
 | ||
|     (name "go-lz4c")
 | ||
|     (arguments
 | ||
|      (list
 | ||
|       #:install-source? #f
 | ||
|       #:import-path "github.com/pierrec/lz4/cmd/lz4c"
 | ||
|       #:unpack-path "github.com/pierrec/lz4"))
 | ||
|     (native-inputs
 | ||
|      (list go-code-cloudfoundry-org-bytefmt
 | ||
|            go-github-com-pierrec-cmdflag
 | ||
|            go-github-com-schollz-progressbar-v3))
 | ||
|     (description
 | ||
|      (string-append (package-description go-github-com-pierrec-lz4-v4)
 | ||
|                     "  This package provides an additional command line
 | ||
| interface tool to compress and decompress LZ4 files."))))
 | ||
| 
 | ||
| ;;;
 | ||
| ;;; Avoid adding new packages to the end of this file. To reduce the chances
 | ||
| ;;; of a merge conflict, place them above by existing packages with similar
 | ||
| ;;; functionality or similar names.
 | ||
| ;;;
 |