gnu: Add ncompress.
authorJan Nieuwenhuizen <janneke@gnu.org>
Sun, 15 Sep 2019 18:36:12 +0000 (20:36 +0200)
committerJan Nieuwenhuizen <janneke@gnu.org>
Fri, 6 Dec 2019 05:52:36 +0000 (06:52 +0100)
* gnu/packages/compression.scm (ncompress): New variable.
* gnu/packages/patches/compress-fix-softlinks.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add it.

gnu/local.mk
gnu/packages/compression.scm
gnu/packages/patches/ncompress-fix-softlinks.patch [new file with mode: 0644]

index 06eb76c..d12b6b1 100644 (file)
@@ -1165,6 +1165,7 @@ dist_patch_DATA =                                         \
   %D%/packages/patches/mupen64plus-video-z64-glew-correct-path.patch    \
   %D%/packages/patches/mutt-store-references.patch             \
   %D%/packages/patches/m4-gnulib-libio.patch                   \
+  %D%/packages/patches/ncompress-fix-softlinks.patch           \
   %D%/packages/patches/netcdf-date-time.patch                  \
   %D%/packages/patches/netcdf-tst_h_par.patch                  \
   %D%/packages/patches/netpbm-CVE-2017-2586.patch              \
index 89dcc34..bb1c5b6 100644 (file)
@@ -24,6 +24,7 @@
 ;;; Copyright © 2018 Joshua Sierles, Nextjournal <joshua@nextjournal.com>
 ;;; Copyright © 2018, 2019 Pierre Neidhardt <mail@ambrevar.xyz>
 ;;; Copyright © 2019 Nicolas Goaziou <mail@nicolasgoaziou.fr>
+;;; Copyright © 2019 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -2110,3 +2111,32 @@ at run time, and must be installed separately.")
 archives generated by @command{makeself} or @command{mojo} without running the
 possibly untrusted extraction shell script.")
       (license license:gpl3+))))
+
+(define-public ncompress
+  (package
+    (name "ncompress")
+    (version "4.2.4.5")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/vapier/ncompress")
+                    (commit (string-append "v" version))))
+              (patches (search-patches "ncompress-fix-softlinks.patch"))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0s3ik7k5a5vzcfiayhsxrc87drg3l425aqapspmw5py91b9jhc8r"))))
+    (arguments
+     '(#:make-flags (list "CC=gcc"
+                          (string-append "BINDIR=" %output "/bin")
+                          (string-append "MANDIR=" %output "/share/man/man1"))
+       #:phases (modify-phases %standard-phases
+                  (delete 'configure))))
+    (build-system gnu-build-system)
+    (home-page "https://github.com/vapier/ncompress/")
+    (synopsis "Original Lempel-Ziv compress/uncompress programs")
+    (description "(N)compress provides the original compress and uncompress
+programs that used to be the de facto UNIX standard for compressing and
+uncompressing files.  These programs implement a fast, simple Lempel-Ziv (LZW)
+file compression algorithm.")
+    (license license:gpl2+)))
diff --git a/gnu/packages/patches/ncompress-fix-softlinks.patch b/gnu/packages/patches/ncompress-fix-softlinks.patch
new file mode 100644 (file)
index 0000000..98752e8
--- /dev/null
@@ -0,0 +1,24 @@
+Patch taken from Debian sid.
+
+Description: Support uncompressing and compressing soft links.
+ Historically, ncompress for Debian has been built using a command line
+ directly in debian/rules.  For 4.2.4.5-1, I simplified by swtching to the
+ upstream Makefile.  However, that caused a regression - the Debian version of
+ ncompress has always successfully handled soft links, but this stopped
+ working.  To revert to the original behavior, I need to remove -DLSTAT from
+ the build options, to be consistent with how the code was previously built.
+Author: Kenneth J. Pronovici <pronovic@debian.org>
+Bug-Debian: http://bugs.debian.org/918836
+Index: ncompress/GNUmakefile
+===================================================================
+--- ncompress.orig/GNUmakefile
++++ ncompress/GNUmakefile
+@@ -9,7 +9,7 @@ distclean: cleanup
+ Makefile: Makefile.def GNUmakefile
+       sed \
+-              -e 's:options= :options= $$(CFLAGS) -DNOFUNCDEF -DUTIME_H -DLSTAT $$(LDFLAGS) :' \
++              -e 's:options= :options= $$(CFLAGS) -DNOFUNCDEF -DUTIME_H $$(LDFLAGS) :' \
+               Makefile.def > Makefile
+ check: