diff --git a/.gitignore b/.gitignore index d28ed8e..5a6ac22 100644 --- a/.gitignore +++ b/.gitignore @@ -10,3 +10,5 @@ zbar-0.10.tar.bz2 /zbar-0.22.91.tar.bz2 /zbar-0.22.92.tar.bz2 /zbar-0.23.tar.bz2 +/zbar-0.23.90.tar.bz2 +/zbar-0.23.93.tar.bz2 diff --git a/fix_qt_overlinking.patch b/fix_qt_overlinking.patch new file mode 100644 index 0000000..727a57e --- /dev/null +++ b/fix_qt_overlinking.patch @@ -0,0 +1,16 @@ +This was causing Qt5 to be linked into every binary in zbar, where it is only +needed for the Qt bindings (which already specify QT_CFLAGS, QT_LIBS, etc). + +diff --git a/configure.ac b/configure.ac +index f0f9723..2a26973 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -689,8 +689,6 @@ AM_CONDITIONAL([HAVE_QT], [test "x$with_qt" = "xyes"]) + AM_COND_IF([HAVE_QT], + [AC_MSG_NOTICE([using Qt version $QT_VERSION]) + AC_MSG_NOTICE([using moc from $MOC]) +- CPPFLAGS="$CPPFLAGS $QT_CPPFLAGS" +- LIBS="$LIBS $QT_LIBS" + AC_CONFIG_FILES([zbar-qt.pc:"${qt_pkgconfig_file}.in"]) + #dnl -fPIC has no effect on Windows and breaks windres + AS_IF([test "x$win32" = "xno"], [CPPFLAGS="$CPPFLAGS -fPIC"])]) diff --git a/sources b/sources index 6707fd8..4eacb18 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (zbar-0.23.tar.bz2) = 7eef2ee99760edd693ecc12a36e04b71a156b93b4c1977ca4f6da103a955284cf640b55adb185477e1d4cc65345bb01608ed9528f6518abb514ccbc58e5d350b +SHA512 (zbar-0.23.93.tar.bz2) = 8b1d57557cb1c425109b709f0cbe94830939cb4cd9a0cb505d44ba3c7cfb3522560c3bbf2a8b37985da4577b677ad675491f6ef0e9796749382079c0e844e21e diff --git a/zbar-tp_print.patch b/zbar-tp_print.patch deleted file mode 100644 index ac1391b..0000000 --- a/zbar-tp_print.patch +++ /dev/null @@ -1,28 +0,0 @@ ---- python/enum.c~ 2019-05-22 06:00:30.000000000 -0500 -+++ python/enum.c 2020-07-20 12:29:37.468767649 -0500 -@@ -76,6 +76,7 @@ - return(self->name); - } - -+#if PY_MAJOR_VERSION < 3 - static int - enumitem_print (zbarEnumItem *self, - FILE *fp, -@@ -83,6 +84,7 @@ - { - return(self->name->ob_type->tp_print(self->name, fp, flags)); - } -+#endif - - static PyObject* - enumitem_repr (zbarEnumItem *self) -@@ -115,7 +117,9 @@ - .tp_new = (newfunc)enumitem_new, - .tp_dealloc = (destructor)enumitem_dealloc, - .tp_str = (reprfunc)enumitem_str, -+#if PY_MAJOR_VERSION < 3 - .tp_print = (printfunc)enumitem_print, -+#endif - .tp_repr = (reprfunc)enumitem_repr, - }; - diff --git a/zbar.spec b/zbar.spec index a6160e6..255f4e8 100644 --- a/zbar.spec +++ b/zbar.spec @@ -1,21 +1,41 @@ +%ifarch %{java_arches} +%global JAVA 1 +%else +%global JAVA 0 +%endif + Name: zbar -Version: 0.23 -Release: 8%{?dist} +Version: 0.23.93 +Release: 13%{?dist} Summary: Bar code reader -License: LGPLv2+ +License: LGPL-2.1-or-later URL: http://zbar.sourceforge.net/ Source0: https://linuxtv.org/downloads/%{name}/%{name}-%{version}.tar.bz2 Patch0: use_python3_on_python_script.patch -Patch1: zbar-tp_print.patch +Patch1: fix_qt_overlinking.patch -BuildRequires: make -BuildRequires: autoconf automake libtool gettext-devel -BuildRequires: qt5-qtbase-devel qt5-qtx11extras-devel -BuildRequires: gtk3-devel GraphicsMagick-devel pygobject3-devel -BuildRequires: libv4l-devel libXv-devel xmlto dbus-devel -BuildRequires: java-11-openjdk-devel +BuildRequires: autoconf +BuildRequires: automake +BuildRequires: dbus-devel +BuildRequires: gettext-devel +BuildRequires: GraphicsMagick-devel +BuildRequires: gtk3-devel +BuildRequires: libSM-devel +BuildRequires: libtool +BuildRequires: libv4l-devel +BuildRequires: libXv-devel +BuildRequires: make +BuildRequires: python3-gobject-devel +BuildRequires: qt5-qtbase-devel +BuildRequires: qt5-qtx11extras-devel +%if %{JAVA} +BuildRequires: java-devel +%endif BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: xmlto +BuildRequires: gobject-introspection-devel %description ZBar Bar Code Reader is an open source software suite for reading bar @@ -24,42 +44,42 @@ intensity sensors. It supports EAN-13/UPC-A, UPC-E, EAN-8, Code 128, Code 93, Code 39, Codabar, Interleaved 2 of 5, QR Code and SQ Code. %package devel -Summary: Bar code library extra development files -Requires: pkgconfig, %{name} = %{version}-%{release} +Summary: Bar code reader library extra development files +Requires: %{name}-libs%{_isa} = %{version}-%{release} %description devel This package contains header files and additional libraries used for developing applications that read bar codes with this library. +%package libs +Summary: Bar code reader library + +%description libs +This package contains the ZBar Bar Code Reader library. + %package gtk Summary: Bar code reader GTK widget -Requires: %{name} = %{version}-%{release} +Requires: %{name}-libs%{_isa} = %{version}-%{release} +# Obsoleted in F37 +Obsoletes: %{name}-gi < %{version}-%{release} %description gtk This package contains a bar code scanning widget for use with GUI -applications based on GTK+-2.0. - -%package gi -Summary: Bar code reader GObject Introspection (GIR) Gtk bindings -Requires: %{name}-gtk = %{version}-%{release} - -%description gi -This package contains a bar code scanning GObject Introspection -(GIR) Gtk bindings, with allow the usage of ZBar with GUI -support on any application compatible with GIR, like python3. +applications based on GTK 3. %package gtk-devel Summary: Bar code reader GTK widget extra development files -Requires: pkgconfig, %{name}-gtk = %{version}-%{release}, %{name}-devel = %{version}-%{release} +Requires: %{name}-devel%{_isa} = %{version}-%{release} +Requires: %{name}-gtk%{_isa} = %{version}-%{release} %description gtk-devel This package contains header files and additional libraries used for -developing GUI applications based on GTK+-2.0 that include a bar code +developing GUI applications based on GTK 3 that include a bar code scanning widget. %package qt Summary: Bar code reader Qt widget -Requires: %{name} = %{version}-%{release} +Requires: %{name}-libs%{_isa} = %{version}-%{release} %description qt This package contains a bar code scanning widget for use with GUI @@ -67,58 +87,65 @@ applications based on Qt4. %package qt-devel Summary: Bar code reader Qt widget extra development files -Requires: pkgconfig, %{name}-qt = %{version}-%{release}, %{name}-devel = %{version}-%{release} +Requires: %{name}-devel%{_isa} = %{version}-%{release} +Requires: %{name}-qt%{_isa} = %{version}-%{release} %description qt-devel This package contains header files and additional libraries used for -developing GUI applications based on Qt4 that include a bar code +developing GUI applications based on Qt5 that include a bar code scanning widget. -%package python3 +%package -n python3-zbar Summary: Bar code reader PyGTK widget -Requires: python3-pillow, %{name} = %{version}-%{release} +Requires: %{name}-libs%{_isa} = %{version}-%{release} +Requires: python3-pillow +# Renamed in F37 +Obsoletes: %{name}-python3 < %{version}-%{release} -%description python3 +%description -n python3-zbar This package contains a bar code scanning widget for use on python applications that work with images. +%if %{JAVA} %package java Summary: Bar code reader Java library -Requires: pkgconfig, %{name}-gtk = %{version}-%{release}, %{name}-devel = %{version}-%{release} +Requires: %{name}-devel%{_isa} = %{version}-%{release} +Requires: %{name}-gtk%{_isa} = %{version}-%{release} %description java This package contains header files and additional libraries used for on Java Native Interface (JNI) applications using ZBar. - +%endif %prep %setup -q -%patch0 -p1 -%patch1 -p0 +%patch 0 -p1 +%patch 1 -p1 %build -autoreconf -vfi -%configure --with-python=python3 --with-gtk=auto --docdir=%{_docdir}/%{name}-%{version} --with-graphicsmagick +autoreconf -fiv +%configure --with-python=python3 --with-gtk=auto --with-dbusconfdir=%{_sysconfdir} --docdir=%{_docdir}/%{name}-%{version} --with-graphicsmagick --without-xshm --without-xv --enable-codes=ean,databar,code128,code93,code39,codabar,i25,qrcode,sqcode,pdf417 # rpath sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' libtool sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libtool -make %{?_smp_mflags} +%make_build %install -rm -rf $RPM_BUILD_ROOT -make install DESTDIR=$RPM_BUILD_ROOT INSTALL="install -p" +%make_install +%if %{JAVA} install -d %{buildroot}%{_jnidir} mv %{buildroot}%{_datadir}/zbar/lib/zbar.jar %{buildroot}%{_jnidir} mv %{buildroot}%{_datadir}/zbar/lib/libzbarjni.so* %{buildroot}%{_libdir} +%endif cp test/test_python.py %{buildroot}%{_docdir} #Remove .la and .a files find ${RPM_BUILD_ROOT} -name '*.la' -or -name '*.a' | xargs rm -f # Remove installed doc -rm -rf $RPM_BUILD_ROOT/usr/share/doc/zbar-%{version}/ +rm -rf $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}/ %ldconfig_scriptlets @@ -128,19 +155,22 @@ rm -rf $RPM_BUILD_ROOT/usr/share/doc/zbar-%{version}/ %ldconfig_scriptlets qt +%find_lang zbar + %files %doc NEWS.md README.md INSTALL.md -%license COPYING LICENSE.md - %{_bindir}/zbarimg %{_bindir}/zbarcam -%{_libdir}/libzbar.so.* %{_mandir}/man1/* %{_sysconfdir}/dbus-1/system.d/org.linuxtv.Zbar.conf +%files libs -f zbar.lang +%license COPYING LICENSE.md +%{_libdir}/libzbar.so.0* +%{_libdir}/girepository-1.0/ZBar-1.0.typelib + %files devel %doc HACKING.md TODO.md - %{_libdir}/libzbar.so %{_libdir}/pkgconfig/zbar.pc %dir %{_includedir}/zbar @@ -154,17 +184,12 @@ rm -rf $RPM_BUILD_ROOT/usr/share/doc/zbar-%{version}/ %{_includedir}/zbar/Video.h %{_includedir}/zbar/Window.h %{_includedir}/zbar/Processor.h +%{_datadir}/gir-1.0/ZBar-1.0.gir %files gtk %{_libdir}/libzbargtk.so.* %{_bindir}/zbarcam-gtk -%files gi -%dir %{_libdir}/girepository-1.0 -%dir %{_datadir}/gir-1.0 -%{_libdir}/girepository-1.0/ZBar-1.0.typelib -%{_datadir}/gir-1.0/ZBar-1.0.gir - %files gtk-devel %{_libdir}/libzbargtk.so %{_libdir}/pkgconfig/zbar-gtk.pc @@ -179,15 +204,117 @@ rm -rf $RPM_BUILD_ROOT/usr/share/doc/zbar-%{version}/ %{_libdir}/pkgconfig/zbar-qt.pc %{_includedir}/zbar/QZBar*.h +%if %{JAVA} %files java %{_jnidir}/zbar.jar %{_libdir}/libzbarjni.so* +%endif -%files python3 +%files -n python3-zbar %{python3_sitearch}/zbar.so %{_docdir}/test_python.py %changelog +* Tue Aug 04 2026 Gwyn Ciesla - 0.23.93-13 +- Rebuild for Python 3.15.0b4 + +* Fri Jul 17 2026 Fedora Release Engineering - 0.23.93-12 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_45_Mass_Rebuild + +* Wed Jun 03 2026 Python Maint - 0.23.93-11 +- Rebuilt for Python 3.15 + +* Sat Jan 17 2026 Fedora Release Engineering - 0.23.93-10 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild + +* Fri Sep 05 2025 Yaakov Selkowitz - 0.23.93-9 +- Fix Qt overlinking + +* Fri Jul 25 2025 Fedora Release Engineering - 0.23.93-8 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild + +* Tue Jun 03 2025 Python Maint - 0.23.93-7 +- Rebuilt for Python 3.14 + +* Sun Jan 19 2025 Fedora Release Engineering - 0.23.93-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild + +* Sat Jul 20 2024 Fedora Release Engineering - 0.23.93-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild + +* Fri Jun 07 2024 Python Maint - 0.23.93-4 +- Rebuilt for Python 3.13 + +* Mon Apr 15 2024 Gwyn Ciesla - 0.23.93-3 +- Update python3-gobject BuildRequires + +* Sat Jan 27 2024 Fedora Release Engineering - 0.23.93-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Tue Jan 09 2024 Gwyn Ciesla - 0.23.93-1 +- 0.23.93 + +* Fri Jan 05 2024 Florian Weimer - 0.23.90-12 +- Add missing Py_SIZE to py311.patch + +* Sat Jul 22 2023 Fedora Release Engineering - 0.23.90-11 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + +* Fri Jul 07 2023 Michael J Gruber - 0.23.90-10 +- Fix FTBFS with python 3.12 (rhbz#2220630) + +* Thu Jun 15 2023 Python Maint - 0.23.90-9 +- Rebuilt for Python 3.12 + +* Wed Mar 01 2023 Gwyn Ciesla - 0.23.90-8 +- migrated to SPDX license + +* Sat Jan 21 2023 Fedora Release Engineering - 0.23.90-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + +* Wed Dec 21 2022 Gwyn Ciesla - 0.23.90-6 +- BR setuptools + +* Fri Aug 26 2022 Kalev Lember - 0.23.90-5 +- Misc packaging cleanup +- Sort BuildRequires and Requires and split them out one per line +- Move GObject Introspection bindings to -gtk and -gtk-devel subpackages +- Split libzbar out to zbar-libs subpackage +- Tighten subpackage deps with %%{_isa} +- Drop manual requires on pkgconfig and rely on rpm dep extractor +- Rename zbar-python3 to python3-zbar as per latest Python guidelines +- Use make_build and make_install macros + +* Mon Aug 01 2022 Gwyn Ciesla - 0.23.90-4 +- Only build Java on supported platforms. + +* Sat Jul 23 2022 Fedora Release Engineering - 0.23.90-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + +* Mon Jun 13 2022 Python Maint - 0.23.90-2 +- Rebuilt for Python 3.11 + +* Tue May 31 2022 Gwyn Ciesla - 0.23.90-1 +- 0.23.90 + +* Sat Feb 05 2022 Jiri Vanek - 0.23-14 +- Rebuilt for java-17-openjdk as system jdk + +* Sat Jan 22 2022 Fedora Release Engineering - 0.23-13 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + +* Wed Jan 12 2022 Gwyn Ciesla - 0.23-12 +- Fix 3.11 FTBFS. + +* Fri Jul 23 2021 Fedora Release Engineering - 0.23-11 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Fri Jun 04 2021 Python Maint - 0.23-10 +- Rebuilt for Python 3.10 + +* Thu Mar 25 2021 Gwyn Ciesla - 0.23-9 +Fix FTBFS for autoconf 2.71. + * Thu Jan 28 2021 Fedora Release Engineering - 0.23-8 - Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild