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.