From e75250f4b523e63204046c14b7f1e6ff9e14082e9d9c64cf037894846492887c Mon Sep 17 00:00:00 2001 From: OBS User buildservice-autocommit Date: Wed, 28 Mar 2018 08:31:15 +0000 Subject: [PATCH] Updating link to change in openSUSE:Factory/digikam revision 171.0 OBS-URL: https://build.opensuse.org/package/show/KDE:Extra/digikam?expand=0&rev=74ec1a532ca32d04ca41f70805230e04 --- digikam-5.8.0.fix-db-migration-0001.patch | 236 -------- digikam-5.8.0.fix-db-migration-0002.patch | 25 - digikam-5.8.0.fix-db-migration-0003.patch | 33 -- digikam-5.8.0.fix-db-migration-0004.patch | 51 -- digikam-5.8.0.tar.xz | 3 - digikam-5.9.0.tar.xz | 3 + digikam.changes | 23 + digikam.spec | 40 +- fix-font-size-in-tooltips.patch | 78 --- fix-italian-docs-with-older-kdoctools.patch | 21 - update-internal-libraw-to-last-0.18.8.patch | 526 ------------------ ...nternal-libraw-to-last-stable-0.18.7.patch | 170 ------ 12 files changed, 27 insertions(+), 1182 deletions(-) delete mode 100644 digikam-5.8.0.fix-db-migration-0001.patch delete mode 100644 digikam-5.8.0.fix-db-migration-0002.patch delete mode 100644 digikam-5.8.0.fix-db-migration-0003.patch delete mode 100644 digikam-5.8.0.fix-db-migration-0004.patch delete mode 100644 digikam-5.8.0.tar.xz create mode 100644 digikam-5.9.0.tar.xz delete mode 100644 fix-font-size-in-tooltips.patch delete mode 100644 fix-italian-docs-with-older-kdoctools.patch delete mode 100644 update-internal-libraw-to-last-0.18.8.patch delete mode 100644 update-internal-libraw-to-last-stable-0.18.7.patch diff --git a/digikam-5.8.0.fix-db-migration-0001.patch b/digikam-5.8.0.fix-db-migration-0001.patch deleted file mode 100644 index b97d18c..0000000 --- a/digikam-5.8.0.fix-db-migration-0001.patch +++ /dev/null @@ -1,236 +0,0 @@ -From 5893fde69518d70904d2b96e13800c7432b4e4c4 Mon Sep 17 00:00:00 2001 -From: Maik Qualmann -Date: Mon, 15 Jan 2018 20:24:41 +0100 -Subject: fix schema update from V7/8 to V9 with temporary tables BUGS: 388977 - BUGS: 388867 BUGS: 388824 FIXED-IN: 5.9.0 - ---- - data/database/dbconfig.xml.cmake.in | 154 +++++++++++++++++++++++++++++------- - 2 files changed, 124 insertions(+), 30 deletions(-) - -diff --git a/data/database/dbconfig.xml.cmake.in b/data/database/dbconfig.xml.cmake.in -index a315361..2c5008f 100644 ---- a/data/database/dbconfig.xml.cmake.in -+++ b/data/database/dbconfig.xml.cmake.in -@@ -1992,8 +1992,6 @@ - END IF; - END; - -- SET SESSION OLD_ALTER_TABLE=1; -- SET SESSION FOREIGN_KEY_CHECKS=0; - DROP TRIGGER IF EXISTS delete_image; - DROP TRIGGER IF EXISTS delete_tag; - DROP TRIGGER IF EXISTS move_tagstree; -@@ -2064,85 +2062,181 @@ - ALTER TABLE TagProperties MODIFY COLUMN value LONGTEXT CHARACTER SET utf8 COLLATE utf8_general_ci; - ALTER TABLE ImageTagProperties MODIFY COLUMN property TEXT CHARACTER SET utf8 COLLATE utf8_general_ci; - ALTER TABLE ImageTagProperties MODIFY COLUMN value LONGTEXT CHARACTER SET utf8 COLLATE utf8_general_ci; -- ALTER IGNORE TABLE AlbumRoots -+ -+ RENAME TABLE AlbumRoots TO AlbumRoots_old; -+ CREATE TABLE AlbumRoots LIKE AlbumRoots_old; -+ ALTER TABLE AlbumRoots - ADD UNIQUE (identifier(127), specificPath(128)), - ENGINE InnoDB; -- ALTER IGNORE TABLE Albums -+ INSERT IGNORE INTO AlbumRoots SELECT * FROM AlbumRoots_old; -+ -+ RENAME TABLE Albums TO Albums_old; -+ CREATE TABLE Albums LIKE Albums_old; -+ ALTER TABLE Albums - ADD CONSTRAINT Albums_AlbumRoots FOREIGN KEY (albumRoot) REFERENCES AlbumRoots (id) ON DELETE CASCADE ON UPDATE CASCADE, - ADD UNIQUE (albumRoot, relativePath(255)), - ENGINE InnoDB; -- ALTER IGNORE TABLE Images -+ INSERT IGNORE INTO Albums SELECT * FROM Albums_old; -+ UPDATE Albums SET icon = NULL WHERE icon = 0; -+ -+ RENAME TABLE Images TO Images_old; -+ CREATE TABLE Images LIKE Images_old; -+ ALTER TABLE Images - ADD CONSTRAINT Images_Albums FOREIGN KEY (album) REFERENCES Albums (id) ON DELETE CASCADE ON UPDATE CASCADE, - ADD UNIQUE (album, name(255)), - ENGINE InnoDB; -- UPDATE Albums SET icon = NULL WHERE icon = 0; -- ALTER IGNORE TABLE Albums -+ INSERT IGNORE INTO Images SELECT * FROM Images_old; -+ -+ ALTER TABLE Albums - ADD CONSTRAINT Albums_Images FOREIGN KEY (icon) REFERENCES Images (id) ON DELETE SET NULL ON UPDATE CASCADE; -- ALTER IGNORE TABLE ImageHaarMatrix -+ -+ RENAME TABLE ImageHaarMatrix TO ImageHaarMatrix_old; -+ CREATE TABLE ImageHaarMatrix LIKE ImageHaarMatrix_old; -+ ALTER TABLE ImageHaarMatrix - ADD CONSTRAINT ImageHaarMatrix_Images FOREIGN KEY (imageid) REFERENCES Images (id) ON DELETE CASCADE ON UPDATE CASCADE, - ENGINE InnoDB; -- ALTER IGNORE TABLE ImageInformation -+ INSERT IGNORE INTO ImageHaarMatrix SELECT * FROM ImageHaarMatrix_old; -+ -+ RENAME TABLE ImageInformation TO ImageInformation_old; -+ CREATE TABLE ImageInformation LIKE ImageInformation_old; -+ ALTER TABLE ImageInformation - ADD CONSTRAINT ImageInformation_Images FOREIGN KEY (imageid) REFERENCES Images (id) ON DELETE CASCADE ON UPDATE CASCADE, - ENGINE InnoDB; -- ALTER IGNORE TABLE ImageMetadata -+ INSERT IGNORE INTO ImageInformation SELECT * FROM ImageInformation_old; -+ -+ RENAME TABLE ImageMetadata TO ImageMetadata_old; -+ CREATE TABLE ImageMetadata LIKE ImageMetadata_old; -+ ALTER TABLE ImageMetadata - ADD CONSTRAINT ImageMetadata_Images FOREIGN KEY (imageid) REFERENCES Images (id) ON DELETE CASCADE ON UPDATE CASCADE, - ENGINE InnoDB; -- ALTER IGNORE TABLE VideoMetadata -+ INSERT IGNORE INTO ImageMetadata SELECT * FROM ImageMetadata_old; -+ -+ RENAME TABLE VideoMetadata TO VideoMetadata_old; -+ CREATE TABLE VideoMetadata LIKE VideoMetadata_old; -+ ALTER TABLE VideoMetadata - ADD CONSTRAINT VideoMetadata_Images FOREIGN KEY (imageid) REFERENCES Images (id) ON DELETE CASCADE ON UPDATE CASCADE, - ENGINE InnoDB; -- ALTER IGNORE TABLE ImagePositions -+ INSERT IGNORE INTO VideoMetadata SELECT * FROM VideoMetadata_old; -+ -+ RENAME TABLE ImagePositions TO ImagePositions_old; -+ CREATE TABLE ImagePositions LIKE ImagePositions_old; -+ ALTER TABLE ImagePositions - ADD CONSTRAINT ImagePositions_Images FOREIGN KEY (imageid) REFERENCES Images (id) ON DELETE CASCADE ON UPDATE CASCADE, - ENGINE InnoDB; -- ALTER IGNORE TABLE ImageComments -+ INSERT IGNORE INTO ImagePositions SELECT * FROM ImagePositions_old; -+ -+ RENAME TABLE ImageComments TO ImageComments_old; -+ CREATE TABLE ImageComments LIKE ImageComments_old; -+ ALTER TABLE ImageComments - ADD CONSTRAINT ImageComments_Images FOREIGN KEY (imageid) REFERENCES Images (id) ON DELETE CASCADE ON UPDATE CASCADE, - ADD UNIQUE(imageid, type, language, author(202)), - ENGINE InnoDB; -- ALTER IGNORE TABLE ImageCopyright -+ INSERT IGNORE INTO ImageComments SELECT * FROM ImageComments_old; -+ -+ RENAME TABLE ImageCopyright TO ImageCopyright_old; -+ CREATE TABLE ImageCopyright LIKE ImageCopyright_old; -+ ALTER TABLE ImageCopyright - ADD CONSTRAINT ImageCopyright_Images FOREIGN KEY (imageid) REFERENCES Images (id) ON DELETE CASCADE ON UPDATE CASCADE, - ADD UNIQUE(imageid, property(110), value(111), extraValue(111)), - ENGINE InnoDB; -+ INSERT IGNORE INTO ImageCopyright SELECT * FROM ImageCopyright_old; -+ -+ RENAME TABLE Tags TO Tags_old; -+ CREATE TABLE Tags LIKE Tags_old; -+ ALTER TABLE Tags -+ ADD CONSTRAINT Tags_Images FOREIGN KEY (icon) REFERENCES Images (id) ON DELETE SET NULL ON UPDATE CASCADE, -+ ADD UNIQUE(pid, name(100)), -+ ENGINE InnoDB; -+ INSERT IGNORE INTO Tags SELECT * FROM Tags_old; - SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO'; - REPLACE INTO Tags (id, pid, name, icon, iconkde, lft, rgt) VALUES (0, -1, '_Digikam_root_tag_', NULL, NULL, - (SELECT MIN(tl.lft) FROM Tags AS tl), - (SELECT MAX(tr.rgt) FROM Tags AS tr)); - SET SQL_MODE=@OLD_SQL_MODE; -- UPDATE Tags set icon = NULL WHERE icon = 0; -- ALTER IGNORE TABLE Tags -- ADD CONSTRAINT Tags_Images FOREIGN KEY (icon) REFERENCES Images (id) ON DELETE SET NULL ON UPDATE CASCADE, -- ADD UNIQUE(pid, name(100)), -- ENGINE InnoDB; -- ALTER IGNORE TABLE ImageTags -+ UPDATE Tags SET icon = NULL WHERE icon = 0; -+ -+ RENAME TABLE ImageTags TO ImageTags_old; -+ CREATE TABLE ImageTags LIKE ImageTags_old; -+ ALTER TABLE ImageTags - ADD CONSTRAINT ImageTags_Images FOREIGN KEY (imageid) REFERENCES Images (id) ON DELETE CASCADE ON UPDATE CASCADE, - ADD CONSTRAINT ImageTags_Tags FOREIGN KEY (tagid) REFERENCES Tags (id) ON DELETE CASCADE ON UPDATE CASCADE, - ENGINE InnoDB; -- ALTER IGNORE TABLE ImageProperties -+ INSERT IGNORE INTO ImageTags SELECT * FROM ImageTags_old; -+ -+ RENAME TABLE ImageProperties TO ImageProperties_old; -+ CREATE TABLE ImageProperties LIKE ImageProperties_old; -+ ALTER TABLE ImageProperties - ADD CONSTRAINT ImageProperties_Images FOREIGN KEY (imageid) REFERENCES Images (id) ON DELETE CASCADE ON UPDATE CASCADE, - ADD UNIQUE (imageid, property(255)), - ENGINE InnoDB; -- ALTER IGNORE TABLE Searches -+ INSERT IGNORE INTO ImageProperties SELECT * FROM ImageProperties_old; -+ -+ ALTER TABLE Searches - ENGINE InnoDB; -- ALTER IGNORE TABLE DownloadHistory -+ -+ RENAME TABLE DownloadHistory TO DownloadHistory_old; -+ CREATE TABLE DownloadHistory LIKE DownloadHistory_old; -+ ALTER TABLE DownloadHistory - ADD UNIQUE(identifier(164), filename(165), filesize, filedate), - ENGINE InnoDB; -- ALTER IGNORE TABLE Settings -+ INSERT IGNORE INTO DownloadHistory SELECT * FROM DownloadHistory_old; -+ -+ RENAME TABLE Settings TO Settings_old; -+ CREATE TABLE Settings LIKE Settings_old; -+ ALTER TABLE Settings - ADD UNIQUE(keyword(255)), - ENGINE InnoDB; -- ALTER IGNORE TABLE ImageHistory -+ INSERT IGNORE INTO Settings SELECT * FROM Settings_old; -+ -+ RENAME TABLE ImageHistory TO ImageHistory_old; -+ CREATE TABLE ImageHistory LIKE ImageHistory_old; -+ ALTER TABLE ImageHistory - ADD CONSTRAINT ImageHistory_Images FOREIGN KEY (imageid) REFERENCES Images (id) ON DELETE CASCADE ON UPDATE CASCADE, - ENGINE InnoDB; -- ALTER IGNORE TABLE ImageRelations -+ INSERT IGNORE INTO ImageHistory SELECT * FROM ImageHistory_old; -+ -+ RENAME TABLE ImageRelations TO ImageRelations_old; -+ CREATE TABLE ImageRelations LIKE ImageRelations_old; -+ ALTER TABLE ImageRelations - ADD CONSTRAINT ImageRelations_ImagesS FOREIGN KEY (subject) REFERENCES Images (id) ON DELETE CASCADE ON UPDATE CASCADE, - ADD CONSTRAINT ImageRelations_ImagesO FOREIGN KEY (object) REFERENCES Images (id) ON DELETE CASCADE ON UPDATE CASCADE, - ENGINE InnoDB; -- ALTER IGNORE TABLE TagProperties -+ INSERT IGNORE INTO ImageRelations SELECT * FROM ImageRelations_old; -+ -+ RENAME TABLE TagProperties TO TagProperties_old; -+ CREATE TABLE TagProperties LIKE TagProperties_old; -+ ALTER TABLE TagProperties - ADD CONSTRAINT TagProperties_Tags FOREIGN KEY (tagid) REFERENCES Tags (id) ON DELETE CASCADE ON UPDATE CASCADE, - ENGINE InnoDB; -- ALTER IGNORE TABLE ImageTagProperties -+ INSERT IGNORE INTO TagProperties SELECT * FROM TagProperties_old; -+ -+ RENAME TABLE ImageTagProperties TO ImageTagProperties_old; -+ CREATE TABLE ImageTagProperties LIKE ImageTagProperties_old; -+ ALTER TABLE ImageTagProperties - ADD CONSTRAINT ImageTagProperties_Images FOREIGN KEY (imageid) REFERENCES Images (id) ON DELETE CASCADE ON UPDATE CASCADE, - ADD CONSTRAINT ImageTagProperties_Tags FOREIGN KEY (tagid) REFERENCES Tags (id) ON DELETE CASCADE ON UPDATE CASCADE, - ENGINE InnoDB; -- SET SESSION FOREIGN_KEY_CHECKS=1; -- SET SESSION OLD_ALTER_TABLE=0; -+ INSERT IGNORE INTO ImageTagProperties SELECT * FROM ImageTagProperties_old; -+ -+ DROP TABLE ImageTagProperties_old; -+ DROP TABLE TagProperties_old; -+ DROP TABLE ImageRelations_old; -+ DROP TABLE ImageHistory_old; -+ DROP TABLE Settings_old; -+ DROP TABLE DownloadHistory_old; -+ DROP TABLE ImageProperties_old; -+ DROP TABLE ImageTags_old; -+ DROP TABLE Tags_old; -+ DROP TABLE ImageCopyright_old; -+ DROP TABLE ImageComments_old; -+ DROP TABLE ImagePositions_old; -+ DROP TABLE VideoMetadata_old; -+ DROP TABLE ImageMetadata_old; -+ DROP TABLE ImageInformation_old; -+ DROP TABLE ImageHaarMatrix_old; -+ DROP TABLE Images_old; -+ DROP TABLE Albums_old; -+ DROP TABLE AlbumRoots_old; - - - --- -cgit v0.11.2 - diff --git a/digikam-5.8.0.fix-db-migration-0002.patch b/digikam-5.8.0.fix-db-migration-0002.patch deleted file mode 100644 index 276068e..0000000 --- a/digikam-5.8.0.fix-db-migration-0002.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 6c8398db5c57a550e7b14f48a0701b28f0eca840 Mon Sep 17 00:00:00 2001 -From: Maik Qualmann -Date: Mon, 15 Jan 2018 22:57:11 +0100 -Subject: small fix for the schema update - ---- - data/database/dbconfig.xml.cmake.in | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/data/database/dbconfig.xml.cmake.in b/data/database/dbconfig.xml.cmake.in -index 2c5008f..a1cd69f 100644 ---- a/data/database/dbconfig.xml.cmake.in -+++ b/data/database/dbconfig.xml.cmake.in -@@ -2147,7 +2147,7 @@ - ADD CONSTRAINT Tags_Images FOREIGN KEY (icon) REFERENCES Images (id) ON DELETE SET NULL ON UPDATE CASCADE, - ADD UNIQUE(pid, name(100)), - ENGINE InnoDB; -- INSERT IGNORE INTO Tags SELECT * FROM Tags_old; -+ REPLACE INTO Tags SELECT * FROM Tags_old; - SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO'; - REPLACE INTO Tags (id, pid, name, icon, iconkde, lft, rgt) VALUES (0, -1, '_Digikam_root_tag_', NULL, NULL, - (SELECT MIN(tl.lft) FROM Tags AS tl), --- -cgit v0.11.2 - diff --git a/digikam-5.8.0.fix-db-migration-0003.patch b/digikam-5.8.0.fix-db-migration-0003.patch deleted file mode 100644 index c25366c..0000000 --- a/digikam-5.8.0.fix-db-migration-0003.patch +++ /dev/null @@ -1,33 +0,0 @@ -From 443ce0e848a0da4fa7c80dd5b077fb6b8a545126 Mon Sep 17 00:00:00 2001 -From: Maik Qualmann -Date: Fri, 19 Jan 2018 07:07:08 +0100 -Subject: disable foreign key checks temporarily for the Tags table BUGS: - 388824 - ---- - data/database/dbconfig.xml.cmake.in | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/data/database/dbconfig.xml.cmake.in b/data/database/dbconfig.xml.cmake.in -index a1cd69f..a98434b 100644 ---- a/data/database/dbconfig.xml.cmake.in -+++ b/data/database/dbconfig.xml.cmake.in -@@ -2141,6 +2141,7 @@ - ENGINE InnoDB; - INSERT IGNORE INTO ImageCopyright SELECT * FROM ImageCopyright_old; - -+ SET FOREIGN_KEY_CHECKS=0; - RENAME TABLE Tags TO Tags_old; - CREATE TABLE Tags LIKE Tags_old; - ALTER TABLE Tags -@@ -2154,6 +2155,7 @@ - (SELECT MAX(tr.rgt) FROM Tags AS tr)); - SET SQL_MODE=@OLD_SQL_MODE; - UPDATE Tags SET icon = NULL WHERE icon = 0; -+ SET FOREIGN_KEY_CHECKS=1; - - RENAME TABLE ImageTags TO ImageTags_old; - CREATE TABLE ImageTags LIKE ImageTags_old; --- -cgit v0.11.2 - diff --git a/digikam-5.8.0.fix-db-migration-0004.patch b/digikam-5.8.0.fix-db-migration-0004.patch deleted file mode 100644 index c040b32..0000000 --- a/digikam-5.8.0.fix-db-migration-0004.patch +++ /dev/null @@ -1,51 +0,0 @@ -From ceb41a7f89ddf9716507466861828925357ab3f3 Mon Sep 17 00:00:00 2001 -From: Maik Qualmann -Date: Fri, 19 Jan 2018 19:59:44 +0100 -Subject: drop old table if new run required - ---- - data/database/dbconfig.xml.cmake.in | 21 +++++++++++++++++++++ - 1 file changed, 21 insertions(+) - -diff --git a/data/database/dbconfig.xml.cmake.in b/data/database/dbconfig.xml.cmake.in -index a98434b..3ec790f 100644 ---- a/data/database/dbconfig.xml.cmake.in -+++ b/data/database/dbconfig.xml.cmake.in -@@ -2024,6 +2024,7 @@ - CALL drop_foreign_key('TagProperties', 'TagProperties_Tags'); - CALL drop_foreign_key('ImageTagProperties', 'ImageTagProperties_Images'); - CALL drop_foreign_key('ImageTagProperties', 'ImageTagProperties_Tags'); -+ - ALTER TABLE AlbumRoots MODIFY COLUMN label LONGTEXT CHARACTER SET utf8 COLLATE utf8_general_ci; - ALTER TABLE AlbumRoots MODIFY COLUMN identifier LONGTEXT CHARACTER SET utf8 COLLATE utf8_general_ci; - ALTER TABLE AlbumRoots MODIFY COLUMN specificPath LONGTEXT CHARACTER SET utf8 COLLATE utf8_general_ci; -@@ -2063,6 +2064,26 @@ - ALTER TABLE ImageTagProperties MODIFY COLUMN property TEXT CHARACTER SET utf8 COLLATE utf8_general_ci; - ALTER TABLE ImageTagProperties MODIFY COLUMN value LONGTEXT CHARACTER SET utf8 COLLATE utf8_general_ci; - -+ DROP TABLE IF EXISTS ImageTagProperties_old; -+ DROP TABLE IF EXISTS TagProperties_old; -+ DROP TABLE IF EXISTS ImageRelations_old; -+ DROP TABLE IF EXISTS ImageHistory_old; -+ DROP TABLE IF EXISTS Settings_old; -+ DROP TABLE IF EXISTS DownloadHistory_old; -+ DROP TABLE IF EXISTS ImageProperties_old; -+ DROP TABLE IF EXISTS ImageTags_old; -+ DROP TABLE IF EXISTS Tags_old; -+ DROP TABLE IF EXISTS ImageCopyright_old; -+ DROP TABLE IF EXISTS ImageComments_old; -+ DROP TABLE IF EXISTS ImagePositions_old; -+ DROP TABLE IF EXISTS VideoMetadata_old; -+ DROP TABLE IF EXISTS ImageMetadata_old; -+ DROP TABLE IF EXISTS ImageInformation_old; -+ DROP TABLE IF EXISTS ImageHaarMatrix_old; -+ DROP TABLE IF EXISTS Images_old; -+ DROP TABLE IF EXISTS Albums_old; -+ DROP TABLE IF EXISTS AlbumRoots_old; -+ - RENAME TABLE AlbumRoots TO AlbumRoots_old; - CREATE TABLE AlbumRoots LIKE AlbumRoots_old; - ALTER TABLE AlbumRoots --- -cgit v0.11.2 - diff --git a/digikam-5.8.0.tar.xz b/digikam-5.8.0.tar.xz deleted file mode 100644 index d669a09..0000000 --- a/digikam-5.8.0.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:194a44cc3ca229d501acfba67a38d483d1d64069a85e0491dd28dc2b57091c6e -size 127361060 diff --git a/digikam-5.9.0.tar.xz b/digikam-5.9.0.tar.xz new file mode 100644 index 0000000..57aea69 --- /dev/null +++ b/digikam-5.9.0.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:660d32eedcfd6fe1a75170a651fab068ae62f7f092ae710771a2f32a1c550d1b +size 132931184 diff --git a/digikam.changes b/digikam.changes index dbe1cf3..70c1826 100644 --- a/digikam.changes +++ b/digikam.changes @@ -1,3 +1,26 @@ +------------------------------------------------------------------- +Sat Mar 24 18:48:15 UTC 2018 - wbauer@tmo.at + +- Update to 5.9.0: + * https://www.digikam.org/news/2018-03-25-5.9.0_release_announcement/ +- New features (from NEWS): +General : Libraw updated to last 0.18.8. +- 45 bugs fixed +- Drop upstream patches: + * fix-font-size-in-tooltips.patch + * digikam-5.8.0.fix-db-migration-0001.patch + * digikam-5.8.0.fix-db-migration-0002.patch + * digikam-5.8.0.fix-db-migration-0003.patch + * digikam-5.8.0.fix-db-migration-0004.patch + * update-internal-libraw-to-last-stable-0.18.7.patch + * update-internal-libraw-to-last-0.18.8.patch +- Drop fix-italian-docs-with-older-kdoctools.patch, Leap 42.2 is no + longer supported +- Don't try to delete libkvkontakte translations, they are no + longer installed (kde#369517) +- Also don't try to delete *.a files and locale/x-test, no longer + necessary + ------------------------------------------------------------------- Wed Mar 7 17:01:45 UTC 2018 - wbauer@tmo.at diff --git a/digikam.spec b/digikam.spec index 51f8a47..d896a3a 100644 --- a/digikam.spec +++ b/digikam.spec @@ -17,7 +17,7 @@ Name: digikam -Version: 5.8.0 +Version: 5.9.0 Release: 0 Summary: A KDE Photo Manager License: GPL-2.0+ @@ -30,21 +30,6 @@ Patch0: 0001-Disable-detection-of-OpenGL-for-GLES-platforms.patch Patch1: 0001-Revert-replace-obsolete-qSort-function.patch # PATCH-FIX-OPENSUSE Patch2: 0002-Revert-replace-obsolete-qSort-function.patch -# PATCH-FIX-OPENSUSE fix-italian-docs-with-older-kdoctools.patch -- fix build with the old kdoctools in Leap 42.2 that misses two necessary entities for italian -Patch3: fix-italian-docs-with-older-kdoctools.patch -# PATCH-FIX-UPSTREAM -Patch4: fix-font-size-in-tooltips.patch -# PATCH-FIX-UPSTREAM digikam-5.8.0.fix-db-migration-0001.patch -- fix MySQL DB migration issues (kde#388824, kde#388867, kde#388977) -Patch5: digikam-5.8.0.fix-db-migration-0001.patch -# PATCH-FIX-UPSTREAM -Patch6: digikam-5.8.0.fix-db-migration-0002.patch -# PATCH-FIX-UPSTREAM -Patch7: digikam-5.8.0.fix-db-migration-0003.patch -# PATCH-FIX-UPSTREAM -Patch8: digikam-5.8.0.fix-db-migration-0004.patch -# PATCH-FIX-UPSTREAM -Patch9: update-internal-libraw-to-last-stable-0.18.7.patch -Patch10: update-internal-libraw-to-last-0.18.8.patch #This pulls in QWebEngine, which is not available on ppc64 %ifarch %ix86 x86_64 %arm aarch64 mips mips64 BuildRequires: akonadi-contact-devel @@ -187,23 +172,7 @@ The main digikam libraries that are being shared between showfoto and digikam %if 0%{?suse_version} < 1320 %patch1 -p1 %patch2 -p1 -%if 0%{?sle_version} <= 120200 -%patch3 -p1 %endif -%endif -%patch4 -p1 - -# DB migration fixes -cd core -%patch5 -p1 -%patch6 -p1 -%patch7 -p1 -%patch8 -p1 -cd .. - -# update internal libraw to fix build in TW -%patch9 -p1 -%patch10 -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') @@ -213,9 +182,6 @@ sed -i "s/__DATE__/\"$FAKE_BUILDDATE\"/g" extra/kipi-plugins/common/libkipiplugi sed -i "s/__DATE__/\"$FAKE_BUILDDATE\"/g" core/libs/dimg/filters/greycstoration/cimg/CImg.h sed -i "s/__TIME__/\"$FAKE_BUILDTIME\"/g" core/libs/dimg/filters/greycstoration/cimg/CImg.h -# Workaround for kde#369517 - vkontakte installs translations even if not built -rm -f po/*/libkvkontakte.po - %build %if 0%{?suse_version} < 1320 && !0%{?is_opensuse} EXTRA_FLAGS="-DENABLE_LCMS2=OFF" @@ -236,10 +202,6 @@ rm -f %{buildroot}%{_kf5_libdir}/libdigikamdatabase.so rm -f %{buildroot}%{_kf5_libdir}/libdigikamgui.so rm -f %{buildroot}%{_kf5_libdir}/libKF5kipiplugins.so -# Not needed -rm -fv %{buildroot}%{_kf5_libdir}/*.a -rm -rf $RPM_BUILD_ROOT/usr/share/locale/x-test - %if 0%{?suse_version} %suse_update_desktop_file -r org.kde.digikam Qt KDE Graphics Photography %suse_update_desktop_file -r org.kde.showfoto Qt KDE Graphics Photography diff --git a/fix-font-size-in-tooltips.patch b/fix-font-size-in-tooltips.patch deleted file mode 100644 index 54d9e8c..0000000 --- a/fix-font-size-in-tooltips.patch +++ /dev/null @@ -1,78 +0,0 @@ -From cdc4659165008995bc60d6ac6fabe482928b8aef Mon Sep 17 00:00:00 2001 -From: Maik Qualmann -Date: Wed, 17 Jan 2018 19:09:06 +0100 -Subject: fix font size in the tooltips BUGS: 337243 FIXED-IN: 5.9.0 - ---- - NEWS | 3 ++- - libs/widgets/itemview/ditemtooltip.cpp | 41 ++++++++++++++++++++++------------ - 2 files changed, 29 insertions(+), 15 deletions(-) - -diff --git a/core/libs/widgets/itemview/ditemtooltip.cpp b/core/libs/widgets/itemview/ditemtooltip.cpp -index c375c53..ab932a7 100644 ---- a/core/libs/widgets/itemview/ditemtooltip.cpp -+++ b/core/libs/widgets/itemview/ditemtooltip.cpp -@@ -52,33 +52,46 @@ namespace Digikam - DToolTipStyleSheet::DToolTipStyleSheet(const QFont& font) - : maxStringLength(30) - { -- unavailable = i18n("unavailable"); -+ unavailable = i18n("unavailable"); -+ -+ QString fontSize = (font.pointSize() == -1) ? QString::fromUtf8("font-size: %1px;").arg(font.pixelSize()) -+ : QString::fromUtf8("font-size: %1pt;").arg(font.pointSize()); - - tipHeader = QLatin1String(""); - tipFooter = QLatin1String("
"); - - headBeg = QString::fromLatin1("" -- "
") -+ "

") - .arg(qApp->palette().color(QPalette::Base).name()) - .arg(qApp->palette().color(QPalette::Text).name()) -- .arg(font.family()); -- headEnd = QLatin1String("
"); -+ .arg(font.family()) -+ .arg(fontSize); -+ -+ headEnd = QLatin1String("

"); - -- cellBeg = QString::fromLatin1("") -+ cellBeg = QString::fromLatin1("

") - .arg(qApp->palette().color(QPalette::ToolTipText).name()) -- .arg(font.family()); -- cellMid = QString::fromLatin1("") -+ .arg(font.family()) -+ .arg(fontSize); -+ -+ cellMid = QString::fromLatin1("

") - .arg(qApp->palette().color(QPalette::ToolTipText).name()) -- .arg(font.family()); -- cellEnd = QLatin1String(""); -+ .arg(font.family()) -+ .arg(fontSize); - -- cellSpecBeg = QString::fromLatin1("") -+ cellEnd = QLatin1String("

"); -+ -+ cellSpecBeg = QString::fromLatin1("

") - .arg(qApp->palette().color(QPalette::ToolTipText).name()) -- .arg(font.family()); -- cellSpecMid = QString::fromLatin1("") -+ .arg(font.family()) -+ .arg(fontSize); -+ -+ cellSpecMid = QString::fromLatin1("

") - .arg(qApp->palette().color(QPalette::ToolTipText).name()) -- .arg(font.family()); -- cellSpecEnd = QLatin1String(""); -+ .arg(font.family()) -+ .arg(fontSize); -+ -+ cellSpecEnd = QLatin1String("

"); - } - - QString DToolTipStyleSheet::breakString(const QString& input) const --- -cgit v0.11.2 - diff --git a/fix-italian-docs-with-older-kdoctools.patch b/fix-italian-docs-with-older-kdoctools.patch deleted file mode 100644 index 958c6ff..0000000 --- a/fix-italian-docs-with-older-kdoctools.patch +++ /dev/null @@ -1,21 +0,0 @@ -diff -ur a/doc-translated/it/digikam/menu-mainwindow.docbook b/doc-translated/it/digikam/menu-mainwindow.docbook ---- a/doc-translated/it/digikam/menu-mainwindow.docbook 2018-01-09 15:13:48.000000000 +0100 -+++ b/doc-translated/it/digikam/menu-mainwindow.docbook 2018-01-15 17:11:37.000000000 +0100 -@@ -578,7 +578,7 @@ - >Voce del menu per ruotare senza perdita l'immagine attualmente selezionata &Ctrl;&Shift;&Left;&Ctrl;&Shift; Sinistra oppure &Ctrl;&Shift;&Right;&Ctrl;&Shift; Destra -Date: Sat, 3 Mar 2018 22:47:47 +0100 -Subject: update internal libraw to last 0.18.8 - ---- - NEWS | 2 +- - libs/rawengine/libraw/Changelog.txt | 14 ++ - libs/rawengine/libraw/internal/dcraw_common.cpp | 141 ++++++++++++--------- - .../libraw/internal/libraw_internal_funcs.h | 2 +- - libs/rawengine/libraw/libraw/libraw_const.h | 5 + - libs/rawengine/libraw/libraw/libraw_version.h | 2 +- - libs/rawengine/libraw/src/libraw_cxx.cpp | 10 +- - 7 files changed, 113 insertions(+), 63 deletions(-) - -diff --git a/libs/rawengine/libraw/Changelog.txt b/libs/rawengine/libraw/Changelog.txt -index c9fc520..08d6cbe 100644 ---- a/core/libs/rawengine/libraw/Changelog.txt -+++ b/core/libs/rawengine/libraw/Changelog.txt -@@ -1,3 +1,17 @@ -+2018-02-23 Alex Tutubalin -+Secunia #81000: -+Credit: Laurent Delosieres, Secunia Research at Flexera -+ * leaf_hdr_load_raw: check for image pointer for demosaiced raw -+ * NOKIARAW parser: check image dimensions readed from file -+ * quicktake_100_load_raw: check width/height limits -+ * LibRaw 0.18.8 -+ -+2018-01-29 Alex Tutubalin -+ * Checks for width+left_margin/height+top_margin not larger than 64k -+ * LIBRAW_MAX_ALLOC_MB define limits maximum image/raw_image allocation -+ (default is 2048 so 2Gb per array) -+ * LibRaw::read_shorts item count is now unsigned -+ - 2018-01-19 Alex Tutubalin - Secunia #79000: - Credit: Laurent Delosieres, Secunia Research at Flexera -diff --git a/libs/rawengine/libraw/internal/dcraw_common.cpp b/libs/rawengine/libraw/internal/dcraw_common.cpp -index 520d19a..cfb82a2 100644 ---- a/core/libs/rawengine/libraw/internal/dcraw_common.cpp -+++ b/core/libs/rawengine/libraw/internal/dcraw_common.cpp -@@ -220,7 +220,7 @@ double CLASS getreal (int type) - } - } - --void CLASS read_shorts (ushort *pixel, int count) -+void CLASS read_shorts (ushort *pixel, unsigned count) - { - if (fread (pixel, 2, count, ifp) < count) derror(); - if ((order == 0x4949) == (ntohs(0x1234) == 0x1234)) -@@ -2077,6 +2077,10 @@ void CLASS leaf_hdr_load_raw() - unsigned tile=0, r, c, row, col; - - if (!filters) { -+#ifdef LIBRAW_LIBRARY_BUILD -+ if(!image) -+ throw LIBRAW_EXCEPTION_IO_CORRUPT; -+#endif - pixel = (ushort *) calloc (raw_width, sizeof *pixel); - merror (pixel, "leaf_hdr_load_raw()"); - } -@@ -2606,7 +2610,11 @@ void CLASS quicktake_100_load_raw() - 654,665,676,687,698,710,721,732,743,754,766,777,788,799,810,822,833,844, - 855,866,878,889,900,911,922,933,945,956,967,978,989,1001,1012,1023 }; - int rb, row, col, sharp, val=0; -- -+#ifdef LIBRAW_LIBRARY_BUILD -+ if(width>640 || height > 480) -+ throw LIBRAW_EXCEPTION_IO_CORRUPT; -+#endif -+ - getbits(-1); - memset (pixel, 0x80, sizeof pixel); - for (row=2; row < height+2; row++) { -@@ -5849,7 +5857,7 @@ static float powf_lim(float a, float b, float limup) - { - return (b>limup || b < -limup)?0.f:powf(a,b); - } --static float powf64(float a, float b) -+static float libraw_powf64(float a, float b) - { - return powf_lim(a,b,64.f); - } -@@ -5873,7 +5881,7 @@ static float my_roundf(float x) { - static float _CanonConvertAperture(ushort in) - { - if ((in == (ushort)0xffe0) || (in == (ushort)0x7fff)) return 0.0f; -- return powf64(2.0, in/64.0); -+ return libraw_powf64(2.0, in/64.0); - } - - static float _CanonConvertEV (short in) -@@ -6336,21 +6344,21 @@ void CLASS processNikonLensData (uchar *LensData, unsigned len) - if (fabsf(imgdata.lens.makernotes.MinFocal) < 1.1f) - { - if ((imgdata.lens.nikon.NikonLensType ^ (uchar)0x01) || LensData[i + 2]) -- imgdata.lens.makernotes.MinFocal = 5.0f * powf64(2.0f, (float)LensData[i + 2] / 24.0f); -+ imgdata.lens.makernotes.MinFocal = 5.0f * libraw_powf64(2.0f, (float)LensData[i + 2] / 24.0f); - if ((imgdata.lens.nikon.NikonLensType ^ (uchar)0x01) || LensData[i + 3]) -- imgdata.lens.makernotes.MaxFocal = 5.0f * powf64(2.0f, (float)LensData[i + 3] / 24.0f); -+ imgdata.lens.makernotes.MaxFocal = 5.0f * libraw_powf64(2.0f, (float)LensData[i + 3] / 24.0f); - if ((imgdata.lens.nikon.NikonLensType ^ (uchar)0x01) || LensData[i + 4]) -- imgdata.lens.makernotes.MaxAp4MinFocal = powf64(2.0f, (float)LensData[i + 4] / 24.0f); -+ imgdata.lens.makernotes.MaxAp4MinFocal = libraw_powf64(2.0f, (float)LensData[i + 4] / 24.0f); - if ((imgdata.lens.nikon.NikonLensType ^ (uchar)0x01) || LensData[i + 5]) -- imgdata.lens.makernotes.MaxAp4MaxFocal = powf64(2.0f, (float)LensData[i + 5] / 24.0f); -+ imgdata.lens.makernotes.MaxAp4MaxFocal = libraw_powf64(2.0f, (float)LensData[i + 5] / 24.0f); - } - imgdata.lens.nikon.NikonMCUVersion = LensData[i + 6]; - if (i != 2) - { - if ((LensData[i - 1]) && - (fabsf(imgdata.lens.makernotes.CurFocal) < 1.1f)) -- imgdata.lens.makernotes.CurFocal = 5.0f * powf64(2.0f, (float)LensData[i - 1] / 24.0f); -- if (LensData[i + 7]) imgdata.lens.nikon.NikonEffectiveMaxAp = powf64(2.0f, (float)LensData[i + 7] / 24.0f); -+ imgdata.lens.makernotes.CurFocal = 5.0f * libraw_powf64(2.0f, (float)LensData[i - 1] / 24.0f); -+ if (LensData[i + 7]) imgdata.lens.nikon.NikonEffectiveMaxAp = libraw_powf64(2.0f, (float)LensData[i + 7] / 24.0f); - } - imgdata.lens.makernotes.LensID = - (unsigned long long) LensData[i] << 56 | -@@ -6827,13 +6835,13 @@ void CLASS PentaxLensInfo (unsigned id, unsigned len) // tag 0x0207 - if (table_buf[iLensData+9] && - (fabs(imgdata.lens.makernotes.CurFocal) < 0.1f)) - imgdata.lens.makernotes.CurFocal = -- 10*(table_buf[iLensData+9]>>2) * powf64(4, (table_buf[iLensData+9] & 0x03)-2); -+ 10*(table_buf[iLensData+9]>>2) * libraw_powf64(4, (table_buf[iLensData+9] & 0x03)-2); - if (table_buf[iLensData+10] & 0xf0) - imgdata.lens.makernotes.MaxAp4CurFocal = -- powf64(2.0f, (float)((table_buf[iLensData+10] & 0xf0) >>4)/4.0f); -+ libraw_powf64(2.0f, (float)((table_buf[iLensData+10] & 0xf0) >>4)/4.0f); - if (table_buf[iLensData+10] & 0x0f) - imgdata.lens.makernotes.MinAp4CurFocal = -- powf64(2.0f, (float)((table_buf[iLensData+10] & 0x0f) + 10)/4.0f); -+ libraw_powf64(2.0f, (float)((table_buf[iLensData+10] & 0x0f) + 10)/4.0f); - - if (iLensData != 12) - { -@@ -6854,14 +6862,14 @@ void CLASS PentaxLensInfo (unsigned id, unsigned len) // tag 0x0207 - if ((table_buf[iLensData+14] > 1) && - (fabs(imgdata.lens.makernotes.MaxAp4CurFocal) < 0.7f)) - imgdata.lens.makernotes.MaxAp4CurFocal = -- powf64(2.0f, (float)((table_buf[iLensData+14] & 0x7f) -1)/32.0f); -+ libraw_powf64(2.0f, (float)((table_buf[iLensData+14] & 0x7f) -1)/32.0f); - } - else if ((id != 0x12e76) && // K-5 - (table_buf[iLensData+15] > 1) && - (fabs(imgdata.lens.makernotes.MaxAp4CurFocal) < 0.7f)) - { - imgdata.lens.makernotes.MaxAp4CurFocal = -- powf64(2.0f, (float)((table_buf[iLensData+15] & 0x7f) -1)/32.0f); -+ libraw_powf64(2.0f, (float)((table_buf[iLensData+15] & 0x7f) -1)/32.0f); - } - } - free(table_buf); -@@ -7349,11 +7357,11 @@ void CLASS process_Sony_0x9050 (uchar * buf, unsigned id) - { - if (buf[0]) - imgdata.lens.makernotes.MaxAp4CurFocal = -- my_roundf(powf64(2.0f, ((float)SonySubstitution[buf[0]] / 8.0 - 1.06f) / 2.0f)*10.0f) / 10.0f; -+ my_roundf(libraw_powf64(2.0f, ((float)SonySubstitution[buf[0]] / 8.0 - 1.06f) / 2.0f)*10.0f) / 10.0f; - - if (buf[1]) - imgdata.lens.makernotes.MinAp4CurFocal = -- my_roundf(powf64(2.0f, ((float)SonySubstitution[buf[1]] / 8.0 - 1.06f) / 2.0f)*10.0f) / 10.0f; -+ my_roundf(libraw_powf64(2.0f, ((float)SonySubstitution[buf[1]] / 8.0 - 1.06f) / 2.0f)*10.0f) / 10.0f; - } - - if (imgdata.lens.makernotes.CameraMount != LIBRAW_MOUNT_FixedLens) -@@ -7363,7 +7371,7 @@ void CLASS process_Sony_0x9050 (uchar * buf, unsigned id) - lid = SonySubstitution[buf[0x3d]] << 8 | - SonySubstitution[buf[0x3c]]; - imgdata.lens.makernotes.CurAp = -- powf64(2.0f, ((float)lid/256.0f - 16.0f) / 2.0f); -+ libraw_powf64(2.0f, ((float)lid/256.0f - 16.0f) / 2.0f); - } - if (buf[0x105] && - (imgdata.lens.makernotes.LensMount != LIBRAW_MOUNT_Canon_EF) && -@@ -7749,7 +7757,7 @@ void CLASS parse_makernote_0xc634(int base, int uptag, unsigned dng_writer) - { - unsigned char cc; - fread(&cc, 1, 1, ifp); -- iso_speed = (int)(100.0 * powf64(2.0, (double)(cc) / 12.0 - 5.0)); -+ iso_speed = (int)(100.0 * libraw_powf64(2.0, (double)(cc) / 12.0 - 5.0)); - break; - } - } -@@ -7794,7 +7802,7 @@ void CLASS parse_makernote_0xc634(int base, int uptag, unsigned dng_writer) - } - break; - case 0x1002: -- imgdata.lens.makernotes.CurAp = powf64(2.0f, getreal(type)/2); -+ imgdata.lens.makernotes.CurAp = libraw_powf64(2.0f, getreal(type)/2); - break; - case 0x20100102: - stmread(imgdata.shootinginfo.InternalBodySerial, len, ifp); -@@ -7821,10 +7829,10 @@ void CLASS parse_makernote_0xc634(int base, int uptag, unsigned dng_writer) - stmread(imgdata.lens.makernotes.Lens,len, ifp); - break; - case 0x20100205: -- imgdata.lens.makernotes.MaxAp4MinFocal = powf64(sqrt(2.0f), get2() / 256.0f); -+ imgdata.lens.makernotes.MaxAp4MinFocal = libraw_powf64(sqrt(2.0f), get2() / 256.0f); - break; - case 0x20100206: -- imgdata.lens.makernotes.MaxAp4MaxFocal = powf64(sqrt(2.0f), get2() / 256.0f); -+ imgdata.lens.makernotes.MaxAp4MaxFocal = libraw_powf64(sqrt(2.0f), get2() / 256.0f); - break; - case 0x20100207: - imgdata.lens.makernotes.MinFocal = (float)get2(); -@@ -7835,7 +7843,7 @@ void CLASS parse_makernote_0xc634(int base, int uptag, unsigned dng_writer) - imgdata.lens.makernotes.MaxFocal = imgdata.lens.makernotes.MinFocal; - break; - case 0x2010020a: -- imgdata.lens.makernotes.MaxAp4CurFocal = powf64(sqrt(2.0f), get2() / 256.0f); -+ imgdata.lens.makernotes.MaxAp4CurFocal = libraw_powf64(sqrt(2.0f), get2() / 256.0f); - break; - case 0x20100301: - imgdata.lens.makernotes.TeleconverterID = fgetc(ifp) << 8; -@@ -8144,7 +8152,7 @@ void CLASS parse_makernote_0xc634(int base, int uptag, unsigned dng_writer) - lid = (((ushort)table_buf[2])<<8) | - ((ushort)table_buf[3]); - imgdata.lens.makernotes.CurAp = -- powf64(2.0f, ((float)lid/8.0f-1.0f)/2.0f); -+ libraw_powf64(2.0f, ((float)lid/8.0f-1.0f)/2.0f); - } - break; - case 1536: -@@ -8675,7 +8683,7 @@ void CLASS parse_makernote (int base, int uptag) - } - break; - case 0x1002: -- imgdata.lens.makernotes.CurAp = powf64(2.0f, getreal(type)/2); -+ imgdata.lens.makernotes.CurAp = libraw_powf64(2.0f, getreal(type)/2); - break; - case 0x20401112: - imgdata.makernotes.olympus.OlympusCropID = get2(); -@@ -8709,10 +8717,10 @@ void CLASS parse_makernote (int base, int uptag) - stmread(imgdata.lens.makernotes.Lens, len, ifp); - break; - case 0x20100205: -- imgdata.lens.makernotes.MaxAp4MinFocal = powf64(sqrt(2.0f), get2() / 256.0f); -+ imgdata.lens.makernotes.MaxAp4MinFocal = libraw_powf64(sqrt(2.0f), get2() / 256.0f); - break; - case 0x20100206: -- imgdata.lens.makernotes.MaxAp4MaxFocal = powf64(sqrt(2.0f), get2() / 256.0f); -+ imgdata.lens.makernotes.MaxAp4MaxFocal = libraw_powf64(sqrt(2.0f), get2() / 256.0f); - break; - case 0x20100207: - imgdata.lens.makernotes.MinFocal = (float)get2(); -@@ -8723,7 +8731,7 @@ void CLASS parse_makernote (int base, int uptag) - imgdata.lens.makernotes.MaxFocal = imgdata.lens.makernotes.MinFocal; - break; - case 0x2010020a: -- imgdata.lens.makernotes.MaxAp4CurFocal = powf64(sqrt(2.0f), get2() / 256.0f); -+ imgdata.lens.makernotes.MaxAp4CurFocal = libraw_powf64(sqrt(2.0f), get2() / 256.0f); - break; - case 0x20100301: - imgdata.lens.makernotes.TeleconverterID = fgetc(ifp) << 8; -@@ -9150,7 +9158,7 @@ void CLASS parse_makernote (int base, int uptag) - lid = (((ushort)table_buf[2])<<8) | - ((ushort)table_buf[3]); - imgdata.lens.makernotes.CurAp = -- powf64(2.0f, ((float)lid/8.0f-1.0f)/2.0f); -+ libraw_powf64(2.0f, ((float)lid/8.0f-1.0f)/2.0f); - } - break; - case 1536: -@@ -9248,19 +9256,19 @@ void CLASS parse_makernote (int base, int uptag) - { - unsigned char cc; - fread(&cc,1,1,ifp); -- iso_speed = int(100.0 * powf64(2.0f,float(cc)/12.0-5.0)); -+ iso_speed = int(100.0 * libraw_powf64(2.0f,float(cc)/12.0-5.0)); - } - if (tag == 4 && len > 26 && len < 35) { - if ((i=(get4(),get2())) != 0x7fff && (!iso_speed || iso_speed == 65535)) -- iso_speed = 50 * powf64(2.0, i/32.0 - 4); -+ iso_speed = 50 * libraw_powf64(2.0, i/32.0 - 4); - #ifdef LIBRAW_LIBRARY_BUILD - get4(); - #else - if ((i=(get2(),get2())) != 0x7fff && !aperture) -- aperture = powf64(2.0, i/64.0); -+ aperture = libraw_powf64(2.0, i/64.0); - #endif - if ((i=get2()) != 0xffff && !shutter) -- shutter = powf64(2.0, (short) i/-32.0); -+ shutter = libraw_powf64(2.0, (short) i/-32.0); - wbi = (get2(),get2()); - shot_order = (get2(),get2()); - } -@@ -9854,7 +9862,7 @@ void CLASS parse_exif (int base) - imgdata.lens.Lens[0] = 0; - break; - case 0x9205: -- imgdata.lens.EXIF_MaxAp = powf64(2.0f, (getreal(type) / 2.0f)); -+ imgdata.lens.EXIF_MaxAp = libraw_powf64(2.0f, (getreal(type) / 2.0f)); - break; - #endif - case 33434: tiff_ifd[tiff_nifds-1].t_shutter = -@@ -9869,11 +9877,11 @@ void CLASS parse_exif (int base) - case 36868: get_timestamp(0); break; - case 37377: if ((expo = -getreal(type)) < 128 && shutter == 0.) - tiff_ifd[tiff_nifds-1].t_shutter = -- shutter = powf64(2.0, expo); -+ shutter = libraw_powf64(2.0, expo); - break; - case 37378: // 0x9202 ApertureValue - if ((fabs(ape = getreal(type))<256.0) && (!aperture)) -- aperture = powf64(2.0, ape/2); -+ aperture = libraw_powf64(2.0, ape/2); - break; - case 37385: flash_used = getreal(type); break; - case 37386: focal_len = getreal(type); break; -@@ -10769,7 +10777,7 @@ int CLASS parse_tiff_ifd (int base) - imgdata.lens.Lens[0] = 0; - break; - case 0x9205: -- imgdata.lens.EXIF_MaxAp = powf64(2.0f, (getreal(type) / 2.0f)); -+ imgdata.lens.EXIF_MaxAp = libraw_powf64(2.0f, (getreal(type) / 2.0f)); - break; - // IB end - #endif -@@ -11804,22 +11812,22 @@ void CLASS parse_ciff (int offset, int length, int depth) - thumb_length = len; - } - if (type == 0x1818) { -- shutter = powf64(2.0f, -int_to_float((get4(),get4()))); -- aperture = powf64(2.0f, int_to_float(get4())/2); -+ shutter = libraw_powf64(2.0f, -int_to_float((get4(),get4()))); -+ aperture = libraw_powf64(2.0f, int_to_float(get4())/2); - #ifdef LIBRAW_LIBRARY_BUILD - imgdata.lens.makernotes.CurAp = aperture; - #endif - } - if (type == 0x102a) { - // iso_speed = pow (2.0, (get4(),get2())/32.0 - 4) * 50; -- iso_speed = powf64(2.0f, ((get2(),get2()) + get2())/32.0f - 5.0f) * 100.0f; -+ iso_speed = libraw_powf64(2.0f, ((get2(),get2()) + get2())/32.0f - 5.0f) * 100.0f; - #ifdef LIBRAW_LIBRARY_BUILD - aperture = _CanonConvertAperture((get2(),get2())); - imgdata.lens.makernotes.CurAp = aperture; - #else -- aperture = powf64(2.0, (get2(),(short)get2())/64.0); -+ aperture = libraw_powf64(2.0, (get2(),(short)get2())/64.0); - #endif -- shutter = powf64(2.0,-((short)get2())/32.0); -+ shutter = libraw_powf64(2.0,-((short)get2())/32.0); - wbi = (get2(),get2()); - if (wbi > 17) wbi = 0; - fseek (ifp, 32, SEEK_CUR); -@@ -12024,8 +12032,8 @@ void CLASS parse_phase_one (int base) - setPhaseOneFeatures(unique_id); - break; - case 0x0401: -- if (type == 4) imgdata.lens.makernotes.CurAp = powf64(2.0f, (int_to_float(data)/2.0f)); -- else imgdata.lens.makernotes.CurAp = powf64(2.0f, (getreal(type)/2.0f)); -+ if (type == 4) imgdata.lens.makernotes.CurAp = libraw_powf64(2.0f, (int_to_float(data)/2.0f)); -+ else imgdata.lens.makernotes.CurAp = libraw_powf64(2.0f, (getreal(type)/2.0f)); - break; - case 0x0403: - if (type == 4) imgdata.lens.makernotes.CurFocal = int_to_float(data); -@@ -12039,16 +12047,16 @@ void CLASS parse_phase_one (int base) - break; - case 0x0414: - if (type == 4) { -- imgdata.lens.makernotes.MaxAp4CurFocal = powf64(2.0f, (int_to_float(data)/2.0f)); -+ imgdata.lens.makernotes.MaxAp4CurFocal = libraw_powf64(2.0f, (int_to_float(data)/2.0f)); - } else { -- imgdata.lens.makernotes.MaxAp4CurFocal = powf64(2.0f, (getreal(type) / 2.0f)); -+ imgdata.lens.makernotes.MaxAp4CurFocal = libraw_powf64(2.0f, (getreal(type) / 2.0f)); - } - break; - case 0x0415: - if (type == 4) { -- imgdata.lens.makernotes.MinAp4CurFocal = powf64(2.0f, (int_to_float(data)/2.0f)); -+ imgdata.lens.makernotes.MinAp4CurFocal = libraw_powf64(2.0f, (int_to_float(data)/2.0f)); - } else { -- imgdata.lens.makernotes.MinAp4CurFocal = powf64(2.0f, (getreal(type) / 2.0f)); -+ imgdata.lens.makernotes.MinAp4CurFocal = libraw_powf64(2.0f, (getreal(type) / 2.0f)); - } - break; - case 0x0416: -@@ -14237,15 +14245,15 @@ void CLASS identify() - case 18: iso_speed = 320; break; - case 19: iso_speed = 400; break; - } -- shutter = powf64(2.0f, (((float)get4())/8.0f)) / 16000.0f; -+ shutter = libraw_powf64(2.0f, (((float)get4())/8.0f)) / 16000.0f; - FORC4 cam_mul[c ^ (c >> 1)] = get4(); - fseek (ifp, 88, SEEK_SET); -- aperture = powf64(2.0f, ((float)get4())/16.0f); -+ aperture = libraw_powf64(2.0f, ((float)get4())/16.0f); - fseek (ifp, 112, SEEK_SET); - focal_len = get4(); - #ifdef LIBRAW_LIBRARY_BUILD - fseek (ifp, 104, SEEK_SET); -- imgdata.lens.makernotes.MaxAp4CurFocal = powf64(2.0f, ((float)get4())/16.0f); -+ imgdata.lens.makernotes.MaxAp4CurFocal = libraw_powf64(2.0f, ((float)get4())/16.0f); - fseek (ifp, 124, SEEK_SET); - stmread(imgdata.lens.makernotes.Lens, 32, ifp); - imgdata.lens.makernotes.CameraMount = LIBRAW_MOUNT_Contax_N; -@@ -14311,13 +14319,24 @@ void CLASS identify() - i = get4(); - width = get2(); - height = get2(); -- switch (tiff_bps = i*8 / (width * height)) { -- case 8: load_raw = &CLASS eight_bit_load_raw; break; -- case 10: load_raw = &CLASS nokia_load_raw; -- } -- raw_height = height + (top_margin = i / (width * tiff_bps/8) - height); -- mask[0][3] = 1; -- filters = 0x61616161; -+#ifdef LIBRAW_LIBRARY_BUILD -+ // data length should be in range w*h..w*h*2 -+ if(width*height < (LIBRAW_MAX_ALLOC_MB*1024*512L) && width*height>1 -+ && i >= width * height && i <= width*height*2) -+ { -+#endif -+ switch (tiff_bps = i*8 / (width * height)) { -+ case 8: load_raw = &CLASS eight_bit_load_raw; break; -+ case 10: load_raw = &CLASS nokia_load_raw; -+ } -+ raw_height = height + (top_margin = i / (width * tiff_bps/8) - height); -+ mask[0][3] = 1; -+ filters = 0x61616161; -+#ifdef LIBRAW_LIBRARY_BUILD -+ } -+ else -+ is_raw = 0; -+#endif - } else if (!memcmp (head,"ARRI",4)) { - order = 0x4949; - fseek (ifp, 20, SEEK_SET); -@@ -15423,7 +15442,11 @@ bw: colors = 1; - #else - tiff_bps > 16 - #endif -- || tiff_samples > 4 || colors > 4 || colors < 1) -+ || tiff_samples > 4 || colors > 4 || colors < 1 -+ /* alloc in unpack() may be fooled by size adjust */ -+ || ( (int)width + (int)left_margin > 65535) -+ || ( (int)height + (int)top_margin > 65535) -+ ) - { - is_raw = 0; - #ifdef LIBRAW_LIBRARY_BUILD -diff --git a/libs/rawengine/libraw/internal/libraw_internal_funcs.h b/libs/rawengine/libraw/internal/libraw_internal_funcs.h -index f10cdcb..e5254d7 100644 ---- a/core/libs/rawengine/libraw/internal/libraw_internal_funcs.h -+++ b/core/libs/rawengine/libraw/internal/libraw_internal_funcs.h -@@ -54,7 +54,7 @@ it under the terms of the one of two licenses as you choose: - unsigned getint (int type); - float int_to_float (int i); - double getreal (int type); -- void read_shorts (ushort *pixel, int count); -+ void read_shorts (ushort *pixel, unsigned count); - - /* Canon P&S cameras */ - void canon_600_fixed_wb (int temp); -diff --git a/libs/rawengine/libraw/libraw/libraw_const.h b/libs/rawengine/libraw/libraw/libraw_const.h -index bdda5bc..4f03e2f 100644 ---- a/core/libs/rawengine/libraw/libraw/libraw_const.h -+++ b/core/libs/rawengine/libraw/libraw/libraw_const.h -@@ -20,6 +20,11 @@ it under the terms of the one of two licenses as you choose: - #define LIBRAW_DEFAULT_ADJUST_MAXIMUM_THRESHOLD 0.75 - #define LIBRAW_DEFAULT_AUTO_BRIGHTNESS_THRESHOLD 0.01 - -+/* limit allocation size, default is 2Gb */ -+#ifndef LIBRAW_MAX_ALLOC_MB -+#define LIBRAW_MAX_ALLOC_MB 2048L -+#endif -+ - enum LibRaw_whitebalance_code - { - /* -diff --git a/libs/rawengine/libraw/libraw/libraw_version.h b/libs/rawengine/libraw/libraw/libraw_version.h -index b6cacec..db149f8 100644 ---- a/core/libs/rawengine/libraw/libraw/libraw_version.h -+++ b/core/libs/rawengine/libraw/libraw/libraw_version.h -@@ -22,7 +22,7 @@ it under the terms of the one of two licenses as you choose: - - #define LIBRAW_MAJOR_VERSION 0 - #define LIBRAW_MINOR_VERSION 18 --#define LIBRAW_PATCH_VERSION 7 -+#define LIBRAW_PATCH_VERSION 8 - #define LIBRAW_VERSION_TAIL Release - - #define LIBRAW_SHLIB_CURRENT 16 -diff --git a/libs/rawengine/libraw/src/libraw_cxx.cpp b/libs/rawengine/libraw/src/libraw_cxx.cpp -index d242222..58e34ea 100644 ---- a/core/libs/rawengine/libraw/src/libraw_cxx.cpp -+++ b/core/libs/rawengine/libraw/src/libraw_cxx.cpp -@@ -2436,7 +2436,8 @@ int LibRaw::unpack(void) - if(rheight < S.height + S.top_margin) - rheight = S.height + S.top_margin; - } -- -+ if(rwidth > 65535 || rheight > 65535) // No way to make image larger than 64k pix -+ throw LIBRAW_EXCEPTION_IO_CORRUPT; - imgdata.rawdata.raw_image = 0; - imgdata.rawdata.color4_image = 0; - imgdata.rawdata.color3_image = 0; -@@ -2493,6 +2494,10 @@ int LibRaw::unpack(void) - } - else if(imgdata.idata.filters || P1.colors == 1) // Bayer image or single color -> decode to raw_image - { -+ -+ if(INT64(rwidth)*INT64(rheight+8)*sizeof(imgdata.rawdata.raw_image[0]) > LIBRAW_MAX_ALLOC_MB * INT64(1024*1024)) -+ throw LIBRAW_EXCEPTION_ALLOC; -+ - imgdata.rawdata.raw_alloc = malloc(rwidth*(rheight+8)*sizeof(imgdata.rawdata.raw_image[0])); - imgdata.rawdata.raw_image = (ushort*) imgdata.rawdata.raw_alloc; - if(!S.raw_pitch) -@@ -2508,6 +2513,9 @@ int LibRaw::unpack(void) - S.raw_pitch = (decoder_info.decoder_flags & LIBRAW_DECODER_LEGACY_WITH_MARGINS) ? S.raw_width*8 : S.width*8; - // allocate image as temporary buffer, size - imgdata.rawdata.raw_alloc = 0; -+ if(INT64(MAX(S.width,S.raw_width))*INT64(MAX(S.height,S.raw_height))*sizeof(*imgdata.image) > LIBRAW_MAX_ALLOC_MB * INT64(1024*1024)) -+ throw LIBRAW_EXCEPTION_ALLOC; -+ - imgdata.image = (ushort (*)[4]) calloc(unsigned(MAX(S.width,S.raw_width))*unsigned(MAX(S.height,S.raw_height)),sizeof(*imgdata.image)); - if(!(decoder_info.decoder_flags & LIBRAW_DECODER_ADOBECOPYPIXEL)) - { --- -cgit v0.11.2 - diff --git a/update-internal-libraw-to-last-stable-0.18.7.patch b/update-internal-libraw-to-last-stable-0.18.7.patch deleted file mode 100644 index b55a7fb..0000000 --- a/update-internal-libraw-to-last-stable-0.18.7.patch +++ /dev/null @@ -1,170 +0,0 @@ -From 0a881ab3de8e12dabfbda4a369fc5487d5f7e029 Mon Sep 17 00:00:00 2001 -From: Gilles Caulier -Date: Sat, 20 Jan 2018 19:09:33 +0100 -Subject: update internal Libraw to last stable 0.18.7 - ---- - NEWS | 1 + - libs/rawengine/libraw/Changelog.txt | 16 +++++++++++ - libs/rawengine/libraw/internal/dcraw_common.cpp | 37 +++++++++++++++++++++++++ - libs/rawengine/libraw/libraw/libraw_version.h | 2 +- - libs/rawengine/libraw/src/libraw_cxx.cpp | 2 +- - 5 files changed, 56 insertions(+), 2 deletions(-) - -diff --git a/libs/rawengine/libraw/Changelog.txt b/libs/rawengine/libraw/Changelog.txt -index 58cd242..c9fc520 100644 ---- a/core/libs/rawengine/libraw/Changelog.txt -+++ b/core/libs/rawengine/libraw/Changelog.txt -@@ -1,3 +1,19 @@ -+2018-01-19 Alex Tutubalin -+Secunia #79000: -+Credit: Laurent Delosieres, Secunia Research at Flexera -+ * All legacy (RGB raw) image loaders checks for imgdata.image is not NULL -+ * kodak_radc_load_raw: check image size before processing -+ * legacy memory allocator: allocate max(widh,raw_width)*max(height,raw_height) -+ * LibRaw 0.18.7 -+ -+ -+2017-12-06 Alex Tutubalin -+Secunia #76000: -+ * Fixed fuji_width handling if file is neither fuji nor DNG -+ * Fixed xtrans interpolate for broken xtrans pattern -+ * Fixed panasonic decoder -+ * LibRaw 0.18.6 -+ - 2017-09-22 Alex Tutubalin - * Fixed possible out of bound access in Kodak 6500 loader - * LibRaw 0.18.5 -diff --git a/libs/rawengine/libraw/internal/dcraw_common.cpp b/libs/rawengine/libraw/internal/dcraw_common.cpp -index 294e2e2..520d19a 100644 ---- a/core/libs/rawengine/libraw/internal/dcraw_common.cpp -+++ b/core/libs/rawengine/libraw/internal/dcraw_common.cpp -@@ -1340,6 +1340,10 @@ void CLASS nikon_load_raw() - - void CLASS nikon_yuv_load_raw() - { -+#ifdef LIBRAW_LIBRARY_BUILD -+ if(!image) -+ throw LIBRAW_EXCEPTION_IO_CORRUPT; -+#endif - int row, col, yuv[4], rgb[3], b, c; - UINT64 bitbuf=0; - float cmul[4]; -@@ -2156,6 +2160,10 @@ void CLASS sinar_4shot_load_raw() - unpacked_load_raw(); - return; - } -+#ifdef LIBRAW_LIBRARY_BUILD -+ else if(!image) -+ throw LIBRAW_EXCEPTION_IO_CORRUPT; -+#endif - pixel = (ushort *) calloc (raw_width, sizeof *pixel); - merror (pixel, "sinar_4shot_load_raw()"); - #ifdef LIBRAW_LIBRARY_BUILD -@@ -2675,6 +2683,11 @@ void CLASS quicktake_100_load_raw() - - void CLASS kodak_radc_load_raw() - { -+#ifdef LIBRAW_LIBRARY_BUILD -+ // All kodak radc images are 768x512 -+ if(width>768 || raw_width>768 || height > 512 || raw_height>512 ) -+ throw LIBRAW_EXCEPTION_IO_CORRUPT; -+#endif - static const signed char src[] = { - 1,1, 2,3, 3,4, 4,2, 5,7, 6,5, 7,6, 7,8, - 1,0, 2,1, 3,3, 4,4, 5,2, 6,7, 7,6, 8,5, 8,8, -@@ -2926,6 +2939,10 @@ void CLASS gamma_curve (double pwr, double ts, int mode, int imax); - - void CLASS lossy_dng_load_raw() - { -+#ifdef LIBRAW_LIBRARY_BUILD -+ if(!image) -+ throw LIBRAW_EXCEPTION_IO_CORRUPT; -+#endif - struct jpeg_decompress_struct cinfo; - struct jpeg_error_mgr jerr; - JSAMPARRAY buf; -@@ -3057,6 +3074,10 @@ void CLASS eight_bit_load_raw() - - void CLASS kodak_c330_load_raw() - { -+#ifdef LIBRAW_LIBRARY_BUILD -+ if(!image) -+ throw LIBRAW_EXCEPTION_IO_CORRUPT; -+#endif - uchar *pixel; - int row, col, y, cb, cr, rgb[3], c; - -@@ -3094,6 +3115,10 @@ void CLASS kodak_c330_load_raw() - - void CLASS kodak_c603_load_raw() - { -+#ifdef LIBRAW_LIBRARY_BUILD -+ if(!image) -+ throw LIBRAW_EXCEPTION_IO_CORRUPT; -+#endif - uchar *pixel; - int row, col, y, cb, cr, rgb[3], c; - -@@ -3257,6 +3282,10 @@ void CLASS kodak_65000_load_raw() - - void CLASS kodak_ycbcr_load_raw() - { -+#ifdef LIBRAW_LIBRARY_BUILD -+ if(!image) -+ throw LIBRAW_EXCEPTION_IO_CORRUPT; -+#endif - short buf[384], *bp; - int row, col, len, c, i, j, k, y[2][2], cb, cr, rgb[3]; - ushort *ip; -@@ -3291,6 +3320,10 @@ void CLASS kodak_ycbcr_load_raw() - - void CLASS kodak_rgb_load_raw() - { -+#ifdef LIBRAW_LIBRARY_BUILD -+ if(!image) -+ throw LIBRAW_EXCEPTION_IO_CORRUPT; -+#endif - short buf[768], *bp; - int row, col, len, c, i, rgb[3],ret; - ushort *ip=image[0]; -@@ -3319,6 +3352,10 @@ void CLASS kodak_rgb_load_raw() - - void CLASS kodak_thumb_load_raw() - { -+#ifdef LIBRAW_LIBRARY_BUILD -+ if(!image) -+ throw LIBRAW_EXCEPTION_IO_CORRUPT; -+#endif - int row, col; - colors = thumb_misc >> 5; - for (row=0; row < height; row++) -diff --git a/libs/rawengine/libraw/libraw/libraw_version.h b/libs/rawengine/libraw/libraw/libraw_version.h -index ad2f398..b6cacec 100644 ---- a/core/libs/rawengine/libraw/libraw/libraw_version.h -+++ b/core/libs/rawengine/libraw/libraw/libraw_version.h -@@ -22,7 +22,7 @@ it under the terms of the one of two licenses as you choose: - - #define LIBRAW_MAJOR_VERSION 0 - #define LIBRAW_MINOR_VERSION 18 --#define LIBRAW_PATCH_VERSION 6 -+#define LIBRAW_PATCH_VERSION 7 - #define LIBRAW_VERSION_TAIL Release - - #define LIBRAW_SHLIB_CURRENT 16 -diff --git a/libs/rawengine/libraw/src/libraw_cxx.cpp b/libs/rawengine/libraw/src/libraw_cxx.cpp -index fbd1f6a..d242222 100644 ---- a/core/libs/rawengine/libraw/src/libraw_cxx.cpp -+++ b/core/libs/rawengine/libraw/src/libraw_cxx.cpp -@@ -2508,7 +2508,7 @@ int LibRaw::unpack(void) - S.raw_pitch = (decoder_info.decoder_flags & LIBRAW_DECODER_LEGACY_WITH_MARGINS) ? S.raw_width*8 : S.width*8; - // allocate image as temporary buffer, size - imgdata.rawdata.raw_alloc = 0; -- imgdata.image = (ushort (*)[4]) calloc(unsigned(S.raw_width)*unsigned(S.raw_height),sizeof(*imgdata.image)); -+ imgdata.image = (ushort (*)[4]) calloc(unsigned(MAX(S.width,S.raw_width))*unsigned(MAX(S.height,S.raw_height)),sizeof(*imgdata.image)); - if(!(decoder_info.decoder_flags & LIBRAW_DECODER_ADOBECOPYPIXEL)) - { - imgdata.rawdata.raw_image = (ushort*) imgdata.image ; --- -cgit v0.11.2 -