commit:     973ecc31e61e26f69cc508250188b2dff5b910f6
Author:     Alan Swanson <reiver <AT> improbability <DOT> net>
AuthorDate: Tue Jul 30 15:23:10 2024 +0000
Commit:     Joonas Niilola <juippis <AT> gentoo <DOT> org>
CommitDate: Mon Aug  5 07:34:42 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=973ecc31

media-gfx/zbar: add 0.23.93 with python3_12 support

Closes: https://bugs.gentoo.org/929630
Signed-off-by: Alan Swanson <reiver <AT> improbability.net>
Closes: https://github.com/gentoo/gentoo/pull/37432
Signed-off-by: Joonas Niilola <juippis <AT> gentoo.org>

 media-gfx/zbar/Manifest                            |   1 +
 ...c-do-not-use-hardcoded-pkg-config-command.patch |  49 +++++
 ...93-configure-ac-use-old-way-to-detect-qt5.patch |  26 +++
 media-gfx/zbar/zbar-0.23.93.ebuild                 | 232 +++++++++++++++++++++
 4 files changed, 308 insertions(+)

diff --git a/media-gfx/zbar/Manifest b/media-gfx/zbar/Manifest
index bad02d9095d4..4ddf45df9813 100644
--- a/media-gfx/zbar/Manifest
+++ b/media-gfx/zbar/Manifest
@@ -1 +1,2 @@
 DIST zbar-0.23.92.tar.gz 1005358 BLAKE2B 
97af3c399333abfcd64e45e6c4f38e5da6ed1540447f35f0efe9bc0fb8d296d80c964452afa29d26d22bddd8de31bc3ca6582db38afe8416e9480f11b939e040
 SHA512 
cae47fb199173fc1c052984865ca0e6aeab330bd6d77506a0937994d459deb4419a3e54e2dcd2e9830ffb8acf14f29e22e0a6becc9e4cfe19b07dad1babe9513
+DIST zbar-0.23.93.tar.gz 1009320 BLAKE2B 
7476776fbb2b2dca4fb94e4eb8c6c5ca7795e32881e93c45002679bdc048cb0bf8d880d2b31f1469a95d718c6d027b7ee0da195951645478493d6f638ae186b5
 SHA512 
2dd607afbb1e52346bfb740f916c8616112d14153f071f82458b7c653f647b332290a5089543abebfe1c7679eae98b349a84777185d61cfb9ff275bfecc6e08f

diff --git 
a/media-gfx/zbar/files/zbar-0.23.93-configure-ac-do-not-use-hardcoded-pkg-config-command.patch
 
b/media-gfx/zbar/files/zbar-0.23.93-configure-ac-do-not-use-hardcoded-pkg-config-command.patch
new file mode 100644
index 000000000000..397ad6dd6fbf
--- /dev/null
+++ 
b/media-gfx/zbar/files/zbar-0.23.93-configure-ac-do-not-use-hardcoded-pkg-config-command.patch
@@ -0,0 +1,49 @@
+From 368571ffa1a0f6cc41f708dd0d27f9b6e9409df8 Mon Sep 17 00:00:00 2001
+From: Boyuan Yang <[email protected]>
+Date: Tue, 9 Jan 2024 07:56:32 -0500
+Subject: [PATCH] configure.ac: Do not use hardcoded pkg-config command
+
+Use overridable $PKG_CONFIG instead.
+
+Also fixes some M4 grammar errors in configure.ac.
+
+Signed-off-by: Mauro Carvalho Chehab <[email protected]>
+---
+ configure.ac | 14 +++++++-------
+ 1 file changed, 7 insertions(+), 7 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index f0f9723c..a2251e3d 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -663,23 +663,23 @@ AC_ARG_WITH([qt6],
+ 
+ AS_IF([test "x$with_qt" != "xno"],
+       [AS_IF([test "x$with_qt6" != "xno"],
+-           PKG_CHECK_MODULES([QT],
++           [PKG_CHECK_MODULES([QT],
+                                [Qt6],
+-                               [MOC=`pkg-config Qt6 --variable=moc`
++                               [MOC=`$PKG_CONFIG Qt6 --variable=moc`
+                                 QT_VERSION=`$PKG_CONFIG Qt6 --modversion`
+-                                QT6_HEADERS=`pkg-config Qt6 
--variable=headerdir`
++                                QT6_HEADERS=`$PKG_CONFIG Qt6 
--variable=headerdir`
+                                 CPPFLAGS="$CPPFLAGS -I$QT6_HEADERS 
-I$QT6_HEADERS/QtWidgets -I$QT6_HEADERS/QtCore -I$QT6_HEADERS/QtGui"
+                                 qt_pkgconfig_file="zbar-qt5.pc"
+                                ],
+-                               [with_qt6="no"]))
++                               [with_qt6="no"])])
+        AS_IF([test "x$with_qt6" = "xno"],
+-             PKG_CHECK_MODULES([QT],
++             [PKG_CHECK_MODULES([QT],
+                                [Qt5Core >= 5 Qt5Gui >= 5 Qt5Widgets >= 5.0 
Qt5X11Extras >= 5.0],
+-                               [MOC=`pkg-config Qt5 --variable=moc`
++                               [MOC=`$PKG_CONFIG Qt5 --variable=moc`
+                                 QT_VERSION=`$PKG_CONFIG Qt5 --modversion`
+                                 qt_pkgconfig_file="zbar-qt5.pc"
+                                ],
+-                               [with_qt="no"]))
++                               [with_qt="no"])])
+       ])
+ 
+ AC_ARG_VAR([MOC], [full path to Qt moc program])

diff --git 
a/media-gfx/zbar/files/zbar-0.23.93-configure-ac-use-old-way-to-detect-qt5.patch
 
b/media-gfx/zbar/files/zbar-0.23.93-configure-ac-use-old-way-to-detect-qt5.patch
new file mode 100644
index 000000000000..a5e9dba8ebea
--- /dev/null
+++ 
b/media-gfx/zbar/files/zbar-0.23.93-configure-ac-use-old-way-to-detect-qt5.patch
@@ -0,0 +1,26 @@
+From a549566ea11eb03622bd4458a1728ffe3f589163 Mon Sep 17 00:00:00 2001
+From: Boyuan Yang <[email protected]>
+Date: Wed, 10 Jan 2024 10:57:29 -0500
+Subject: [PATCH] configure.ac: Use old way to detect Qt5
+
+Bug: https://github.com/mchehab/zbar/issues/277
+Signed-off-by: Mauro Carvalho Chehab <[email protected]>
+---
+ configure.ac | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index a2251e3d..0e5641e5 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -675,8 +675,8 @@ AS_IF([test "x$with_qt" != "xno"],
+        AS_IF([test "x$with_qt6" = "xno"],
+              [PKG_CHECK_MODULES([QT],
+                                [Qt5Core >= 5 Qt5Gui >= 5 Qt5Widgets >= 5.0 
Qt5X11Extras >= 5.0],
+-                               [MOC=`$PKG_CONFIG Qt5 --variable=moc`
+-                                QT_VERSION=`$PKG_CONFIG Qt5 --modversion`
++                               [AC_CHECK_PROGS([MOC], [moc-qt5 moc])
++                                QT_VERSION=`$PKG_CONFIG Qt5Gui --modversion`;
+                                 qt_pkgconfig_file="zbar-qt5.pc"
+                                ],
+                                [with_qt="no"])])

diff --git a/media-gfx/zbar/zbar-0.23.93.ebuild 
b/media-gfx/zbar/zbar-0.23.93.ebuild
new file mode 100644
index 000000000000..2de79e7129ae
--- /dev/null
+++ b/media-gfx/zbar/zbar-0.23.93.ebuild
@@ -0,0 +1,232 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..12} )
+inherit autotools flag-o-matic java-pkg-opt-2 multilib-minimal 
python-single-r1 qmake-utils virtualx
+
+DESCRIPTION="Library and tools for reading barcodes from images or video"
+HOMEPAGE="https://github.com/mchehab/zbar";
+SRC_URI="https://github.com/mchehab/zbar/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~x86"
+IUSE="dbus graphicsmagick gtk +imagemagick introspection java jpeg nls python 
qt5 static-libs test +threads v4l X xv"
+
+REQUIRED_USE="
+       introspection? ( gtk )
+       python? ( ${PYTHON_REQUIRED_USE} )
+       test? (
+               ${PYTHON_REQUIRED_USE}
+               X? ( imagemagick )
+       )
+       xv? ( X )"
+
+RESTRICT="!test? ( test )"
+
+COMMON_DEPEND="
+       dbus? ( sys-apps/dbus[${MULTILIB_USEDEP}] )
+       gtk? (
+               dev-libs/glib:2[${MULTILIB_USEDEP}]
+               x11-libs/gtk+:3[${MULTILIB_USEDEP}]
+               introspection? ( dev-libs/gobject-introspection )
+       )
+       imagemagick? (
+               !graphicsmagick? ( media-gfx/imagemagick:=[png,jpeg?] )
+               graphicsmagick? ( media-gfx/graphicsmagick:=[png,jpeg?] )
+       )
+       jpeg? ( media-libs/libjpeg-turbo:0[${MULTILIB_USEDEP}] )
+       python? ( ${PYTHON_DEPS} )
+       qt5? (
+               dev-qt/qtcore:5
+               dev-qt/qtgui:5
+               dev-qt/qtwidgets:5
+               dev-qt/qtx11extras:5
+       )
+       v4l? ( media-libs/libv4l:0=[${MULTILIB_USEDEP}] )
+       X? (
+               x11-libs/libX11[${MULTILIB_USEDEP}]
+               x11-libs/libXext[${MULTILIB_USEDEP}]
+               xv? ( x11-libs/libXv[${MULTILIB_USEDEP}] )
+       )"
+
+RDEPEND="${COMMON_DEPEND}
+       java? ( >=virtual/jre-1.8 )"
+
+DEPEND="${COMMON_DEPEND}
+       java? (
+               >=virtual/jdk-1.8
+               test? (
+                       dev-java/hamcrest-core:1.3
+                       dev-java/junit:4
+               )
+       )
+       test? (
+               ${PYTHON_DEPS}
+               $(python_gen_cond_dep '
+                       dev-python/pillow[${PYTHON_USEDEP}]
+               ')
+               elibc_musl? ( sys-libs/argp-standalone )
+       )"
+
+BDEPEND="
+       app-text/xmlto
+       sys-devel/gettext
+       virtual/pkgconfig
+       gtk? ( dev-util/glib-utils )
+       nls? (
+               sys-devel/gettext
+               virtual/libiconv
+       )"
+
+DOCS=( README.md NEWS.md TODO.md HACKING.md TODO.md ChangeLog )
+
+PATCHES=(
+       # TODO: upstream?
+       "${FILESDIR}/${PN}-0.23_fix_python_detect.patch"
+       "${FILESDIR}/${PN}-0.23.90-fix-unittest.patch"
+       
"${FILESDIR}/${PN}-0.23.93-configure-ac-do-not-use-hardcoded-pkg-config-command.patch"
+       "${FILESDIR}/${PN}-0.23.93-configure-ac-use-old-way-to-detect-qt5.patch"
+)
+
+pkg_setup() {
+       if use python || use test; then
+               python-single-r1_pkg_setup
+       fi
+       use java && java-pkg-opt-2_pkg_setup
+}
+
+src_prepare() {
+       default
+
+       if use python || use test; then
+               if use test; then
+                       # make tests happy
+                       # because one of the test requires loadable py module 
from the current ${BUILD_DIR}
+                       sed -e 
"s|PYTHONPATH=@abs_top_srcdir@|PYTHONPATH=@builddir@|g" \
+                               -i test/Makefile.am.inc || die
+               fi
+
+               python_fix_shebang \
+                       examples/*.py \
+                       test/{test_python,barcodetest}.py # test_pygtk.py — py2 
only
+       fi
+
+       if use java; then
+               java-pkg-opt-2_src_prepare
+               sed -e "s|javadir = \$(pkgdatadir)|javadir = 
/usr/$(get_libdir)/zbar|" \
+                       -i java/Makefile.am || die
+       fi
+
+       # do not install {LICENSE,INSTALL,etc} doc files with 'make install' 
(use DOCS=() instead)
+       sed -e "s|^dist_doc_DATA =\(.*\)|dist_doc_DATA =|" -i Makefile.am || die
+
+       eautoreconf
+}
+
+multilib_src_configure() {
+       append-cppflags -DNDEBUG
+
+       local myeconfargs=(
+               $(use_with dbus)
+               $(use_with gtk gtk gtk3) # avoid 'auto'
+               $(use_with jpeg)
+               $(multilib_native_use_with introspection gir)
+               $(multilib_native_use_with java)
+               $(multilib_native_use_with python python auto)
+               $(use_enable nls)
+               $(use_enable static-libs static)
+               $(use_enable threads pthread)
+               $(use_enable v4l video)
+               $(use_with X x)
+               $(use_with X xshm)
+               $(use_with xv xv)
+       )
+
+       if multilib_is_native_abi; then
+               # both must be enabled to use GraphicsMagick
+               if use imagemagick && use graphicsmagick; then
+                       myeconfargs+=(
+                               --with-graphicsmagick
+                               --without-imagemagick
+                       )
+               elif ! use graphicsmagick && use imagemagick; then
+                       myeconfargs+=(
+                               --with-imagemagick
+                               --without-graphicsmagick
+                       )
+               else
+                       myeconfargs+=(
+                               --without-imagemagick
+                               --without-graphicsmagick
+                       )
+               fi
+
+               if use java; then
+                       export JAVACFLAGS="$(java-pkg_javac-args)"
+                       append-cflags "$(java-pkg_get-jni-cflags)"
+                       if use test; then # bug 629078
+                               myeconfargs+=( --with-java-unit )
+                               CLASSPATH+=":$(java-pkg_getjar --build-only 
junit-4 junit.jar)"
+                               CLASSPATH+=":$(java-pkg_getjar --build-only 
hamcrest-core-1.3 hamcrest-core.jar)"
+                       fi
+               fi
+
+               if use qt5; then
+                       myeconfargs+=(
+                               --with-qt
+                       )
+               else
+                       myeconfargs+=( --without-qt )
+               fi
+
+               if use test && use elibc_musl; then
+                       append-ldflags -largp
+               fi
+
+       else
+               myeconfargs+=(
+                       --without-graphicsmagick
+                       --without-imagemagick
+                       --without-qt
+               )
+
+               # zbarimg tests with native abi only
+               # (this option from the patch above, stay up to date)
+               use test && myeconfargs+=( --without-zbarimg-tests )
+       fi
+
+       # use bash (bug 721370)
+       CONFIG_SHELL='/bin/bash' \
+       ECONF_SOURCE="${S}" \
+       MOC="$(qt5_get_bindir)"/moc \
+               econf "${myeconfargs[@]}"
+
+       # work around out-of-source build issues for multilib systems (bug 
672184)
+       mkdir qt zbarcam || die
+}
+
+src_test() {
+       virtx multilib-minimal_src_test
+}
+
+src_install() {
+       if use qt5; then
+               local MULTILIB_WRAPPED_HEADERS=(
+                       /usr/include/zbar/QZBar.h
+                       /usr/include/zbar/QZBarImage.h
+               )
+       fi
+       multilib-minimal_src_install
+}
+
+multilib_src_install_all() {
+       einstalldocs
+       find "${D}" -name '*.la' -delete || die
+}
+
+pkg_preinst() {
+       use java && java-pkg-opt-2_pkg_preinst
+}

Reply via email to