File digikam.spec of Package digikam

#
# spec file for package digikam
#
# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.

# Please submit bugfixes or comments via http://bugs.opensuse.org/
#


Name:           digikam
Version:        4.3.0
Release:        0
%define rversion 4.3.0
Summary:        A KDE Photo Manager
License:        GPL-2.0+
Group:          Productivity/Graphics/Viewers
Url:            http://www.digikam.org/
Source0:        http://download.kde.org/stable/%{name}/%{name}-%{rversion}.tar.bz2
# PATCH-FIX-OPENSUSE digikam-buildtime.patch -- Remove build time references so build-compare can do its work
Patch0:         digikam-buildtime.patch
# PATCH-FIX-OPENSUSE remove-gplv2-only.patch idoenmez@suse.de bnc#711963 -- Remove GPLv2 only files from the build system
Patch3:         remove-gplv2-only.patch
# PATCH-FIX-OPENSUSE digikam_no_build_vkontakte.diff tittiatcoke@gmail.com -- Don't build libvkontakte (use external one)
Patch5:         digikam_no_build_vkontakte.diff
# PATCH-FIX-UPSTREAM digikam-3.0.0.no-kdcraw.version-check.patch -- version check for libkdcraw currently broken
Patch6:         digikam-3.0.0.no-kdcraw.version-check.patch
# PATCH-FIX-UPSTREAM bug325580.patch -- Fix job reset when it's done : do not return directly is an error appera with a job, without to reset job.
Patch7:         bug325580.patch
# PATCH-FIX-UPSTREAM handle_right_libkexiv2_version.diff
Patch8:         handle_right_libkexiv2_version.diff
# PATCH-FIX-UPSTREAM handle_right_libkexiv2_version2.diff
Patch9:         handle_right_libkexiv2_version2.diff
BuildRequires:  ImageMagick-devel
BuildRequires:  bison
BuildRequires:  boost-devel
BuildRequires:  doxygen
BuildRequires:  fdupes
BuildRequires:  flex
BuildRequires:  gdk-pixbuf-devel
BuildRequires:  libxml2-devel
BuildRequires:  libxslt-devel
%if 0%{?suse_version} > 1310
BuildRequires:  baloo-devel
%endif
%if 0%{?suse_version} > 1310
BuildRequires:  gstreamer-plugins-qt-devel
%else
BuildRequires:  gstreamer-0_10-plugins-qt-devel
%endif
BuildRequires:  lensfun-devel
%if 0%{?suse_version} > 1230
BuildRequires:  libeigen3-devel
%endif
BuildRequires:  libexpat-devel
BuildRequires:  libgphoto2-devel
BuildRequires:  libgpod-devel
BuildRequires:  libjasper-devel
BuildRequires:  libkdcraw-devel
BuildRequires:  libkde4-devel
BuildRequires:  libkdepimlibs4-devel
BuildRequires:  libkexiv2-devel
BuildRequires:  pkgconfig(libkipi) >= 2.0.0
%if 0%{?suse_version} > 1230
BuildRequires:  libkqoauth-devel
%endif
BuildRequires:  libMagick++-devel
BuildRequires:  libksane-devel
BuildRequires:  libkvkontakte-devel
%if 0%{?suse_version} < 1320
BuildRequires:  liblcms-devel
%else
BuildRequires:  liblcms2-devel
%endif
BuildRequires:  liblqr-devel
BuildRequires:  libpgf-devel
BuildRequires:  libqca2-devel
BuildRequires:  libqjson-devel
BuildRequires:  libusb-1_0-devel
BuildRequires:  libusb-compat-devel
BuildRequires:  marble-devel
BuildRequires:  opencv-devel >= 2.4.5
BuildRequires:  pkgconfig(glib-2.0)
BuildRequires:  pkgconfig(glu)
%if 0%{?suse_version}
BuildRequires:  update-desktop-files
%endif
Requires:       kipi-plugins >= %{version}
Requires:       libqt4-sql-mysql
Requires:       libqt4-sql-sqlite
Recommends:     %{name}-doc
Recommends:     %{name}-lang
BuildRoot:      %{_tmppath}/%{name}-%{version}-build
%requires_ge    libkipi8
%kde4_runtime_requires

%description
digiKam is a simple digital photo management application for KDE, which
allows you to import and organize your digital photos easily. The
photos can be organized in albums, which can be sorted chronologically,
by directory layout, or by custom collections. An easy-to-use interface
that enables you to connect to your camera and preview, download, or
delete your images, is provided.

%package doc
Summary:        Documentation of Digikam
License:        GFDL-1.2
Group:          Documentation/HTML
BuildArch:      noarch

%description doc
This package contains the documentation for digikam

# split out acquireimage plugin in order to allow the main
# kipi-plugins package to be included on livecd (acquireimage
# requires sane-backends, which is blocked for livecd)
%package -n kipi-plugins-acquireimage
Summary:        KDE Plug-Ins for Image Manipulation - Acquireimage plugin
License:        GPL-2.0+
Group:          Productivity/Graphics/Other
Requires:       kipi-plugins = %{version}
Supplements:    packageand(kipi-plugins:sane-backends)
%kde4_runtime_requires

%description -n kipi-plugins-acquireimage
This is the Acquireimage plugin from the kipi plugins package.

# split out geolocation plugin in order to allow the main
# kipi-plugins package to be included on livecd (geolocation
# requires marble, which is blocked for livecd)
%package -n kipi-plugins-geolocation
Summary:        KDE Plug-Ins for Image Manipulation - Geolocation plugin
License:        GPL-2.0+
Group:          Productivity/Graphics/Other
Requires:       kipi-plugins = %{version}
Supplements:    packageand(kipi-plugins:marble)
%kde4_runtime_requires

%description -n kipi-plugins-geolocation
This is the Geolocation plugin from the kipi plugins package.

%package -n kipi-plugins
Summary:        KDE Plug-Ins for Image Manipulation
License:        GPL-2.0+
Group:          Productivity/Graphics/Other
Recommends:     ImageMagick
Recommends:     enblend-enfuse
Recommends:     hugin
Recommends:     kipi-plugins-lang = %{version}
Supplements:    packageand(kipi-plugins:marble)
%kde4_runtime_requires

%description -n kipi-plugins
A set of plug-ins for the KDE KIPI interface, used by some KDE imaging
applications.

%package -n libkgeomap-devel
Summary:        Development files for libkgeomap
License:        GPL-2.0+
Group:          Development/Libraries/KDE
Requires:       libkgeomap1 = %{version}

%description -n libkgeomap-devel
This package contains development files for libkgeomap.

%package -n libkgeomap1
Summary:        World-Map Library interface for KDE
License:        GPL-2.0+
Group:          System/Libraries
Recommends:     libkgeomap-lang = %{version}
Recommends:     marble
# libkgeomap was last used at openSUSE 12.1 (version 2.2.0)
Provides:       libkgeomap = %{version}
Obsoletes:      libkgeomap < %{version}

%description -n libkgeomap1
Libkgeomap is a wrapper around different world-map components, to browse and
arrange photos over a map.
Currently supported map engine are:
- Marble
- OpenstreetMap (via Marble)
- GoogleMap
This library is used by kipi-plugins, digiKam and other kipi host programs.

%package -n libkface-devel
Summary:        Development files for libkface
License:        BSD-3-Clause and GPL-2.0+ and LGPL-2.1+ and MIT
Group:          Development/Libraries/KDE
Requires:       libkface2 = %{version}

%description -n libkface-devel
This package contains development files for libkface.

%package -n libkface2
Summary:        Wrapper around LibFace to perform face recognition and detection over pictures
License:        BSD-3-Clause and GPL-2.0+ and LGPL-2.1+ and MIT
Group:          System/Libraries

%description -n libkface2
Libkface is a Qt/C++ wrapper around LibFace to perform face recognition and
detection over pictures.

%package -n libmediawiki1
Summary:        Interface for MediaWiki based web services
License:        GPL-2.0+
Group:          System/Libraries
Provides:       libmediawiki = %{version}

%description -n libmediawiki1
libmediawiki is a KDE C++ interface for MediaWiki based web service as
wikipedia.org.

This package contains the shared library.

%package -n libmediawiki-devel
Summary:        Development files for libmediawiki
License:        GPL-2.0+
Group:          Development/Libraries/C and C++
Requires:       libmediawiki1 = %{version}

%description -n libmediawiki-devel
libmediawiki is a KDE C++ interface for MediaWiki based web service as
wikipedia.org.

This package contains the development files for libmediawiki.

%lang_package

%lang_package -n kipi-plugins

%lang_package -n libkgeomap

%prep
%setup -q -n %{name}-%{rversion}
%patch0
%patch3
%patch5
%patch6 -p1
%patch7 -p1
%patch8 -p1
%patch9 -p1

# Remove build time references so build-compare can do its work
FAKE_BUILDDATE=$(LC_ALL=C date -u -r %{_sourcedir}/%{name}.changes '+%%b %%e %%Y')
sed -i "s/__DATE__/\"$FAKE_BUILDDATE\"/" core/digikam/utils/version.h.cmake.in
sed -i "s/__DATE__/\"$FAKE_BUILDDATE\"/g" extra/kipi-plugins/common/libkipiplugins/tools/kpversion.h.cmake.in

pushd extra/kipi-plugins
# Remove GPL-v2 only files
rm gpssync/borrowed/modeltest.cpp
rm gpssync/borrowed/modeltest.h
popd

%build
%if 0%{?suse_version} < 1320
EXTRA_FLAGS="-DENABLE_LCMS2=OFF"
%else
EXTRA_FLAGS="-DENABLE_LCMS2=ON"
%endif
%cmake_kde4 -d build -- -DDIGIKAMSC_USE_PRIVATE_KDEGRAPHICS=FALSE -DENABLE_INTERNALMYSQL=FALSE -DENABLE_KDEPIMLIBSSUPPORT=TRUE $EXTRA_FLAGS
# there are files in there that are so heavy to the compiler, that one is enough
%make_jobs VERBOSE=1

%install
%kde4_makeinstall -C build

# Not needed, the package doesn't actually provide any shared libraries
rm -f %{buildroot}%{_kde4_libdir}/libdigikamcore.so
rm -f %{buildroot}%{_kde4_libdir}/libdigikamdatabase.so
rm -f %{buildroot}%{_kde4_libdir}/libkipiplugins.so

# Not needed
rm -fv %{buildroot}%{_kde4_libdir}/*.a

%if 0%{?suse_version}
%suse_update_desktop_file -r %{name} Qt KDE Graphics Photography
%suse_update_desktop_file -r showfoto Qt KDE Graphics Photography
%suse_update_desktop_file -r dngconverter Qt KDE Graphics Photography
%suse_update_desktop_file -r expoblending Qt KDE Graphics Photography
%suse_update_desktop_file -r panoramagui Qt KDE Graphics Photography
%suse_update_desktop_file -r scangui Qt KDE Graphics Scanning
%endif

%find_lang %{name}

%find_lang libkgeomap libkgeomap.lang

%if 0%{?kde_updatedapps}
%find_lang libkipi libkipi.lang
%else
rm -f %{buildroot}/usr/share/locale/*/LC_MESSAGES/libkipi.mo
%endif

%find_lang kipiplugins kipiplugin.lang

for l in acquireimages advancedslideshow batchprocessimages calendar dngconverter expoblending facebook flashexport flickrexport galleryexport gpssync htmlexport imageviewer ipodexport jpeglossless kioexportimport metadataedit picasawebexport piwigoexport printimages rawconverter removeredeyes sendimages shwup smug timeadjust;
do
%find_lang kipiplugin_$l kipiplugin.lang
done

# this allows the icon to be used as an application icon safely
for res in 16x16 22x22 32x32 48x48 64x64 128x128
do
pushd %{buildroot}%{_kde4_iconsdir}/hicolor/$res/apps/
ln -s %{_kde4_iconsdir}/oxygen/$res/apps/rawconverter.png
popd
done
pushd %{buildroot}%{_kde4_iconsdir}/hicolor/scalable/apps/
ln -s %{_kde4_iconsdir}/oxygen/scalable/apps/rawconverter.svgz
popd

%fdupes -s %{buildroot}

%kde_post_install

%post -p /sbin/ldconfig

%postun -p /sbin/ldconfig

%post -n kipi-plugins -p /sbin/ldconfig

%postun -n kipi-plugins -p /sbin/ldconfig

%post -n libkgeomap1 -p /sbin/ldconfig

%postun -n libkgeomap1 -p /sbin/ldconfig

%post -n libkface2 -p /sbin/ldconfig

%postun -n libkface2 -p /sbin/ldconfig

%post -n libmediawiki1 -p /sbin/ldconfig

%postun -n libmediawiki1 -p /sbin/ldconfig

%files
%defattr(-,root,root,-)
%doc core/{AUTHORS,COPYING,COPYING-CMAKE-SCRIPTS,COPYING.LIB,ChangeLog,NEWS,README,TODO,TODO.FACE,TODO.MYSQLPORT,TODO.TABLEVIEW}
%{_kde4_applicationsdir}/digikam.desktop
%{_kde4_applicationsdir}/showfoto.desktop
%{_kde4_appsdir}/digikam/
%{_kde4_appsdir}/kconf_update/adjustlevelstool.upd
%{_kde4_appsdir}/showfoto/
%{_kde4_appsdir}/solid
%{_kde4_bindir}/cleanup_digikamdb
%{_kde4_bindir}/digikam
%{_kde4_bindir}/digitaglinktree
%{_kde4_bindir}/showfoto
%dir %{_kde4_iconsdir}/hicolor/*
%dir %{_kde4_iconsdir}/hicolor/*/apps
%{_kde4_iconsdir}/hicolor/*/apps/digikam.*
%{_kde4_iconsdir}/hicolor/*/apps/showfoto.*
%{_kde4_libdir}/libdigikamcore.so.*
%{_kde4_libdir}/libdigikamdatabase.so.*
%{_kde4_modulesdir}/digikam*.so
%{_kde4_modulesdir}/kio_digikamalbums.so
%{_kde4_modulesdir}/kio_digikamdates.so
%{_kde4_modulesdir}/kio_digikammapimages.so
%{_kde4_modulesdir}/kio_digikamsearch.so
%{_kde4_modulesdir}/kio_digikamtags.so
%{_kde4_servicesdir}/digikam*
%{_kde4_servicetypesdir}/digikamimageplugin.desktop
%dir %{_kde4_datadir}/appdata
%{_kde4_datadir}/appdata/digikam.appdata.xml
%{_kde4_datadir}/appdata/showfoto.appdata.xml
%{_kde4_datadir}/appdata/digiKam-ImagePlugin*.metainfo.xml

%files doc
%defattr(-,root,root,-)
%doc COPYING.DOC
%doc %{_kde4_htmldir}/*/
%doc %{_mandir}/man1/cleanup_digikamdb.1%{ext_man}
%doc %{_mandir}/man1/digitaglinktree.1%{ext_man}

%files lang -f %{name}.lang
%defattr(-,root,root,-)
%exclude %{_kde4_htmldir}/en/digikam
%exclude %{_kde4_htmldir}/en/showfoto

%files -n kipi-plugins
%defattr(-,root,root,-)
%doc extra/kipi-plugins/{AUTHORS,COPYING,COPYING-ADOBE,COPYING-CMAKE-SCRIPTS,ChangeLog,NEWS,README,TODO}
%{_kde4_applicationsdir}/*.desktop
%exclude %{_kde4_applicationsdir}/digikam.desktop
%exclude %{_kde4_applicationsdir}/showfoto.desktop
%exclude %{_kde4_applicationsdir}/scangui.desktop
%{_kde4_appsdir}/kipiplugin_*
%{_kde4_appsdir}/photolayoutseditor
%{_kde4_appsdir}/kipi/tips
%{_kde4_appsdir}/kipi/*ui.rc
%{_kde4_bindir}/dngconverter
%{_kde4_bindir}/dnginfo
%{_kde4_bindir}/expoblending
%{_kde4_bindir}/panoramagui
%{_kde4_bindir}/photolayoutseditor
%{_kde4_configkcfgdir}/photolayoutseditor.kcfg
%dir %{_kde4_iconsdir}/hicolor/24x24/apps
%{_kde4_iconsdir}/hicolor/*/actions/*.*
%{_kde4_iconsdir}/hicolor/*/apps/kipi-*.*
%exclude %{_kde4_iconsdir}/hicolor/*/apps/kipi-gpsimagetag.png
%{_kde4_iconsdir}/hicolor/*/apps/photolayoutseditor.*
%{_kde4_iconsdir}/hicolor/*/apps/rawconverter.*
%{_kde4_iconsdir}/oxygen/*/apps/rawconverter.*
%{_kde4_libdir}/libkipiplugins.so.*
%{_kde4_modulesdir}/kipiplugin_*.so
%exclude %{_kde4_modulesdir}/kipiplugin_acquireimages.so
%exclude %{_kde4_modulesdir}/kipiplugin_gpssync.so
%{_kde4_servicesdir}/kipiplugin_*.desktop
%exclude %{_kde4_servicesdir}/kipiplugin_acquireimages.desktop
%exclude %{_kde4_servicesdir}/kipiplugin_gpssync.desktop
%{_kde4_servicetypesdir}/photolayoutseditorborderplugin.desktop
%{_kde4_servicetypesdir}/photolayoutseditoreffectplugin.desktop
%dir %{_kde4_sharedir}/templates
%{_kde4_sharedir}/templates/kipiplugins_photolayoutseditor/

%files -n kipi-plugins-lang -f kipiplugin.lang
%defattr(-,root,root,-)
%exclude %{_kde4_htmldir}/en/kipi-plugins

%files -n kipi-plugins-acquireimage
%defattr(-,root,root,-)
%{_kde4_applicationsdir}/scangui.desktop
%{_kde4_bindir}/scangui
%{_kde4_modulesdir}/kipiplugin_acquireimages.so
%{_kde4_servicesdir}/kipiplugin_acquireimages.desktop

%files -n kipi-plugins-geolocation
%defattr(-,root,root)
%{_kde4_appsdir}/gpssync
%{_kde4_iconsdir}/hicolor/*/apps/kipi-gpsimagetag.png
%{_kde4_modulesdir}/kipiplugin_gpssync.so
%{_kde4_servicesdir}/kipiplugin_gpssync.desktop

%files -n libkgeomap-devel
%defattr(-,root,root,-)
%doc extra/libkgeomap/{AUTHORS,COPYING,COPYING-CMAKE-SCRIPTS,COPYING.LIB,README,TODO,kmap2kgeomap-TODO.txt}
%{_kde4_appsdir}/cmake/modules/FindKGeoMap.cmake
%{_kde4_includedir}/libkgeomap/
%{_kde4_libdir}/pkgconfig/libkgeomap.pc
%{_kde4_libdir}/libkgeomap.so

%files -n libkgeomap-lang -f libkgeomap.lang
%defattr(-,root,root,-)

%files -n libkgeomap1
%defattr(-,root,root,-)
%{_kde4_appsdir}/libkgeomap/
%{_kde4_libdir}/libkgeomap.so.1*

%files -n libkface2
%defattr(-,root,root,-)
%{_kde4_appsdir}/libkface
%{_kde4_libdir}/libkface.so.2*

%files -n libkface-devel
%defattr(-,root,root,-)
%doc extra/libkface/{AUTHORS,COPYING,COPYING-CMAKE-SCRIPTS,COPYING.LIB,README,TODO}
%{_kde4_libdir}/libkface.so
%{_kde4_includedir}/libkface/
%{_kde4_libdir}/pkgconfig/libkface.pc
%{_kde4_appsdir}/cmake/modules/FindKface.cmake

%files -n libmediawiki1
%defattr(-,root,root,-)
%{_kde4_libdir}/libmediawiki.so.1*

%files -n libmediawiki-devel
%defattr(-,root,root,-)
%doc extra/libmediawiki/{AUTHORS,COPYING,COPYING-CMAKE-SCRIPTS,COPYING.LIB,README,TODO}
%{_kde4_includedir}/libmediawiki/
%{_kde4_libdir}/libmediawiki.so
%{_kde4_libdir}/pkgconfig/libmediawiki.pc
%{_kde4_appsdir}/cmake/modules/FindMediawiki.cmake

%changelog