Package: libexplain
Version: 1.4.D001-2+b1
Severity: serious
Tags: sid + patch
Justification: FTBFS
User: debian-m...@lists.debian.org
Usertags: mips-patch

Hi,

Package libexplain FTBFS on mips and mipsel with following error:
libexplain/buffer/file_inode_flags.c:47:27: error: 'FS_ECOMPR_FL' undeclared 
(first use in this function)
         { "FS_ECOMPR_FL", FS_ECOMPR_FL },
                           ^
libexplain/buffer/file_inode_flags.c:47:27: note: each undeclared identifier is 
reported only once for each function it appears in
libexplain/buffer/file_inode_flags.c:47:9: warning: missing initializer for 
field 'value' of 'explain_parse_bits_table_t {aka const struct 
explain_parse_bits_table_t}' [-Wmissing-field-initializers]
         { "FS_ECOMPR_FL", FS_ECOMPR_FL },
         ^
In file included from libexplain/buffer/file_inode_flags.c:25:0:
./libexplain/parse_bits.h:31:21: note: 'value' declared here
     int             value;
                     ^
libexplain/buffer/file_inode_flags.c:56:29: error: 'FS_DIRECTIO_FL' undeclared 
(first use in this function)
         { "FS_DIRECTIO_FL", FS_DIRECTIO_FL },
                             ^
libexplain/buffer/file_inode_flags.c:56:9: warning: missing initializer for 
field 'value' of 'explain_parse_bits_table_t {aka const struct 
explain_parse_bits_table_t}' [-Wmissing-field-initializers]
         { "FS_DIRECTIO_FL", FS_DIRECTIO_FL },
         ^
In file included from libexplain/buffer/file_inode_flags.c:25:0:
./libexplain/parse_bits.h:31:21: note: 'value' declared here
     int             value;
                     ^
Makefile:10623: recipe for target 'libexplain/buffer/file_inode_flags.lo' failed
make[1]: *** [libexplain/buffer/file_inode_flags.lo] Error 1

build logs:
https://buildd.debian.org/status/fetch.php?pkg=libexplain&arch=mips&ver=1.4.D001-2%2Bb1&stamp=1465482111
https://buildd.debian.org/status/fetch.php?pkg=libexplain&arch=mipsel&ver=1.4.D001-2%2Bb1&stamp=1465051476

The code as it is doesn't compile against latest linux headers because 
FS_ECOMPR_FL and FS_DIRECTIO_FL defines are removed:
https://github.com/torvalds/linux/commit/68ce7bfcd995a8a393b1b14fa67dbc16fa3dc784

On openSUSE this issue is resolved by defining the missing defines in 
libexplain package:
https://build.opensuse.org/package/view_file/openSUSE:Factory/libexplain/libexplain-1.4-missing-defines.patch?expand=1

With attached patch I was able to build libexplain successfully for mips, 
mipsel, i386 and amd64.

Regards,
Daniel
--- libexplain-1.4.D001.orig/libexplain/buffer/file_inode_flags.c
+++ libexplain-1.4.D001/libexplain/buffer/file_inode_flags.c
@@ -28,6 +28,14 @@

 #if defined(FS_IOC_GETFLAGS) || defined(FS_IOC32_GETFLAGS)

+#ifndef FS_ECOMPR_FL
+#define FS_ECOMPR_FL                    0x00000800 /* Compression error */
+#endif
+
+#ifndef FS_DIRECTIO_FL
+#define FS_DIRECTIO_FL                  0x00100000 /* Use direct i/o */
+#endif
+
 void
 explain_buffer_file_inode_flags(explain_string_buffer_t *sb, int value)
 {

Reply via email to