[Pkg-octave-commit] rev 895 - in octave/trunk/debian: . in patches
Thomas Weber
thomas-guest at alioth.debian.org
Wed Apr 4 14:56:31 UTC 2007
Author: thomas-guest
Date: 2007-04-04 14:56:28 +0000 (Wed, 04 Apr 2007)
New Revision: 895
Added:
octave/trunk/debian/patches/50_dont_resize_empty_dimensions.dpatch
Removed:
octave/trunk/debian/patches/50_invalid_indexes.dpatch
Modified:
octave/trunk/debian/changelog
octave/trunk/debian/in/PACKAGE-headers.postinst
octave/trunk/debian/in/PACKAGE-headers.prerm
octave/trunk/debian/in/octave2.9-00list
octave/trunk/debian/rules
Log:
Drop unneeded patch 50_invalid_indexes
Introduce patch for #417671
Bug fix for #400246
Generate debian/control as part of maintainer-scripts target
Modified: octave/trunk/debian/changelog
===================================================================
--- octave/trunk/debian/changelog 2007-04-04 13:09:30 UTC (rev 894)
+++ octave/trunk/debian/changelog 2007-04-04 14:56:28 UTC (rev 895)
@@ -7,6 +7,19 @@
Dirk as the package maintainer. In particular, mention that
Octave is released under version 2 or later of the GPL.
+ [ Thomas Weber ]
+ * PACKAGE-headers.postinst, PACKAGE-headers.prerm:
+ Let the /usr/include/octave symlink point to the octave/ subdirectory of
+ /usr/include/octave-X.Y.Z (Closes: #400246). This was clarified with
+ upstream, see
+ http://www.cae.wisc.edu/pipermail/octave-maintainers/2006-December/001384.html
+ * debian/rules: Generate debian/control as part of the maintainer-scripts
+ target.
+ * removed patches (applied upstream): 50_invalid_indexes
+ * new patches:
+ 50_dont_resize_empty_dimensions: fix assignments to empty matrices and add
+ testcases for this (Closes: #417671). Thanks John Eaton and Kim Hansen.
+
--
octave2.9 (2.9.10-3) unstable; urgency=low
Modified: octave/trunk/debian/in/PACKAGE-headers.postinst
===================================================================
--- octave/trunk/debian/in/PACKAGE-headers.postinst 2007-04-04 13:09:30 UTC (rev 894)
+++ octave/trunk/debian/in/PACKAGE-headers.postinst 2007-04-04 14:56:28 UTC (rev 895)
@@ -24,7 +24,7 @@
update-alternatives \
--install /usr/include/octave octave-include \
- /usr/include/octave-$VERSION $PRIORITY
+ /usr/include/octave-$VERSION/octave $PRIORITY
update-alternatives \
--install /usr/share/octave/debian/defs.make \
Modified: octave/trunk/debian/in/PACKAGE-headers.prerm
===================================================================
--- octave/trunk/debian/in/PACKAGE-headers.prerm 2007-04-04 13:09:30 UTC (rev 894)
+++ octave/trunk/debian/in/PACKAGE-headers.prerm 2007-04-04 14:56:28 UTC (rev 895)
@@ -17,7 +17,7 @@
update-alternatives --remove $f /usr/bin/$f-$VERSION
done
update-alternatives --remove octave-include \
- /usr/include/octave-$VERSION
+ /usr/include/octave-$VERSION/octave
update-alternatives --remove octave-defs.make \
/usr/share/octave/debian/defs.make-$VERSION
Modified: octave/trunk/debian/in/octave2.9-00list
===================================================================
--- octave/trunk/debian/in/octave2.9-00list 2007-04-04 13:09:30 UTC (rev 894)
+++ octave/trunk/debian/in/octave2.9-00list 2007-04-04 14:56:28 UTC (rev 895)
@@ -1,6 +1,6 @@
50_octave-bug-tempfile
-50_invalid_indexes
50_glpk-pre-ifdef-logic
50_syscalls-test-sleep
50_doc-builtin-vars
50_examples-use-gnuclient
+50_dont_resize_empty_dimensions.dpatch
Added: octave/trunk/debian/patches/50_dont_resize_empty_dimensions.dpatch
===================================================================
--- octave/trunk/debian/patches/50_dont_resize_empty_dimensions.dpatch 2007-04-04 13:09:30 UTC (rev 894)
+++ octave/trunk/debian/patches/50_dont_resize_empty_dimensions.dpatch 2007-04-04 14:56:28 UTC (rev 895)
@@ -0,0 +1,188 @@
+#! /bin/sh /usr/share/dpatch/dpatch-run
+## 50_dont_resize_empty_dimensions.dpatch by Thomas Weber <thomas.weber.mail at gmail.com>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: Bugfix for #417671
+## DP: http://www.nabble.com/Reshape-matrix-bug-tf3515922.html
+
+ at DPATCH@
+diff -urNad octave2.9-2.9.10~/liboctave/Array.cc octave2.9-2.9.10/liboctave/Array.cc
+--- octave2.9-2.9.10~/liboctave/Array.cc 2007-03-07 19:20:46.000000000 +0100
++++ octave2.9-2.9.10/liboctave/Array.cc 2007-04-04 15:06:48.000000000 +0200
+@@ -3094,7 +3094,9 @@
+ // index is a colon the new dimension is singleton.
+
+ if (i < lhs_dims_len
+- && (idx(i).is_colon () || idx(i).max () < lhs_dims(i)))
++ && (idx(i).is_colon ()
++ || idx(i).orig_empty ()
++ || idx(i).max () < lhs_dims(i)))
+ new_dims(i) = lhs_dims(i);
+ else if (! idx(i).is_colon ())
+ new_dims(i) = idx(i).max () + 1;
+diff -urNad octave2.9-2.9.10~/test/test_slice.m octave2.9-2.9.10/test/test_slice.m
+--- octave2.9-2.9.10~/test/test_slice.m 1970-01-01 01:00:00.000000000 +0100
++++ octave2.9-2.9.10/test/test_slice.m 2007-04-04 15:06:54.000000000 +0200
+@@ -0,0 +1,162 @@
++%!function x = set_slice(size, dim, slice)
++%! x = ones(size);
++%! switch dim
++%! case 11
++%! x(slice) = 2;
++%! case 21
++%! x(slice, :) = 2;
++%! case 22
++%! x(:, slice) = 2;
++%! case 31
++%! x(slice, :, :) = 2;
++%! case 32
++%! x(:, slice, :) = 2;
++%! case 33
++%! x(:, :, slice) = 2;
++%! otherwise
++%! error("invalid dim, '%d'", dim);
++%! endswitch
++%! endfunction
++
++## size = [2 0]
++%!assert(set_slice([2 0], 11, []), zeros([2 0]));
++%!error <A\(I\) = X: unable to resize A> set_slice([2 0], 11, 1)
++%!error <A\(I\) = X: unable to resize A> set_slice([2 0], 11, 2)
++%!error <A\(I\) = X: unable to resize A> set_slice([2 0], 11, 3)
++%!assert(set_slice([2 0], 21, []), zeros([2 0]));
++%!assert(set_slice([2 0], 21, 1), zeros([2 0]));
++%!assert(set_slice([2 0], 21, 2), zeros([2 0]));
++%!assert(set_slice([2 0], 21, 3), zeros([3 0]));
++%!assert(set_slice([2 0], 22, []), zeros([2 0]));
++%!assert(set_slice([2 0], 22, 1), [2 2]');
++%!assert(set_slice([2 0], 22, 2), [0 0;2 2]');
++%!assert(set_slice([2 0], 22, 3), [0 0;0 0;2 2]');
++%!assert(set_slice([2 0], 31, []), zeros([2 0]));
++%!assert(set_slice([2 0], 31, 1), zeros([2 0]));
++%!assert(set_slice([2 0], 31, 2), zeros([2 0]));
++%!assert(set_slice([2 0], 31, 3), zeros([3 0]));
++%!assert(set_slice([2 0], 32, []), zeros([2 0]));
++%!assert(set_slice([2 0], 32, 1), [2 2]');
++%!assert(set_slice([2 0], 32, 2), [0 0;2 2]');
++%!assert(set_slice([2 0], 32, 3), [0 0;0 0;2 2]');
++%!assert(set_slice([2 0], 33, []), zeros([2 0]));
++%!assert(set_slice([2 0], 33, 1), zeros([2 0]));
++%!assert(set_slice([2 0], 33, 2), zeros([2 0 2]));
++%!assert(set_slice([2 0], 33, 3), zeros([2 0 3]));
++
++## size = [0 2]
++%!assert(set_slice([0 2], 11, []), zeros([0 2]));
++%!error <A\(I\) = X: unable to resize A> set_slice([0 2], 11, 1)
++%!error <A\(I\) = X: unable to resize A> set_slice([0 2], 11, 2)
++%!error <A\(I\) = X: unable to resize A> set_slice([0 2], 11, 3)
++%!assert(set_slice([0 2], 21, []), zeros([0 2]));
++%!assert(set_slice([0 2], 21, 1), [2 2]);
++%!assert(set_slice([0 2], 21, 2), [0 0;2 2]);
++%!assert(set_slice([0 2], 21, 3), [0 0;0 0;2 2]);
++%!assert(set_slice([0 2], 22, []), zeros([0 2]));
++%!assert(set_slice([0 2], 22, 1), zeros([0 2]));
++%!assert(set_slice([0 2], 22, 2), zeros([0 2]));
++%!assert(set_slice([0 2], 22, 3), zeros([0 3]));
++%!assert(set_slice([0 2], 31, []), zeros([0 2]));
++%!assert(set_slice([0 2], 31, 1), [2 2]);
++%!assert(set_slice([0 2], 31, 2), [0 0;2 2]);
++%!assert(set_slice([0 2], 31, 3), [0 0;0 0;2 2]);
++%!assert(set_slice([0 2], 32, []), zeros([0 2]));
++%!assert(set_slice([0 2], 32, 1), zeros([0 2]));
++%!assert(set_slice([0 2], 32, 2), zeros([0 2]));
++%!assert(set_slice([0 2], 32, 3), zeros([0 3]));
++%!assert(set_slice([0 2], 33, []), zeros([0 2]));
++%!assert(set_slice([0 2], 33, 1), zeros([0 2]));
++%!assert(set_slice([0 2], 33, 2), zeros([0 2 2]));
++%!assert(set_slice([0 2], 33, 3), zeros([0 2 3]));
++
++## size = [2 1]
++%!assert(set_slice([2 1], 11, []), ones([2 1]));
++%!assert(set_slice([2 1], 11, 1), [2 1]');
++%!assert(set_slice([2 1], 11, 2), [1 2]');
++%!assert(set_slice([2 1], 11, 3), [1 1 2]');
++%!assert(set_slice([2 1], 11, 4), [1 1 0 2]');
++%!assert(set_slice([2 1], 21, []), ones([2 1]));
++%!assert(set_slice([2 1], 21, 1), [2 1]');
++%!assert(set_slice([2 1], 21, 2), [1 2]');
++%!assert(set_slice([2 1], 21, 3), [1 1 2]');
++%!assert(set_slice([2 1], 21, 4), [1 1 0 2]');
++%!assert(set_slice([2 1], 22, []), ones([2 1]));
++%!assert(set_slice([2 1], 22, 1), [2 2]');
++%!assert(set_slice([2 1], 22, 2), [1 1;2 2]');
++%!assert(set_slice([2 1], 22, 3), [1 1;0 0;2 2]');
++%!assert(set_slice([2 1], 31, []), ones([2 1]));
++%!assert(set_slice([2 1], 31, 1), [2 1]');
++%!assert(set_slice([2 1], 31, 2), [1 2]');
++%!assert(set_slice([2 1], 31, 3), [1 1 2]');
++%!assert(set_slice([2 1], 31, 4), [1 1 0 2]');
++%!assert(set_slice([2 1], 32, []), ones([2 1]));
++%!assert(set_slice([2 1], 32, 1), [2 2]');
++%!assert(set_slice([2 1], 32, 2), [1 1;2 2]');
++%!assert(set_slice([2 1], 32, 3), [1 1;0 0;2 2]');
++%!assert(set_slice([2 1], 33, []), ones([2 1]));
++%!assert(set_slice([2 1], 33, 1), [2 2]');
++%!assert(set_slice([2 1], 33, 2), reshape([1 1 2 2],[2 1 2]));
++%!assert(set_slice([2 1], 33, 3), reshape([1 1 0 0 2 2],[2 1 3]));
++
++## size = [1 2]
++%!assert(set_slice([1 2], 11, []), ones([1 2]));
++%!assert(set_slice([1 2], 11, 1), [2 1]);
++%!assert(set_slice([1 2], 11, 2), [1 2]);
++%!assert(set_slice([1 2], 11, 3), [1 1 2]);
++%!assert(set_slice([1 2], 11, 4), [1 1 0 2]);
++%!assert(set_slice([1 2], 21, []), ones([1 2]));
++%!assert(set_slice([1 2], 21, 1), [2 2]);
++%!assert(set_slice([1 2], 21, 2), [1 1;2 2]);
++%!assert(set_slice([1 2], 21, 3), [1 1;0 0;2 2]);
++%!assert(set_slice([1 2], 22, []), ones([1 2]));
++%!assert(set_slice([1 2], 22, 1), [2 1]);
++%!assert(set_slice([1 2], 22, 2), [1 2]);
++%!assert(set_slice([1 2], 22, 3), [1 1 2]);
++%!assert(set_slice([1 2], 22, 4), [1 1 0 2]);
++%!assert(set_slice([1 2], 31, []), ones([1 2]));
++%!assert(set_slice([1 2], 31, 1), [2 2]);
++%!assert(set_slice([1 2], 31, 2), [1 1;2 2]);
++%!assert(set_slice([1 2], 31, 3), [1 1;0 0;2 2]);
++%!assert(set_slice([1 2], 32, []), ones([1 2]));
++%!assert(set_slice([1 2], 32, 1), [2 1]);
++%!assert(set_slice([1 2], 32, 2), [1 2]);
++%!assert(set_slice([1 2], 32, 3), [1 1 2]);
++%!assert(set_slice([1 2], 32, 4), [1 1 0 2]);
++%!assert(set_slice([1 2], 33, []), ones([1 2]));
++%!assert(set_slice([1 2], 33, 1), [2 2]);
++%!assert(set_slice([1 2], 33, 2), reshape([1 1 2 2],[1 2 2]));
++%!assert(set_slice([1 2], 33, 3), reshape([1 1 0 0 2 2],[1 2 3]));
++
++## size = [2 2]
++%!assert(set_slice([2 2], 11, []), ones([2 2]));
++%!assert(set_slice([2 2], 11, 1), [2 1;1 1]);
++%!assert(set_slice([2 2], 11, 2), [1 1;2 1]);
++%!assert(set_slice([2 2], 11, 3), [1 2;1 1]);
++%!assert(set_slice([2 2], 11, 4), [1 1;1 2]);
++%!error <invalid matrix index = 5> set_slice([2 2], 11, 5)
++%!error <invalid matrix index = 6> set_slice([2 2], 11, 6)
++%!assert(set_slice([2 2], 21, []), ones([2 2]));
++%!assert(set_slice([2 2], 21, 1), [2 2;1 1]);
++%!assert(set_slice([2 2], 21, 2), [1 1;2 2]);
++%!assert(set_slice([2 2], 21, 3), [1 1;1 1;2 2]);
++%!assert(set_slice([2 2], 21, 4), [1 1;1 1;0 0;2 2]);
++%!assert(set_slice([2 2], 22, []), ones([2 2]));
++%!assert(set_slice([2 2], 22, 1), [2 2;1 1]');
++%!assert(set_slice([2 2], 22, 2), [1 1;2 2]');
++%!assert(set_slice([2 2], 22, 3), [1 1;1 1;2 2]');
++%!assert(set_slice([2 2], 22, 4), [1 1;1 1;0 0;2 2]');
++%!assert(set_slice([2 2], 31, []), ones([2 2]));
++%!assert(set_slice([2 2], 31, 1), [2 2;1 1]);
++%!assert(set_slice([2 2], 31, 2), [1 1;2 2]);
++%!assert(set_slice([2 2], 31, 3), [1 1;1 1;2 2]);
++%!assert(set_slice([2 2], 31, 4), [1 1;1 1;0 0;2 2]);
++%!assert(set_slice([2 2], 32, []), ones([2 2]));
++%!assert(set_slice([2 2], 32, 1), [2 2;1 1]');
++%!assert(set_slice([2 2], 32, 2), [1 1;2 2]');
++%!assert(set_slice([2 2], 32, 3), [1 1;1 1;2 2]');
++%!assert(set_slice([2 2], 32, 4), [1 1;1 1;0 0;2 2]');
++%!assert(set_slice([2 2], 33, []), ones([2 2]));
++%!assert(set_slice([2 2], 33, 1), [2 2;2 2]);
++%!assert(set_slice([2 2], 33, 2), reshape([1 1 1 1 2 2 2 2],[2 2 2]));
++%!assert(set_slice([2 2], 33, 3), reshape([1 1 1 1 0 0 0 0 2 2 2 2],[2 2 3]));
Property changes on: octave/trunk/debian/patches/50_dont_resize_empty_dimensions.dpatch
___________________________________________________________________
Name: svn:executable
+ *
Deleted: octave/trunk/debian/patches/50_invalid_indexes.dpatch
Modified: octave/trunk/debian/rules
===================================================================
--- octave/trunk/debian/rules 2007-04-04 13:09:30 UTC (rev 894)
+++ octave/trunk/debian/rules 2007-04-04 14:56:28 UTC (rev 895)
@@ -84,7 +84,7 @@
maintainer-clean:
rm -f debian/control
-maintainer-scripts:
+maintainer-scripts: debian/control
for in in debian/in/PACKAGE* ; do \
out=`echo $$in | sed 's:/in/:/:;s/PACKAGE/$(PACKAGE)/'` ; \
sed 's/@VERSION@/$(version)/g;s/@PACKAGE@/$(PACKAGE)/g;s/@MAJOR@/$(major)/g;s/@PRIORITY@/$(priority)/g;' \
More information about the Pkg-octave-commit
mailing list