[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