[BusyBox 0000991]: tar does not behave like gnu tar when dealing with include/exclude lists

bugs at busybox.net bugs at busybox.net
Sat Sep 2 20:37:44 UTC 2006


A NOTE has been added to this issue. 
====================================================================== 
http://busybox.net/bugs/view.php?id=991 
====================================================================== 
Reported By:                schieli
Assigned To:                BusyBox
====================================================================== 
Project:                    BusyBox
Issue ID:                   991
Category:                   Standards Compliance
Reproducibility:            always
Severity:                   minor
Priority:                   normal
Status:                     assigned
====================================================================== 
Date Submitted:             08-12-2006 06:15 PDT
Last Modified:              09-02-2006 13:37 PDT
====================================================================== 
Summary:                    tar does not behave like gnu tar when dealing with
include/exclude lists
Description: 
There are at least 3 threads about this issue

http://www.busybox.net/lists/busybox/2006-April/020371.html
http://www.busybox.net/lists/busybox/2006-April/020461.html
http://www.busybox.net/lists/busybox/2006-July/023285.html
====================================================================== 

---------------------------------------------------------------------- 
 vda - 09-02-06 12:14  
---------------------------------------------------------------------- 
Please provide testcases where tar does something incorrectly.
So far all issues referenced in links above were addressed by
this patch in svn:

diff -urpN busybox.0/archival/libunarchive/find_list_entry.c
busybox.1/archival/libunarchive/find_list_entry.c
--- busybox.0/archival/libunarchive/find_list_entry.c   2006-08-24
11:43:52.000000000 +0200
+++ busybox.1/archival/libunarchive/find_list_entry.c   2006-09-02
20:11:50.000000000 +0200
@@ -13,7 +13,7 @@
 const llist_t *find_list_entry(const llist_t *list, const char
*filename)
 {
        while (list) {
-               if (fnmatch(list->data, filename, 0) == 0) {
+               if (fnmatch(list->data, filename, FNM_LEADING_DIR) == 0)
{
                        return (list);
                }
                list = list->link;


Is this ok? 

---------------------------------------------------------------------- 
 schieli - 09-02-06 13:37  
---------------------------------------------------------------------- 
The patch in svn does indeed solve the problems reported in above threads.
Here is a testcase for a remaining one (trailing slash in include list):

mkdir -p foo/bar
touch foo/bar/file
tar cf foo.tar -C foo .
echo "./bar/" > foo.list
rm -rf foo/*
busybox tar xf foo.tar -C foo -T foo.list
find foo | sort >logfile.bb
rm -rf foo/*
tar xf foo.tar -C foo -T foo.list
find foo | sort >logfile.gnu
cmp logfile.gnu logfile.bb 

Issue History 
Date Modified   Username       Field                    Change               
====================================================================== 
08-12-06 06:15  schieli        New Issue                                    
08-12-06 06:15  schieli        Status                   new => assigned     
08-12-06 06:15  schieli        Assigned To               => BusyBox         
08-12-06 06:15  schieli        File Added: tar_include_exclude.patch            
       
08-12-06 06:19  schieli        Issue Monitored: schieli                     
09-02-06 12:14  vda            Note Added: 0001603                          
09-02-06 13:37  schieli        Note Added: 0001604                          
======================================================================




More information about the busybox-cvs mailing list