digikam stable port information

Info4: <<
Package: digikam-%type_pkg[kde]
Version: 1.1.0
Revision: 4
Description: KDE4 - photo management
Type: kde (x11 mac)
License: GPL/LGPL
Maintainer: Benjamin Reed

Depends: <<
kdebase4-runtime-%type_pkg[kde] (>= 4.4.0-1),
kdelibs4-%type_pkg[kde]-shlibs (>= 4.4.0-1),
kdepimlibs4-%type_pkg[kde]-shlibs (>= 4.4.0-1),
kipi-plugins4-%type_pkg[kde] (>= 1.1.0-1),
lensfun-shlibs,
libgphoto2-shlibs,
libkdcraw-8-%type_pkg[kde]-shlibs (>= 4.2.0-1),
libkexiv2-8-%type_pkg[kde]-shlibs (>= 4.2.0-1),
libkipi-7-%type_pkg[kde]-shlibs (>= 4.2.0-1),
liblqr1-shlibs,
marble4-%type_pkg[kde],
phonon-%type_pkg[kde]-shlibs (>= 4.5.0-1),
qt4-base-%type_pkg[kde]-qt3support-shlibs (>= 4.7.3-1),
qt4-base-%type_pkg[kde]-qtcore-shlibs (>= 4.7.3-1),
qt4-base-%type_pkg[kde]-qtdbus-shlibs (>= 4.7.3-1),
qt4-base-%type_pkg[kde]-qtgui-shlibs (>= 4.7.3-1),
qt4-base-%type_pkg[kde]-qtsql-shlibs (>= 4.7.3-1),
qt4-base-%type_pkg[kde]-qtxml-shlibs (>= 4.7.3-1),
soprano-%type_pkg[kde]-shlibs (>= 2.4.0-1),
%N-shlibs (>= %v-%r)
<<
BuildDepends: <<
automoc-%type_pkg[kde] (>= 0.9.89-0),
cmake (>= 2.6.4-1),
dbus1.3-dev,
doxygen,
fink (>= 0.29.7-1),
fink-package-precedence,
flag-sort,
fontconfig2-dev (>= 2.8.0-4),
freetype219 (>= 2.3.12-1),
glib2-dev (>= 2.22.0-1),
kde4-buildenv (>= 4.4.0-1),
kdebase4-%type_pkg[kde]-dev (>= 4.4.0-1),
kdeedu4-%type_pkg[kde]-dev (>= 4.4.0-1),
kdelibs4-%type_pkg[kde]-dev (>= 4.4.0-1),
kdepimlibs4-%type_pkg[kde]-dev (>= 4.4.0-1),
kipi-plugins4-%type_pkg[kde] (>= 1.1.0-1),
lcms,
lensfun,
libexiv2-0.19,
libjasper.1,
libgettext8-dev,
libgphoto2,
libkdcraw-8-%type_pkg[kde]-dev (>= 4.2.0-1),
libkexiv2-8-%type_pkg[kde]-dev (>= 4.2.0-1),
libkipi-7-%type_pkg[kde]-dev (>= 4.2.0-1),
liblqr1,
# libpng15, # still needs patching to be buildable with png15
libpng14,
libtiff,
pkgconfig (>= 0.23-1),
phonon-%type_pkg[kde] (>= 4.5.0-1),
qt4-base-%type_pkg[kde] (>= 4.7.3-1),
soprano-%type_pkg[kde]-dev (>= 2.4.0-1),
(%type_pkg[kde] = x11) x11-dev,
system-openssl-dev
<<
GCC: 4.0

Source: mirror:sourceforge:digikam/digikam-%v.tar.bz2
Source-MD5: 94a536e7387325c7b73ab2ac7b0a9a62
PatchFile: digikam.patch
PatchFile-MD5: d6125bcb813ef43d423c49f7f283e7b2
PatchScript: <<
#!/bin/sh -ev
%{default_script}

# new png no longer has deprecated old thing from old png
perl -pi -e 's,png_set_gray_1_2_4_to_8,png_set_expand_gray_1_2_4_to_8,g' libs/3rdparty/cimg/CImg.h libs/dimg/loaders/pngloader.cpp libs/threadimageio/thumbnailbasic.cpp

mkdir -p build/flag-sorted
pushd build/flag-sorted
# I f'king hate cmake and its ways to pass compilers
# with wrappers that vary from package to package and
# among different versions of cmake
echo '#!/bin/sh -ev' > gcc
echo 'exec %p/bin/flag-sort ${0##*/} "$@"' >> gcc
chmod 755 gcc
ln -s gcc g++
popd
<<

SetCFLAGS: -MD
SetCXXFLAGS: -MD
CompileScript: <<
#!/bin/sh -ev

export KDE4_PREFIX="%p" KDE4_TYPE="%type_pkg[kde]"
. %p/sbin/kde4-buildenv.sh

mkdir -p build
pushd build
# CC='%p/bin/flag-sort gcc' CXX='%p/bin/flag-sort g++' cmake
cmake \
-DCMAKE_C_COMPILER:FILEPATH='%b/build/flag-sorted/gcc' \
-DCMAKE_CXX_COMPILER:FILEPATH='%b/build/flag-sorted/g++' \
-DBUILD_po:BOOL=OFF \
$KDE4_CMAKE_ARGS ..
make VERBOSE=1
fink-package-precedence --depfile-ext='\.d' .
popd
<<

InstallScript: <<
#!/bin/sh -ev

pushd build
make -j1 install/fast DESTDIR="%d"
popd
<<
SplitOff: <<
Package: %N-shlibs
Depends: <<
kdelibs4-%type_pkg[kde]-shlibs (>= 4.4.0-1),
lcms-shlibs,
libjasper.1-shlibs,
libjpeg8-shlibs,
libkdcraw-8-%type_pkg[kde]-shlibs (>= 4.2.4-1),
libkexiv2-8-%type_pkg[kde]-shlibs (>= 4.2.4-1),
libpng14-shlibs,
libtiff-shlibs,
marble4-%type_pkg[kde] (>= 4.4.0-1),
qt4-base-%type_pkg[kde]-qt3support-shlibs (>= 4.7.3-1),
qt4-base-%type_pkg[kde]-qtcore-shlibs (>= 4.7.3-1),
qt4-base-%type_pkg[kde]-qtdbus-shlibs (>= 4.7.3-1),
qt4-base-%type_pkg[kde]-qtgui-shlibs (>= 4.7.3-1),
qt4-base-%type_pkg[kde]-qtsql-shlibs (>= 4.7.3-1),
qt4-base-%type_pkg[kde]-qtxml-shlibs (>= 4.7.3-1),
(%type_pkg[kde] = x11) x11-shlibs
<<
Files: <<
opt/kde4/%type_pkg[kde]/lib/libdigikamcore.1*.dylib
opt/kde4/%type_pkg[kde]/lib/libdigikamdatabase.1*.dylib
<<
Shlibs: <<
%p/opt/kde4/%type_pkg[kde]/lib/libdigikamcore.1.dylib 1.0.0 %n (>= 0.10.0-3)
%p/opt/kde4/%type_pkg[kde]/lib/libdigikamdatabase.1.dylib 1.0.0 %n (>= 0.10.0-3)
<<
<<
SplitOff2: <<
Package: %N-dev
Depends: %N (>= 0.10.0-1)
BuildDependsOnly: true
Files: <<
opt/kde4/%type_pkg[kde]/include
opt/kde4/%type_pkg[kde]/lib/*.dylib
<<
<<

PostInstScript: %p/opt/kde4/%type_pkg[kde]/bin/kde4-postinst.sh || :

DescDetail: <<
digiKam is an advanced digital photo management application for linux.

The people who inspired digiKam's design are the photographers like you who
want to view, manage, edit, enhance, organize, tag, and share photographs
under Linux systems.
<<
DescPackaging: <<
Upstream revisions 1216968 & 1083821 for libpng15:
http://websvn.kde.org/trunk/extragear/graphics/digikam/libs/dimg/loaders/pngloader.cpp

Annoying flag hackery needed to avoid getting x11's png.h
<<
<<

digikam stable port .patch

diff -Nurd digikam-1.1.0.orig/digikam/CMakeLists.txt digikam-1.1.0/digikam/CMakeLists.txt
--- digikam-1.1.0.orig/digikam/CMakeLists.txt 2010-01-31 08:22:48.000000000 -0500
+++ digikam-1.1.0/digikam/CMakeLists.txt 2012-05-17 13:31:26.000000000 -0400
@@ -73,6 +73,7 @@
${JPEG_INCLUDE_DIR}
${PNG_PNG_INCLUDE_DIR}
${TIFF_INCLUDE_DIR}
+ ${LENSFUN_INCLUDE_DIR}
)


diff -Nurd digikam-1.1.0.orig/imageplugins/lenscorrection/CMakeLists.txt digikam-1.1.0/imageplugins/lenscorrection/CMakeLists.txt
--- digikam-1.1.0.orig/imageplugins/lenscorrection/CMakeLists.txt 2010-01-31 08:21:13.000000000 -0500
+++ digikam-1.1.0/imageplugins/lenscorrection/CMakeLists.txt 2012-05-17 13:31:26.000000000 -0400
@@ -3,6 +3,7 @@
distortion
vignetting
${CMAKE_CURRENT_BINARY_DIR}/../../
+ ${LENSFUN_INCLUDE_DIR}
)

SET(autocorrection_SRCS autocorrection/autocorrectiontool.cpp
diff -Nurd digikam-1.1.0.orig/libs/dimg/loaders/pngloader.cpp digikam-1.1.0/libs/dimg/loaders/pngloader.cpp
--- digikam-1.1.0.orig/libs/dimg/loaders/pngloader.cpp 2010-01-31 08:21:36.000000000 -0500
+++ digikam-1.1.0/libs/dimg/loaders/pngloader.cpp 2012-05-17 16:01:26.000000000 -0400
@@ -73,6 +73,12 @@
namespace Digikam
{

+#if PNG_LIBPNG_VER_MAJOR >= 1 && PNG_LIBPNG_VER_MINOR >= 5
+typedef png_bytep iCCP_data;
+#else
+typedef png_charp iCCP_data;
+#endif
+
PNGLoader::PNGLoader(DImg* image)
: DImgLoader(image)
{
@@ -105,7 +111,11 @@
unsigned char buf[PNG_BYTES_TO_CHECK];

size_t membersRead = fread(buf, 1, PNG_BYTES_TO_CHECK, f);
+#if PNG_LIBPNG_VER >= 10400
+ if ((membersRead != PNG_BYTES_TO_CHECK) || png_sig_cmp(buf, 0, PNG_BYTES_TO_CHECK))
+#else
if ((membersRead != PNG_BYTES_TO_CHECK) || !png_check_sig(buf, PNG_BYTES_TO_CHECK))
+#endif
{
kDebug() << "Not a PNG image file.";
fclose(f);
@@ -165,7 +175,11 @@
CleanupData *cleanupData = new CleanupData;
cleanupData->setFile(f);

+#if PNG_LIBPNG_VER >= 10400
+ if (setjmp(png_jmpbuf(png_ptr)))
+#else
if (setjmp(png_ptr->jmpbuf))
+#endif
{
kDebug() << "Internal libPNG error during reading file. Process aborted!";
png_destroy_read_struct(&png_ptr, &info_ptr, NULL);
@@ -322,7 +336,11 @@
#ifdef ENABLE_DEBUG_MESSAGES
kDebug() << "PNG in PNG_COLOR_TYPE_GRAY";
#endif
+#if PNG_LIBPNG_VER >= 10400
+ png_set_expand_gray_1_2_4_to_8(png_ptr);
+#else
png_set_gray_1_2_4_to_8(png_ptr);
+#endif
png_set_gray_to_rgb(png_ptr);

if (QSysInfo::ByteOrder == QSysInfo::LittleEndian) // Intel
@@ -473,7 +491,8 @@

if (m_loadFlags & LoadICCData)
{
- png_charp profile_name, profile_data=NULL;
+ png_charp profile_name;
+ iCCP_data profile_data=NULL;
png_uint_32 profile_size;
int compression_type;

@@ -627,7 +646,11 @@
CleanupData *cleanupData = new CleanupData;
cleanupData->setFile(f);

- if (setjmp(png_ptr->jmpbuf))
+#if PNG_LIBPNG_VER >= 10400
+ if (setjmp(png_jmpbuf(png_ptr)))
+#else
+ if (setjmp(png_ptr->jmpbuf))
+#endif
{
kDebug() << "Internal libPNG error during writing file. Process aborted!";
png_destroy_write_struct(&png_ptr, (png_infopp) & info_ptr);
@@ -705,7 +728,7 @@

if (!profile_rawdata.isEmpty())
{
- png_set_iCCP(png_ptr, info_ptr, (png_charp)("icc"), PNG_COMPRESSION_TYPE_BASE, profile_rawdata.data(), profile_rawdata.size());
+ png_set_iCCP(png_ptr, info_ptr, (png_charp)("icc"), PNG_COMPRESSION_TYPE_BASE, (iCCP_data)profile_rawdata.data(), profile_rawdata.size());
}

// -------------------------------------------------------------------
diff -Nurd digikam-1.1.0.orig/libs/threadimageio/thumbnailbasic.cpp digikam-1.1.0/libs/threadimageio/thumbnailbasic.cpp
--- digikam-1.1.0.orig/libs/threadimageio/thumbnailbasic.cpp 2010-01-31 08:21:53.000000000 -0500
+++ digikam-1.1.0/libs/threadimageio/thumbnailbasic.cpp 2012-05-17 19:48:51.000000000 -0400
@@ -137,7 +137,11 @@
unsigned char buf[PNG_BYTES_TO_CHECK];

size_t itemsRead = fread(buf, 1, PNG_BYTES_TO_CHECK, f);
+#if PNG_LIBPNG_VER >= 10400
+ if (itemsRead != 1 || png_sig_cmp(buf, 0, PNG_BYTES_TO_CHECK))
+#else
if (itemsRead != 1 || !png_check_sig(buf, PNG_BYTES_TO_CHECK))
+#endif
{
fclose(f);
return qimage;

digikam _unstable_ port .patch