media-gfx/zbar: add 0.23.93 with python3_12 support

Closes: https://bugs.gentoo.org/929630
Signed-off-by: Alan Swanson <reiver@improbability.net>
Closes: https://github.com/gentoo/gentoo/pull/37432
Signed-off-by: Joonas Niilola <juippis@gentoo.org>
This commit is contained in:
Alan Swanson
2024-07-30 16:23:10 +01:00
committed by Joonas Niilola
parent 0e4dac844e
commit 973ecc31e6
4 changed files with 308 additions and 0 deletions

View File

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

View File

@@ -0,0 +1,49 @@
From 368571ffa1a0f6cc41f708dd0d27f9b6e9409df8 Mon Sep 17 00:00:00 2001
From: Boyuan Yang <byang@debian.org>
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 <mchehab@kernel.org>
---
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])

View File

@@ -0,0 +1,26 @@
From a549566ea11eb03622bd4458a1728ffe3f589163 Mon Sep 17 00:00:00 2001
From: Boyuan Yang <byang@debian.org>
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 <mchehab@kernel.org>
---
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"])])

View File

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