bug-automake
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#15181: t/dist-formats.tap: zip + unzip


From: Andrea Urbani
Subject: bug#15181: t/dist-formats.tap: zip + unzip
Date: Sat, 24 Aug 2013 01:24:43 -0400

Good morning,

gzip, lzip, bzip2, tar, xz can compress and decompress.

zip is able just to compress. To decompress you need unzip.
During the tests of Automake 1.14, in particular t/dist-formats.tap, the
nogzip function called via

nogzip in ac  and  zip    in  ac

looks if zip is available and, if yes, tests the zip creation + unzip.
If in your system zip is installed but unzip no, you will have a FAIL like the following:

/bin/sh: line 14: unzip: command not found
make: *** [distcheck] Error 127
+ tap_result_='not ok'
+ result_ 'not ok' -D '' -r '' -- 'ac=dist-zip,no-dist-gzip [distcheck]'
+ set +x
not ok 45 - ac=dist-zip,no-dist-gzip [distcheck]
FAIL: t/dist-formats.tap 45 - ac=dist-zip,no-dist-gzip [distcheck]


and so the final result of the "make check" operation will fail too.

In my opinion the unzip should be skipped if no unzip is available.

== PATCH BEGIN ====================================================
--- t/dist-formats.tap.orig     2013-06-19 11:29:50.000000000 +0200
+++ t/dist-formats.tap  2013-08-24 07:12:42.000000000 +0200
@@ -97,6 +97,33 @@
   fatal_ "have_compressor(): dead code reached"
 }

+have_decompressor ()
+{
+  test $# -eq 1 || fatal_ "have_decompressor(): bad usage"
+  case $1 in
+    zip)
+        # 2013-08-24 matfanjol
+        # gzip, lzip, bzip2, tar, xz can compress and decompress.
+        # zip is able just to compress. To decompress you need unzip.
+        # Here I check if unzip is available.
+        # I checked "Oracle Solaris 11" and "Fedora 19": "unzip -v" is
+        # OK, "unzip --version" is NOT ok.
+        if unzip -v </dev/null >&2; then
+          return 0
+        else
+          return 1
+        fi
+        ;;
+    *)
+      # 2013-08-24 matfanjol
+      # gzip, lzip, bzip2, tar, xz can compress and decompress.
+      return 0
+      ;;
+  esac
+  fatal_ "have_decompressor(): dead code reached"
+}
+
+
 all_compression_formats='gzip lzip xz bzip2 zip'

 all_compressors=$(
@@ -165,6 +192,20 @@
   fi
 }

+command_ok_if_have_compressor_and_decompressor ()
+{
+  if have_compressor "$compressor"; then
+    if have_decompressor "$compressor"; then
+      command_ok_ "$@"
+    else
+      skip_ -r "decompressor for '$compressor' not available" "$1"
+    fi
+  else
+    skip_ -r "'$compressor' not available" "$1"
+  fi
+}
+
+
 can_compress ()
 {
   test $# -eq 2 || fatal_ "can_compress: bad number of arguments"
@@ -276,8 +317,8 @@
   command_ok_ "$desc [autoconf]" $AUTOCONF
   command_ok_ "$desc [configure]" ./configure
   command_ok_ "$desc [ark-name]" $MAKE check-ark-name
-  command_ok_if_have_compressor "$desc [distcheck]" $MAKE distcheck
-  command_ok_if_have_compressor "$desc [ark-exists]" $MAKE check-ark-exists
+  command_ok_if_have_compressor_and_decompressor "$desc [distcheck]" $MAKE distcheck
+  command_ok_if_have_compressor_and_decompressor "$desc [ark-exists]" $MAKE check-ark-exists
   command_ok_ "$desc [no .tar.gz]"  $MAKE check-no-tar-gz

   unset desc

== PATCH END ====================================================


Bye
Andrea

matfanjol
http://matfanjol.users.sourceforge.net/

reply via email to

[Prev in Thread] Current Thread [Next in Thread]