guix-commits
[Top][All Lists]
Advanced

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

01/01: gnu: libarchive: Fix test failure on SELinux systems.


From: Ludovic Courtès
Subject: 01/01: gnu: libarchive: Fix test failure on SELinux systems.
Date: Wed, 09 Dec 2015 22:55:08 +0000

civodul pushed a commit to branch core-updates
in repository guix.

commit 6a4db3f3612d0c0b0b425d01ff5b311f9b485f8c
Author: Ludovic Courtès <address@hidden>
Date:   Wed Dec 9 23:10:10 2015 +0100

    gnu: libarchive: Fix test failure on SELinux systems.
    
    Reported by Jan SynáÄek <address@hidden>
    at <https://lists.gnu.org/archive/html/guix-devel/2015-11/msg00522.html>.
    
    * gnu/packages/patches/libarchive-bsdtar-test.patch: New file.
    * gnu/packages/backup.scm (libarchive)[source]: Use it.
    * gnu-system.am (dist_patch_DATA): Add it.
---
 gnu-system.am                                     |    1 +
 gnu/packages/backup.scm                           |    3 +-
 gnu/packages/patches/libarchive-bsdtar-test.patch |   74 +++++++++++++++++++++
 3 files changed, 77 insertions(+), 1 deletions(-)

diff --git a/gnu-system.am b/gnu-system.am
index 0eb2f28..463f98c 100644
--- a/gnu-system.am
+++ b/gnu-system.am
@@ -514,6 +514,7 @@ dist_patch_DATA =                                           
\
   gnu/packages/patches/liba52-link-with-libm.patch             \
   gnu/packages/patches/liba52-set-soname.patch                 \
   gnu/packages/patches/liba52-use-mtune-not-mcpu.patch         \
+  gnu/packages/patches/libarchive-bsdtar-test.patch            \
   gnu/packages/patches/libarchive-CVE-2013-0211.patch          \
   gnu/packages/patches/libarchive-fix-lzo-test-case.patch      \
   gnu/packages/patches/libarchive-mtree-filename-length-fix.patch \
diff --git a/gnu/packages/backup.scm b/gnu/packages/backup.scm
index 84d27c0..287438e 100644
--- a/gnu/packages/backup.scm
+++ b/gnu/packages/backup.scm
@@ -145,7 +145,8 @@ backups (called chunks) to allow easy burning to CD/DVD.")
        (patches
         (list (search-patch "libarchive-mtree-filename-length-fix.patch")
               (search-patch "libarchive-fix-lzo-test-case.patch")
-              (search-patch "libarchive-CVE-2013-0211.patch")))))
+              (search-patch "libarchive-CVE-2013-0211.patch")
+              (search-patch "libarchive-bsdtar-test.patch")))))
     (build-system gnu-build-system)
     (inputs
      `(("zlib" ,zlib)
diff --git a/gnu/packages/patches/libarchive-bsdtar-test.patch 
b/gnu/packages/patches/libarchive-bsdtar-test.patch
new file mode 100644
index 0000000..6a533a9
--- /dev/null
+++ b/gnu/packages/patches/libarchive-bsdtar-test.patch
@@ -0,0 +1,74 @@
+commit b539b2e597b566fe3c4b49cb61c9eef83e5e052d
+Author: Pavel Raiskup <address@hidden>
+Date:   Thu Jun 27 16:01:30 2013 +0200
+
+    Use ustar format in the test_option_b test
+    
+    .. because the ustar archive does not store SELinux context.  As the 
default
+    format for bsdtar is "restricted pax" (trying to store xattrs and other
+    things by default), the test failed on Fedora because our files have by
+    default SELinux context set.  This results in additional data in tested
+    archive ~> and the test failed because the archive was unexpectedly big:
+    
+     tar/test/test_option_b.c:41: File archive1.tar has size 3072, expected 
2048
+    
+    Reviewed by Konrad Kleine <address@hidden>
+
+diff --git a/tar/test/test_option_b.c b/tar/test/test_option_b.c
+index be2ae65..6fea474 100644
+--- a/tar/test/test_option_b.c
++++ b/tar/test/test_option_b.c
+@@ -25,8 +25,14 @@
+ #include "test.h"
+ __FBSDID("$FreeBSD$");
+ 
++#define USTAR_OPT " --format=ustar"
++
+ DEFINE_TEST(test_option_b)
+ {
++      char *testprog_ustar = malloc(strlen(testprog) + sizeof(USTAR_OPT) + 1);
++      strcpy(testprog_ustar, testprog);
++      strcat(testprog_ustar, USTAR_OPT);
++
+       assertMakeFile("file1", 0644, "file1");
+       if (systemf("cat file1 > test_cat.out 2> test_cat.err") != 0) {
+               skipping("Platform doesn't have cat");
+@@ -36,7 +42,7 @@ DEFINE_TEST(test_option_b)
+       /*
+        * Bsdtar does not pad if the output is going directly to a disk file.
+        */
+-      assertEqualInt(0, systemf("%s -cf archive1.tar file1 >test1.out 
2>test1.err", testprog));
++      assertEqualInt(0, systemf("%s -cf archive1.tar file1 >test1.out 
2>test1.err", testprog_ustar));
+       failure("bsdtar does not pad archives written directly to regular 
files");
+       assertFileSize("archive1.tar", 2048);
+       assertEmptyFile("test1.out");
+@@ -46,24 +52,24 @@ DEFINE_TEST(test_option_b)
+        * Bsdtar does pad to the block size if the output is going to a socket.
+        */
+       /* Default is -b 20 */
+-      assertEqualInt(0, systemf("%s -cf - file1 2>test2.err | cat 
>archive2.tar ", testprog));
++      assertEqualInt(0, systemf("%s -cf - file1 2>test2.err | cat 
>archive2.tar ", testprog_ustar));
+       failure("bsdtar does pad archives written to pipes");
+       assertFileSize("archive2.tar", 10240);
+       assertEmptyFile("test2.err");
+ 
+-      assertEqualInt(0, systemf("%s -cf - -b 20 file1 2>test3.err | cat 
>archive3.tar ", testprog));
++      assertEqualInt(0, systemf("%s -cf - -b 20 file1 2>test3.err | cat 
>archive3.tar ", testprog_ustar));
+       assertFileSize("archive3.tar", 10240);
+       assertEmptyFile("test3.err");
+ 
+-      assertEqualInt(0, systemf("%s -cf - -b 10 file1 2>test4.err | cat 
>archive4.tar ", testprog));
++      assertEqualInt(0, systemf("%s -cf - -b 10 file1 2>test4.err | cat 
>archive4.tar ", testprog_ustar));
+       assertFileSize("archive4.tar", 5120);
+       assertEmptyFile("test4.err");
+ 
+-      assertEqualInt(0, systemf("%s -cf - -b 1 file1 2>test5.err | cat 
>archive5.tar ", testprog));
++      assertEqualInt(0, systemf("%s -cf - -b 1 file1 2>test5.err | cat 
>archive5.tar ", testprog_ustar));
+       assertFileSize("archive5.tar", 2048);
+       assertEmptyFile("test5.err");
+ 
+-      assertEqualInt(0, systemf("%s -cf - -b 8192 file1 2>test6.err | cat 
>archive6.tar ", testprog));
++      assertEqualInt(0, systemf("%s -cf - -b 8192 file1 2>test6.err | cat 
>archive6.tar ", testprog_ustar));
+       assertFileSize("archive6.tar", 4194304);
+       assertEmptyFile("test6.err");
+ 



reply via email to

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