digikam/digikam.spec

512 lines
17 KiB
RPMSpec
Raw Normal View History

#
# spec file for package digikam
#
# Copyright (c) 2016 SUSE LINUX 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.14.0
Release: 0
%define rversion 4.14.0
%define libversion 15.12.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
Source1: digikam-libs.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-UPSTREAM digikam-4.4.0.no-kdcraw.version-check.patch -- version check for libkdcraw currently broken
Patch6: digikam-4.4.0.no-kdcraw.version-check.patch
BuildRequires: ImageMagick-devel
BuildRequires: bison
BuildRequires: boost-devel
BuildRequires: doxygen
BuildRequires: fdupes
BuildRequires: flex
BuildRequires: gdk-pixbuf-devel
%if 0%{?suse_version} <= 1310 || 0%{?suse_version} == 1320
BuildRequires: libkdcraw-devel
BuildRequires: libkexiv2-devel
BuildRequires: libkface-devel
BuildRequires: libkgeomap-devel
BuildRequires: libksane-devel
BuildRequires: libmediawiki-devel
BuildRequires: pkgconfig(libkipi) >= 2.0.0
# libkgeomap package provides older lib with same so name.
Requires: libkgeomap2
%else
BuildRequires: libexiv2-devel
BuildRequires: libmarblewidget-devel
BuildRequires: libraw-devel
BuildRequires: sane-backends-devel
%endif
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: libkde4-devel
BuildRequires: libkdepimlibs4-devel
%if 0%{?suse_version} > 1230
BuildRequires: libkqoauth-devel
%endif
BuildRequires: libMagick++-devel
BuildRequires: libkvkontakte-devel
%if 0%{?suse_version} < 1320 && !0%{?is_opensuse}
# from 13.2 upwards, and also Leap 42.1 (1315 && is_opensuse) we prefer lcms2
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
%if 0%{?suse_version} <= 1320 && !0%{?is_opensuse}
BuildRequires: marble-devel
%endif
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
%if 0%{?suse_version} > 1320 || 0%{?suse_version} == 1315
Requires: digikam-libs
%endif
%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 Image modification plugins. Upstream ships them with a
# .metainfo.xml file, which is meant to list them as extensions in a
# Software center. The ones we want installed by default we tag as Supplements(%{name}.
%package plugin-color
Summary: DigiKam: ImagePlugin-Color
License: GPL-2.0+
Group: Productivity/Graphics/Viewers
Supplements: %{name}
%description plugin-color
A tool to correct colors of image
%package plugin-decorate
Summary: DigiKam: ImagePlugin-Decorate
License: GPL-2.0+
Group: Productivity/Graphics/Viewers
Supplements: %{name}
%description plugin-decorate
A tool to decorate an image
%package plugin-enhance
Summary: DigiKam: ImagePlugin-Enhance
License: GPL-2.0+
Group: Productivity/Graphics/Viewers
Supplements: %{name}
%description plugin-enhance
digiKam plugin to enhance photographs
%package plugin-fxfilters
Summary: DigiKam: ImagePlugin-FxFilters
License: GPL-2.0+
Group: Productivity/Graphics/Viewers
Supplements: %{name}
%description plugin-fxfilters
Special effect filters plugin for digiKam
%package plugin-transform
Summary: DigiKam: ImagePlugin-Color
License: GPL-2.0+
Group: Productivity/Graphics/Viewers
Supplements: %{name}
%description plugin-transform
A tool to transform image geometry
# 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
%if 0%{?suse_version} > 1320 || 0%{?suse_version} == 1315
Requires: digikam-libs
%endif
%description -n kipi-plugins
A set of plug-ins for the KDE KIPI interface, used by some KDE imaging
applications.
%if 0%{?suse_version} > 1320 || 0%{?suse_version} == 1315
%package libs
Summary: Libraries required to run digikam
License: GPL-2.0+
Group: Productivity/Graphics/Viewers
Requires: %{name} = %{version}
#Require the lib for the shared icons
Requires: libKF5Kipi30_0_0
Requires: marble-data
Obsoletes: libkexiv2 < %{libversion}
Provides: libkexiv2 = %{libversion}
Obsoletes: libkface3 < %{libversion}
Provides: libkface3 = %{libversion}
Obsoletes: libkgeomap2 < %{libversion}
Provides: libkgeomap2 = %{libversion}
Obsoletes: libkipi11 < %{libversion}
Provides: libkipi11 = %{libversion}
Obsoletes: libksane0 < %{libversion}
Provides: libksane0 = %{libversion}
Obsoletes: libmediawiki1 < %{libversion}
Provides: libmediawiki1 = %{libversion}
%description libs
These are the libraries libkipi, libkdcraw, libkgeomap, libkexiv2, libksane and libkface which are
required for digikam to run. Upstream these libraries have moved to KF5, but digikam is still KDE4 based
%endif
%lang_package
%lang_package -n kipi-plugins
%prep
%setup -q -n %{name}-%{rversion} -a 1
%patch0
%patch3
%patch6 -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/app/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 && !0%{?is_opensuse}
EXTRA_FLAGS="-DENABLE_LCMS2=OFF"
%else
EXTRA_FLAGS="-DENABLE_LCMS2=ON"
%endif
%if 0%{?suse_version} > 1320 || 0%{?suse_version} == 1315
EXTRA_FLAGS+=" -DDIGIKAMSC_COMPILE_LIBKIPI=ON -DDIGIKAMSC_COMPILE_LIBKEXIV2=ON -DDIGIKAMSC_COMPILE_LIBKDCRAW=ON"
EXTRA_FLAGS+=" -DDIGIKAMSC_COMPILE_LIBKSANE=ON -DDIGIKAMSC_COMPILE_LIBKFACE=ON"
EXTRA_FLAGS+=" -DDIGIKAMSC_COMPILE_LIBKGEOMAP=ON -DDIGIKAMSC_COMPILE_LIBMEDIAWIKI=ON"
%endif
%cmake_kde4 -d build -- -DENABLE_MYSQLSUPPORT=TRUE -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}
%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 debianscreenshots dlnaexport dngconverter dropbox expoblending facebook flashexport flickrexport galleryexport googledrive gpssync htmlexport imageshackexport imageviewer imgurexport ipodexport jalbumexport jpeglossless kioexportimport kmlexport kopete metadataedit panorama photolayouteditor piwigoexport printimages rajceexport rawconverter removeredeyes sendimages shwup smug timeadjust videoslideshow vkontakte wikimedia yandexfotki;
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
# symlink solid actions into place known to Plasma 5, remove once digikam is KF5-based
mkdir -p %{buildroot}%{_datadir}/solid/actions
pushd %{buildroot}%{_kde4_appsdir}/solid/actions/
for i in *.desktop; do
ln -s %{_kde4_appsdir}/solid/actions/$i %{buildroot}%{_datadir}/solid/actions/
done
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
%files
%defattr(-,root,root,-)
%doc core/{AUTHORS,COPYING,COPYING-CMAKE-SCRIPTS,COPYING.LIB,ChangeLog,NEWS,README}
%{_kde4_applicationsdir}/digikam.desktop
%{_kde4_applicationsdir}/showfoto.desktop
%{_kde4_appsdir}/digikam/
%{_kde4_appsdir}/kconf_update/adjustlevelstool.upd
%{_kde4_appsdir}/showfoto/
%{_kde4_appsdir}/solid
%dir %{_datadir}/solid
%dir %{_datadir}/solid/actions
%{_datadir}/solid/actions/*.desktop
%{_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}/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
%files plugin-color
%defattr(-,root,root)
%{_kde4_modulesdir}/digikamimageplugin_color.so
%{_kde4_datadir}/appdata/digiKam-ImagePlugin_Color.metainfo.xml
%files plugin-decorate
%defattr(-,root,root)
%{_kde4_modulesdir}/digikamimageplugin_decorate.so
%{_kde4_datadir}/appdata/digiKam-ImagePlugin_Decorate.metainfo.xml
%files plugin-enhance
%defattr(-,root,root)
%{_kde4_modulesdir}/digikamimageplugin_enhance.so
%{_kde4_datadir}/appdata/digiKam-ImagePlugin_Enhance.metainfo.xml
%files plugin-fxfilters
%defattr(-,root,root)
%{_kde4_modulesdir}/digikamimageplugin_fxfilters.so
%{_kde4_datadir}/appdata/digiKam-ImagePlugin_FxFilters.metainfo.xml
%files plugin-transform
%defattr(-,root,root)
%{_kde4_modulesdir}/digikamimageplugin_transform.so
%{_kde4_datadir}/appdata/digiKam-ImagePlugin_Transform.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}/
%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}/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
%if 0%{?suse_version} > 1320 || 0%{?suse_version} == 1315
%post libs -p /sbin/ldconfig
%postun libs -p /sbin/ldconfig
%files libs
%defattr(-,root,root)
%_libdir/cmake/Kface-3.5.0/
%_libdir/cmake/libkexiv2-2.4.0/
%_libdir/libkdcraw.so*
%_libdir/libkexiv2.so*
%_libdir/libkface.so*
%_libdir/libkgeomap.so*
%_libdir/libkipi.so*
%_libdir/libksane.so*
%_libdir/libmediawiki.so*
%_kde4_iconsdir/hicolor/*/apps/kdcraw.png
# maybe not the best way to do this, but it works and is easier to remove later
%exclude %_kde4_iconsdir/hicolor/*/apps/kipi.png
%_kde4_appsdir/kipi/
%_kde4_appsdir/libkdcraw/
%_kde4_appsdir/libkexiv2/
%_kde4_appsdir/libkface/
%_kde4_appsdir/libkgeomap/
%_kde4_servicetypesdir/kipiplugin.desktop
%exclude %_kde4_appsdir/kipi/kipiplugin_*
%exclude %_kde4_appsdir/kipi/tips
%endif
%changelog