diff options
author | Andreas Sturmlechner <asturm@gentoo.org> | 2018-11-25 18:59:41 +0100 |
---|---|---|
committer | Andreas Sturmlechner <asturm@gentoo.org> | 2018-11-25 19:00:16 +0100 |
commit | c8cae200f832c7d05452540a32a925d1e6f16112 (patch) | |
tree | fe894f17a396c442b4322afa2ec7a1f91cf96a28 /media-gfx/zbar | |
parent | media-gfx/zbar: mv diff -> patch, add basic patch header (diff) | |
download | gentoo-c8cae200f832c7d05452540a32a925d1e6f16112.tar.gz gentoo-c8cae200f832c7d05452540a32a925d1e6f16112.tar.bz2 gentoo-c8cae200f832c7d05452540a32a925d1e6f16112.zip |
media-gfx/zbar: Can't drop 0.10_p20121015-r3 yet
Signed-off-by: Andreas Sturmlechner <asturm@gentoo.org>
Diffstat (limited to 'media-gfx/zbar')
-rw-r--r-- | media-gfx/zbar/Manifest | 1 | ||||
-rw-r--r-- | media-gfx/zbar/files/zbar-0.10-python-crash.patch | 19 | ||||
-rw-r--r-- | media-gfx/zbar/files/zbar-0.10-v4l2-uvcvideo.patch | 49 | ||||
-rw-r--r-- | media-gfx/zbar/zbar-0.10_p20121015-r3.ebuild | 130 |
4 files changed, 199 insertions, 0 deletions
diff --git a/media-gfx/zbar/Manifest b/media-gfx/zbar/Manifest index 00a21a631d2b..b5bf4950fae0 100644 --- a/media-gfx/zbar/Manifest +++ b/media-gfx/zbar/Manifest @@ -1 +1,2 @@ +DIST zbar-0.10_p20121015.zip 991578 BLAKE2B 021dfa3920a838fd7bab12b09600ac6949c1495045691c4cc547bfb6ec647658c60984da248b882eabfc0bb123b90401dd3a32adcd66726b1e7072662e303d18 SHA512 7bb74ea5b096093b283c44787547ad0b886281628d012aa7b03ddb477732feb1e12d4d5a661191d34b53b7b272a237f67840e219b0ac5e2803da478a1ddba7a1 DIST zbar-0.20.1.tar.gz 555199 BLAKE2B f224a2207fa0603da4cc3a0e1d05bc73f3cf0cc9d13c26b3b801d3418f4f6a001b52e468b721552af61f4c8d7357934abd0560c24d3b233107785c69cfe14753 SHA512 21ad9d8fcdecb41bd4b8979366ab8ec6e8eac815f52270b0dc72ce6a126ccef933d048ce8bbe28f46ada5defadf85ba8c97c5c1870c9560a9dab28c585dfaf42 diff --git a/media-gfx/zbar/files/zbar-0.10-python-crash.patch b/media-gfx/zbar/files/zbar-0.10-python-crash.patch new file mode 100644 index 000000000000..a6f7a96e34db --- /dev/null +++ b/media-gfx/zbar/files/zbar-0.10-python-crash.patch @@ -0,0 +1,19 @@ +https://sourceforge.net/p/zbar/patches/37/ + +fix from Debian for crashes when importing the python module. +http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=702499 + +this doesn't happen on some arches as the data naturally ends up with zero +data after the structure, but on some (like arm), it isn't so we crash when +python walks the list. + +--- a/python/imagescanner.c ++++ b/python/imagescanner.c +@@ -68,6 +68,7 @@ imagescanner_get_results (zbarImageScanner *self, + + static PyGetSetDef imagescanner_getset[] = { + { "results", (getter)imagescanner_get_results, }, ++ { NULL }, + }; + + static PyObject* diff --git a/media-gfx/zbar/files/zbar-0.10-v4l2-uvcvideo.patch b/media-gfx/zbar/files/zbar-0.10-v4l2-uvcvideo.patch new file mode 100644 index 000000000000..4fde95e2b563 --- /dev/null +++ b/media-gfx/zbar/files/zbar-0.10-v4l2-uvcvideo.patch @@ -0,0 +1,49 @@ +--- zbar-0.10/zbar/video/v4l2.c 2009-10-23 18:16:44.000000000 +0000 ++++ zbar-0.10/zbar/video/v4l2.c 2015-03-07 05:46:36.000000000 +0000 +@@ -241,6 +241,21 @@ + return(0); + } + ++static int v4l2_request_buffers (zbar_video_t *vdo) ++{ ++ struct v4l2_requestbuffers rb; ++ memset(&rb, 0, sizeof(rb)); ++ rb.count = vdo->num_images; ++ rb.type = V4L2_BUF_TYPE_VIDEO_CAPTURE; ++ rb.memory = V4L2_MEMORY_USERPTR; ++ if(ioctl(vdo->fd, VIDIOC_REQBUFS, &rb) < 0) ++ return(err_capture(vdo, SEV_ERROR, ZBAR_ERR_SYSTEM, __func__, ++ "requesting video frame buffers (VIDIOC_REQBUFS)")); ++ if(rb.count) ++ vdo->num_images = rb.count; ++ return(0); ++} ++ + static int v4l2_set_format (zbar_video_t *vdo, + uint32_t fmt) + { +@@ -308,6 +323,8 @@ + return(-1); + if(vdo->iomode == VIDEO_MMAP) + return(v4l2_mmap_buffers(vdo)); ++ if(vdo->iomode == VIDEO_USERPTR) ++ return(v4l2_request_buffers(vdo)); + return(0); + } + +@@ -337,8 +354,13 @@ + else { + if(!vdo->iomode) + vdo->iomode = VIDEO_USERPTR; +- if(rb.count) +- vdo->num_images = rb.count; ++ /* releasing buffers ++ * lest the driver may later refuse to change format ++ */ ++ rb.count = 0; ++ if (ioctl(vdo->fd, VIDIOC_REQBUFS, &rb) < 0) ++ zprintf(0, "WARNING: releasing video buffers failed: error %d\n", ++ errno); + } + return(0); + } diff --git a/media-gfx/zbar/zbar-0.10_p20121015-r3.ebuild b/media-gfx/zbar/zbar-0.10_p20121015-r3.ebuild new file mode 100644 index 000000000000..719be7784d51 --- /dev/null +++ b/media-gfx/zbar/zbar-0.10_p20121015-r3.ebuild @@ -0,0 +1,130 @@ +# Copyright 1999-2018 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +PYTHON_COMPAT=( python2_7 ) +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="http://zbar.sourceforge.net/" +SRC_URI="https://dev.gentoo.org/~xmw/zbar-0.10_p20121015.zip" + +LICENSE="LGPL-2.1" +SLOT="0" +KEYWORDS="amd64 ~arm x86" +IUSE="gtk imagemagick java jpeg python static-libs test +threads v4l X xv" +REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} ) + test? ( X ${PYTHON_REQUIRED_USE} )" + +CDEPEND="gtk? ( dev-libs/glib:2[${MULTILIB_USEDEP}] + x11-libs/gtk+:2[${MULTILIB_USEDEP}] ) + imagemagick? ( virtual/imagemagick-tools ) + jpeg? ( virtual/jpeg:0[${MULTILIB_USEDEP}] ) + python? ( + ${PYTHON_DEPS} + gtk? ( >=dev-python/pygtk-2[${PYTHON_USEDEP}] ) + ) + X? ( + x11-libs/libXext[${MULTILIB_USEDEP}] + xv? ( x11-libs/libXv[${MULTILIB_USEDEP}] ) + )" +RDEPEND="${CDEPEND} + java? ( >=virtual/jre-1.4 )" +DEPEND="${CDEPEND} + java? ( >=virtual/jdk-1.4 + test? ( dev-java/junit:4 + dev-java/hamcrest-core:1.3 ) ) + test? ( ${PYTHON_DEPS} ) + app-arch/unzip + sys-devel/gettext + virtual/pkgconfig" + +pkg_setup() { + if use python || use test; then + python-single-r1_pkg_setup + fi + java-pkg-opt-2_pkg_setup +} + +src_unpack() { + #vcs-snapshot doesn't work on .zip + default + mv * ${P} || die +} + +src_prepare() { + eapply "${FILESDIR}"/${PN}-0.10-errors.patch \ + "${FILESDIR}"/${PN}-0.10-python-crash.patch \ + "${FILESDIR}"/${PN}-0.10-v4l2-uvcvideo.patch + + # fix use of deprecated qt4 function, bug 572488 + sed -e 's:numBytes:byteCount:g' \ + -i "${S}"/include/zbar/QZBarImage.h || die + + if has_version '>=media-gfx/imagemagick-7.0.1.0' ; then + eapply "${FILESDIR}/${P}-ImageMagick-7.patch" + fi + + use python && python_fix_shebang examples/upcrpc.py test/*.py + java-pkg-opt-2_src_prepare + + sed -e '/AM_INIT_AUTOMAKE/s: -Werror : :' \ + -e '/^AM_CFLAGS=/s: -Werror::' \ + -i configure.ac || die + sed "s|javadir = \$(pkgdatadir)|javadir = /usr/$(get_libdir)/zbar|" \ + -i java/Makefile.am + eautoreconf +} + +multilib_src_configure() { + if multilib_is_native_abi && use java; then + export JAVACFLAGS="$(java-pkg_javac-args)" + export JAVA_CFLAGS="$(java-pkg_get-jni-cflags)" + if use test ; then # bug 629078 + 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 + + append-cppflags -DNDEBUG + + # different flags for image/graphics magick (bug 552350) + myimagemagick="--without-imagemagick" + has_version media-gfx/imagemagick && + myimagemagick="$(multilib_native_use_with imagemagick)" + mygraphicsmagick="--without-graphicsmagick" + has_version media-gfx/graphicsmagick && + mygraphicsmagick="$(multilib_native_use_with imagemagick graphicsmagick)" + ECONF_SOURCE=${S} \ + econf \ + $(multilib_native_use_with java) \ + $(use_with jpeg) \ + $(use_with gtk) \ + ${myimagemagick} \ + ${mygraphicsmagick} \ + $(multilib_native_use_with python) \ + --without-qt \ + $(use_enable static-libs static) \ + $(use_enable threads pthread) \ + $(use_with X x) \ + $(use_with xv xv) \ + $(use_enable v4l video) + + # work-around out-of-source build issue + mkdir gtk pygtk qt test || die +} + +src_test() { + virtx multilib-minimal_src_test +} + +multilib_src_install_all() { + dodoc HACKING NEWS README TODO + find "${D}" -name '*.la' -delete || die +} + +pkg_preinst() { + java-pkg-opt-2_pkg_preinst +} |