[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#860816: marked as done (unblock: pymoc/0.4.2-1)



Your message dated Thu, 20 Apr 2017 17:42:00 +0000
with message-id <cca63c35-7c15-5cd2-4620-83183d360e46@thykier.net>
and subject line Re: Bug#860816: unblock: pymoc/0.4.2-1
has caused the Debian Bug report #860816,
regarding unblock: pymoc/0.4.2-1
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact owner@bugs.debian.org
immediately.)


-- 
860816: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=860816
Debian Bug Tracking System
Contact owner@bugs.debian.org with problems
--- Begin Message ---
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Package: release.debian.org
Severity: normal
User: release.debian.org@packages.debian.org
Usertags: unblock

Please unblock pymoc/0.4.2-1 for stretch.

This fixes a FTBFS on stretch/i386 reported by
Lucas Nussbaum during the full-rebuild.  This was triggered by a
failing testcase on 32-bit systems:

  https://bugs.debian.org/860629
  https://github.com/grahambell/pymoc/issues/3

The fix has come from upstream and arrived within 24 hours; the patch
contains 2-lines of real code changes (in lib/pymoc/io/fits.py).  The
remainder of the diff are two new test case and accompanying
changelog/documentation tweaks.

This would appear to meet criteria 1; (a FTBFS marked as 'serious',
with a targetted fix with optional documentation changes) uploaded via
unstable:

  https://release.debian.org/stretch/freeze_policy.html

Full debdiff attached.

	-Paul

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)

iD8DBQFY+Motc444tukM+iQRAmRwAKCD2SkybjBrURrCI0pce0t+UskA1ACePnbp
/UU7IwJdFfiUuPPeJKwYlTw=
=J+Lg
-----END PGP SIGNATURE-----

diff -Nru pymoc-0.4.1/CHANGES.txt pymoc-0.4.2/CHANGES.txt
--- pymoc-0.4.1/CHANGES.txt	2016-09-26 13:05:27.000000000 +0200
+++ pymoc-0.4.2/CHANGES.txt	2017-04-20 05:15:32.000000000 +0200
@@ -1,3 +1,8 @@
+0.4.2 2017-04-19
+
+    - Corrected bug reading MOCs in FITS format on 32-bit systems with
+      64-bit NUNIQ columns.
+
 0.4.1 2016-08-08
 
     - Corrected bug in intersection routine.
diff -Nru pymoc-0.4.1/debian/changelog pymoc-0.4.2/debian/changelog
--- pymoc-0.4.1/debian/changelog	2016-09-26 13:12:24.000000000 +0200
+++ pymoc-0.4.2/debian/changelog	2017-04-20 15:21:00.000000000 +0200
@@ -1,3 +1,10 @@
+pymoc (0.4.2-1) unstable; urgency=low
+
+  * Import upstream bugfix release (0.4.2)
+  + Fix large FITS import on 32-bit architectures (Closes: #860629)
+
+ -- Paul Sladen <debian@paul.sladen.org>  Thu, 20 Apr 2017 15:21:00 +0200
+
 pymoc (0.4.1-1) unstable; urgency=low
 
   * Initial release (Closes: #839744)
diff -Nru pymoc-0.4.1/debian/copyright pymoc-0.4.2/debian/copyright
--- pymoc-0.4.1/debian/copyright	2016-09-26 13:12:24.000000000 +0200
+++ pymoc-0.4.2/debian/copyright	2017-04-20 15:21:00.000000000 +0200
@@ -5,7 +5,7 @@
 
 Files: *
 Copyright: 2014-2016, Graham Bell
- 2015-2016, East Asian Observatory
+ 2015-2017, East Asian Observatory
  2013-2014, Science and Technology Facilities Council
 License: GPL-3+
 
diff -Nru pymoc-0.4.1/doc/.gitignore pymoc-0.4.2/doc/.gitignore
--- pymoc-0.4.1/doc/.gitignore	1970-01-01 01:00:00.000000000 +0100
+++ pymoc-0.4.2/doc/.gitignore	2017-04-20 05:15:32.000000000 +0200
@@ -0,0 +1 @@
+/_build
diff -Nru pymoc-0.4.1/.gitignore pymoc-0.4.2/.gitignore
--- pymoc-0.4.1/.gitignore	1970-01-01 01:00:00.000000000 +0100
+++ pymoc-0.4.2/.gitignore	2017-04-20 05:15:32.000000000 +0200
@@ -0,0 +1,5 @@
+*~
+*.pyc
+/MANIFEST
+/build
+/dist
diff -Nru pymoc-0.4.1/lib/pymoc/io/fits.py pymoc-0.4.2/lib/pymoc/io/fits.py
--- pymoc-0.4.1/lib/pymoc/io/fits.py	2016-09-26 13:05:27.000000000 +0200
+++ pymoc-0.4.2/lib/pymoc/io/fits.py	2017-04-20 05:15:32.000000000 +0200
@@ -1,4 +1,5 @@
 # Copyright (C) 2013-2014 Science and Technology Facilities Council.
+# Copyright (C) 2017 East Asian Observatory.
 #
 # This program is free software: you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -143,8 +144,12 @@
     current_order = None
     current_cells = []
 
+    # Determine type to use for orders: 32 bit if column type is J,
+    # otherwise assume we need 64 bit.
+    moc_type = np.int32 if (hdu.data.formats[0] == 'J') else np.int64
+
     nuniqs = hdu.data.field(0)
-    orders = (np.log2(nuniqs / 4) / 2).astype(int)
+    orders = (np.log2(nuniqs / 4) / 2).astype(moc_type)
     cells = nuniqs - 4 * (4 ** orders)
 
     for (order, cell) in izip(orders, cells):
diff -Nru pymoc-0.4.1/lib/pymoc/version.py pymoc-0.4.2/lib/pymoc/version.py
--- pymoc-0.4.1/lib/pymoc/version.py	2016-09-26 13:05:27.000000000 +0200
+++ pymoc-0.4.2/lib/pymoc/version.py	2017-04-20 05:15:32.000000000 +0200
@@ -13,4 +13,4 @@
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
-version = '0.4.1'
+version = '0.4.2'
diff -Nru pymoc-0.4.1/test/test_ascii.py pymoc-0.4.2/test/test_ascii.py
--- pymoc-0.4.1/test/test_ascii.py	2016-09-26 13:05:27.000000000 +0200
+++ pymoc-0.4.2/test/test_ascii.py	2017-04-20 05:15:32.000000000 +0200
@@ -40,3 +40,28 @@
         write_moc_ascii(moc, file=out)
 
         self.assertEqual(out.getvalue(), test_ascii_sorted)
+
+    def test_ascii_large(self):
+        orig = MOC()
+        orig.add(29, [
+            3458700000000000000, 3458700000000000007,
+            3458700000000000008, 3458700000000000009,
+        ])
+
+        out = StringIO()
+        write_moc_ascii(orig, file=out)
+        text = out.getvalue()
+
+        self.assertEqual(
+            text, '29/3458700000000000000,'
+            '3458700000000000007-3458700000000000009')
+
+        copy = MOC()
+        in_ = StringIO(text)
+        read_moc_ascii(copy, file=in_)
+
+        self.assertEqual(copy.order, 29)
+        self.assertEqual(copy.cells, 4)
+        self.assertEqual(copy[29], frozenset([
+            3458700000000000000, 3458700000000000007,
+            3458700000000000008, 3458700000000000009]))
diff -Nru pymoc-0.4.1/test/test_json.py pymoc-0.4.2/test/test_json.py
--- pymoc-0.4.1/test/test_json.py	2016-09-26 13:05:27.000000000 +0200
+++ pymoc-0.4.2/test/test_json.py	2017-04-20 05:15:32.000000000 +0200
@@ -39,3 +39,28 @@
         write_moc_json(moc, file=out)
 
         self.assertEqual(out.getvalue(), test_json)
+
+    def test_json_large(self):
+        orig = MOC()
+        orig.add(29, [
+            3458700000000000000, 3458700000000000007,
+            3458700000000000008, 3458700000000000009,
+        ])
+
+        out = BytesIO()
+        write_moc_json(orig, file=out)
+        json = out.getvalue()
+
+        self.assertEqual(
+            json, b'{"29":[3458700000000000000,3458700000000000007,'
+            b'3458700000000000008,3458700000000000009]}')
+
+        copy = MOC()
+        in_ = BytesIO(json)
+        read_moc_json(copy, file=in_)
+
+        self.assertEqual(copy.order, 29)
+        self.assertEqual(copy.cells, 4)
+        self.assertEqual(copy[29], frozenset([
+            3458700000000000000, 3458700000000000007,
+            3458700000000000008, 3458700000000000009]))

--- End Message ---
--- Begin Message ---
Paul Sladen:
> Package: release.debian.org
> Severity: normal
> User: release.debian.org@packages.debian.org
> Usertags: unblock
> 
> Please unblock pymoc/0.4.2-1 for stretch.
> 
> [...]
> 
> This would appear to meet criteria 1; (a FTBFS marked as 'serious',
> with a targetted fix with optional documentation changes) uploaded via
> unstable:
> 
>   https://release.debian.org/stretch/freeze_policy.html
> 

Indeed - Thanks for checking.  I have unblocked pymoc/0.4.2-1. :)

> Full debdiff attached.
> 
> 	-Paul
> 
> 

Thanks,
~Niels

--- End Message ---

Reply to: