Compare commits

...
Sign in to create a new pull request.

21 commits

Author SHA1 Message Date
Fedora Release Engineering
5b15ae3c78 Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild 2025-07-25 21:21:58 +00:00
Python Maint
23c7a4eebb Rebuilt for Python 3.14 2025-06-02 21:24:32 +02:00
Fedora Release Engineering
1408342a15 Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild 2025-01-19 16:54:42 +00:00
Fedora Release Engineering
fc8305b0bb Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild 2024-07-20 10:59:00 +00:00
topazus
232a5156f8 update to 2.2.1 2024-06-22 22:20:48 +08:00
topazus
8bb7a3aef0 Convert to %autorelease and %autochangelog
[skip changelog]
2024-06-22 22:13:58 +08:00
Python Maint
25adcbcda4 Rebuilt for Python 3.13 2024-06-08 08:11:56 +02:00
Fedora Release Engineering
8e28d49bf4 Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild 2024-01-27 11:20:24 +00:00
Fedora Release Engineering
23be1c2ec4 Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2023-07-22 19:48:53 +00:00
Python Maint
613e9b95cb Rebuilt for Python 3.12 2023-07-01 11:45:41 +02:00
Vitaly Zaitsev
0e9e8b06b2
Rebuilt due to fmt 10 update. 2023-06-28 11:21:45 +02:00
Python Maint
a5f5259d33 Rebuilt for Python 3.12 2023-06-13 22:15:32 +02:00
Caolán McNamara
222570992b migrated to SPDX license 2023-02-24 15:11:34 +00:00
Caolán McNamara
8e77e9ac64 latest release 2023-02-24 14:59:47 +00:00
Caolán McNamara
ae793c41d7 fix for gcc 13 2023-01-23 20:14:46 +00:00
Fedora Release Engineering
423fd3e1d5 Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2023-01-21 08:22:36 +00:00
Tom Stellard
fa22c68b1e Prevent stripping of python module
This allows the debuginfo from the python module to be included
in the debuginfo packages.
2022-10-26 22:53:23 +00:00
Caolán McNamara
6925253fcf Resolves: rhbz#2113772 FTBFS in Fedora rawhide/f37 2022-08-02 10:41:33 +01:00
Fedora Release Engineering
24db98bd07 Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2022-07-23 14:02:03 +00:00
Python Maint
d0095d5838 Rebuilt for Python 3.11 2022-06-13 18:58:10 +02:00
Benjamin A. Beasley
f50a91500d Security fix for CVE-2022-28041 2022-04-23 13:02:32 -04:00
7 changed files with 84 additions and 1815 deletions

3
.gitignore vendored
View file

@ -1 +1,2 @@
/zxing-cpp-1.2.0.tar.gz
/zxing-cpp-2.0.0.tar.gz
/zxing-cpp-2.2.1.tar.gz

View file

@ -1,76 +0,0 @@
From 8db14eeead45e0f1961532f55061d5e4dd0f78be Mon Sep 17 00:00:00 2001
From: Paul Wise <pabs3@bonedaddy.net>
Date: Thu, 26 Aug 2021 22:03:00 +0800
Subject: [PATCH] Add a mode to build against system versions of dependencies
Make the default be to use system versions when available,
but allow always using them or never using them.
Add searching for and using system versions of fmt/googletest/pybind11,
which are currently pulled directly from git using FetchContent.
This will allow distributions that do not allow network access at build
time to depend on and build against these packages.
Fixes: https://github.com/nu-book/zxing-cpp/issues/248
---
CMakeLists.txt | 7 +++++++
test/blackbox/CMakeLists.txt | 18 +++++++++++++-----
1 files changed, 54 insertions(+), 21 deletions(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 1361792..2b522e0 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -8,6 +8,7 @@ option (BUILD_EXAMPLES "Build the example barcode reader/writer applicatons" ON)
option (BUILD_BLACKBOX_TESTS "Build the black box reader/writer tests" ON)
option (BUILD_UNIT_TESTS "Build the unit tests (don't enable for production builds)" OFF)
option (BUILD_PYTHON_MODULE "Build the python module" OFF)
+set(BUILD_SYSTEM_DEPS "AUTO" CACHE STRING "Use system dependencies (AUTO/ALWAYS/NEVER)")
if (WIN32)
option (BUILD_SHARED_LIBS "Build and link as shared library" OFF)
@@ -53,6 +54,12 @@ if (BUILD_UNIT_TESTS)
endif()
endif()
+set(BUILD_SYSTEM_DEPS_LIST AUTO ALWAYS NEVER)
+set_property(CACHE BUILD_SYSTEM_DEPS PROPERTY STRINGS ${BUILD_SYSTEM_DEPS_LIST})
+if(NOT BUILD_SYSTEM_DEPS IN_LIST BUILD_SYSTEM_DEPS_LIST)
+ message(FATAL_ERROR "BUILD_SYSTEM_DEPS must be one of ${BUILD_SYSTEM_DEPS_LIST}")
+endif()
+
add_subdirectory (core)
enable_testing()
diff --git a/test/blackbox/CMakeLists.txt b/test/blackbox/CMakeLists.txt
index 3da26dd..9d79e8e 100644
--- a/test/blackbox/CMakeLists.txt
+++ b/test/blackbox/CMakeLists.txt
@@ -1,10 +1,18 @@
cmake_minimum_required(VERSION 3.14)
-include(FetchContent)
-FetchContent_Declare (fmtlib
- GIT_REPOSITORY https://github.com/fmtlib/fmt.git
- GIT_TAG 7.1.2)
-FetchContent_MakeAvailable (fmtlib) # Adds fmt::fmt
+if (BUILD_SYSTEM_DEPS STREQUAL "AUTO")
+ find_package (fmt)
+elseif (BUILD_SYSTEM_DEPS STREQUAL "ALWAYS")
+ find_package (fmt REQUIRED)
+endif()
+
+if (NOT fmt_FOUND)
+ include(FetchContent)
+ FetchContent_Declare (fmtlib
+ GIT_REPOSITORY https://github.com/fmtlib/fmt.git
+ GIT_TAG 7.1.2)
+ FetchContent_MakeAvailable (fmtlib) # Adds fmt::fmt
+endif()
if (BUILD_READERS)
add_executable (ReaderTest
--
2.33.1

1647
269.patch

File diff suppressed because it is too large Load diff

48
changelog Normal file
View file

@ -0,0 +1,48 @@
* Sat Jun 08 2024 Python Maint <python-maint@redhat.com> - 2.0.0-7
- Rebuilt for Python 3.13
* Sat Jan 27 2024 Fedora Release Engineering <releng@fedoraproject.org> - 2.0.0-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Sat Jul 22 2023 Fedora Release Engineering <releng@fedoraproject.org> - 2.0.0-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
* Sat Jul 01 2023 Python Maint <python-maint@redhat.com> - 2.0.0-4
- Rebuilt for Python 3.12
* Wed Jun 28 2023 Vitaly Zaitsev <vitaly@easycoding.org> - 2.0.0-3
- Rebuilt due to fmt 10 update.
* Tue Jun 13 2023 Python Maint <python-maint@redhat.com> - 2.0.0-2
- Rebuilt for Python 3.12
* Fri Feb 24 2023 Caolán McNamara <caolanm@redhat.com> 2.0.0-1
- latest release
- migrated to SPDX license
* Sat Jan 21 2023 Fedora Release Engineering <releng@fedoraproject.org> - 1.2.0-9
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
* Wed Oct 26 2022 Tom Stellard <tstellar@redhat.com> - 1.2.0-8
- Prevent stripping of python module
* Tue Aug 02 2022 Caolán McNamara <caolanm@redhat.com> 1.2.0-7
- Resolves: rhbz#2113772 FTBFS in Fedora rawhide/f37
* Sat Jul 23 2022 Fedora Release Engineering <releng@fedoraproject.org> - 1.2.0-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
* Mon Jun 13 2022 Python Maint <python-maint@redhat.com> - 1.2.0-5
- Rebuilt for Python 3.11
* Sat Apr 23 2022 Benjamin A. Beasley <code@musicinmybrain.net> - 1.2.0-4
- Security fix for CVE-2022-28041
* Sat Jan 22 2022 Fedora Release Engineering <releng@fedoraproject.org> - 1.2.0-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
* Tue Dec 14 2021 Caolán McNamara <caolanm@redhat.com> 1.2.0-2
- build python bindings
* Fri Dec 10 2021 Caolán McNamara <caolanm@redhat.com> 1.2.0-1
- initial import

View file

@ -1 +1 @@
SHA512 (zxing-cpp-1.2.0.tar.gz) = e61b4e44ccaf0871b5d8badf9ce0a81576f55e5d6a9458907b9b599a66227adceabb8d51a0c47b32319d8aeff93e758b4785d3bd0440375247471d95999de487
SHA512 (zxing-cpp-2.2.1.tar.gz) = f1de8df783061a152a18cd9102ac0c579c40c76ab4a5ba9f30bcb8ddb532f3fac08736840a631adbf7c30a7fa00ce8d65625c8cd695288620601708e8f256a53

View file

@ -1,18 +0,0 @@
diff -Naur zxing-cpp-1.2.0-original/wrappers/python/CMakeLists.txt zxing-cpp-1.2.0/wrappers/python/CMakeLists.txt
--- zxing-cpp-1.2.0-original/wrappers/python/CMakeLists.txt 2021-05-28 06:47:09.000000000 -0400
+++ zxing-cpp-1.2.0/wrappers/python/CMakeLists.txt 2021-12-13 20:31:22.286170793 -0500
@@ -1,13 +1,7 @@
cmake_minimum_required(VERSION 3.14)
project(ZXingPython)
-# get pybind11
-include(FetchContent)
-#set(FETCHCONTENT_QUIET Off)
-FetchContent_Declare (pybind11
- GIT_REPOSITORY https://github.com/pybind/pybind11.git
- GIT_TAG v2.6.2)
-FetchContent_MakeAvailable (pybind11)
+find_package(pybind11)
# check if we are called from the top-level ZXing project
get_directory_property(hasParent PARENT_DIRECTORY)

View file

@ -1,91 +1,51 @@
Name: zxing-cpp
Version: 1.2.0
Release: 3%{?dist}
Summary: C++ port of the ZXing ("Zebra Crossing") barcode scanning library
Name: zxing-cpp
Version: 2.2.1
Release: %autorelease
Summary: C++ port of the ZXing ("Zebra Crossing") barcode scanning library
# The entire source is ASL 2.0, except:
#
# - TextCodec files, that is, core/src/textcodec/*, are
# (LGPLv2 with exceptions or LGPLv3 with exceptions).
# - core/src/textcodec/JPText{En,De}coder.* are, formally,
# ((LGPLv2 with exceptions or LGPLv3 with exceptions) and BSD),
# which still forms an effective license of
# (LGPLv2 with exceptions or LGPLv3 with exceptions)
# - wrappers/wasm/base64ArrayBuffer.js is MIT (but is not used)
# - thirdparty/stb/stb_image.h and thirdparty/stb/stb_image_write.h are MIT
# (but are unbundled)
#
# The resulting effective license for the combined library is:
License: LGPLv2 with exceptions or LGPLv3 with exceptions
Url: https://github.com/nu-book/zxing-cpp
Source0: %{url}/archive/v%{version}/%{name}-%{version}.tar.gz
License: Apache-2.0 AND MIT
URL: https://github.com/zxing-cpp/zxing-cpp
Source0: %{url}/archive/v%{version}/%{name}-%{version}.tar.gz
BuildRequires: gcc-c++
BuildRequires: cmake
BuildRequires: cmake(fmt)
# -static BRs required by guidelines for tracking of header-only libraries:
BuildRequires: stb_image-devel
BuildRequires: stb_image-static
BuildRequires: stb_image_write-devel
BuildRequires: stb_image_write-static
# https://github.com/nu-book/zxing-cpp/issues/248
Patch0: 0001-Add-a-mode-to-build-against-system-versions-of-depen.patch
# Update stb_image/stb_image_write
# https://github.com/nu-book/zxing-cpp/pull/269
# Fixes CVE-2021-28021, CVE-2021-42715, and CVE-2021-42716, and adds a patch
# file for zxing-cpp-specific changes
Patch1: %{url}/pull/269.patch
# Use the system copy of pybind11 rather than trying to download a copy. This
# patch is unconditional, so it is not, as-is, suitable for sending upstream.
Patch2: zxing-cpp-1.2.0-system-pybind11.patch
BuildRequires: gcc-c++
BuildRequires: cmake
BuildRequires: cmake(fmt)
%description
ZXing-C++ ("zebra crossing") is an open-source, multi-format 1D/2D barcode
image processing library implemented in C++.
%package devel
# The entire contents are ASL 2.0, except:
#
# - %%{_includedir}/ZXing/textcodec/*.h are exactly or effectively
# (LGPLv2 with exceptions or LGPLv3 with exceptions)
#
# See licensing breakdown above base packages License field for further
# details.
License: ASL 2.0 and (LGPLv2 with exceptions or LGPLv3 with exceptions)
Summary: Development files for %{name}
Requires: %{name}%{?_isa} = %{version}-%{release}
%package devel
Summary: Development files for %{name}
Requires: %{name}%{?_isa} = %{version}-%{release}
%description devel
%description devel
The %{name}-devel package contains libraries and header files for
developing applications that use %{name}.
%package -n python3-%{name}
%package -n python3-%{name}
Summary: Python bindings for the %{name} barcode library
BuildRequires: python3-devel
BuildRequires: pybind11-devel
BuildRequires: chrpath
BuildRequires: python3-devel
BuildRequires: pybind11-devel
BuildRequires: chrpath
Requires: %{name}%{?_isa} = %{version}-%{release}
Requires: %{name}%{?_isa} = %{version}-%{release}
%description -n python3-%{name}
%{summary}.
%prep
%autosetup -p1
# remove bundled stb libraries:
rm -v thirdparty/stb/stb_image_write.h thirdparty/stb/stb_image.h
# stb_image.h is trivially forked: reconstruct the changes with the latest
# unbundled copy
cp -p /usr/include/stb/stb_image.h thirdparty/stb/
pushd thirdparty/stb
patch -p1 < stb_image.patch
popd
# dont use unversioned “python” interpreter in tests
sed -r -i 's@(COMMAND )python@\1%{python3}@' wrappers/python/CMakeLists.txt
# we dont need cmake as a python dependency
sed -r -i '/cmake/d' wrappers/python/pyproject.toml
sed -i 's/pybind11\[global\]/pybind11/' wrappers/python/pyproject.toml
# build verbosely:
%generate_buildrequires
@ -98,7 +58,14 @@ popd &>/dev/null
# but we dont get any metadata (dist-info), so its not terribly useful for
# packaging purposes. Instead, it seems we must re-build the whole library
# through setuptools to get that.
%cmake -DBUILD_EXAMPLES=OFF -DBUILD_PYTHON_MODULE=ON
# CMAKE_BUILD_TYPE=RelWithDebInfo prevents the build from stripping the
# python module after it is built. The stripping happens in
# pybind11_add_module.
%cmake \
-DZXING_DEPENDENCIES=LOCAL \
-DBUILD_EXAMPLES=OFF \
-DBUILD_PYTHON_MODULE=ON \
-DCMAKE_BUILD_TYPE=RelWithDebInfo
%cmake_build
pushd wrappers/python
# CMake respects this environment variable. We need to see the compiler
@ -131,8 +98,8 @@ popd
%ctest
%files
%license LICENSE LICENSE.ZXing LICENSE.Qt LGPL_EXCEPTION.Qt NOTICE
%{_libdir}/libZXing.so.1
%license LICENSE
%{_libdir}/libZXing.so.3
%{_libdir}/libZXing.so.%{version}
%files devel
@ -143,13 +110,7 @@ popd
%{_libdir}/pkgconfig/zxing.pc
%files -n python3-%{name} -f %{pyproject_files}
%{_libdir}/zxingcpp%{python3_ext_suffix}
%changelog
* Sat Jan 22 2022 Fedora Release Engineering <releng@fedoraproject.org> - 1.2.0-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
* Tue Dec 14 2021 Caolán McNamara <caolanm@redhat.com> 1.2.0-2
- build python bindings
* Fri Dec 10 2021 Caolán McNamara <caolanm@redhat.com> 1.2.0-1
- initial import
%autochangelog