trinity-devel@lists.pearsoncomputing.net

Message: previous - next
Month: June 2012

digikam FTBFS - libpng15 patch regression or not applied?

From: "David C. Rankin" <drankinatty@...>
Date: Tue, 26 Jun 2012 14:07:35 -0500
Tim, Darrell,

  Digikam had been fixed once before for libpng15 issues. The patch
(digikam-libpng15+gcc47_1.diff) contained:

diff -uNrb digikam.orig/digikam/kioslave/digikamthumbnail.cpp
digikam/digikam/kioslave/digikamthumbnail.cpp
--- digikam.orig/digikam/kioslave/digikamthumbnail.cpp	2012-04-19
07:02:43.000000000 -0500
+++ digikam/digikam/kioslave/digikamthumbnail.cpp	2012-04-19 16:44:10.307517462
-0500
@@ -413,16 +413,16 @@
     if (color_type == PNG_COLOR_TYPE_PALETTE)
         png_set_expand(png_ptr);

-    if (info_ptr->color_type == PNG_COLOR_TYPE_RGB_ALPHA)
+    if (color_type == PNG_COLOR_TYPE_RGB_ALPHA)
         has_alpha = 1;

-    if (info_ptr->color_type == PNG_COLOR_TYPE_GRAY_ALPHA)
+    if (color_type == PNG_COLOR_TYPE_GRAY_ALPHA)
     {
         has_alpha = 1;
         has_grey = 1;
     }

-    if (info_ptr->color_type == PNG_COLOR_TYPE_GRAY)
+    if (color_type == PNG_COLOR_TYPE_GRAY)
         has_grey = 1;

     unsigned char **lines;

  The first part of the patch is in the GIT tree, however, it looks like the
second part of the patch was either lost or not applied because the code still
contains:

    if (info_ptr->color_type == PNG_COLOR_TYPE_RGB_ALPHA)
        has_alpha = 1;

    if (info_ptr->color_type == PNG_COLOR_TYPE_GRAY_ALPHA)
    {
        has_alpha = 1;
        has_grey = 1;
    }

    if (info_ptr->color_type == PNG_COLOR_TYPE_GRAY)
        has_grey = 1;

    unsigned char **lines;

  The error I'm seeing is:

digikamthumbnail.cpp:416:17: error: invalid use of incomplete type 'png_info
{aka struct png_info_def}'
In file included from digikamthumbnail.cpp:96:0:
/usr/include/png.h:741:16: error: forward declaration of 'png_info {aka struct
png_info_def}'
digikamthumbnail.cpp:419:17: error: invalid use of incomplete type 'png_info
{aka struct png_info_def}'
In file included from digikamthumbnail.cpp:96:0:
/usr/include/png.h:741:16: error: forward declaration of 'png_info {aka struct
png_info_def}'
digikamthumbnail.cpp:425:17: error: invalid use of incomplete type 'png_info
{aka struct png_info_def}'
In file included from digikamthumbnail.cpp:96:0:
/usr/include/png.h:741:16: error: forward declaration of 'png_info {aka struct
png_info_def}'

  You can simply apply the patch with the sed call:

  sed -i '/info_ptr->color_type/s|info_ptr->color_type|color_type|'
${srcdir}/digikam/digikam/kioslave/digikamthumbnail.cpp

  Then digikam builds against libpng15:

Finished making: tde-digikam 14.0.0_dev-1 (Tue Jun 26 19:03:33 UTC 2012)


-- 
David C. Rankin, J.D.,P.E.