community/vigra to 1.11.1.r45+g8acd73a5-2

This commit is contained in:
Kevin Mihelich 2021-08-04 19:01:23 +00:00
parent 812ee5dcf4
commit d67c27923d
3 changed files with 35 additions and 215 deletions

View file

@ -5,77 +5,55 @@
# ALARM: Kevin Mihelich <kevin@archlinuxarm.org>
# - build v5 with -DCMAKE_CXX_FLAGS=-std=c++11 -DWITH_BOOST_THREAD=1 to fix FTBFS
pkgbase=vigra
pkgname=(vigra vigra-doc)
pkgver=1.11.1
pkgrel=35
pkgname=vigra
pkgver=1.11.1.r45+g8acd73a5
pkgrel=2
pkgdesc="Computer vision library"
arch=(x86_64)
url="https://ukoethe.github.io/vigra/"
license=(custom:MIT)
makedepends=(# runtime deps
libpng libtiff openexr gcc-libs sh hdf5 fftw
# additional makedeps
cmake boost python-numpy)
depends=(libpng libtiff openexr gcc-libs sh hdf5 fftw)
makedepends=(git cmake boost python-numpy)
checkdepends=(python-nose)
source=("https://github.com/ukoethe/vigra/releases/download/Version-${pkgver//./-}/vigra-${pkgver}-src.tar.gz"
fix-incorrect-template-parameter-type.patch py3.7.diff
optdepends=('python: for python bindings'
'boost-libs: for python bindings')
source=(git+https://github.com/ukoethe/vigra#commit=8acd73a5e0408326e2a3c1ed1c2c70ffe2b954d0
vigra-openexr3.patch)
sha256sums=('a5564e1083f6af6a885431c1ee718bad77d11f117198b277557f8558fa461aaf'
'f151f902483dfa2b1f3d431f54bb161300cf184158c9f416fa653d19ab363cc4'
'8fcdcce50c377be44387cbd4a001dadf5e03b32483de55c05a359c887e95a05b'
'2572717e39f916c7c463b8f49306b683c5923906be2721f7da181c58b3a2b34b')
sha256sums=(SKIP
2572717e39f916c7c463b8f49306b683c5923906be2721f7da181c58b3a2b34b)
pkgver() {
cd ${pkgname}
git describe --long --tags | sed 's/^Version-//;s/\([^-]*-g\)/r\1/;s/-/./g;s/\.g/+g/'
}
prepare() {
cd ${pkgbase}-${pkgver}
# https://github.com/ukoethe/vigra/issues/414
patch -Np1 -i ../fix-incorrect-template-parameter-type.patch
# python 3.7 compat
patch -Np1 -i ../py3.7.diff
patch -p1 < ../vigra-openexr3.patch # Fix build with openexr 3
cd ${pkgbase}
# Fix build with openexr 3
patch -p1 < ../vigra-openexr3.patch
}
build() {
cmake -B build -S ${pkgbase}-${pkgver} \
-DCMAKE_INSTALL_PREFIX=/usr \
-DPYTHON_EXECUTABLE=/usr/bin/python \
-DWITH_OPENEXR=true \
-DWITH_VIGRANUMPY=1 \
-DDOCINSTALL=share/doc \
-DCMAKE_C_FLAGS="-DH5_USE_110_API" \
-DCMAKE_CXX_FLAGS="-DH5_USE_110_API" \
$([ $CARCH == arm ] && echo "-DCMAKE_CXX_FLAGS=-std=c++11 -DWITH_BOOST_THREAD=1")
cmake -B build -S ${pkgbase} \
-DCMAKE_INSTALL_PREFIX=/usr \
-DPYTHON_EXECUTABLE=/usr/bin/python \
-DWITH_OPENEXR=true \
-DWITH_VIGRANUMPY=1 \
-DDOCINSTALL=share/doc \
-DCMAKE_C_FLAGS="-DH5_USE_110_API" \
-DCMAKE_CXX_FLAGS="-DH5_USE_110_API" \
$([ $CARCH == arm ] && echo "-DCMAKE_CXX_FLAGS=-std=c++11 -DWITH_BOOST_THREAD=1")
make -C build
}
check() {
make -C build -j1 -k check || echo "Tests failed" # https://github.com/ukoethe/vigra/issues/409
}
package_vigra() {
pkgdesc="Computer vision library"
depends=(libpng libtiff openexr gcc-libs sh hdf5 fftw)
optdepends=('python: for python bindings'
'boost-libs: for python bindings')
# Numerous failures, upstream almost dead
# https://github.com/ukoethe/vigra/issues/409
# https://github.com/ukoethe/vigra/issues/491
#check() {
# make -C build -j1 -k check
#}
package() {
make -C build DESTDIR="${pkgdir}" install
install -Dm644 ${pkgbase}-${pkgver}/LICENSE.txt -t "${pkgdir}"/usr/share/licenses/${pkgname}/
# Remove doc
rm -r "${pkgdir}"/usr/share/doc
}
package_vigra-doc() {
pkgdesc="Computer vision library - documentation and examples"
#arch=('any') # Not supported for now, maybe later
make -C build DESTDIR="${pkgdir}" install
# Remove vigra package content
rm -r "${pkgdir}"/usr/{bin,include,lib}
# Remove doctrees https://github.com/ukoethe/vigra/pull/477
rm -r "${pkgdir}"/usr/share/doc/vigranumpy/doctrees/
install -Dm644 ${pkgbase}-${pkgver}/LICENSE.txt -t "${pkgdir}"/usr/share/licenses/${pkgname}/
install -Dm644 ${pkgbase}/LICENSE.txt -t "${pkgdir}"/usr/share/licenses/${pkgname}/
}

View file

@ -1,139 +0,0 @@
From 81958d302494e137f98a8b1d7869841532f90388 Mon Sep 17 00:00:00 2001
From: JaimeIvanCervantes <jimmycc80@hotmail.com>
Date: Fri, 16 Jun 2017 13:21:45 -0700
Subject: [PATCH] multi_convolution: Fix for incorrect template parameter type
when using unsigned int N for TinyVector SIZE. (Fixes #414)
---
include/vigra/multi_convolution.hxx | 28 ++++++++++++++--------------
1 file changed, 14 insertions(+), 14 deletions(-)
diff --git a/include/vigra/multi_convolution.hxx b/include/vigra/multi_convolution.hxx
index 1b5efa740..ec89bcf58 100644
--- a/include/vigra/multi_convolution.hxx
+++ b/include/vigra/multi_convolution.hxx
@@ -1426,7 +1426,7 @@ gaussianSmoothMultiArray(MultiArrayView<N, T1, S1> const & source,
class T2, class S2>
void
gaussianGradientMultiArray(MultiArrayView<N, T1, S1> const & source,
- MultiArrayView<N, TinyVector<T2, N>, S2> dest,
+ MultiArrayView<N, TinyVector<T2, int(N)>, S2> dest,
double sigma,
ConvolutionOptions<N> opt = ConvolutionOptions<N>());
@@ -1435,7 +1435,7 @@ gaussianSmoothMultiArray(MultiArrayView<N, T1, S1> const & source,
class T2, class S2>
void
gaussianGradientMultiArray(MultiArrayView<N, T1, S1> const & source,
- MultiArrayView<N, TinyVector<T2, N>, S2> dest,
+ MultiArrayView<N, TinyVector<T2, int(N)>, S2> dest,
ConvolutionOptions<N> opt);
// likewise, but execute algorithm in parallel
@@ -1443,7 +1443,7 @@ gaussianSmoothMultiArray(MultiArrayView<N, T1, S1> const & source,
class T2, class S2>
void
gaussianGradientMultiArray(MultiArrayView<N, T1, S1> const & source,
- MultiArrayView<N, TinyVector<T2, N>, S2> dest,
+ MultiArrayView<N, TinyVector<T2, int(N)>, S2> dest,
BlockwiseConvolutionOptions<N> opt);
}
\endcode
@@ -1590,7 +1590,7 @@ template <unsigned int N, class T1, class S1,
class T2, class S2>
inline void
gaussianGradientMultiArray(MultiArrayView<N, T1, S1> const & source,
- MultiArrayView<N, TinyVector<T2, N>, S2> dest,
+ MultiArrayView<N, TinyVector<T2, int(N)>, S2> dest,
ConvolutionOptions<N> opt )
{
if(opt.to_point != typename MultiArrayShape<N>::type())
@@ -1614,7 +1614,7 @@ template <unsigned int N, class T1, class S1,
class T2, class S2>
inline void
gaussianGradientMultiArray(MultiArrayView<N, T1, S1> const & source,
- MultiArrayView<N, TinyVector<T2, N>, S2> dest,
+ MultiArrayView<N, TinyVector<T2, int(N)>, S2> dest,
double sigma,
ConvolutionOptions<N> opt = ConvolutionOptions<N>())
{
@@ -1653,7 +1653,7 @@ gaussianGradientMagnitudeImpl(MultiArrayView<N+1, T1, S1> const & src,
dest.init(0.0);
typedef typename NumericTraits<T1>::RealPromote TmpType;
- MultiArray<N, TinyVector<TmpType, N> > grad(dest.shape());
+ MultiArray<N, TinyVector<TmpType, int(N)> > grad(dest.shape());
using namespace multi_math;
@@ -1771,7 +1771,7 @@ gaussianGradientMagnitude(MultiArrayView<N+1, Multiband<T1>, S1> const & src,
class T2, class S2>
void
symmetricGradientMultiArray(MultiArrayView<N, T1, S1> const & source,
- MultiArrayView<N, TinyVector<T2, N>, S2> dest,
+ MultiArrayView<N, TinyVector<T2, int(N)>, S2> dest,
ConvolutionOptions<N> opt = ConvolutionOptions<N>());
// execute algorithm in parallel
@@ -1779,7 +1779,7 @@ gaussianGradientMagnitude(MultiArrayView<N+1, Multiband<T1>, S1> const & src,
class T2, class S2>
void
symmetricGradientMultiArray(MultiArrayView<N, T1, S1> const & source,
- MultiArrayView<N, TinyVector<T2, N>, S2> dest,
+ MultiArrayView<N, TinyVector<T2, int(N)>, S2> dest,
BlockwiseConvolutionOptions<N> opt);
}
\endcode
@@ -1895,7 +1895,7 @@ template <unsigned int N, class T1, class S1,
class T2, class S2>
inline void
symmetricGradientMultiArray(MultiArrayView<N, T1, S1> const & source,
- MultiArrayView<N, TinyVector<T2, N>, S2> dest,
+ MultiArrayView<N, TinyVector<T2, int(N)>, S2> dest,
ConvolutionOptions<N> opt = ConvolutionOptions<N>())
{
if(opt.to_point != typename MultiArrayShape<N>::type())
@@ -2214,14 +2214,14 @@ laplacianOfGaussianMultiArray(MultiArrayView<N, T1, S1> const & source,
template <unsigned int N, class T1, class S1,
class T2, class S2>
void
- gaussianDivergenceMultiArray(MultiArrayView<N, TinyVector<T1, N>, S1> const & vectorField,
+ gaussianDivergenceMultiArray(MultiArrayView<N, TinyVector<T1, int(N)>, S1> const & vectorField,
MultiArrayView<N, T2, S2> divergence,
ConvolutionOptions<N> const & opt);
template <unsigned int N, class T1, class S1,
class T2, class S2>
void
- gaussianDivergenceMultiArray(MultiArrayView<N, TinyVector<T1, N>, S1> const & vectorField,
+ gaussianDivergenceMultiArray(MultiArrayView<N, TinyVector<T1, int(N)>, S1> const & vectorField,
MultiArrayView<N, T2, S2> divergence,
double sigma,
ConvolutionOptions<N> opt = ConvolutionOptions<N>());
@@ -2231,7 +2231,7 @@ laplacianOfGaussianMultiArray(MultiArrayView<N, T1, S1> const & source,
template <unsigned int N, class T1, class S1,
class T2, class S2>
void
- gaussianDivergenceMultiArray(MultiArrayView<N, TinyVector<T1, N>, S1> const & vectorField,
+ gaussianDivergenceMultiArray(MultiArrayView<N, TinyVector<T1, int(N)>, S1> const & vectorField,
MultiArrayView<N, T2, S2> divergence,
BlockwiseConvolutionOptions<N> const & opt);
}
@@ -2324,7 +2324,7 @@ gaussianDivergenceMultiArray(Iterator vectorField, Iterator vectorFieldEnd,
template <unsigned int N, class T1, class S1,
class T2, class S2>
inline void
-gaussianDivergenceMultiArray(MultiArrayView<N, TinyVector<T1, N>, S1> const & vectorField,
+gaussianDivergenceMultiArray(MultiArrayView<N, TinyVector<T1, int(N)>, S1> const & vectorField,
MultiArrayView<N, T2, S2> divergence,
ConvolutionOptions<N> const & opt)
{
@@ -2338,7 +2338,7 @@ gaussianDivergenceMultiArray(MultiArrayView<N, TinyVector<T1, N>, S1> const & ve
template <unsigned int N, class T1, class S1,
class T2, class S2>
inline void
-gaussianDivergenceMultiArray(MultiArrayView<N, TinyVector<T1, N>, S1> const & vectorField,
+gaussianDivergenceMultiArray(MultiArrayView<N, TinyVector<T1, int(N)>, S1> const & vectorField,
MultiArrayView<N, T2, S2> divergence,
double sigma,
ConvolutionOptions<N> opt = ConvolutionOptions<N>())

View file

@ -1,19 +0,0 @@
diff -u -r vigra-1.11.1/vigranumpy/src/core/vigranumpycore.cxx vigra-1.11.1-py3.7/vigranumpy/src/core/vigranumpycore.cxx
--- vigra-1.11.1/vigranumpy/src/core/vigranumpycore.cxx 2017-05-19 17:01:08.000000000 +0200
+++ vigra-1.11.1-py3.7/vigranumpy/src/core/vigranumpycore.cxx 2018-07-29 18:29:46.514547076 +0200
@@ -59,10 +59,14 @@
Py_ssize_t size = PyUnicode_GET_DATA_SIZE(s.ptr());
const char * data = PyUnicode_AS_DATA(s.ptr());
return checksum(data, size);
-#else
+#elif (PY_MAJOR_VERSION == 3) && (PY_MINOR_VERSION < 7)
Py_ssize_t size = 0;
char * data = PyUnicode_AsUTF8AndSize(s.ptr(), &size);
return checksum(data, size);
+#else
+ Py_ssize_t size = 0;
+ const char * data = PyUnicode_AsUTF8AndSize(s.ptr(), &size);
+ return checksum(data, size);
#endif
}