Bug#634401: extundelete: FTBFS: extundelete.cc:963:47: error: invalid use of incomplete type 'struct opaque_ext2_group_desc'

Eric Sandeen sandeen at redhat.com
Tue Jan 3 17:54:46 UTC 2012

Hash: SHA1

On 12/31/11 6:23 AM, Michael Prokop wrote:
> Hi,
> (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"):
>   http://git.kernel.org/?p=fs/ext2/e2fsprogs.git;a=commit;h=efe0b401465a3ee836180614b5b435acbb84fc27
> 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:
>   http://anonscm.debian.org/gitweb/?p=forensics/extundelete.git;a=blob;f=src/extundelete.cc;h=d51d45e15081b01e32e781334ba6d431e7adf88f;hb=HEAD#l944

        //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.

- -Eric

> 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,
> -mika-
> * 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
>> Hi,
>> During a rebuild of all packages in sid, your package failed to build on
>> amd64.
>> Relevant part:
>>> make[3]: 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[3]: *** [extundelete-extundelete.o] Error 1
>> The full build log is available from:
>>    http://people.debian.org/~lucas/logs/2011/07/18/extundelete_0.2.0-1_lsid64.buildlog
>> 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 |

Version: GnuPG/MacGPG2 v2.0.17 (Darwin)
Comment: GPGTools - http://gpgtools.org
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/


More information about the forensics-devel mailing list