public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
From: "Sam James" <sam@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] repo/gentoo:master commit in: media-gfx/zbar/files/, media-gfx/zbar/
Date: Thu,  9 Mar 2023 08:53:31 +0000 (UTC)	[thread overview]
Message-ID: <1678351998.035ef8e2450a78522ce571217caf407694059f4f.sam@gentoo> (raw)

commit:     035ef8e2450a78522ce571217caf407694059f4f
Author:     Petr Vaněk <arkamar <AT> atlas <DOT> cz>
AuthorDate: Wed Mar  8 08:38:08 2023 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Thu Mar  9 08:53:18 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=035ef8e2

media-gfx/zbar: add 0.23.92

- Backport patch for py3.11 from upstraem
- Fix test build issue with musl libc. Test needs to be linked with
  sys-libs/argp-standalone.
- switch dependency to media-libs/libjpeg-turbo instead of deprecated
  virtual/jpeg
- directly append test jars to CLASSPATH variable in order to avoid
  internal usage of java-pkg_append_ function from java-utils-2 eclass,
  however, it is not necessary to append "." because test does that
  automatically, see [1].

[1] https://github.com/mchehab/zbar/blob/9f0cbc70aba627afe02cb0afdb8fbc39eb4f229d/java/Makefile.am#L58-L59

Closes: https://bugs.gentoo.org/836256
Closes: https://bugs.gentoo.org/896994
Signed-off-by: Petr Vaněk <arkamar <AT> atlas.cz>
Closes: https://github.com/gentoo/gentoo/pull/29990
Signed-off-by: Sam James <sam <AT> gentoo.org>

 media-gfx/zbar/Manifest                            |   1 +
 .../zbar/files/zbar-0.23.92-py311-set-size.patch   |  30 +++
 media-gfx/zbar/zbar-0.23.92.ebuild                 | 235 +++++++++++++++++++++
 3 files changed, 266 insertions(+)

diff --git a/media-gfx/zbar/Manifest b/media-gfx/zbar/Manifest
index 3343fb13b810..3cac58789899 100644
--- a/media-gfx/zbar/Manifest
+++ b/media-gfx/zbar/Manifest
@@ -1 +1,2 @@
 DIST zbar-0.23.90.tar.gz 1005314 BLAKE2B 5d0c193509602dfb55741b421e1d28f1424ecec50aa3be584912544a587922c053284c41cf14ff0b4824095d0d376381ed055e7faf9ff394bd8d44fd9ed2971d SHA512 d73d71873bec68ee021997512a9edbd223f5f5fe43c66c4dd3502224ba6009be2e5e1714766cb8e1056244673e87e0939ed0319116f61d7371b5ab79fb5e04eb
+DIST zbar-0.23.92.tar.gz 1005358 BLAKE2B 97af3c399333abfcd64e45e6c4f38e5da6ed1540447f35f0efe9bc0fb8d296d80c964452afa29d26d22bddd8de31bc3ca6582db38afe8416e9480f11b939e040 SHA512 cae47fb199173fc1c052984865ca0e6aeab330bd6d77506a0937994d459deb4419a3e54e2dcd2e9830ffb8acf14f29e22e0a6becc9e4cfe19b07dad1babe9513

diff --git a/media-gfx/zbar/files/zbar-0.23.92-py311-set-size.patch b/media-gfx/zbar/files/zbar-0.23.92-py311-set-size.patch
new file mode 100644
index 000000000000..a51193af7777
--- /dev/null
+++ b/media-gfx/zbar/files/zbar-0.23.92-py311-set-size.patch
@@ -0,0 +1,30 @@
+Upstream-PR: https://github.com/mchehab/zbar/pull/231
+
+diff --git a/python/enum.c b/python/enum.c
+index ba22ba63..4644509e 100644
+--- a/python/enum.c
++++ b/python/enum.c
+@@ -50,7 +50,11 @@ static zbarEnumItem *enumitem_new(PyTypeObject *type, PyObject *args,
+ 
+     /* we assume the "fast path" for a single-digit ints (see longobject.c) */
+     /* this also holds if we get a small_int preallocated long */
++#if PY_VERSION_HEX >= 0x030900A4
++    Py_SET_SIZE(&self->val, Py_SIZE(longval));
++#else
+     Py_SIZE(&self->val) = Py_SIZE(longval);
++#endif
+     self->val.ob_digit[0] = longval->ob_digit[0];
+     Py_DECREF(longval);
+ #else
+@@ -129,7 +133,11 @@ zbarEnumItem *zbarEnumItem_New(PyObject *byname, PyObject *byvalue, int val,
+ 
+     /* we assume the "fast path" for a single-digit ints (see longobject.c) */
+     /* this also holds if we get a small_int preallocated long */
++#if PY_VERSION_HEX >= 0x030900A4
++    Py_SET_SIZE(&self->val, Py_SIZE(longval));
++#else
+     Py_SIZE(&self->val) = Py_SIZE(longval);
++#endif
+     self->val.ob_digit[0] = longval->ob_digit[0];
+     Py_DECREF(longval);
+ 

diff --git a/media-gfx/zbar/zbar-0.23.92.ebuild b/media-gfx/zbar/zbar-0.23.92.ebuild
new file mode 100644
index 000000000000..f2233c1e697c
--- /dev/null
+++ b/media-gfx/zbar/zbar-0.23.92.ebuild
@@ -0,0 +1,235 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{9..11} )
+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=(
+	# git master
+	"${FILESDIR}/${PN}-0.23.90-fix-gtk-default.patch"
+	# TODO: upstream?
+	"${FILESDIR}/${PN}-0.23_fix_python_detect.patch"
+	"${FILESDIR}/${PN}-0.23.90-fix-unittest.patch"
+	"${FILESDIR}/${PN}-0.23.90-fix-qt5x11extras-detect.patch"
+	"${FILESDIR}/${P}-py311-set-size.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
+				--with-qt5
+			)
+		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	other threads:[~2023-03-09  8:53 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-03-09  8:53 Sam James [this message]
  -- strict thread matches above, loose matches on Subject: below --
2022-05-08 23:29 [gentoo-commits] repo/gentoo:master commit in: media-gfx/zbar/files/, media-gfx/zbar/ Andreas Sturmlechner
2021-06-04 11:23 Marek Szuba
2021-06-04 11:23 Marek Szuba
2020-02-03 17:37 Andreas Sturmlechner
2018-11-25 17:36 Andreas Sturmlechner
2017-05-23  9:20 Lars Wendler

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1678351998.035ef8e2450a78522ce571217caf407694059f4f.sam@gentoo \
    --to=sam@gentoo.org \
    --cc=gentoo-commits@lists.gentoo.org \
    --cc=gentoo-dev@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox