Bug 36404 - (app-archive/dar) dar is not using the Large File Support API
|
Bug#:
36404
|
Product: Gentoo Linux
|
Version: unspecified
|
Platform: All
|
|
OS/Version: Linux
|
Status: RESOLVED
|
Severity: normal
|
Priority: P2
|
|
Resolution: FIXED
|
Assigned To: zul@gentoo.org
|
Reported By: mkennedy@gentoo.org
|
|
Component: Ebuilds
|
|
|
URL:
|
|
Summary: (app-archive/dar) dar is not using the Large File Support API
|
|
Keywords:
|
|
Status Whiteboard:
|
|
Opened: 2003-12-23 18:44 0000
|
-rw-r--r-- 1 root root 2.0G Dec 23 20:04
system-full-2003-12-23.1.dar
-rw-r--r-- 1 root root 2.0G Dec 23 20:04
system-full-2003-12-23.1.dar
./full: line 23: 13797 File size limit exceededdar --create
${BACKUP}/${NAME_FULL}-${DATE} --exclude "${NAME_FULL}-*.dar" --exclude
"${NAME_DIFF}-*.dar" --exclude 'core' --noconf - -empty-dir --fs-root /
--no-warn ${COMPRESSION} ${EXCLUDE_COMPRESSION} ${EXCLUDE} ${SPLIT}
[1]+ Stopped ./full (wd: ~/backup)
error while testing archive: badly formed infinint or not supported format
<5>root@killr:/mnt/import/backup# ls
Reproducible: Always
Steps to Reproduce:
1.
2.
3.
I suspect dar is not using the large file support api for linux.
http://www.suse.de/~aj/linux_lfs.html
I'm using standard gentoo glibc, kernel 2.6.0-test11-mm1 (not that it matters).
Other tools on my install are abel to create files larger than 2GB. For
example:
<0>mkennedy@killr:/space/mkennedy$ dd if=/dev/zero of=test count=3
bs=$((1024**3)) 3+0 records in
3+0 records out
0>mkennedy@killr:/space/mkennedy$ ls -l test
-rw-r--r-- 1 mkennedy users 3221225472 Dec 23 20:29 test
You have new mail in /var/mail/mkennedy
<0>mkennedy@killr:/space/mkennedy$
Hi Chuck,
That doesn't work. I don't think it even uses CFLAGS during the build.
I tried revamping the ebuild a bit:
src_compile() {
# This seems to be necessary to get the configure script to detect
# a 64-bit off_t type
export CXX="g++ ${CXXFLAGS} -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE"
export CC="gcc ${CFLAGS} -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE"
./configure \
--host=${CHOST} \
--prefix=/usr \
--infodir=/usr/share/info \
--mandir=/usr/share/man \
--enable-largefile \
--enable-nodump-flag \
--enable-examples \
--enable-static \
--enable-special-alloc \
|| die "./configure failed"
# --enable-os-bits= \
# --enable-ea-support \
make || die
}
During configure, off_t is detected properly to be 64-bits (which looks promising), however when running DAR:
<0>root@killr:~/backup# ./full
./full: line 23: 10772 File size limit exceededdar --create ${BACKUP}/${NAME_FULL}-${DATE} --exclude "${NAME_FULL}-*.dar" --exclude "${NAME_DIFF}-*.dar" --exclude 'core' --noconf --empty-dir --fs-root / --no-warn ${COMPRESSION} ${EXCLUDE_COMPRESSION} ${EXCLUDE} ${SPLIT}error while testing archive: badly formed infinint or not supported format
(In this example, SPLIT='' -- ie. dont split).
Matt
Fixed in cvs, please test.
Unfortunately, the dar-2.0.4 ebuild i tested from comment #3 doesnt' fix the
problem either. Are you folks able to reproduce this?
root@killr:/mnt/import/backup# ll/root/backup/full: line 23: 27672 File size
limit exceeded(core dumped) dar --create ${BACKUP}/${NAME_FULL}-${DATE}
--exclude "${NAME_FULL}-*.dar" --exclude "${NAME_DIFF}-*.dar" --exclude 'core'
--noconf --empty-dir --fs-root / --no-warn ${COMPRESSION}
${EXCLUDE_COMPRESSION} ${EXCLUDE} ${SPLIT}
total 4198408
-rw-r--r-- 1 root root 2147483647 Jan 11 08:47
system-full-2004-01-11.1.dar
-rw-r--r-- 1 root root 2147483647 Jan 12 03:58
system-full-2004-01-12.1.dar
root@killr:/mnt/import/backup# dar --version
dar version 2.0.4, Copyright (C) 2002-2052 Denis Corbin
Using libdar 1.2 built with compilation time options:
Extended Attributes support: YES
Large files support (> 2GB): YES
ext2fs NODUMP flag support : YES
Special allocation scheme : YES
Integer size used : unlimited
Jan 11 2004 with GNUC version 3.3.2 20031218 (Gentoo Linux 3.3.2-r5,
propolice-3.3-7)
dar is part of the Disk ARchive suite (Release 2.0.4)
dar comes with ABSOLUTELY NO WARRANTY; for details
type `dar -W'. This is free software, and you are welcome
to redistribute it under certain conditions; type `dar -L | more'
for details.
[1]+ Stopped /root/backup/full (wd: ~)
(wd now: /mnt/import/backup)
root@killr:/mnt/import/backup#
this doesn't work either (even with the typo-correction ;-)
Anyone trying these proposed fixes? Able to reproduce it? Trying to ascertain if it is specific to my machine or not. I have, however, been able to reproduce it in a chrooted environment built from stage3.
I was able to reproduce this error on my machine but I havent been able to find
a fix to it. There is a new version of dar that supposedly fixes LFS support
but I havent been able to test it because my main dev machine had died this
past week. Ill test it tonight though.
chuck
I try dar-2.0.4 without Large file patch but I got no problem on my
environment(linux-2.6.1, XFS and ext3).
# dar --version
dar version 2.0.4, Copyright (C) 2002-2052 Denis Corbin
Using libdar 1.2 built with compilation time options:
Extended Attributes support: YES
Large files support (> 2GB): YES
ext2fs NODUMP flag support : YES
Special allocation scheme : YES
Integer size used : unlimited
(snip)
On a recent install of Gentoo, I find that I can no longer reproduce this...