SHA256
1
0
forked from pool/zxing-cpp

- 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
This commit is contained in:
Jan Engelhardt 2024-09-03 15:14:16 +00:00 committed by Git OBS Bridge
commit 6cd1cc0565
8 changed files with 435 additions and 0 deletions

23
.gitattributes vendored Normal file
View File

@ -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

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
.osc

1
baselibs.conf Normal file
View File

@ -0,0 +1 @@
libZXing3

39
cmake.patch Normal file
View File

@ -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)

3
zxing-cpp-2.1.0.tar.gz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:6d54e403592ec7a143791c6526c1baafddf4c0897bb49b1af72b70a0f0c4a3fe
size 866787

3
zxing-cpp-2.2.1.tar.gz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:02078ae15f19f9d423a441f205b1d1bee32349ddda7467e2c84e8f08876f8635
size 891055

254
zxing-cpp.changes Normal file
View File

@ -0,0 +1,254 @@
-------------------------------------------------------------------
Mon Sep 2 21:46:34 UTC 2024 - Martin Schreiner <martin.schreiner@suse.com>
- 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 <guillaume.gardet@opensuse.org>
- 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 <info@paolostivanin.com>
- 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 <fstrba@suse.com>
- 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 <fcrozat@suse.com>
- Drop support for building on SLE12.
-------------------------------------------------------------------
Wed Jan 25 14:01:00 UTC 2023 - Bjørn Lie <bjorn.lie@gmail.com>
- 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<Result>
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 <christophe@krop.fr>
- 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 <danilo.spinella@suse.com>
- 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 <danilo.spinella@suse.com>
- Do not build examples to avoid a cycle with QT5Multimedia
-------------------------------------------------------------------
Wed Nov 3 14:42:33 UTC 2021 - Danilo Spinella <danilo.spinella@suse.com>
- 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 <rpm@fthiessen.de>
- 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 <christophe@krop.fr>
- 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 <sflees@suse.de>
- Use %cmake_build instead of %make_jobs
- Shouldn't need -DBUILD_SHARED_LIBRARY=ON
-------------------------------------------------------------------
Fri Oct 23 08:33:47 UTC 2020 - Antonio Larrosa <alarrosa@suse.com>
- Add baselibs.conf
-------------------------------------------------------------------
Fri Sep 4 07:16:43 UTC 2020 - Antonio Larrosa <alarrosa@suse.com>
- 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 <christophe@krop.fr>
- 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 <mliska@suse.cz>
- Add add-missing-includes-of-stdexcept-header.patch
in order to fix boo#1158377.
-------------------------------------------------------------------
Thu May 23 12:11:25 UTC 2019 - Jan Engelhardt <jengelh@inai.de>
- Trim metadata redundancies from description.
-------------------------------------------------------------------
Wed May 22 05:06:25 UTC 2019 - Luca Beltrame <lbeltrame@kde.org>
- Fixup URL and Source
-------------------------------------------------------------------
Fri May 17 05:22:57 UTC 2019 - Luca Beltrame <lbeltrame@kde.org>
- Initial package for openSUSE
- Add upstream patch to add proper installability and library
versioning:
* fix-library-installation-and-versioning.patch

111
zxing-cpp.spec Normal file
View File

@ -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