Doesn't build with with e2fsprogs 1.41

Bug #259817 reported by bugmenot
6
Affects Status Importance Assigned to Milestone
partimage-ng
Fix Committed
Undecided
Unassigned

Bug Description

The released version (r80) doesn't build against e2fsprogs 1.41, which e.g. will be used in openSUSE 11.1, because your code does use one of the following typedefs:

typedef struct ext2fs_struct_generic_bitmap *ext2fs_generic_bitmap;
typedef struct ext2fs_struct_generic_bitmap *ext2fs_inode_bitmap;
typedef struct ext2fs_struct_generic_bitmap *ext2fs_block_bitmap;

and the definition of the ext2fs_struct_generic_bitmap struct was moved from ext2fs.h into gen_bitmap.c and therefore isn't publicly available anymore.

Links to the GIT repository for 1.41:

ext2fs.h
http://git.kernel.org/?p=fs/ext2/e2fsprogs.git;a=blob;f=lib/ext2fs/ext2fs.h;h=04a95a2679ee7fdd499e5c3a6ea3e2f541624275;hb=92e49d85b4528362d349ef8df082b695f6ecbea4
(the typedefs are in line 101-103)

gen_bitmap.c
http://git.kernel.org/?p=fs/ext2/e2fsprogs.git;a=blob;f=lib/ext2fs/gen_bitmap.c;h=66172e5de018f6c397d1000d0f1d8d791d55d90f;hb=92e49d85b4528362d349ef8df082b695f6ecbea4
(the ext2fs_struct_generic_bitmap struct is defined in line 30-39)

AFAIK the functionality made available in this struct is either not really needed or available via other functions.

The full build log is attached.

So please have a look & come up with some fix so it will work with e2fsprogs 1.41 as well.

Revision history for this message
bugmenot (bugmenot) wrote :
Revision history for this message
Gene Czarcinski (gene-czarc) wrote :

e2fsprogrs 1.4.1 also in Fedora 10 which is now in development and currently scheduled for end of October release.

I will take a look at this for the devel-gcN branches.

Revision history for this message
bugmenot (bugmenot) wrote :

The following are the commit comments which explain those changes a bit - perhaps it helps:

commit a0553c9d6e8dd6f538f18ae447c45e52f3c40eb6
Author: Theodore Ts'o <tytso@xxxxxx>
Date: Sun Jul 22 22:59:50 2007 -0400

    libext2fs: 32-bit bitmap refactorization, part 1

    Move the 32-bit specific bitmap code into gen_bitmap.c, and the
    high-level interfaces into bitmaps.c. Eventually we'll move the
    new-style bitmap code into gen_bitmap64.c, but first we need to
    isolate the code with knowledge of the bitmap internals in one place
    first.

    In this patch we move allocation, free, copy, clear, set_padding, and
    fudge_end function into gen_bitmap.c, and make sure that the bitmaps.c
    and bitops.c no longer have any knowledge of the bitmap internals.

    Signed-off-by: "Theodore Ts'o" <tytso@xxxxxx>

commit 50448d3dffc66f86592ee0d4b16e4bbe9d08449e
Author: Theodore Ts'o <tytso@xxxxxx>
Date: Sun Jul 22 23:42:14 2007 -0400

    libext2fs: 32-bit bitmap refactorization, part 2

    Move the contents of rs_bitmap.c and cmp_bitmaps.c into gen_bitmap.c
    and bitmaps.c.

    Signed-off-by: "Theodore Ts'o" <tytso@xxxxxx>

commit f1f115a78f5ea599fc5f8815a741d43fedd5840d
Author: Theodore Ts'o <tytso@xxxxxx>
Date: Mon Jul 23 04:32:48 2007 -0400

    libext2fs: 32-bit bitmap refactorization, part 3

    Create new functions ext2fs_{set,get}_{inode,block}_bitmap_range()
    which allow programs like e2fsck, dumpe2fs, etc. to get and set chunks
    of the bitmap at a time.

    Move the representation details of the 32-bit old-style bitmaps into
    gen_bitmap.c.

    Change calls in dumpe2fs, mke2s, et. al to use the new abstractions.

    Signed-off-by: "Theodore Ts'o" <tytso@xxxxxx>

Revision history for this message
Sergey Schwartz (svschwartz) wrote :
Download full text (4.9 KiB)

hello there!!!
tried to build from trunk r116 on ubuntu jaunty and r80 on debian lenny and got the same errors

root@slastena-desktop:~/dev/partimage-ng/build# make
Scanning dependencies of target partimage-ng
[ 8%] Building CXX object src/CMakeFiles/partimage-ng.dir/partition.o
[ 16%] Building CXX object src/CMakeFiles/partimage-ng.dir/partitionmanager.o
[ 25%] Building CXX object src/CMakeFiles/partimage-ng.dir/ext2partition.o
/home/slastena/dev/partimage-ng/src/ext2partition.cpp: In constructor ‘PartimageNG::Ext2Partition::Ext2Partition(PedPartition*)’:
/home/slastena/dev/partimage-ng/src/ext2partition.cpp:63: ошибка: invalid use of incomplete type ‘struct ext2fs_struct_generic_bitmap’
/usr/include/ext2fs/ext2fs.h:101: ошибка: forward declaration of ‘struct ext2fs_struct_generic_bitmap’
/home/slastena/dev/partimage-ng/src/ext2partition.cpp:64: ошибка: invalid use of incomplete type ‘struct ext2fs_struct_generic_bitmap’
/usr/include/ext2fs/ext2fs.h:101: ошибка: forward declaration of ‘struct ext2fs_struct_generic_bitmap’
/home/slastena/dev/partimage-ng/src/ext2partition.cpp:66: ошибка: invalid use of incomplete type ‘struct ext2fs_struct_generic_bitmap’
/usr/include/ext2fs/ext2fs.h:101: ошибка: forward declaration of ‘struct ext2fs_struct_generic_bitmap’
/home/slastena/dev/partimage-ng/src/ext2partition.cpp:68: ошибка: invalid use of incomplete type ‘struct ext2fs_struct_generic_bitmap’
/usr/include/ext2fs/ext2fs.h:101: ошибка: forward declaration of ‘struct ext2fs_struct_generic_bitmap’
/home/slastena/dev/partimage-ng/src/ext2partition.cpp:72: ошибка: invalid use of incomplete type ‘struct ext2fs_struct_generic_bitmap’
/usr/include/ext2fs/ext2fs.h:101: ошибка: forward declaration of ‘struct ext2fs_struct_generic_bitmap’
/home/slastena/dev/partimage-ng/src/ext2partition.cpp:76: ошибка: invalid use of incomplete type ‘struct ext2fs_struct_generic_bitmap’
/usr/include/ext2fs/ext2fs.h:101: ошибка: forward declaration of ‘struct ext2fs_struct_generic_bitmap’
/home/slastena/dev/partimage-ng/src/ext2partition.cpp:84: ошибка: invalid use of incomplete type ‘struct ext2fs_struct_generic_bitmap’
/usr/include/ext2fs/ext2fs.h:101: ошибка: forward declaration of ‘struct ext2fs_struct_generic_bitmap’
/home/slastena/dev/partimage-ng/src/ext2partition.cpp:85: ошибка: invalid use of incomplete type ‘struct ext2fs_struct_generic_bitmap’
/usr/include/ext2fs/ext2fs.h:101: ошибка: forward declaration of ‘struct ext2fs_struct_generic_bitmap’
/home/slastena/dev/partimage-ng/src/ext2partition.cpp:93: ошибка: invalid use of incomplete type ‘struct ext2fs_struct_generic_bitmap’
/usr/include/ext2fs/ext2fs.h:101: ошибка: forward declaration of ‘struct ext2fs_struct_generic_bitmap’
/home/slastena/dev/partimage-ng/src/ext2partition.cpp:94: ошибка: invalid use of incomplete type ‘struct ext2fs_struct_generic_bitmap’
/usr/include/ext2fs/ext2fs.h:101: ошибка: forward declaration of ‘struct ext2fs_struct_generic_bitmap’
/home/slastena/dev/partimage-ng/src/ext2partition.cpp:96: ошибка: invalid use of incomplete type ‘struct ext2fs_struct_generic_bitmap’
/usr/include/ext2fs/ext2fs.h:101: ошибка: forward declaration of ‘struct ext2fs_struct_generic_bitmap’
/home/slastena/dev...

Read more...

Revision history for this message
Sergey Schwartz (svschwartz) wrote :

attached jaunty r116 build log

Revision history for this message
Gene Czarcinski (gene-czarc) wrote :

This problem is now fixed in revision 143 of my branches (both devel-gc1 and devel-gc2). As of right now, these branches will build on Fedora 9 and Fedora 11.

I consider the fix for the change in e2fsprogs-1.41 to be temporary but it does currently work. The change to e2fsprogs-1.41 was done because of 64 bit bitmaps in ext4. The hack/fix only uses 32 bit bitmaps. However, since parmimage-ng does not currently support ext4, this is not currently a big deal.

Revision history for this message
Dmitry Ivanov (vonami) wrote :

Fixed in the proper way in trunk.

Changed in partimage-ng:
status: New → Fix Committed
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.