mbakke pushed a commit to branch master
in repository guix.
commit ac83cf22c27aff19d4137ce14058bd7a3f407516
Author: Marius Bakke <[email protected]>
Date: Sat Jul 14 19:03:27 2018 +0200
gnu: Add bsdiff.
* gnu/packages/compression.scm (bsdiff): New public variable.
---
gnu/packages/compression.scm | 37 +++++++++++++++++++++++++++++++++++++
1 file changed, 37 insertions(+)
diff --git a/gnu/packages/compression.scm b/gnu/packages/compression.scm
index 0d73886..2e62cd7 100644
--- a/gnu/packages/compression.scm
+++ b/gnu/packages/compression.scm
@@ -981,6 +981,43 @@ 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")
+ (version "4.3")
+ (home-page "https://www.daemonology.net/bsdiff/")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append home-page name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0j2zm3z271x5aw63mwhr3vymzn45p2vvrlrpm9cz2nywna41b0hq"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:make-flags (list "INSTALL=install" "CC=gcc"
+ (string-append "PREFIX=" (assoc-ref %outputs "out")))
+ #:phases (modify-phases %standard-phases
+ (delete 'configure)
+ (add-before 'build 'fix-Makefile
+ (lambda _
+ (substitute* "Makefile"
+ ;; Adjust syntax to make it compatible with GNU Make.
+ (("^\\.") "")
+ ;; Help install(1) create the target directory.
+ (("\\$\\{PREFIX\\}") "-D -t ${PREFIX}"))
+ #t)))
+ #:tests? #f)) ;no tests
+ (inputs
+ `(("bzip2" ,bzip2)))
+ (synopsis "Patch binary files")
+ (description
+ "@command{bsdiff} and @command{bspatch} are tools for building and
+applying patches to binary files. By using suffix sorting (specifically
+Larsson and Sadakane's @code{qsufsort}) and taking advantage of how
+executable files change, bsdiff routinely produces binary patches 50-80%
+smaller than those produced by @code{Xdelta}.")
+ (license license:bsd-2)))
+
(define-public cabextract
(package
(name "cabextract")