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


-----BEGIN PGP SIGNED MESSAGE-----
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 |
> 
> 

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

iQIcBAEBAgAGBQJPA0DlAAoJECCuFpLhPd7gcrkQAIgVTRLoZyXZO4MO2oNy5GIo
K9bz4N3aX3HdWJ69in3/v40CVD7l9/gZBpBWcwuW8+c85j225vaEfBkD0FoeaZY8
tXNO2zq6Hazi5p1EjIbCyaHpfyl6KKQnskUEANtQ9OEeFj5IVdQ8B1sOzp8Z1lhm
JGDyaCe4XXrGbu70ZzmXqyRS9rQUUU+IGMf2bnq4GQcwbFRJAF9GoSxIQ53TmX2i
/b2pMeASemw5ytt7VsPki/KlTciW8ras5rdKhaO4p5D3UGBjn8DIOUIpBrp6rH16
zKbD67Qrcv4Kv/Tf6uWlw/78E1H3RlrjV/MfEfp3O6lHxXfznuEtvcwItJAhqfDj
imkcX/0XZOoxUe0eVyt0GQ0nbh8o24G8/OcJzlfma9qoTNFVaY+RQOuCz2vxmFUP
XfBrOHgNK/ZmBmXOmZ1SU+Mg2if6DYU9Cnd9hac4ZgJd/XYLbh+qIitGwprXC7Va
OErdheMTQ6Kp/OkKfzh1++4gmAbCcpVnZkwOZ837bLmO3ilQct4YINMvTz9ocQeO
4q3juOqz1xNLj+eb/CvwjEGz0GkvfDPQ6zuP/seC9dIbPnL1sByARxsALZdfQ9w2
7HSjEEzrIlDWAKCCzVv+APIywoL/2TPbgepLqchLdo8pL8fOLDP1qPxaa50OXYUX
r2Lu0Lk4lrr9mrjj3v/r
=gD9o
-----END PGP SIGNATURE-----





More information about the forensics-devel mailing list