;;; Copyright © 2015, 2016, 2017, 2018, 2019 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016 Ben Woodcroft <donttrustben@gmail.com>
;;; Copyright © 2016 Danny Milosavljevic <dannym@scratchpost.org>
-;;; Copyright © 2016, 2017, 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2016, 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2016 David Craven <david@craven.ch>
;;; Copyright © 2016, 2019 Kei Kebreau <kkebreau@posteo.net>
-;;; Copyright © 2016, 2018, 2019 Marius Bakke <mbakke@fastmail.com>
+;;; Copyright © 2016, 2018, 2019, 2020 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2017 ng0 <ng0@n0.is>
;;; Copyright © 2017 Manolis Fragkiskos Ragkousis <manolis837@gmail.com>
;;; Copyright © 2017 Theodoros Foradis <theodoros@foradis.org>
;;; Copyright © 2018, 2019 Pierre Neidhardt <mail@ambrevar.xyz>
;;; Copyright © 2019 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;; Copyright © 2019 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
+;;; Copyright © 2020 Björn Höfling <bjoern.hoefling@bjoernhoefling.de>
+;;; Copyright © 2020 Arun Isaac <arunisaac@systemreboot.net>
;;;
;;; This file is part of GNU Guix.
;;;
#:use-module (guix download)
#:use-module (guix git-download)
#:use-module (guix build-system cmake)
+ #:use-module (guix build-system glib-or-gtk)
#:use-module (guix build-system gnu)
+ #:use-module (guix build-system python)
#:use-module (guix build-system trivial)
#:use-module (gnu packages)
#:use-module (gnu packages assembly)
#:use-module (gnu packages curl)
#:use-module (gnu packages documentation)
#:use-module (gnu packages file)
+ #:use-module (gnu packages gettext)
+ #:use-module (gnu packages glib)
+ #:use-module (gnu packages gnome)
+ #:use-module (gnu packages gtk)
#:use-module (gnu packages maths)
#:use-module (gnu packages perl)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages qt)
#:use-module (gnu packages tls)
#:use-module (gnu packages valgrind)
+ #:use-module (gnu packages xml)
#:use-module (ice-9 match)
#:use-module ((srfi srfi-1) #:select (last)))
(define-public bzip2
(package
(name "bzip2")
- (version "1.0.6")
+ (version "1.0.8")
(source (origin
(method url-fetch)
- ;; XXX The bzip.org domain was allowed to expire.
- (uri (string-append "https://web.archive.org/web/20180624184806/"
- "http://www.bzip.org/"
- version "/bzip2-" version ".tar.gz"))
+ (uri (string-append "https://sourceware.org/pub/bzip2/bzip2-"
+ version ".tar.gz"))
(sha256
(base32
- "1kfrc7f0ja9fdn6j1y6yir6li818npy6217hvr3wzmnmzhs8z152"))))
+ "0s92986cv0p692icqlw1j42y9nld8zd83qwhzbqd61p1dqbh6nmb"))))
(build-system gnu-build-system)
(arguments
`(#:modules ((guix build gnu-build-system)
(srfi srfi-1))
#:phases
(modify-phases %standard-phases
+ (add-after 'set-paths 'hide-input-bzip2
+ (lambda* (#:key inputs #:allow-other-keys)
+ (let ((bzip2 (assoc-ref inputs "bzip2")))
+ (if bzip2
+ ;; Prevent the build system from retaining a reference to
+ ;; BZIP2 from INPUTS.
+ (begin
+ (setenv "LIBRARY_PATH"
+ (string-join (delete (string-append bzip2 "/lib")
+ (string-split (getenv "LIBRARY_PATH")
+ #\:))
+ ":"))
+ (format #t "environment variable `LIBRARY_PATH' set to `~a'~%"
+ (getenv "LIBRARY_PATH")))
+ (format #t "no bzip2 found, nothing done~%"))
+ #t)))
(replace 'configure
(lambda* (#:key target #:allow-other-keys)
(when ,(%current-target-system)
#:phases (modify-phases %standard-phases
(delete 'configure)) ; no configure script
#:make-flags (list (string-append "PREFIX=" %output))))
- (home-page "http://compression.ca/pbzip2/")
+ (home-page (string-append "https://web.archive.org/web/20180412020219/"
+ "http://compression.ca/pbzip2/"))
(synopsis "Parallel bzip2 implementation")
(description
"Pbzip2 is a parallel implementation of the bzip2 block-sorting file
"/share/zoneinfo"))
#t)))))
(native-inputs
- `(("tzdata" ,tzdata)))
+ `(("tzdata" ,tzdata-for-tests)))
(home-page "https://fragglet.github.com/lhasa/")
(synopsis "LHA archive decompressor")
(description "Lhasa is a replacement for the Unix LHA tool, for
(substitute* "tests/Makefile"
(("^test: (.*) test-install" _ targets)
(string-append "test: " targets)))
- #t)))))
+ #t))
+ (add-after 'install 'delete-static-library
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out")))
+ (delete-file (string-append out "/lib/liblz4.a"))
+ #t))))))
(home-page "https://www.lz4.org")
(synopsis "Compression algorithm focused on speed")
(description "LZ4 is a lossless compression algorithm, providing
(define-public squashfs-tools
(package
(name "squashfs-tools")
- (version "4.3")
+ (version "4.4")
(source (origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/squashfs/squashfs/"
"squashfs" version ".tar.gz"))
(sha256
(base32
- "1xpklm0y43nd9i6jw43y2xh5zvlmj9ar2rvknh0bh7kv8c95aq0d"))))
+ "0zmhvczscqz0mzh4b9m8m42asq14db0a6lc8clp5ljq5ybrv70d9"))))
(build-system gnu-build-system)
(arguments
- '(#:tests? #f ; no check target
+ '(#:tests? #f ; no check target
#:make-flags
(list "CC=gcc"
"XZ_SUPPORT=1"
(replace 'configure
(lambda _
(chdir "squashfs-tools")
- #t))
- (add-after 'unpack 'fix-glibc-compatability
- (lambda _
- (substitute* '("squashfs-tools/mksquashfs.c"
- "squashfs-tools/unsquashfs.c")
- (("<sys/sysinfo.h>")
- "<sys/sysinfo.h>\n#include <sys/sysmacros.h>"))
#t)))))
(inputs
`(("lz4" ,lz4)
("lzo" ,lzo)
("xz" ,xz)
("zlib" ,zlib)))
- (home-page "http://squashfs.sourceforge.net/")
+ (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
extract such file systems.")
(license license:gpl2+)))
-;; We need this for building squashfs images with symlinks.
-(define-public squashfs-tools-next
- (let ((commit "fb33dfc32b131a1162dcf0e35bd88254ae10e265")
- (revision "1"))
- (package (inherit squashfs-tools)
- (name "squashfs-tools-next")
- (version (string-append "4.3-" revision (string-take commit 7)))
- (source (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/plougher/squashfs-tools.git")
- (commit commit)))
- (file-name (git-file-name name version))
- (sha256
- (base32
- "1x2skf8hxzfch978nzx5mh46d4hhi6gl22270hiarjszsjk3bnsx")))))))
-
(define-public pigz
(package
(name "pigz")
tarballs.")
(license license:bsd-2)))
-(define-public brotli
- (let ((commit "e992cce7a174d6e2b3486616499d26bb0bad6448")
- (revision "1"))
- (package
- (name "brotli")
- (version (string-append "0.1-" revision "."
- (string-take commit 7)))
- (source (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/bagder/libbrotli.git")
- (commit commit)
- (recursive? #t)))
- (file-name (string-append name "-" version ".tar.xz"))
- (sha256
- (base32
- "1qxxsasvwbbbh6dl3138y9h3fg0q2v7xdk5jjc690bdg7g1wrj6n"))
- (modules '((guix build utils)))
- (snippet '(begin
- ;; This is a recursive submodule that is
- ;; unnecessary for this package, so delete it.
- (delete-file-recursively "brotli/terryfy")
- #t))))
- (build-system gnu-build-system)
- (native-inputs
- `(("autoconf" ,autoconf)
- ("automake" ,automake)
- ("libtool" ,libtool)))
- (arguments
- `(#:phases (modify-phases %standard-phases
- (add-after 'unpack 'autogen
- (lambda _
- (mkdir "m4")
- (invoke "autoreconf" "-vfi"))))))
- (home-page "https://github.com/bagder/libbrotli/")
- (synopsis "Implementation of the Brotli compression algorithm")
- (description
- "Brotli is a general-purpose lossless compression algorithm. It is
-similar in speed to deflate but offers denser compression. This package
-provides encoder and a decoder libraries: libbrotlienc and libbrotlidec,
-respectively, based on the reference implementation from Google.")
- (license license:expat))))
-
(define-public bsdiff
(package
(name "bsdiff")
(define-public snappy
(package
(name "snappy")
- (version "1.1.7")
+ (version "1.1.8")
(source
(origin
(method git-fetch)
(commit version)))
(file-name (git-file-name name version))
(sha256
- (base32 "1x7r8sjmdqlqjz0xfiwdyrqpgaj5yrvrgb28ivgpvnxgar5qv6m2"))
+ (base32 "1j0kslq2dvxgkcxl1gakhvsa731yrcvcaipcp5k8k7ayicvkv9jv"))
(patches (search-patches "snappy-add-O2-flag-in-CmakeLists.txt.patch"))))
(build-system cmake-build-system)
(arguments
(define-public zstd
(package
(name "zstd")
- (version "1.4.2")
+ (version "1.4.4")
(source
(origin
(method url-fetch)
(uri (string-append "https://github.com/facebook/zstd/releases/download/"
"v" version "/zstd-" version ".tar.gz"))
(sha256
- (base32 "1ja3nrjynmiwwdjrf6crraizkbagp7y414bqqq2ady91nn1hjwqj"))))
+ (base32 "05ckxap00qvc0j51d3ci38150cxsw82w7s9zgd5fgzspnzmp1vsr"))))
(build-system gnu-build-system)
- (outputs '("out" ;1.1MiB executables and documentation
- "lib" ;1MiB shared library and headers
- "static")) ;1MiB static library
+ (outputs '("out" ;1.2MiB executables and documentation
+ "lib" ;1.2MiB shared library and headers
+ "static")) ;1.2MiB static library
(arguments
`(#:phases
(modify-phases %standard-phases
(delete-file ar))
(find-files shared-libs "\\.a$"))
- ;; While here, remove prefix= from the pkg-config file because it
- ;; is unused, and because it contains a needless reference to $out.
- ;; XXX: It would be great if #:disallow-references worked between
- ;; outputs.
+ ;; Make sure the pkg-config file refers to the right output.
(substitute* (string-append shared-libs "/pkgconfig/libzstd.pc")
- (("^prefix=.*") ""))
+ (("^prefix=.*")
+ (string-append "prefix=" lib "\n")))
#t))))
#:make-flags
(uri (git-reference (url home-page)
(commit (string-append "v" version))))
(file-name (git-file-name name version))
+ (patches (search-patches "zziplib-CVE-2018-16548.patch"))
(sha256
(base32
"0fbk9k7ryas2wh2ykwkvm1pbi40i88rfvc3dydh9xyd7w2jcki92"))))
(define-public libzip
(package
(name "libzip")
- (version "1.5.2")
+ (version "1.6.1")
(source (origin
(method url-fetch)
(uri (string-append
"https://libzip.org/download/libzip-" version ".tar.xz"))
(sha256
(base32
- "1d53shcy7nvls5db573bbdlm25lfz1iw2zshng5f00cssi5lvpmk"))))
+ "0h9nsgkw0dk4srsvmz6xy6f9l4h815xn07j8h40l8gqvcxxaqpbh"))))
(native-inputs
`(("perl" ,perl)))
(inputs
`(("gnutls" ,gnutls)
+ ("liblzma" ,xz)
("openssl" ,openssl)
("zlib" ,zlib)))
(build-system cmake-build-system)
(build-system cmake-build-system)
(arguments
`(#:tests? #f
- #:phases (modify-phases %standard-phases
- (add-before 'configure 'glibc-is-already-a-system-library
- (lambda _
- ;; Prevent the build system from passing the glibc
- ;; header files to GCC as "system headers", because
- ;; it conflicts with the system headers already known
- ;; to GCC, causing #include_next failures.
- (substitute* "CMakeLists.txt"
- (("include_directories\\(SYSTEM \\$\\{iconv")
- "include_directories(${iconv"))
- #t)))))
+ #:configure-flags '("-DBoost_NO_BOOST_CMAKE=ON")))
(inputs `(("boost" ,boost)
("libiconv" ,libiconv)
("xz" ,xz)))
The specification of the Brotli Compressed Data Format is defined in RFC 7932.")
(license license:expat)))
+(define-public brotli
+ ;; We used to provide an older version under the name "brotli".
+ (deprecated-package "brotli" google-brotli))
+
+(define-public python-google-brotli
+ (package
+ (inherit google-brotli)
+ (name "python-google-brotli")
+ (build-system python-build-system)
+ (arguments '())
+ (synopsis "Python interface to google-brotli")
+ (description "@code{python-google-brotli} provides a Python interface to
+@code{google-brotli}, an implementation of the Brotli lossless compression
+algorithm.")))
+
(define-public ucl
(package
(name "ucl")
(define-public upx
(package
(name "upx")
- (version "3.94")
+ (version "3.96")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/upx/upx/releases/download/v"
- version "/" name "-" version "-src.tar.xz"))
+ version "/upx-" version "-src.tar.xz"))
(sha256
(base32
- "08anybdliqsbsl6x835iwzljahnm9i7v26icdjkcv33xmk6p5vw1"))
- (patches (search-patches "upx-fix-CVE-2017-15056.patch"))))
+ "051pk5jk8fcfg5mpgzj43z5p4cn7jy5jbyshyn78dwjqr7slsxs7"))))
(build-system gnu-build-system)
(native-inputs
`(("perl" ,perl)))
("zlib" ,zlib)))
(arguments
`(#:make-flags
- (list "all"
- ;; CHECK_WHITESPACE does not seem to work.
- ;; See https://git.archlinux.org/svntogit/community.git/tree/trunk/PKGBUILD?h=packages/upx.
- "CHECK_WHITESPACE=true")
+ (list "all")
#:phases
(modify-phases %standard-phases
- (delete 'configure)
- (delete 'check)
- (delete 'install)
+ (delete 'configure) ; no configure script
+ (delete 'check) ; no test suite
(add-before 'build 'patch-exec-bin-sh
(lambda _
- (substitute* (find-files "Makefile")
- (("/bin/sh") (which "sh")))
- (substitute* "src/Makefile"
+ (substitute* (list "Makefile"
+ "src/Makefile")
(("/bin/sh") (which "sh")))
#t))
- (add-after 'build 'install-upx
+ (replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
- (bin (string-append out "/bin")))
+ (bin (string-append out "/bin")))
(mkdir-p bin)
(copy-file "src/upx.out" (string-append bin "/upx")))
- #t))
- )))
+ #t)))))
(home-page "https://upx.github.io/")
- ;; CVE-2017-16869 is about Mach-O files which is not of a big concern for Guix.
- ;; See https://github.com/upx/upx/issues/146 and
- ;; https://nvd.nist.gov/vuln/detail?vulnId=CVE-2017-16869.
- ;; The issue will be fixed after version 3.94.
- (properties `((lint-hidden-cve . ("CVE-2017-16869"))))
(synopsis "Compression tool for executables")
(description
"The Ultimate Packer for eXecutables (UPX) is an executable file
(define-public ncompress
(package
(name "ncompress")
- (version "4.2.4.5")
+ (version "4.2.4.6")
(source (origin
(method git-fetch)
(uri (git-reference
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
- "0s3ik7k5a5vzcfiayhsxrc87drg3l425aqapspmw5py91b9jhc8r"))))
+ "1a4yir1ilafz0nzxdwigj204j4yy2zljbc501nsaqqm3dxdap8zn"))))
(arguments
'(#:make-flags (list "CC=gcc"
(string-append "BINDIR=" %output "/bin")
uncompressing files. These programs implement a fast, simple Lempel-Ziv (LZW)
file compression algorithm.")
(license license:gpl2+)))
+
+(define-public xarchiver
+ (package
+ (name "xarchiver")
+ (version "0.5.4.14")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/ib/xarchiver.git")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1iklwgykgymrwcc5p1cdbh91v0ih1m58s3w9ndl5kyd44bwlb7px"))))
+ (build-system glib-or-gtk-build-system)
+ (native-inputs
+ `(("gettext" ,gettext-minimal)
+ ("intltool" ,intltool)
+ ("libxslt" ,libxslt)
+ ("pkg-config" ,pkg-config)))
+ (inputs
+ `(("adwaita-icon-theme" ,adwaita-icon-theme) ; Hard-coded theme
+ ("gtk+" ,gtk+)))
+ (home-page "https://github.com/ib/xarchiver")
+ (synopsis "Graphical front-end for archive operations")
+ (description "Xarchiver is a front-end to various command line archiving
+tools. It uses GTK+ tool-kit and is designed to be desktop-environment
+independent. Supported formats are 7z, ARJ, bzip2, gzip, LHA, lzma, lzop,
+RAR, RPM, DEB, tar, and ZIP. It cannot perform functions for archives, whose
+archiver is not installed.")
+ (license license:gpl2+)))