Bug#1106852: unblock: qzxing/3.3.0+dfsg-7
Package: release.debian.org
Severity: normal
X-Debbugs-Cc: qzxing@packages.debian.org
Control: affects -1 + src:qzxing
User: release.debian.org@packages.debian.org
Usertags: unblock
Please unblock package qzxing
During tests it turned out that the installation of qml-module-qzxing in
fact breaks the lomiri-barcodereader-app (a startup mode of
lomiri-camera-app). After some deeper dive into the QML integration of
qzxing into lomiri-barcodereader-app/lomiri-camera-app it turned out
that lomiri-camera-app works well in barcode reader mode if
qml-module-qzxing is not installed. The functionality is compiled in
without the need of loading a QML module at runtime.
The qml-module-qzxing bin:pkg is not used anywhere else anymore (since
lomiri-camera-app 4.0.8+dfsg-3), so dropping it from trixie via this update
should not interfere with other packages.
[ Reason ]
Fix broken barcode reader app mode of lomiri-camera-app.
[ Impact ]
Lomiri's Barcode Reader app will stay broken.
[ Tests ]
Runtime tests on a Debian trixie machine with a webcam.
[ Risks ]
None.
[ 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 ]
This will go together with an unblock request for lomiri-camera-app (in prep).
unblock qzxing/3.3.0+dfsg-7
diff -Nru qzxing-3.3.0+dfsg/debian/changelog qzxing-3.3.0+dfsg/debian/changelog
--- qzxing-3.3.0+dfsg/debian/changelog 2024-08-14 10:34:26.000000000 +0200
+++ qzxing-3.3.0+dfsg/debian/changelog 2025-05-10 16:25:56.000000000 +0200
@@ -1,3 +1,23 @@
+qzxing (3.3.0+dfsg-7) unstable; urgency=medium
+
+ * debian/patches:
+ + Update 1001_build-as-shared-lib.patch. Drop files related to to-be-removed
+ qml-module-qzxing bin:pkg.
+ + Rebase 1002_cmake-pkg-config-export.patch.
+ * debian/:
+ + Drop bin:pkg qml-module-qzxing. Not needed, and in fact breaking consumers
+ of the qzxing library when using it as QQuickImageProvider. (See:
+ #1092953) and upload of lomiri-camera-app 4.0.8+dfsg-3.
+ * debian/control:
+ + Assure uninstallation of bin:pkg qml-module-qzxing from previous versions
+ of qzxing. The formerly shipped QML module breaks consumers of qzxing when
+ used as QQuickImageProvider in QML applications.
+ + Bump Standards-Version: to 4.7.2. No changes needed.
+ * debian/copyright:
+ + Update copyright attributions for debian/.
+
+ -- Mike Gabriel <sunweaver@debian.org> Sat, 10 May 2025 16:25:56 +0200
+
qzxing (3.3.0+dfsg-6) unstable; urgency=medium
[ Guido Berhoerster ]
diff -Nru qzxing-3.3.0+dfsg/debian/control qzxing-3.3.0+dfsg/debian/control
--- qzxing-3.3.0+dfsg/debian/control 2024-08-14 10:33:56.000000000 +0200
+++ qzxing-3.3.0+dfsg/debian/control 2025-05-10 16:25:56.000000000 +0200
@@ -14,7 +14,7 @@
qtmultimedia5-dev,
qtquickcontrols2-5-dev,
pkg-kde-tools,
-Standards-Version: 4.6.1
+Standards-Version: 4.7.2
Rules-Requires-Root: no
Homepage: https://github.com/ftylitak/qzxing
Vcs-Git: https://salsa.debian.org/ubports-team/qzxing.git
@@ -25,6 +25,8 @@
Multi-Arch: same
Depends: ${misc:Depends},
${shlibs:Depends},
+Breaks: qml-module-qzxing,
+Replaces: qml-module-qzxing,
Description: QZXing library
Qt wrapper for the ZXing 1D/2D barcode image decoder.
.
@@ -81,34 +83,3 @@
.
This package contains the development header files of the QZXing shared
library.
-
-Package: qml-module-qzxing
-Architecture: any
-Multi-Arch: same
-Depends: ${misc:Depends},
- qml-module-qtquick2,
- libqzxing3 (= ${binary:Version}),
-Description: QZXing QML/QtQuick module
- Qt wrapper for the ZXing 1D/2D barcode image decoder.
- .
- Supports barcode decoding for the following types:
- .
- UPC-A
- UPC-E
- EAN-8
- EAN-13
- ITF
- Code 39
- Code 93
- Code 128 (GS1)
- Codabar
- QR Code
- Data Matrix
- Aztec (beta)
- PDF 417
- .
- Supports barcode encoding for the following types:
- .
- QR Code
- .
- This package contains the QML module for QZXing.
diff -Nru qzxing-3.3.0+dfsg/debian/copyright qzxing-3.3.0+dfsg/debian/copyright
--- qzxing-3.3.0+dfsg/debian/copyright 2022-10-12 22:43:03.000000000 +0200
+++ qzxing-3.3.0+dfsg/debian/copyright 2025-05-10 16:25:56.000000000 +0200
@@ -481,7 +481,7 @@
Files: debian/*
Copyright: 2013, David Planella <david.planella@ubuntu.com>
- 2022, Mike Gabriel <mike.gabriel@das-netzwerkteam.de
+ 2022-2025, Mike Gabriel <mike.gabriel@das-netzwerkteam.de
License: Apache-2.0 or BSD-3-clause or Expat
License: Apache-2.0
diff -Nru qzxing-3.3.0+dfsg/debian/patches/1001_build-as-shared-lib.patch qzxing-3.3.0+dfsg/debian/patches/1001_build-as-shared-lib.patch
--- qzxing-3.3.0+dfsg/debian/patches/1001_build-as-shared-lib.patch 2024-08-14 10:34:26.000000000 +0200
+++ qzxing-3.3.0+dfsg/debian/patches/1001_build-as-shared-lib.patch 2025-05-10 16:20:05.000000000 +0200
@@ -96,23 +96,7 @@
if(WIN32)
add_subdirectory(zxing/win32)
-@@ -78,6 +117,15 @@
- Qt5::Quick
- Qt5::QuickControls2)
- target_compile_definitions(qzxing PUBLIC -DQZXING_QML)
-+
-+ if(BUILD_SHARED)
-+ # copy qmldir file to build dir so QML unit tests can use it to import the plugin
-+ configure_file(
-+ qmldir.in
-+ qmldir
-+ )
-+ endif()
-+
- endif(QZXING_USE_QML)
-
- if(QZXING_USE_ENCODER)
-@@ -108,9 +156,10 @@
+@@ -108,9 +147,10 @@
target_compile_definitions(qzxing PRIVATE -DENABLE_DECODER_1D_BARCODES)
endif()
@@ -126,7 +110,7 @@
# Target includes
target_include_directories(qzxing
-@@ -120,7 +169,57 @@
+@@ -120,7 +160,23 @@
zxing/win32/zxing
zxing/zxing
zxing/bigint
@@ -151,43 +135,4 @@
+ FILES ${PUBLIC_HEADERS} DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/qzxing"
+ )
+
-+ # Qt5's cmake does not export QT_IMPORTS_DIR, lets query qmake on our own for now
-+ get_target_property(QMAKE_EXECUTABLE Qt5::qmake LOCATION)
-+ function(QUERY_QMAKE VAR RESULT)
-+ exec_program(${QMAKE_EXECUTABLE} ARGS "-query ${VAR}" RETURN_VALUE return_code OUTPUT_VARIABLE output )
-+ if(NOT return_code)
-+ file(TO_CMAKE_PATH "${output}" output)
-+ set(${RESULT} ${output} PARENT_SCOPE)
-+ endif(NOT return_code)
-+ endfunction(QUERY_QMAKE)
-+ query_qmake(QT_INSTALL_QML QT_IMPORTS_DIR)
-+
-+ if(QZXING_USE_QML)
-+ set(PLUGIN_DIR ${QT_IMPORTS_DIR}/QZXing)
-+ install(FILES ${CMAKE_CURRENT_BINARY_DIR}/qmldir DESTINATION ${PLUGIN_DIR})
-+
-+ set(CHECK_DEFAULT_PATH "")
-+ if (EXISTS "/etc/debian_version")
-+ set(CHECK_DEFAULT_PATH "NO_DEFAULT_PATH")
-+ endif()
-+ find_program(QML_PLUGIN_DUMP qmlplugindump REQUIRED
-+ PATHS /usr/lib/qt5/bin
-+ ${CHECK_DEFAULT_PATH}
-+ )
-+ add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/plugins.qmltypes
-+ COMMAND ${QML_PLUGIN_DUMP} -noinstantiate -notrelocatable ${URI} 1.0 ../ > ${CMAKE_CURRENT_BINARY_DIR}/plugins.qmltypes
-+ DEPENDS qzxing
-+ WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}"
-+ )
-+
-+ add_custom_target(qzxing_generated_files ALL SOURCES ${CMAKE_CURRENT_BINARY_DIR}/plugins.qmltypes)
-+ install(FILES ${CMAKE_CURRENT_BINARY_DIR}/plugins.qmltypes DESTINATION ${PLUGIN_DIR})
-+
-+ endif()
-+
+endif()
---- /dev/null
-+++ b/src/qmldir.in
-@@ -0,0 +1,2 @@
-+module QZXing
-+plugin qzxing @CMAKE_INSTALL_FULL_LIBDIR@
diff -Nru qzxing-3.3.0+dfsg/debian/patches/1002_cmake-pkg-config-export.patch qzxing-3.3.0+dfsg/debian/patches/1002_cmake-pkg-config-export.patch
--- qzxing-3.3.0+dfsg/debian/patches/1002_cmake-pkg-config-export.patch 2024-08-14 10:33:56.000000000 +0200
+++ qzxing-3.3.0+dfsg/debian/patches/1002_cmake-pkg-config-export.patch 2025-05-10 16:25:56.000000000 +0200
@@ -11,8 +11,6 @@
create mode 100644 src/QZXing.pc.in
create mode 100644 src/cmake/JoinPaths.cmake
-diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
-index ce5c834..b3e640d 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -1,12 +1,15 @@
@@ -31,7 +29,7 @@
OPTION(QZXING_MULTIMEDIA "" OFF)
OPTION(QZXING_USE_QML "" OFF)
-@@ -22,7 +25,7 @@ if(BUILD_SHARED)
+@@ -22,7 +25,7 @@
OPTION(QZXING_USE_DECODER_1D_BARCODES "" OFF)
include (GNUInstallDirs)
@@ -40,7 +38,7 @@
endif()
find_package(Qt5 COMPONENTS Core REQUIRED)
-@@ -42,6 +45,8 @@ set(PUBLIC_HEADERS
+@@ -42,6 +45,8 @@
QZXing_global.h
)
@@ -49,7 +47,7 @@
set(SOURCES
CameraImageWrapper.cpp
-@@ -56,7 +61,7 @@ if(QZXING_MULTIMEDIA)
+@@ -56,7 +61,7 @@
LIST(APPEND SOURCES QZXingFilter.cpp QZXingFilter.h)
LIST(APPEND PUBLIC_HEADERS QZXingFilter.h)
@@ -58,7 +56,7 @@
SET(QZXING_USE_QML ON)
-@@ -65,18 +70,18 @@ endif(QZXING_MULTIMEDIA)
+@@ -65,18 +70,18 @@
if(QZXING_USE_QML)
LIST(APPEND SOURCES QZXingImageProvider.cpp QZXingImageProvider.h)
LIST(APPEND PUBLIC_HEADERS QZXingImageProvider.h)
@@ -80,7 +78,7 @@
SOVERSION ${SOVERSION_MAJOR}
)
else()
-@@ -108,7 +113,6 @@ target_link_libraries(qzxing Qt5::Core Qt5::Gui)
+@@ -108,7 +113,6 @@
if(QZXING_MULTIMEDIA)
target_link_libraries(qzxing Qt5::Multimedia)
@@ -88,16 +86,8 @@
endif(QZXING_MULTIMEDIA)
if(QZXING_USE_QML)
-@@ -116,7 +120,6 @@ if(QZXING_USE_QML)
- Qt5::Svg
- Qt5::Quick
- Qt5::QuickControls2)
-- target_compile_definitions(qzxing PUBLIC -DQZXING_QML)
-
- if(BUILD_SHARED)
- # copy qmldir file to build dir so QML unit tests can use it to import the plugin
-@@ -128,10 +131,6 @@ if(QZXING_USE_QML)
-
+@@ -119,10 +123,6 @@
+ target_compile_definitions(qzxing PUBLIC -DQZXING_QML)
endif(QZXING_USE_QML)
-if(QZXING_USE_ENCODER)
@@ -107,7 +97,7 @@
if(QZXING_USE_DECODER_QR_CODE)
target_compile_definitions(qzxing PRIVATE -DENABLE_DECODER_QR_CODE)
endif()
-@@ -158,9 +157,11 @@ endif()
+@@ -149,9 +149,11 @@
if(!BUILD_SHARED)
# Change Global Definitions depending on how you want to use the library
@@ -120,7 +110,7 @@
# Target includes
target_include_directories(qzxing
PRIVATE
-@@ -188,6 +189,17 @@ if(BUILD_SHARED)
+@@ -179,4 +181,15 @@
FILES ${PUBLIC_HEADERS} DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/qzxing"
)
@@ -135,12 +125,7 @@
+ configure_file(QZXing.pc.in ${CMAKE_CURRENT_BINARY_DIR}/QZXing.pc @ONLY)
+ install(FILES ${CMAKE_CURRENT_BINARY_DIR}/QZXing.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
+
- # Qt5's cmake does not export QT_IMPORTS_DIR, lets query qmake on our own for now
- get_target_property(QMAKE_EXECUTABLE Qt5::qmake LOCATION)
- function(QUERY_QMAKE VAR RESULT)
-diff --git a/src/QZXing.pc.in b/src/QZXing.pc.in
-new file mode 100644
-index 0000000..7a13d44
+ endif()
--- /dev/null
+++ b/src/QZXing.pc.in
@@ -0,0 +1,10 @@
@@ -154,9 +139,6 @@
+Version: @SOVERSION_FULL@
+Cflags: @PC_DEFINES@ -I${includedir}
+Libs: -L${libdir} -lqzxing
-diff --git a/src/cmake/JoinPaths.cmake b/src/cmake/JoinPaths.cmake
-new file mode 100644
-index 0000000..c68d91b
--- /dev/null
+++ b/src/cmake/JoinPaths.cmake
@@ -0,0 +1,23 @@
@@ -183,6 +165,3 @@
+ endforeach()
+ set(${joined_path} "${temp_path}" PARENT_SCOPE)
+endfunction()
---
-2.44.1
-
diff -Nru qzxing-3.3.0+dfsg/debian/qml-module-qzxing.install qzxing-3.3.0+dfsg/debian/qml-module-qzxing.install
--- qzxing-3.3.0+dfsg/debian/qml-module-qzxing.install 2022-10-20 00:42:17.000000000 +0200
+++ qzxing-3.3.0+dfsg/debian/qml-module-qzxing.install 1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-usr/lib/*/qt5/qml/QZXing/
Reply to: