Clint Adams wrote:
> On Sun, Nov 23, 2008 at 04:29:35PM -0800, tony mancill wrote:
>> I'm using "find . | cpio -pdmv /target" to copy files from one 
>> filesystem to another.  When encountering files larger than 4GB, 
>> cpio emits a false error message like the following:
>>
>> cpio: File ./sw/jigdo/iso/debian-testing-i386-DVD-1.iso grew, 4294967296 new 
>> bytes not copied
>>
>> However, the file certainly hadn't changed, and the sha1sum of the 
>> copied version matches the original.
>>
>> I encountered this for multiple files, all greater than 4GB, and 
>> all of them copies were intact, hence the claim that the error
>> message is incorrect.
> 
> Could you try this with cpio 2.9.90 in experimental and let me know if it 
> does the same thing?

I built the 2.9.90 package in experimental on a lenny system and the
behavior is the same.  I'm mentioning the shift from unstable to lenny
in case it ends up being related to a library call/include header that
potentially differs between releases.  I've taken a brief look at it and
(in util.c - snippit below) the cast to uintmax_t seems out of place.
However, that doesn't explain why the comparison fails in the first
place.  Perhaps some compile directive is needed to get LFS support
(OFF64_T_TYPE instead of OFF_T_TYPE) enabled.  I'm not sure, my C is
pretty rusty.

       ngettext ("File %s grew, %"PRIuMAX" new byte not copied",
             "File %s grew, %"PRIuMAX" new bytes not copied",
             (long)(new_file_stat.st_size - old_file_size)),
       file_name, (uintmax_t) (new_file_stat.st_size - old_file_size));

Thank you,
Tony



-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to