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
-