Package: release.debian.org Severity: normal X-Debbugs-Cc: qzx...@packages.debian.org Control: affects -1 + src:qzxing User: release.debian....@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 <sunwea...@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.plane...@ubuntu.com> - 2022, Mike Gabriel <mike.gabr...@das-netzwerkteam.de + 2022-2025, Mike Gabriel <mike.gabr...@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/