Your message dated Mon, 10 Apr 2023 16:09:54 +0000
with message-id <e1plu5a-00byon...@respighi.debian.org>
and subject line unblock ledger
has caused the Debian Bug report #1034146,
regarding unblock: ledger/3.3.0-3
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 ow...@bugs.debian.org
immediately.)


-- 
1034146: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1034146
Debian Bug Tracking System
Contact ow...@bugs.debian.org with problems
--- Begin Message ---
Package: release.debian.org
Severity: normal
User: release.debian....@packages.debian.org
Usertags: unblock
X-Debbugs-Cc: led...@packages.debian.org
Control: affects -1 + src:ledger

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

Please unblock package ledger


[ Reason ]

This version fixes two bugs with severity important: #1032292 and #1033552.

[ Impact ]

The first is a regression from the version in bullseye, while the
second is an old crash.

[ Tests ]

Ledger has an extensive build time test suite. I have also manually
sanity checked the new binary packages.

[ Risks ]

Ledger is a leaf package. The two patches are cherry-picked from
upstream, and the total diff is small (6 insertions , 4 deletions)

[ Checklist ]
  [x] all changes are documented in the d/changelog
  [x] I reviewed all changes and I approve them
  [x] attach debdiff against the package in testing

[ Other info ]

Trimmed diff of only upstream changes also attached.


unblock ledger/3.3.0-3


-----BEGIN PGP SIGNATURE-----

iQIzBAEBCAAdFiEEkiyHYXwaY0SiY6fqA0U5G1WqFSEFAmQz8r8ACgkQA0U5G1Wq
FSEE3Q//cNItCQC0KvUyWw0kY4v0aa05Y3K+F+F3u8IOBjnhGkBA5+gR4Rq110dE
4N0K7l7JLemR7eJBHtOh+LfGI6AmLGurD0hmAwVrjYC+ti5xcnDMN7tpfXLKaqIS
jmCATrWtKN9+IZKl6G4V0R7o+HtKfHb4qG8Gzk3qwvjCtTvEGJGiwA1ErwCjUidn
+uBlIzn3MRiAjxrNWUQqq8RkPtyvP95JSgvpAXtQuo0qI2YQ0/613wlS2Fq4S1+J
mlC1rr/gpLl2wpxpUGVB8ph6rsgcKs5TY8GQ5nCk8h8EfH8eAvNwrs6AKEdVna+z
TC31HQ5Jw4s7jyoQRu2L2K3lM0F97FO8P5DXA2nn+AjfQqNvBXyXZMFtLfdnWKIc
g2mws+mD0/zVUwUJtTAdeei46SJilGDJXZ9To7I0LxYcFRPvP8CGfJP0wTSNdvAU
ylEmIppHnJ/Byz5N/JgPg/oi/ehwgixmt6j9Z/2r0CwSTdBqXiEe9Qu9XjEuqT2I
O6okdg8t07zGyf2+wSyeh6cJ7x87od2OtRZi48N2yrD+t8/sPuo6TvdxZmp+LIgg
AqDvkCiQ2uCnEFg3B6shARL51Jp2UScPLnXdVH6sjSQ0QwwaHzopZ2G+nCVYG7mc
uRFlbIq9yWHGQY5oYLXDvUs+kuB98BPZOR17CYh6h3ZKvywGNmc=
=dJ3v
-----END PGP SIGNATURE-----
diff -Nru ledger-3.3.0/debian/changelog ledger-3.3.0/debian/changelog
--- ledger-3.3.0/debian/changelog       2023-02-17 09:58:07.000000000 -0400
+++ ledger-3.3.0/debian/changelog       2023-03-28 08:05:17.000000000 -0300
@@ -1,3 +1,18 @@
+ledger (3.3.0-3) unstable; urgency=medium
+
+  * Bug fix: "Valid transaction: Error: Divide by zero", thanks to Martin
+    Michlmayr (Closes: #1033552). Cherry-pick upstream commit 49cf332.
+
+ -- David Bremner <brem...@debian.org>  Tue, 28 Mar 2023 08:05:17 -0300
+
+ledger (3.3.0-2) unstable; urgency=medium
+
+  * Bug fix: "Ledger 3.3.0 regression: specifying format for commodity",
+    thanks to Martin Michlmayr (Closes: #1032292). Cherry-pick upstream
+    commit 87b6a1e.
+
+ -- David Bremner <brem...@debian.org>  Sat, 04 Mar 2023 15:32:33 -0800
+
 ledger (3.3.0-1) unstable; urgency=medium
 
   * Bug fix: "New upstream release: 3.3.0", thanks to Martin Michlmayr
diff -Nru 
ledger-3.3.0/debian/patches/0001-Do-not-perform-commodity-reduction-when-parsing-a-fo.patch
 
ledger-3.3.0/debian/patches/0001-Do-not-perform-commodity-reduction-when-parsing-a-fo.patch
--- 
ledger-3.3.0/debian/patches/0001-Do-not-perform-commodity-reduction-when-parsing-a-fo.patch
 1969-12-31 20:00:00.000000000 -0400
+++ 
ledger-3.3.0/debian/patches/0001-Do-not-perform-commodity-reduction-when-parsing-a-fo.patch
 2023-03-28 08:05:17.000000000 -0300
@@ -0,0 +1,28 @@
+From: John Wiegley <jo...@newartisans.com>
+Date: Thu, 2 Mar 2023 15:04:29 -0800
+Subject: Do not perform commodity reduction when parsing a format directive
+
+---
+ src/textual.cc | 8 +++++---
+ 1 file changed, 5 insertions(+), 3 deletions(-)
+
+diff --git a/src/textual.cc b/src/textual.cc
+index 62007ab..5276c92 100644
+--- a/src/textual.cc
++++ b/src/textual.cc
+@@ -1132,10 +1132,12 @@ void 
instance_t::commodity_format_directive(commodity_t& comm, string format)
+   // observational formatting.
+   trim(format);
+   amount_t amt;
+-  amt.parse(format);
++  amt.parse(format, PARSE_NO_REDUCE);
+   if (amt.commodity() != comm)
+-    throw_(parse_error, _f("commodity directive symbol %1% and format 
directive symbol %2% should be the same") %
+-      comm.symbol() % amt.commodity().symbol());
++    throw_(parse_error,
++           _f("commodity directive symbol %1% and format directive symbol %2% 
should be the same")
++             % comm.symbol()
++             % amt.commodity().symbol());
+   amt.commodity().add_flags(COMMODITY_STYLE_NO_MIGRATE);
+   VERIFY(amt.valid());
+ }
diff -Nru 
ledger-3.3.0/debian/patches/0002-Change-a-use-of-is_realzero-to-just-is_zero.patch
 
ledger-3.3.0/debian/patches/0002-Change-a-use-of-is_realzero-to-just-is_zero.patch
--- 
ledger-3.3.0/debian/patches/0002-Change-a-use-of-is_realzero-to-just-is_zero.patch
  1969-12-31 20:00:00.000000000 -0400
+++ 
ledger-3.3.0/debian/patches/0002-Change-a-use-of-is_realzero-to-just-is_zero.patch
  2023-03-28 08:05:17.000000000 -0300
@@ -0,0 +1,22 @@
+From: John Wiegley <jo...@newartisans.com>
+Date: Thu, 23 Mar 2023 11:23:39 -0700
+Subject: Change a use of is_realzero to just is_zero
+
+This is needed to avoid a possible divide by zero.
+---
+ src/pool.cc | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/pool.cc b/src/pool.cc
+index 2c055d6..73e7664 100644
+--- a/src/pool.cc
++++ b/src/pool.cc
+@@ -257,7 +257,7 @@ commodity_pool_t::exchange(const amount_t&             
amount,
+     current_annotation = &as_annotated_commodity(commodity).details;
+ 
+   amount_t per_unit_cost =
+-    (is_per_unit || amount.is_realzero()) ? cost.abs() : (cost / 
amount).abs();
++    (is_per_unit || amount.is_zero()) ? cost.abs() : (cost / amount).abs();
+ 
+   if (! cost.has_commodity())
+     per_unit_cost.clear_commodity();
diff -Nru ledger-3.3.0/debian/patches/series ledger-3.3.0/debian/patches/series
--- ledger-3.3.0/debian/patches/series  1969-12-31 20:00:00.000000000 -0400
+++ ledger-3.3.0/debian/patches/series  2023-03-28 08:05:17.000000000 -0300
@@ -0,0 +1,2 @@
+0001-Do-not-perform-commodity-reduction-when-parsing-a-fo.patch
+0002-Change-a-use-of-is_realzero-to-just-is_zero.patch
diff --git a/src/pool.cc b/src/pool.cc
index 2c055d64..73e76644 100644
--- a/src/pool.cc
+++ b/src/pool.cc
@@ -257,7 +257,7 @@ commodity_pool_t::exchange(const amount_t&             
amount,
     current_annotation = &as_annotated_commodity(commodity).details;
 
   amount_t per_unit_cost =
-    (is_per_unit || amount.is_realzero()) ? cost.abs() : (cost / amount).abs();
+    (is_per_unit || amount.is_zero()) ? cost.abs() : (cost / amount).abs();
 
   if (! cost.has_commodity())
     per_unit_cost.clear_commodity();
diff --git a/src/textual.cc b/src/textual.cc
index 62007abb..5276c92b 100644
--- a/src/textual.cc
+++ b/src/textual.cc
@@ -1132,10 +1132,12 @@ void 
instance_t::commodity_format_directive(commodity_t& comm, string format)
   // observational formatting.
   trim(format);
   amount_t amt;
-  amt.parse(format);
+  amt.parse(format, PARSE_NO_REDUCE);
   if (amt.commodity() != comm)
-    throw_(parse_error, _f("commodity directive symbol %1% and format 
directive symbol %2% should be the same") %
-       comm.symbol() % amt.commodity().symbol());
+    throw_(parse_error,
+           _f("commodity directive symbol %1% and format directive symbol %2% 
should be the same")
+             % comm.symbol()
+             % amt.commodity().symbol());
   amt.commodity().add_flags(COMMODITY_STYLE_NO_MIGRATE);
   VERIFY(amt.valid());
 }

--- End Message ---
--- Begin Message ---
Unblocked.

--- End Message ---

Reply via email to