commit 6cd1cc05656eb85b1299a8c3093427e7baf0a6e5981d54693805266c2eff9077 Author: Jan Engelhardt Date: Tue Sep 3 15:14:16 2024 +0000 - Update to 2.2.1. Changes: * Fix ABI breakage from 2.2.0. - Changes from 2.2.0: * Rename DecodeHints to ReaderOptions. The old name is still available for backward API compatibility but deprecated. Since the C-API and the Qt wrapper code are not officially part of the library, they changed without backward compatibility. * WASM: bytes in ReadResult. * DataMatrix: use charset for encoding. * QRCode: Support QR Code Model1. * rMQR Code: Support Rectangular Micro QR Code. - Refresh patch: * cmake.patch OBS-URL: https://build.opensuse.org/package/show/devel:libraries:c_c++/zxing-cpp?expand=0&rev=37 diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..9b03811 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,23 @@ +## Default LFS +*.7z filter=lfs diff=lfs merge=lfs -text +*.bsp filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.gem filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.jar filter=lfs diff=lfs merge=lfs -text +*.lz filter=lfs diff=lfs merge=lfs -text +*.lzma filter=lfs diff=lfs merge=lfs -text +*.obscpio filter=lfs diff=lfs merge=lfs -text +*.oxt filter=lfs diff=lfs merge=lfs -text +*.pdf filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +*.rpm filter=lfs diff=lfs merge=lfs -text +*.tbz filter=lfs diff=lfs merge=lfs -text +*.tbz2 filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.ttf filter=lfs diff=lfs merge=lfs -text +*.txz filter=lfs diff=lfs merge=lfs -text +*.whl filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.zst filter=lfs diff=lfs merge=lfs -text diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..57affb6 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.osc diff --git a/baselibs.conf b/baselibs.conf new file mode 100644 index 0000000..3d8b8cd --- /dev/null +++ b/baselibs.conf @@ -0,0 +1 @@ +libZXing3 diff --git a/cmake.patch b/cmake.patch new file mode 100644 index 0000000..1b4e303 --- /dev/null +++ b/cmake.patch @@ -0,0 +1,39 @@ +Index: zxing-cpp-2.2.1/CMakeLists.txt +=================================================================== +--- zxing-cpp-2.2.1.orig/CMakeLists.txt ++++ zxing-cpp-2.2.1/CMakeLists.txt +@@ -1,4 +1,4 @@ +-cmake_minimum_required(VERSION 3.15) ++cmake_minimum_required(VERSION 3.5) + + project(ZXing) + +@@ -37,9 +37,6 @@ if (BUILD_SHARED_LIBS) + set (CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON) + endif() + +-if (NOT CMAKE_CXX_STANDARD) +- set (CMAKE_CXX_STANDARD 17) +-endif() + if (NOT CMAKE_CXX_EXTENSIONS) + set (CMAKE_CXX_EXTENSIONS OFF) + endif() +Index: zxing-cpp-2.2.1/core/CMakeLists.txt +=================================================================== +--- zxing-cpp-2.2.1.orig/core/CMakeLists.txt ++++ zxing-cpp-2.2.1/core/CMakeLists.txt +@@ -1,4 +1,4 @@ +-cmake_minimum_required(VERSION 3.15) ++cmake_minimum_required(VERSION 3.5) + + project (ZXing VERSION "2.2.1") + set (ZXING_SONAME 3) # see https://github.com/zxing-cpp/zxing-cpp/issues/333 +@@ -464,8 +464,6 @@ if (COMPILER_NEEDS_FLOAT_STORE) + ) + endif() + +-target_compile_features(ZXing PUBLIC cxx_std_17) +- + target_link_libraries (ZXing PRIVATE Threads::Threads) + + add_library(ZXing::ZXing ALIAS ZXing) diff --git a/zxing-cpp-2.1.0.tar.gz b/zxing-cpp-2.1.0.tar.gz new file mode 100644 index 0000000..45b98c1 --- /dev/null +++ b/zxing-cpp-2.1.0.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6d54e403592ec7a143791c6526c1baafddf4c0897bb49b1af72b70a0f0c4a3fe +size 866787 diff --git a/zxing-cpp-2.2.1.tar.gz b/zxing-cpp-2.2.1.tar.gz new file mode 100644 index 0000000..d68252f --- /dev/null +++ b/zxing-cpp-2.2.1.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:02078ae15f19f9d423a441f205b1d1bee32349ddda7467e2c84e8f08876f8635 +size 891055 diff --git a/zxing-cpp.changes b/zxing-cpp.changes new file mode 100644 index 0000000..aa21493 --- /dev/null +++ b/zxing-cpp.changes @@ -0,0 +1,254 @@ +------------------------------------------------------------------- +Mon Sep 2 21:46:34 UTC 2024 - Martin Schreiner + +- Update to 2.2.1. Changes: + * Fix ABI breakage from 2.2.0. +- Changes from 2.2.0: + * Rename DecodeHints to ReaderOptions. The old name is still available for + backward API compatibility but deprecated. Since the C-API and the Qt + wrapper code are not officially part of the library, they changed without + backward compatibility. + * WASM: bytes in ReadResult. + * DataMatrix: use charset for encoding. + * QRCode: Support QR Code Model1. + * rMQR Code: Support Rectangular Micro QR Code. +- Refresh patch: + * cmake.patch + +------------------------------------------------------------------- +Thu Nov 30 14:32:19 UTC 2023 - Guillaume GARDET + +- Add back %{optflags} in c++ flags + This was unintentionally disabled when c++17 was forced + +------------------------------------------------------------------- +Fri Oct 6 06:01:16 UTC 2023 - Paolo Stivanin + +- Update to 2.1.0: + * Considerable performance improvements in linear symbol detection (up to 2x speedup in select use cases of ReadBarcodes) + * QRCode: major improvement in detection of high version symbols (see e.g. here) + * DMDetector: reduce runtime overhead of c++-20 builds + * Refactor Python wrapper so the sdist includes the core library code + * wasm wrapper: add function to reader to scan multiple barcode + * Added a C wrapper + * Python: improve error reporting + * DMDetector: fix potential dead-lock + * DMDecoder: support 144x144 symbols in legacy and compliant variants +- Remove the %check section since we are not building the tests. + +------------------------------------------------------------------- +Wed Aug 9 15:07:38 UTC 2023 - Fridrich Strba + +- Restore support for building on SLE12 +- Build with gcc7-c++ or gcc-c++ >= 7 because of C++17 requirements +- Added patch: + * cmake.patch + + allow building with cmake 3.5 on SLE12SP5 + +------------------------------------------------------------------- +Tue Apr 25 08:56:24 UTC 2023 - Frederic Crozat + +- Drop support for building on SLE12. + +------------------------------------------------------------------- +Wed Jan 25 14:01:00 UTC 2023 - Bjørn Lie + +- Update to version 2.0.0: + * Switch to UTF8 based API and remove deprecated UTF16 one + (Result::text()) + * Remove all API deprecated in 1.4 + * Adding a wrapper for iOS + * New Aztec detector implementation to support arbitrary rotation + and position of the symbol + * Support multi-symbol detection in Aztec detector + * Replace all Qt originated ECI/CharacterSet conversion code with + a new implementation + * Require c++17 to build library and client code + * New DecodeHints::textMode() and Result::text(TextMode) API to + specify how bytes are rendered into text + * HRI (human readable interpretation) is the new default for the + TextMode (has been for most cases before, but not all) + * New DecodeHits::tryInvert() feature to test for inverted + symbols (white on black background) +- Changes from version 1.4.0: + * Note: this is an intermediary release on the way to 2.0. This + code is (supposed to be) API compatible (via the ReadBarcode.h + interface) with v1.3.0 but contains quite a few additional + deprecations. It still has SO number 1, which is as wrong as it + was for release v1.3.0 and it is not ABI compatible with 1.3 + either. 2.0 will be basically 1.4 but with all deprecated API + removed and the final fix for #333. + * Reader support for Micro QRCode by @corbers + * Prepared switch from std::wstring based utf16 to std::string + based utf8 results, use new ZX_USE_UTF8 macro to transition to + the upcoming 2.0 API + * Much improved 'binary' data support via new Result::bytes() + API, see #334 for a detailed background discussion. + * New Result::contentType() API returning information about the + type of content (like text vs. binary, etc.) + * Better standards conformance with respect to ECI handling, see + Results::bytesECI() + * Support for proper ECI handling across structured append + symbols (see MergeStructuredAppendResults()) + * New Result::error() API with improved error handling, see also + DecodeHints::returnErrors() + * Removed all internal header files from the installed set, so + only the ReadBarcode.h based APIs are supported from here on + out + * Removed all sample images from the 'source' distribution + zip/tar balls (much reduced size) + * Python read_barcode returns None if no symbol was found (might + break existing code if not checked for None before) +- Changes from version 1.3.0: + * Multi-barcode reading with the new std::vector + ReadBardcodes(...) function. Does not work for Aztec, + DataMatrix and Maxicode, yet. + * Multi-resolution scanning that can automatically downscale the + input to substantially increase the detection rate on high + resolution scans, see DecodeHints::tryDownscale, currently only + enabled in the ReadBardcodes function + * New Result::symbologyIdentifier property + * Updated and improved android wrapper +- Drop patches fixed upstream: + * 269.patch + * 0001-test-update-to-libfmt-v9.0.0.patch + * cmake-check-system-first.patch +- Bump sover to 3 following upstream changes. + +------------------------------------------------------------------- +Tue Sep 20 07:10:22 UTC 2022 - Christophe Giboudeaux + +- Add fmt 9.0 compatibility patch (boo#1202273): + * 0001-test-update-to-libfmt-v9.0.0.patch + +------------------------------------------------------------------- +Mon Dec 13 14:14:53 UTC 2021 - Danilo Spinella + +- Update stb_image/stb_image_write to include the fixes for + the following CVEs: + CVE-2021-28021, bsc#1191743 + CVE-2021-42715, bsc#1191942 + CVE-2021-42716, bsc#1191944 + * 269.patch + +------------------------------------------------------------------- +Fri Nov 5 11:58:38 UTC 2021 - Danilo Spinella + +- Do not build examples to avoid a cycle with QT5Multimedia + +------------------------------------------------------------------- +Wed Nov 3 14:42:33 UTC 2021 - Danilo Spinella + +- Use the updated cmake3-full package instead of cmake on SLE12 +- Do not build examples on SLE12 +- Only build blackbox tests on TW + +------------------------------------------------------------------- +Sat May 29 10:37:28 UTC 2021 - Ferdinand Thiessen + +- Update to 1.2.0 + * new BarcodeFormat names, old ones are deprecated + * new ZXingQtCamReader demo app based on QtMultimedia and QtQuick + * new QRCode reader, faster and better support for rotated symbols + * added Structured Append support for DataMatrix, Aztec and MaxiCode + * added DMRE support for DataMatrix + * switch to the reimplemented 1D detectors, about 5x faster + * a lot faster and more capable isPure detection for all 2D codes + * 20% faster ReedSolomon error correcting + * PDF417 is faster and supports flipped symbols + * reduced false positive rate for UPC/EAN barcodes and improved + Add-On symbol handling + * proper ECI handling in all 2D barcodes + * much improved python wrapper + * deprecate the use of ResultMetadata +- Add cmake-check-system-first.patch +- Drop upstream merged 0001-Fix-build-with-GCC-11.patch + +------------------------------------------------------------------- +Tue Feb 9 07:50:14 UTC 2021 - Christophe Giboudeaux + +- Update to 1.1.1. No changelog available. +- Drop fix-pkg-config-file.patch. Merged upstream +- Add 0001-Fix-build-with-GCC-11.patch to fix GCC 11 build + issues (boo#1181915) + +------------------------------------------------------------------- +Fri Jan 15 00:29:36 UTC 2021 - Simon Lees + +- Use %cmake_build instead of %make_jobs +- Shouldn't need -DBUILD_SHARED_LIBRARY=ON + +------------------------------------------------------------------- +Fri Oct 23 08:33:47 UTC 2020 - Antonio Larrosa + +- Add baselibs.conf + +------------------------------------------------------------------- +Fri Sep 4 07:16:43 UTC 2020 - Antonio Larrosa + +- Add fix for pkg-config file so the version and library are set properly + in the resulting .pc file: + * fix-pkg-config-file.patch + +------------------------------------------------------------------- +Sun Aug 16 19:19:01 UTC 2020 - Christophe Giboudeaux + +- Update to 1.1.0 + * Add Python binding + * Bug fixes from upstream XZing project + * Many performance improvements for 1D readers + * More meta-data exported when reading specific format + * Minor bug fixes and improvements for corner cases + * Improve DataMatrix encoder + * Add interface to simplify basic usage + * WASM API to support pixels array as input + * Few minor bug fixes + * A new and (hopefully) 'future proof' single ReadBarcode entry point + into the decoding functionality. + * The LuminanceSource based API is now deprecated but still compiles. + * A new BarcodeFormats flag type to specify the set of barcodes to look for. + * Deprecated unrelyable Result::resultPoints in favor of well defined + Result::position. + * Deprecated Result::metadata() -> ORIENTATION in favor + of Result::orientation. + * New Binarizer enum in DecodeHints to specify the binarizer for + the ReadBarcode API. + * New DecodeHints::isPure property to speed up detection for + 'pure' input use-cases. + * New 'unified' CMake structure to build (most) of the project from + the top-level project. + * New ZXingReader and ZXingWriter example code also meant for distributing. + * New simplified and consistent Python API (breaking change) + * ReedSolomon error detection code 2x speedup. + * Enable basic MaxiCode support. + * Fix coutry-code metatdata decoding for UPC/EAN codes. + * Slightly improved QRCode detection for rotated symbols. + * Faster PDF417 decoder. + * Lots of minor code readability and general cleanup improvements. +- Drop patches: + * add-missing-includes-of-stdexcept-header.patch + * fix-library-installation-and-versioning.patch + +------------------------------------------------------------------- +Thu Dec 5 08:57:46 UTC 2019 - Martin Liška + +- Add add-missing-includes-of-stdexcept-header.patch + in order to fix boo#1158377. + +------------------------------------------------------------------- +Thu May 23 12:11:25 UTC 2019 - Jan Engelhardt + +- Trim metadata redundancies from description. + +------------------------------------------------------------------- +Wed May 22 05:06:25 UTC 2019 - Luca Beltrame + +- Fixup URL and Source + +------------------------------------------------------------------- +Fri May 17 05:22:57 UTC 2019 - Luca Beltrame + +- Initial package for openSUSE +- Add upstream patch to add proper installability and library + versioning: + * fix-library-installation-and-versioning.patch diff --git a/zxing-cpp.spec b/zxing-cpp.spec new file mode 100644 index 0000000..2bd7013 --- /dev/null +++ b/zxing-cpp.spec @@ -0,0 +1,111 @@ +# +# spec file for package zxing-cpp +# +# Copyright (c) 2024 SUSE LLC +# +# All modifications and additions to the file contributed by third parties +# remain the property of their copyright owners, unless otherwise agreed +# upon. The license for this file, and modifications and additions to the +# file, is the same license as for the pristine package itself (unless the +# license for the pristine package is not an Open Source License, in which +# case the license is the MIT License). An "Open Source License" is a +# license that conforms to the Open Source Definition (Version 1.9) +# published by the Open Source Initiative. + +# Please submit bugfixes or comments via https://bugs.opensuse.org/ +# + + +%define sover 3 +Name: zxing-cpp +Version: 2.2.1 +Release: 0 +Summary: Library for processing 1D and 2D barcodes +License: Apache-2.0 AND Zlib AND LGPL-2.1-with-Qt-Company-Qt-exception-1.1 +Group: Development/Languages/C and C++ +URL: https://github.com/nu-book/zxing-cpp/ +Source0: %{url}/archive/v%{version}.tar.gz#/%{name}-%{version}.tar.gz +Source99: baselibs.conf +Patch1: cmake.patch +BuildRequires: cmake >= 3.5 +BuildRequires: pkgconfig +%if 0%{?suse_version} > 1500 +# build the C wrapper only in TW. This package is too old on Leap <= 15.5 +BuildRequires: stb-devel +%endif +%if 0%{?suse_version} < 1500 +BuildRequires: gcc7 +BuildRequires: gcc7-c++ +%else +BuildRequires: gcc >= 7 +BuildRequires: gcc-c++ >= 7 +%endif +# only TW has fmt +%if 0%{?suse_version} > 1500 +# For blackbox tests +BuildRequires: cmake(fmt) >= 7.1.2 +%endif + +%description +ZXing ("zebra crossing") is an multi-format 1D/2D barcode image +processing library. This package provides a C++ implementation. + +%package -n libZXing%{sover} +Summary: Library for processing 1D and 2D barcodes +# called libZXing in the 1.1.0 update +Group: System/Libraries +Provides: libZXingCore%{sover} = %{version} +Obsoletes: libZXingCore%{sover} < %{version} + +%description -n libZXing%{sover} +ZXing ("zebra crossing") is an multi-format 1D/2D barcode image +processing library. This package provides a C++ implementation. + +%package devel +Summary: Header files for zxing, a library for processing 1D and 2D barcodes +Group: Development/Languages/C and C++ +Requires: libZXing%{sover} = %{version} + +%description devel +ZXing ("zebra crossing") is an multi-format 1D/2D barcode image +processing library. This package provides header files to use ZXing in +other applications. + +%prep +%autosetup -p1 + +%build +%if 0%{?suse_version} < 1500 +export CC="gcc-7" +export CXX="g++-7" +%endif +export CXXFLAGS="%{optflags} -std=c++17" +# Examples require QT5-base/multimedia, but doing so creates a cycle +# Blackbox tests require fmt +%cmake \ + -DCMAKE_CXX_EXTENSIONS=ON \ +%if 0%{?suse_version} > 1500 + -DBUILD_C_API=ON \ +%endif + -DBUILD_EXAMPLES=OFF +%cmake_build + +%install +%cmake_install + +%post -n libZXing%{sover} -p /sbin/ldconfig +%postun -n libZXing%{sover} -p /sbin/ldconfig + +%files -n libZXing%{sover} +%doc README.md +%license LICENSE +%{_libdir}/libZXing.so.* + +%files devel +%license LICENSE +%{_includedir}/ZXing/ +%{_libdir}/cmake/ZXing/ +%{_libdir}/libZXing.so +%{_libdir}/pkgconfig/zxing.pc + +%changelog