Hello community,
here is the log from the commit of package octave-forge-image for openSUSE:Factory checked in at 2015-08-31 22:58:49
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/octave-forge-image (Old)
and /work/SRC/openSUSE:Factory/.octave-forge-image.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "octave-forge-image"
Changes:
--------
--- /work/SRC/openSUSE:Factory/octave-forge-image/octave-forge-image.changes 2015-06-23 11:58:40.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.octave-forge-image.new/octave-forge-image.changes 2015-08-31 22:58:50.000000000 +0200
@@ -1,0 +2,7 @@
+Thu Aug 13 10:31:19 UTC 2015 - dmitry_r@opensuse.org
+
+- Update to version 2.4.1
+ * Bugfix release
+- Drop ovsolete workaround_gcc_65843.patch
+
+-------------------------------------------------------------------
Old:
----
image-2.4.0.tar.gz
workaround_gcc_65843.patch
New:
----
image-2.4.1.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ octave-forge-image.spec ++++++
--- /var/tmp/diff_new_pack.FtUm3d/_old 2015-08-31 22:58:51.000000000 +0200
+++ /var/tmp/diff_new_pack.FtUm3d/_new 2015-08-31 22:58:51.000000000 +0200
@@ -18,19 +18,13 @@
%define octpkg image
Name: octave-forge-%{octpkg}
-Version: 2.4.0
+Version: 2.4.1
Release: 0
Summary: Image Processing for Octave
License: GPL-3.0+ and BSD-2-Clause and MIT
Group: Productivity/Scientific/Math
Url: http://octave.sourceforge.net
Source0: http://downloads.sourceforge.net/octave/%{octpkg}-%{version}.tar.gz
-# PATCH-FIX-UPSTREAM workaround_gcc_65843.patch -- https://savannah.gnu.org/bugs/?45096
-Patch1: workaround_gcc_65843.patch
-%if 0%{?suse_version} > 1320
-BuildRequires: autoconf
-BuildRequires: automake
-%endif
BuildRequires: gcc-c++
BuildRequires: hdf5-devel
BuildRequires: octave-devel
@@ -44,12 +38,6 @@
%prep
%setup -q -c %{name}-%{version}
-%if 0%{?suse_version} > 1320
-%patch1 -p1 -d %{octpkg}-%{version}
-pushd %{octpkg}-%{version}/src
-autoreconf -fi
-popd
-%endif
%octave_pkg_src
%build
++++++ image-2.4.0.tar.gz -> image-2.4.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/image-2.4.0/DESCRIPTION new/image-2.4.1/DESCRIPTION
--- old/image-2.4.0/DESCRIPTION 2015-04-06 18:42:52.000000000 +0200
+++ new/image-2.4.1/DESCRIPTION 2015-08-07 14:34:57.000000000 +0200
@@ -1,6 +1,6 @@
Name: image
-Version: 2.4.0
-Date: 2015-04-06
+Version: 2.4.1
+Date: 2015-08-07
Author: various authors
Maintainer: Carnë Draug
Title: Image Processing
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/image-2.4.0/NEWS new/image-2.4.1/NEWS
--- old/image-2.4.0/NEWS 2015-04-06 18:42:52.000000000 +0200
+++ new/image-2.4.1/NEWS 2015-08-07 14:34:57.000000000 +0200
@@ -1,3 +1,19 @@
+ Summary of important user-visible changes for image 2.4.1 (2015/08/07):
+-------------------------------------------------------------------------
+
+ ** Image 2.4.1 is a bug fixing release.
+
+ ** Fixed regression on bwhitmiss which was completely broken since
+ version 2.2.0.
+
+ ** Fixed regressions on rangefilt and stdfilt which made them always
+ throw an error.
+
+ ** Removed broken support for signed integers to entropyfilt(). Not
+ only it was returning incorrect values and ocasional endless loops,
+ it failed to build in some architectures.
+
+
Summary of important user-visible changes for image 2.4.0 (2015/04/06):
-------------------------------------------------------------------------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/image-2.4.0/inst/@strel/getsequence.m new/image-2.4.1/inst/@strel/getsequence.m
--- old/image-2.4.0/inst/@strel/getsequence.m 2015-04-06 18:42:52.000000000 +0200
+++ new/image-2.4.1/inst/@strel/getsequence.m 2015-08-07 14:34:57.000000000 +0200
@@ -21,6 +21,15 @@
## Returns a strel object @var{se} that can be indexed with @code{()} to obtain
## the decomposed structuring elements that can be used to "rebuild" @var{se}.
##
+## Decomposing a structuring element may lead to faster operations by
+## replacing a single operation with a large @var{se} (large nhood), with
+## multiple operations with smaller @var{se}.
+##
+## Most functions will automatically perform SE decomposition provided a
+## strel object is used (instead of a logical array). This also requires
+## that specific shapes are specified instead of @qcode{"arbitrary"}, since
+## it may prevent SE decomposition.
+##
## @seealso{imdilate, imerode, strel}
## @end deftypefn
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/image-2.4.0/inst/@strel/strel.m new/image-2.4.1/inst/@strel/strel.m
--- old/image-2.4.0/inst/@strel/strel.m 2015-04-06 18:42:52.000000000 +0200
+++ new/image-2.4.1/inst/@strel/strel.m 2015-08-07 14:34:57.000000000 +0200
@@ -31,20 +31,9 @@
## See individual functions that use the strel object for an interpretation of
## non-flat SEs.
##
-## Note that if an arbitrary shape is used, it will not be possible to perform
-## structuring element decomposition which may have a performance hit in some
-## cases. See for example the difference for a square shape:
-## @example
-## @group
-## im = randp (5, 2000) > 15;
-## se = strel ("square", 20);
-## t = cputime (); imdilate (im, se); cputime () - t
-## @result{} 0.77605
-## se = strel (ones (20));
-## t = cputime (); imdilate (im, se); cputime () - t
-## @result{} 2.9082
-## @end group
-## @end example
+## Note that if an arbitrary shape is used, it may not be possible to guess
+## it which may prevent shape-based optimizations (structuring element
+## decomposition, see @@strel/getsequence for details).
##
## @end deftypefn
## @deftypefn {Function File} {} strel ("ball", @var{radius}, @var{height})
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/image-2.4.0/inst/bwhitmiss.m new/image-2.4.1/inst/bwhitmiss.m
--- old/image-2.4.0/inst/bwhitmiss.m 2015-04-06 18:42:52.000000000 +0200
+++ new/image-2.4.1/inst/bwhitmiss.m 2015-08-07 14:34:57.000000000 +0200
@@ -21,7 +21,7 @@
## If two structuring elements @var{se1} and @var{se1} are given, the hit-miss
## operation is defined as
## @example
-## bw2 = erode(bw1, se1) & erode(!bw1, se2);
+## bw2 = imerode (bw1, se1) & imerode (! bw1, se2);
## @end example
## If instead an 'interval' array is given, two structuring elements are computed
## as
@@ -60,8 +60,14 @@
error("bwhitmiss: structuring elements can only contain zeros and ones.");
endif
endif
-
+
## Perform filtering
- bw = erode(im, se1) & erode(!im, se2);
+ bw = imerode (im, se1) & imerode (! im, se2);
endfunction
+
+%!test
+%! bw1 = repmat ([0 1 0 1 1], [3 1]);
+%! bw2 = repmat ([0 1 0 0 0], [3 1]);
+%! assert (bwhitmiss (bw1, [1; 0; 1], [1 0 1]), logical (bw2))
+%! assert (bwhitmiss (bw1, [0 1 0; -1 0 -1; 0 1 0]), logical (bw2))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/image-2.4.0/inst/cp2tform.m new/image-2.4.1/inst/cp2tform.m
--- old/image-2.4.0/inst/cp2tform.m 2015-04-06 18:42:52.000000000 +0200
+++ new/image-2.4.1/inst/cp2tform.m 2015-08-07 14:34:57.000000000 +0200
@@ -21,7 +21,7 @@
## for the form of the structure) that can be further used to
## transform coordinates from one space (here denoted "RW" for "real
## world") to another (here denoted "AP" for "apparent"). The transform
-## is infered from two n-by-2 arrays, @var{rw_pt} and @var{ap_pt}, which
+## is inferred from two n-by-2 arrays, @var{rw_pt} and @var{ap_pt}, which
## contain the coordinates of n control points in the two 2D spaces.
## Transform coefficients are stored
## in @var{T}.tdata. Interpretation of transform coefficients depends on the
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/image-2.4.0/inst/entropyfilt.m new/image-2.4.1/inst/entropyfilt.m
--- old/image-2.4.0/inst/entropyfilt.m 2015-04-06 18:42:52.000000000 +0200
+++ new/image-2.4.1/inst/entropyfilt.m 2015-08-07 14:34:57.000000000 +0200
@@ -49,7 +49,7 @@
if (nargin == 0)
error ("entropyfilt: not enough input arguments");
endif
-
+
if (! isnumeric (I))
error ("entropyfilt: I must be numeric");
endif
@@ -65,7 +65,7 @@
else
nbins = 256;
endif
-
+
## Convert to 8 or 16 bit integers if needed
switch (class (I))
case {"double", "single", "int16", "int32", "int64", "uint16", "uint32", "uint64"}
@@ -82,7 +82,7 @@
otherwise
error ("entropyfilt: cannot handle images of class '%s'", class (I));
endswitch
- size (I)
+
## Pad image
pad = floor (size (domain)/2);
I = padarray (I, pad, padding, varargin {:});
@@ -92,7 +92,6 @@
idx {k} = (even (k)+1):size (I, k);
endfor
I = I (idx {:});
- size (I)
## Perform filtering
retval = __spatial_filtering__ (I, domain, "entropy", I, nbins);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/image-2.4.0/inst/fftconv2.m new/image-2.4.1/inst/fftconv2.m
--- old/image-2.4.0/inst/fftconv2.m 2015-04-06 18:42:52.000000000 +0200
+++ new/image-2.4.1/inst/fftconv2.m 2015-08-07 14:34:57.000000000 +0200
@@ -105,10 +105,10 @@
%!test
%! a = repmat (1:10, 5);
%! b = repmat (10:-1:3, 7);
-%! assert (fftconv2 (a, b), conv2 (a, b), 1e4*eps)
-%! assert (fftconv2 (b, a), conv2 (b, a), 1e4*eps)
-%! assert (fftconv2 (a, b, "full"), conv2 (a, b, "full"), 1e4*eps)
-%! assert (fftconv2 (b, a, "full"), conv2 (b, a, "full"), 1e4*eps)
+%! assert (fftconv2 (a, b), conv2 (a, b), 1.3e4*eps)
+%! assert (fftconv2 (b, a), conv2 (b, a), 1.3e4*eps)
+%! assert (fftconv2 (a, b, "full"), conv2 (a, b, "full"), 1.3e4*eps)
+%! assert (fftconv2 (b, a, "full"), conv2 (b, a, "full"), 1.3e4*eps)
%! assert (fftconv2 (a, b, "same"), conv2 (a, b, "same"), 1e4*eps)
%! assert (fftconv2 (b, a, "same"), conv2 (b, a, "same"), 1e4*eps)
%! assert (isempty (fftconv2 (a, b, "valid")));
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/image-2.4.0/inst/maketform.m new/image-2.4.1/inst/maketform.m
--- old/image-2.4.0/inst/maketform.m 2015-04-06 18:42:52.000000000 +0200
+++ new/image-2.4.1/inst/maketform.m 2015-08-07 14:34:57.000000000 +0200
@@ -41,8 +41,8 @@
## [x y] = [xx./zz yy./zz];
## @end example
##
-## Alternatively the transform can be specified using a quadilateral
-## coordinates (typically the 4 corners of the
+## Alternatively the transform can be specified using the coordinates
+## of a quadilateral (typically the 4 corners of the
## image) in the input space (@var{inc}, 4-by-ndims_in matrix) and in
## the output space (@var{outc}, 4-by-ndims_out matrix). This is
## equivalent to building the transform using
@@ -56,8 +56,8 @@
## (N+1)-by-(N) transformation matrix. If present, the (N+1)th column must
## contain [zeros(N,1); 1] so that projection is suppressed.
##
-## Alternatively the transform can be specified a using a triangle
-## coordinates (typically the 3 corners of the
+## Alternatively the transform can be specified using the coordinates
+## of a triangle (typically the 3 corners of the
## image) in the input space (@var{inc}, 3-by-ndims_in matrix) and in
## the output space (@var{outc}, 3-by-ndims_out matrix). This is
## equivalent to building the transform using "T = cp2tform (@var{inc}, @var{outc},
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/image-2.4.0/inst/rangefilt.m new/image-2.4.1/inst/rangefilt.m
--- old/image-2.4.0/inst/rangefilt.m 2015-04-06 18:42:52.000000000 +0200
+++ new/image-2.4.1/inst/rangefilt.m 2015-08-07 14:34:57.000000000 +0200
@@ -45,11 +45,11 @@
error ("rangefilt: not enough input arguments");
endif
- if (! isnumeric (I) || ! islogical (I))
+ if (! isnumeric (I) && ! islogical (I))
error ("rangefilt: I must be a numeric or logical array");
endif
- if (! isnumeric (domain) || ! islogical (domain))
+ if (! isnumeric (domain) && ! islogical (domain))
error ("rangefilt: DOMAIN must be a logical array");
endif
domain = logical (domain);
@@ -68,3 +68,8 @@
retval = __spatial_filtering__ (I, domain, "range", I, 0);
endfunction
+
+%!test
+%! im = rangefilt (ones (5));
+%! assert (im, zeros (5));
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/image-2.4.0/inst/stdfilt.m new/image-2.4.1/inst/stdfilt.m
--- old/image-2.4.0/inst/stdfilt.m 2015-04-06 18:42:52.000000000 +0200
+++ new/image-2.4.1/inst/stdfilt.m 2015-08-07 14:34:57.000000000 +0200
@@ -52,7 +52,7 @@
error ("stdfilt: first input must be a matrix");
endif
- if (! isnumeric (domain) || ! islogical (domain))
+ if (! isnumeric (domain) && ! islogical (domain))
error ("stdfilt: second input argument must be a logical matrix");
endif
domain = logical (domain);
@@ -71,3 +71,7 @@
retval = __spatial_filtering__ (I, domain, "std", I, 0);
endfunction
+
+%!test
+%! im = stdfilt (ones (5));
+%! assert (im, zeros (5));
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/image-2.4.0/inst/tformfwd.m new/image-2.4.1/inst/tformfwd.m
--- old/image-2.4.0/inst/tformfwd.m 2015-04-06 18:42:52.000000000 +0200
+++ new/image-2.4.1/inst/tformfwd.m 2015-08-07 14:34:57.000000000 +0200
@@ -18,10 +18,10 @@
## @deftypefn {Function File} {[@var{UV}] =} tformfwd (@var{T}, @var{XY})
## @deftypefnx {Function File} {[@var{U}, @var{V}] =} tformfwd (@var{T}, @var{X}, @var{Y})
##
-## Given to dimensionnal coordinates from one space, returns two
-## dimensionnal coordinates in the other space, as defined in
+## Given two dimensional coordinates from one space, returns two
+## dimensional coordinates in the other space, as defined in
## the transform structure @var{T}. Input and output coordinates
-## may be gigen either as a n-by-2 arrays, or as two n-by-1 vectors.
+## may be given either as a n-by-2 arrays, or as two n-by-1 vectors.
## @seealso{maketform, cp2tform, tforminv}
## @end deftypefn
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/image-2.4.0/inst/tiff_tag_read.m new/image-2.4.1/inst/tiff_tag_read.m
--- old/image-2.4.0/inst/tiff_tag_read.m 2015-04-06 18:42:52.000000000 +0200
+++ new/image-2.4.1/inst/tiff_tag_read.m 2015-08-07 14:34:57.000000000 +0200
@@ -72,7 +72,7 @@
## @end group
## @end example
##
-## @seealso{imread, imfinfo, readexif}
+## @seealso{imread, imfinfo}
## @end deftypefn
## Based on the documentation at
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/image-2.4.0/src/__spatial_filtering__.cc new/image-2.4.1/src/__spatial_filtering__.cc
--- old/image-2.4.0/src/__spatial_filtering__.cc 2015-04-06 18:42:52.000000000 +0200
+++ new/image-2.4.1/src/__spatial_filtering__.cc 2015-08-07 14:34:57.000000000 +0200
@@ -596,8 +596,6 @@
GENERAL_ACTION(MT, FUN, ET, NDArray, double, entropy_filt)
if (args (0).is_bool_matrix ())
ACTION (boolNDArray, bool_array_value, bool)
- else if (args (0).is_int8_type ())
- ACTION (int8NDArray, int8_array_value, octave_int8)
else if (args (0).is_uint8_type ())
ACTION (uint8NDArray, uint8_array_value, octave_uint8)
else
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/image-2.4.0/src/configure new/image-2.4.1/src/configure
--- old/image-2.4.0/src/configure 2015-04-06 18:42:52.000000000 +0200
+++ new/image-2.4.1/src/configure 2015-08-07 14:34:59.000000000 +0200
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for Octave-Forge image package 2.4.0.
+# Generated by GNU Autoconf 2.69 for Octave-Forge image package 2.4.1.
#
#
# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
@@ -576,8 +576,8 @@
# Identity of this package.
PACKAGE_NAME='Octave-Forge image package'
PACKAGE_TARNAME='octave-forge-image-package'
-PACKAGE_VERSION='2.4.0'
-PACKAGE_STRING='Octave-Forge image package 2.4.0'
+PACKAGE_VERSION='2.4.1'
+PACKAGE_STRING='Octave-Forge image package 2.4.1'
PACKAGE_BUGREPORT=''
PACKAGE_URL=''
@@ -1182,7 +1182,7 @@
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures Octave-Forge image package 2.4.0 to adapt to many kinds of systems.
+\`configure' configures Octave-Forge image package 2.4.1 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1244,7 +1244,7 @@
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of Octave-Forge image package 2.4.0:";;
+ short | recursive ) echo "Configuration of Octave-Forge image package 2.4.1:";;
esac
cat <<\_ACEOF
@@ -1323,7 +1323,7 @@
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-Octave-Forge image package configure 2.4.0
+Octave-Forge image package configure 2.4.1
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
@@ -1378,7 +1378,7 @@
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by Octave-Forge image package $as_me 2.4.0, which was
+It was created by Octave-Forge image package $as_me 2.4.1, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
@@ -2437,6 +2437,50 @@
fi
+## Test for gcc bug #65843 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65843
+## which shows up as Octave bug #45096 https://savannah.gnu.org/bugs/?45096
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether templated lambda functions accept '&const int'" >&5
+$as_echo_n "checking whether templated lambda functions accept '&const int'... " >&6; }
+if ${_cv_template_lambda_accepts_ref_const_inst+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+ template<class T>
+ void test (T b)
+ {
+ const int a = b;
+ [&] () { return a, a; }();
+ }
+
+int
+main ()
+{
+ test (1);
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_compile "$LINENO"; then :
+ _cv_template_lambda_accepts_ref_const_inst=yes
+else
+ _cv_template_lambda_accepts_ref_const_inst=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $_cv_template_lambda_accepts_ref_const_inst" >&5
+$as_echo "$_cv_template_lambda_accepts_ref_const_inst" >&6; }
+if test $_cv_template_lambda_accepts_ref_const_inst = no; then
+ as_fn_error $? "
+ Your C++ compiler (are you using GCC 5.0 or 5.1?) has a bug that
+ prevents it from building the Octave Forge image package. But you
+ can fix it very easily. See https://savannah.gnu.org/bugs/?45096
+ for details on working around it.
+ " "$LINENO" 5
+fi
+
ac_config_files="$ac_config_files Makefile"
@@ -2982,7 +3026,7 @@
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by Octave-Forge image package $as_me 2.4.0, which was
+This file was extended by Octave-Forge image package $as_me 2.4.1, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -3035,7 +3079,7 @@
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
-Octave-Forge image package config.status 2.4.0
+Octave-Forge image package config.status 2.4.1
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/image-2.4.0/src/configure.ac new/image-2.4.1/src/configure.ac
--- old/image-2.4.0/src/configure.ac 2015-04-06 18:42:52.000000000 +0200
+++ new/image-2.4.1/src/configure.ac 2015-08-07 14:34:57.000000000 +0200
@@ -1,11 +1,36 @@
AC_PREREQ([2.67])
-AC_INIT([Octave-Forge image package], [2.4.0])
+AC_INIT([Octave-Forge image package], [2.4.1])
AC_PROG_CXX
AC_LANG(C++)
AX_CXX_COMPILE_STDCXX_11()
+## Test for gcc bug #65843 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65843
+## which shows up as Octave bug #45096 https://savannah.gnu.org/bugs/?45096
+AC_CACHE_CHECK([whether templated lambda functions accept '&const int'],
+ [_cv_template_lambda_accepts_ref_const_inst],
+ [AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM([[
+ template<class T>
+ void test (T b)
+ {
+ const int a = b;
+ [&] () { return a, a; }();
+ }
+ ]], [[ test (1); ]])],
+ [_cv_template_lambda_accepts_ref_const_inst=yes],
+ [_cv_template_lambda_accepts_ref_const_inst=no])
+])
+if test $_cv_template_lambda_accepts_ref_const_inst = no; then
+ AC_MSG_ERROR([
+ Your C++ compiler (are you using GCC 5.0 or 5.1?) has a bug that
+ prevents it from building the Octave Forge image package. But you
+ can fix it very easily. See https://savannah.gnu.org/bugs/?45096
+ for details on working around it.
+ ])
+fi
+
AC_CONFIG_FILES([Makefile])
AC_OUTPUT