Bug#634401: extundelete: FTBFS: extundelete.cc:963:47: error: invalid use of incomplete type 'struct opaque_ext2_group_desc'
sandeen at redhat.com
Tue Jan 3 17:54:46 UTC 2012
-----BEGIN PGP SIGNED MESSAGE-----
On 12/31/11 6:23 AM, Michael Prokop wrote:
> (original bugreport at the end of the mail, fullquote by intention)
> I just investigated on this FTBFS issue.
> The problem is that extundelete doesn't compile against e2fslibs-dev
> versions >=1.42. Therefore extundelete was just removed from
> Debian/testing, so if this bug can't be resolved then extundelete
> sadly can't be shipped with the upcoming Debian stable release.
> The responsible change in e2fslibs-dev is this one ("libext2fs: make
> fs->group_desc opaque"):
> The commit message talks about EXT2FS_OLD_32_COMPAT which should
> provide compiling of "Old-style applications who don't want to
> change their source code". Sadly EXT2FS_OLD_32_COMPAT wasn't
> implemented in this commit nor in a following one.
Hm, none of that was in my original commit or message, I think
Ted added that text on commit, but didn't modify the patch at all.
> The code of extundelete that's failing to compile is:
//FIXME: may need to change to be compatible with newer file systems
The point of the change was to prevent this kind of use of ->group_desc:
group_descriptor_table[n] = fs->group_desc[n];
because the size of group_desc may change. Instead, we need something like:
group_descriptor_table[n] = *ext2fs_group_desc(fs, fs->group_desc, n);
I think my pointer-fu is ok ;) Maybe a memcpy would be clearer.
There are other problems though, I think, in parse_inode_block() for example,
things in there have changed as well... this tool seems to be getting a little
to grubby in the ext internals. I think maybe it should be making
use of ext2fs_swap_inode() instead.
> The issue was brought up on the mailinglist of extundelete a few
> weeks ago, but there wasn't a reaction from upstream since then.
> Eric and Theodore - any ideas what's the best way to resolve this
> issue in the meanwhile?
> thanks && regards,
> * Lucas Nussbaum [Die Jul 19, 2011 at 12:01:33 +0200]:
>> Source: extundelete
>> Version: 0.2.0-1
>> Severity: serious
>> Tags: wheezy sid
>> User: debian-qa at lists.debian.org
>> Usertags: qa-ftbfs-20110718 qa-ftbfs
>> Justification: FTBFS on amd64
>> During a rebuild of all packages in sid, your package failed to build on
>> Relevant part:
>>> make: Entering directory `/build/extundelete-m9SM_D/extundelete-0.2.0/src'
>>> extundelete.cc: In function 'int load_super_block(ext2_filsys)':
>>> extundelete.cc:963:47: error: invalid use of incomplete type 'struct opaque_ext2_group_desc'
>>> /usr/include/ext2fs/ext2fs.h:211:8: error: forward declaration of 'struct opaque_ext2_group_desc'
>>> extundelete.cc:963:47: error: no match for 'operator=' in '*(group_descriptor_table + ((long unsigned int)(((long unsigned int)n) * 32ul))) = * fs->struct_ext2_filsys::group_desc'
>>> extundelete.cc:963:47: note: candidate is:
>>> /usr/include/ext2fs/ext2_fs.h:136:8: note: ext2_group_desc& ext2_group_desc::operator=(const ext2_group_desc&)
>>> /usr/include/ext2fs/ext2_fs.h:136:8: note: no known conversion for argument 1 from 'opaque_ext2_group_desc' to 'const ext2_group_desc&'
>>> make: *** [extundelete-extundelete.o] Error 1
>> The full build log is available from:
>> A list of current common problems and possible solutions is available at
>> http://wiki.debian.org/qa.debian.org/FTBFS . You're welcome to contribute!
>> About the archive rebuild: The rebuild was done on about 50 AMD64 nodes
>> of the Grid'5000 platform, using a clean chroot. Internet was not
>> accessible from the build systems.
>> | Lucas Nussbaum
>> | lucas at lucas-nussbaum.net http://www.lucas-nussbaum.net/ |
>> | jabber: lucas at nussbaum.fr GPG: 1024D/023B3F4F |
-----BEGIN PGP SIGNATURE-----
Version: GnuPG/MacGPG2 v2.0.17 (Darwin)
Comment: GPGTools - http://gpgtools.org
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/
-----END PGP SIGNATURE-----
More information about the forensics-devel