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]