media-gfx/zbar: bump to 0.23.1
authorYury Martynov <email@linxon.ru>
Thu, 23 Apr 2020 14:40:43 +0000 (17:40 +0300)
committerJoonas Niilola <juippis@gentoo.org>
Sun, 26 Apr 2020 13:36:46 +0000 (16:36 +0300)
Closes: https://bugs.gentoo.org/719068
Closes: https://bugs.gentoo.org/680520
Closes: https://bugs.gentoo.org/687752
Package-Manager: Portage-2.3.89, Repoman-2.3.20
Signed-off-by: Yury Martynov <email@linxon.ru>
Closes: https://github.com/gentoo/gentoo/pull/15486
Signed-off-by: Joonas Niilola <juippis@gentoo.org>
media-gfx/zbar/Manifest
media-gfx/zbar/files/zbar-0.23.1_fix_leftover_on_shell_compatibility.patch [new file with mode: 0644]
media-gfx/zbar/files/zbar-0.23.1_fix_unittest.patch [new file with mode: 0644]
media-gfx/zbar/zbar-0.23.1.ebuild [new file with mode: 0644]

index 3da8925c59137694886dacf58e4c1b4549ad3f24..73e9e49982d7558e71dda1f2a5697b095c008e6f 100644 (file)
@@ -1 +1,2 @@
+DIST zbar-0.23.1.tar.gz 1019268 BLAKE2B 5aa8725a0945b6f50eb78bb7b8a61e5b46356b18f07e8af778a63d46b94c894d9e827ed71bd89060898ecbdaebc5b4bb6e638939d7bc0dede390f7137770049f SHA512 ae7741cf750a10cf53dc11abcd482c3885507153ee37f6e3364ed5ed72184ebb009560b8c40d8090603a551fb681700a962838a59ce77d005d080ee49fbfa54b
 DIST zbar-0.23.tar.gz 1301948 BLAKE2B dd74ce44bcb10f8a7cf180b982e5bd82f1f5674540931377d207ab730bb2d080fe222bfc42d4a3d70895ad53b78638e73c2294018b80d30dc28f7e6ecc14c761 SHA512 9737f9dca42c29f92aa1eca5c0808da34f1d16c88c65241c9e3984c487e502f398437e7a707a1edd2c440f784db537ba33ea4008a2d1c1caaf5eea6431b1400b
diff --git a/media-gfx/zbar/files/zbar-0.23.1_fix_leftover_on_shell_compatibility.patch b/media-gfx/zbar/files/zbar-0.23.1_fix_leftover_on_shell_compatibility.patch
new file mode 100644 (file)
index 0000000..62993a8
--- /dev/null
@@ -0,0 +1,24 @@
+From 8e74a2e223bd40e8cf95ac2580df56ac8500a859 Mon Sep 17 00:00:00 2001
+From: Boyuan Yang <byang@debian.org>
+Date: Wed, 22 Apr 2020 10:29:39 -0400
+Subject: [PATCH] configure.ac: Fix leftover on shell compatibility
+
+Uses "=" instead of "==" in string comparision for POSIX
+compatibility.  This is a leftover of previous similar fix.
+---
+ configure.ac | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/configure.ac b/configure.ac
+index 105da09..df0220a 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -845,7 +845,7 @@ dnl summary log
+ echo ""
+ echo "please verify that the detected configuration matches your expectations:"
+ echo "------------------------------------------------------------------------"
+-AS_IF([test "x$USE_NLS" == "xyes"],
++AS_IF([test "x$USE_NLS" = "xyes"],
+   [echo    "gettext                $USE_NLS"]
+ )
+ AS_IF([test "x$win32" != "xno"],
diff --git a/media-gfx/zbar/files/zbar-0.23.1_fix_unittest.patch b/media-gfx/zbar/files/zbar-0.23.1_fix_unittest.patch
new file mode 100644 (file)
index 0000000..3f538c8
--- /dev/null
@@ -0,0 +1,78 @@
+diff -ur a/configure.ac b/configure.ac
+--- a/configure.ac     2020-04-21 00:09:21.000000000 +0300
++++ b/configure.ac     2020-04-23 16:53:06.654339488 +0300
+@@ -336,6 +336,14 @@
+   AC_SUBST(DBUS_CONFDIR)
+ ])
++dnl zbarimg tests
++AC_ARG_WITH([zbarimg_tests],
++  [AS_HELP_STRING([--without-zbarimg-tests],
++    [disable tests for zbarimg])],
++  [],
++  [with_zbarimg_tests="yes"])
++AM_CONDITIONAL([HAVE_ZBARIMG_TESTS], [test "x$with_zbarimg_tests" = "xyes"])
++
+ dnl libjpeg
+ AC_ARG_WITH([jpeg],
+   [AS_HELP_STRING([--without-jpeg],
+@@ -724,25 +732,12 @@
+ AC_ARG_VAR([CLASSPATH], [Java class path (include JUnit to run java tests)])
+ AS_IF([test "x$CLASSPATH" = "x"], [CLASSPATH="."])
++AC_SUBST(CLASSPATH)
+-dnl Search for Java unit test library
+-AS_IF([test -z "$JUNIT_HOME"],
+-      [JUNIT_HOME="/usr/share/java"])
+-
+-AS_IF([test -f "$JUNIT_HOME/junit4.jar"],
+-      [JUNIT="$JUNIT_HOME/junit4.jar"],
+-      [AS_IF([test -f "$JUNIT_HOME/junit.jar"],
+-          [JUNIT="$JUNIT_HOME/junit.jar"])])
+-
+-AS_IF([test "x$JUNIT" != "x"],
+-      [AS_IF([test -f "/usr/share/java/hamcrest/all.jar"],
+-           [CLASSPATH="$JUNIT:/usr/share/java/hamcrest/all.jar:$CLASSPATH"
+-              AC_SUBST(CLASSPATH)
+-              with_java_unit="yes"])],
+-      [AS_IF([test -f "/usr/share/java/hamcrest-all.jar"],
+-             [CLASSPATH="$JUNIT:/usr/share/java/hamcrest-all.jar:$CLASSPATH"
+-              AC_SUBST(CLASSPATH)
+-              with_java_unit="yes"])])
++AC_ARG_WITH([java_unit],
++  [AS_HELP_STRING([--without-java-unit],
++    [Enable java unittest])],
++  [with_java_unit="yes"])
+ AM_CONDITIONAL([HAVE_JAVA_UNIT], [test "x$with_java_unit" = "xyes"])
+@@ -905,6 +900,8 @@
+   [echo "        => the Java interface will *NOT* be built"])
+ AS_IF([test "x$with_java_unit" != "xyes"],
+   [echo "        => the Java unit test will *NOT* be enabled"])
++AS_IF([test "x$with_zbarimg_tests" != "xyes"],
++  [echo "        => zbarimg tests will *NOT* be enabled"])
+ #echo "NPAPI Plugin     --with-npapi=$with_npapi"
+ #AS_IF([test "x$with_mozilla" != "xyes"],
+ #  [echo "       => the Mozilla/Firefox/OpenOffice plugin will *NOT* be built"])
+diff -ur a/test/Makefile.am.inc b/test/Makefile.am.inc
+--- a/test/Makefile.am.inc     2020-04-21 00:09:21.000000000 +0300
++++ b/test/Makefile.am.inc     2020-04-23 17:03:07.819999370 +0300
+@@ -91,11 +91,16 @@
+ regress-decoder: test/test_decode
+       @abs_top_builddir@/test/test_decode -q -n 100000
++if HAVE_ZBARIMG_TESTS
+ check-images-py: zbarimg/zbarimg
+       @PYTHON@ @abs_top_srcdir@/test/barcodetest.py
+ check-images: zbarimg/zbarimg
+       @abs_top_builddir@/test/test_examples.sh
++else
++check-images-py:
++check-images:
++endif
+ check-convert: test/test_convert
+       @abs_top_srcdir@/test/test_convert
diff --git a/media-gfx/zbar/zbar-0.23.1.ebuild b/media-gfx/zbar/zbar-0.23.1.ebuild
new file mode 100644 (file)
index 0000000..c284e6b
--- /dev/null
@@ -0,0 +1,224 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+PYTHON_COMPAT=( python3_{6,7,8} )
+
+inherit autotools flag-o-matic java-pkg-opt-2 multilib-minimal python-single-r1 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 ~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? ( virtual/jpeg: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_MULTI_USEDEP}]
+               ')
+       )"
+
+BDEPEND="
+       app-text/xmlto
+       virtual/pkgconfig
+       gtk? ( dev-util/glib-utils )
+       nls? (
+               sys-devel/gettext
+               virtual/libiconv
+       )"
+
+PATCHES=(
+       "${FILESDIR}/${P}_fix_leftover_on_shell_compatibility.patch"
+       "${FILESDIR}/${P}_fix_unittest.patch"
+       "${FILESDIR}/zbar-0.23_fix_Qt5X11Extras_detect.patch"
+       "${FILESDIR}/zbar-0.23_fix_python_detect.patch"
+)
+
+DOCS=( README.md NEWS.md TODO.md HACKING.md TODO.md ChangeLog )
+
+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) # default is gtk2
+               $(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 graphicsmagick; then
+                       myeconfargs+=(
+                               --with-graphicsmagick
+                               --without-imagemagick
+                       )
+               elif 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 )
+                               java-pkg_append_ CLASSPATH .
+                               java-pkg_append_ CLASSPATH $(java-pkg_getjar --build-only junit-4 junit.jar)
+                               java-pkg_append_ 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
+       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
+
+       ECONF_SOURCE="${S}" \
+               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
+}