[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#1107850: marked as done (unblock: lomiri-camera-app/4.0.8+dfsg-5)



Your message dated Wed, 18 Jun 2025 10:05:26 +0000
with message-id <E1uRpfa-005L4q-1h@respighi.debian.org>
and subject line unblock lomiri-camera-app
has caused the Debian Bug report #1107850,
regarding unblock: lomiri-camera-app/4.0.8+dfsg-5
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact owner@bugs.debian.org
immediately.)


-- 
1107850: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1107850
Debian Bug Tracking System
Contact owner@bugs.debian.org with problems
--- Begin Message ---
Package: release.debian.org
Severity: normal
X-Debbugs-Cc: lomiri-camera-app@packages.debian.org
Control: affects -1 + src:lomiri-camera-app
User: release.debian.org@packages.debian.org
Usertags: unblock

Please unblock package lomiri-camera-app

I added two more patches from upstream, one fixing a file access bug /
race condition and another fixing a usability issue.

[ Reason ]

+  * debian/patches:
+    + Add 0006_qml-Viewfinder-fix-content-export-preview-corruption.patch.
+      qml/Viewfinder: Fix content export preview corruption in !hasEXIF mode.

-> Fix for two threads possibly trying to write to an image file
simultaneously, causing its corruption.

+    + Add 0007_qml-Support-scanning-white-QR-codes-in-BarcodeReaderApp.patch.
+      Support white QR codes in barcode reader app.

-> Support scanning white QR codes.

[ Impact ]
Above mentioned problems remain in Lomiri's Camera App in trixie.

[ Tests ]
Manual tests.

[ Risks ]
Minimal, only for users of Lomiri Camera App.

[ Checklist ]
  [x] all changes are documented in the d/changelog
  [x] I reviewed all changes and I approve them
  [x] attach debdiff against the package in testing

[ Other info ]
Relevant for Lomiri in Debian.

unblock lomiri-camera-app/4.0.8+dfsg-5
diff -Nru lomiri-camera-app-4.0.8+dfsg/debian/changelog lomiri-camera-app-4.0.8+dfsg/debian/changelog
--- lomiri-camera-app-4.0.8+dfsg/debian/changelog	2025-05-30 16:14:07.000000000 +0200
+++ lomiri-camera-app-4.0.8+dfsg/debian/changelog	2025-06-15 21:14:56.000000000 +0200
@@ -1,3 +1,13 @@
+lomiri-camera-app (4.0.8+dfsg-5) unstable; urgency=medium
+
+  * debian/patches:
+    + Add 0006_qml-Viewfinder-fix-content-export-preview-corruption.patch.
+      qml/Viewfinder: Fix content export preview corruption in !hasEXIF mode.
+    + Add 0007_qml-Support-scanning-white-QR-codes-in-BarcodeReaderApp.patch.
+      Support white QR codes in barcode reader app.
+
+ -- Mike Gabriel <sunweaver@debian.org>  Sun, 15 Jun 2025 21:14:56 +0200
+
 lomiri-camera-app (4.0.8+dfsg-4) unstable; urgency=medium
 
   * debian/patches:
diff -Nru lomiri-camera-app-4.0.8+dfsg/debian/patches/0006_qml-Viewfinder-fix-content-export-preview-corruption.patch lomiri-camera-app-4.0.8+dfsg/debian/patches/0006_qml-Viewfinder-fix-content-export-preview-corruption.patch
--- lomiri-camera-app-4.0.8+dfsg/debian/patches/0006_qml-Viewfinder-fix-content-export-preview-corruption.patch	1970-01-01 01:00:00.000000000 +0100
+++ lomiri-camera-app-4.0.8+dfsg/debian/patches/0006_qml-Viewfinder-fix-content-export-preview-corruption.patch	2025-06-06 19:21:41.000000000 +0200
@@ -0,0 +1,103 @@
+From f3f7476729771137ea510f81357fef98d9d3b9bb Mon Sep 17 00:00:00 2001
+From: Ratchanan Srirattanamet <ratchanan@ubports.com>
+Date: Fri, 30 May 2025 20:56:44 +0700
+Subject: [PATCH] qml/Viewfinder: fix content export preview corruption in
+ !hasEXIF mode
+
+Because of signal connection order, content export preview will start
+rendering image while `deleteEXIF()` re-writes the file. This causes
+preview image to corrupt.
+
+Move all imageSaved() signal handler code from `ViewFinderOverlay` to
+`ViewFinderView` so that we can control the ordering. Order it so that
+(synchronous) `deleteEXIF()` happens before content export preview
+renders image.
+
+#While we're at it, remove call to non-existent `fileOperations.
+#setEXIFData()` (which is redundant with another part of code in
+#`ViewFinderOverlay`); the exception thrown will prevent the rest of the
+#code to run.
+
+Finally, add a few comments so that we turn `deleteEXIF()` to be
+asynchronous in the future.
+
+Fixes: https://gitlab.com/ubports/development/apps/lomiri-camera-app/-/issues/217
+Fixes: e38dbba16647 ("add fixes to barcodereader app and drop obsolete imports")
+Signed-off-by: Mike Gabriel <mike.gabriel@das-netzwerkteam.de>
+---
+ ViewFinderOverlay.qml | 35 ----------------------------
+ ViewFinderView.qml    | 23 +++++++++++++++++-
+ 2 files changed, 22 insertions(+), 36 deletions(-)
+
+--- a/ViewFinderOverlay.qml
++++ b/ViewFinderOverlay.qml
+@@ -1008,10 +1008,6 @@
+                                           position.horizontalAccuracy <= 100)
+         }
+ 
+-        PostProcessOperations {
+-            id: postProcessOperations
+-        }
+-
+         Connections {
+             target: camera.imageCapture
+             onReadyChanged: {
+@@ -1021,19 +1017,6 @@
+                     }
+                 }
+             }
+-            onImageSaved : {
+-                if(path &&!settings.hasEXIF)
+-                {
+-                    postProcessOperations.deleteEXIFdata(path);
+-                }
+-                if(path && settings.dateStampImages && !main.contentExportMode) {
+-                    postProcessOperations.addDateStamp(path,
+-                                                       viewFinderOverlay.settings.dateStampFormat,
+-                                                       viewFinderOverlay.settings.dateStampColor,
+-                                                       viewFinderOverlay.settings.dateStampOpacity,
+-                                                       viewFinderOverlay.settings.dateStampAlign);
+-                }
+-            }
+         }
+ 
+         CircleButton {
+--- a/ViewFinderView.qml
++++ b/ViewFinderView.qml
+@@ -131,7 +131,24 @@
+             }
+ 
+             onImageSaved: {
+-                if (main.contentExportMode) viewFinderExportConfirmation.mediaPath = path;
++                if(!viewFinderOverlay.settings.hasEXIF) {
++                    // TODO: make this operation asynchronous.
++                    postProcessOperations.deleteEXIFdata(path);
++                }
++
++                if(viewFinderOverlay.settings.dateStampImages && !main.contentExportMode) {
++                    postProcessOperations.addDateStamp(path,
++                                                       viewFinderOverlay.settings.dateStampFormat,
++                                                       viewFinderOverlay.settings.dateStampColor,
++                                                       viewFinderOverlay.settings.dateStampOpacity,
++                                                       viewFinderOverlay.settings.dateStampAlign);
++                }
++
++                // TODO: make it so that asynchronous operations signals to us
++                // on finished and only then proceed to the code below.
++
++                if (main.contentExportMode)
++                    viewFinderExportConfirmation.mediaPath = path;
+ 
+                 viewFinderView.photoTaken(path);
+                 metricPhotos.increment();
+@@ -369,6 +386,10 @@
+         sourceComponent: viewFinderExportConfirmationComp
+     }
+ 
++    PostProcessOperations {
++        id: postProcessOperations
++    }
++
+     property alias viewFinderExportConfirmation: viewFinderExportConfirmationLoader.item
+ 
+     Component {
diff -Nru lomiri-camera-app-4.0.8+dfsg/debian/patches/0007_qml-Support-scanning-white-QR-codes-in-BarcodeReaderApp.patch lomiri-camera-app-4.0.8+dfsg/debian/patches/0007_qml-Support-scanning-white-QR-codes-in-BarcodeReaderApp.patch
--- lomiri-camera-app-4.0.8+dfsg/debian/patches/0007_qml-Support-scanning-white-QR-codes-in-BarcodeReaderApp.patch	1970-01-01 01:00:00.000000000 +0100
+++ lomiri-camera-app-4.0.8+dfsg/debian/patches/0007_qml-Support-scanning-white-QR-codes-in-BarcodeReaderApp.patch	2025-06-15 21:14:56.000000000 +0200
@@ -0,0 +1,24 @@
+From 993643af0ab88243fe76b13f7ed2f4abee823072 Mon Sep 17 00:00:00 2001
+From: Alfred Neumayer <dev.beidl@gmail.com>
+Date: Fri, 13 Jun 2025 19:02:18 +0200
+Subject: [PATCH] qml: Activate QZXing.SourceFilter_ImageInverted for
+ imageSourceFilter
+
+Let the viewfinder be color inverted by QZXing. Fixes scanning
+white QR Codes on black backgrounds.
+---
+ barcode-reader-app.qml | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+--- a/barcode-reader-app.qml
++++ b/barcode-reader-app.qml
+@@ -72,7 +72,8 @@
+         active: true
+         decoder {
+             enabledDecoders: QZXing.DecoderFormat_QR_CODE
+-            imageSourceFilter: QZXing.SourceFilter_ImageNormal
++            imageSourceFilter: QZXing.SourceFilter_ImageNormal |
++                               QZXing.SourceFilter_ImageInverted
+ 
+             onTagFoundAdvanced: {
+                 viewFinderView.recentlyScannedTag = tag
diff -Nru lomiri-camera-app-4.0.8+dfsg/debian/patches/series lomiri-camera-app-4.0.8+dfsg/debian/patches/series
--- lomiri-camera-app-4.0.8+dfsg/debian/patches/series	2025-05-30 15:45:23.000000000 +0200
+++ lomiri-camera-app-4.0.8+dfsg/debian/patches/series	2025-06-15 21:13:35.000000000 +0200
@@ -5,3 +5,5 @@
 0003_fix-spelling-of-background-color-in-AdvancedOptions-qml.patch
 0004_Save-orientation-when-erasing-metadata.patch
 0005_add-left-margin-between-icon-and-label-in-options-selector.patch
+0006_qml-Viewfinder-fix-content-export-preview-corruption.patch
+0007_qml-Support-scanning-white-QR-codes-in-BarcodeReaderApp.patch

--- End Message ---
--- Begin Message ---
Unblocked lomiri-camera-app.

--- End Message ---

Reply to: