public inbox for git-commits@fedoraproject.org
help / color / mirror / Atom feed
* [rpms/ledger] f43: Add another upstream patch for the new Boost
@ 2026-07-16 12:29 Jonathan Wakely
  0 siblings, 0 replies; only message in thread
From: Jonathan Wakely @ 2026-07-16 12:29 UTC (permalink / raw)
  To: git-commits

A new commit has been pushed.

Repo   : rpms/ledger
Branch : f43
Commit : 994ca86ab6a99fc9f485f0226c458cd3c548a3fd
Author : Jonathan Wakely <jwakely@fedoraproject.org>
Date   : 2026-01-13T15:46:38+00:00
Stats  : +235/-0 in 1 file(s)
URL    : https://src.fedoraproject.org/rpms/ledger/c/994ca86ab6a99fc9f485f0226c458cd3c548a3fd?branch=f43

Log:
Add another upstream patch for the new Boost

---
diff --git a/ledger-boost190.patch b/ledger-boost190.patch
index f0c1f6a..2bb13da 100644
--- a/ledger-boost190.patch
+++ b/ledger-boost190.patch
@@ -20,3 +20,238 @@ index 05f28fc24..070f1cd4a 100644
  #include <boost/filesystem/exception.hpp>
  #include <boost/filesystem/fstream.hpp>
  #include <boost/filesystem/operations.hpp>
+
+From ad93c185644cfcb14fe4a673e74a0cb5c954a4b4 Mon Sep 17 00:00:00 2001
+From: dbear496 <70439542+dbear496@users.noreply.github.com>
+Date: Mon, 9 Sep 2024 23:42:52 -0400
+Subject: [PATCH 1/3] update to Boost 1.86.0
+
+fixes #2378
+---
+ src/filters.cc |  4 ++--
+ src/utils.h    | 12 ++++++------
+ 2 files changed, 8 insertions(+), 8 deletions(-)
+
+diff --git a/src/filters.cc b/src/filters.cc
+index b5b7fb19f..eb397232d 100644
+--- a/src/filters.cc
++++ b/src/filters.cc
+@@ -238,7 +238,7 @@ void anonymize_posts::render_commodity(amount_t& amt)
+ void anonymize_posts::operator()(post_t& post)
+ {
+ 	boost::uuids::detail::sha1  sha;
+-  unsigned int message_digest[5];
++  unsigned char message_digest[20];
+   bool         copy_xact_details = false;
+ 
+   if (last_xact != post.xact) {
+@@ -1269,7 +1269,7 @@ void budget_posts::report_budget_items(const date_t& date)
+     foreach (pending_posts_list::iterator& i, posts_to_erase)
+       pending_posts.erase(i);
+   }
+-  
++
+   if (pending_posts.size() == 0)
+     return;
+ 
+diff --git a/src/utils.h b/src/utils.h
+index bc05ff4f9..09dd09939 100644
+--- a/src/utils.h
++++ b/src/utils.h
+@@ -578,14 +578,14 @@ inline int peek_next_nonws(std::istream& in) {
+     *_p = '\0';                                         \
+   }
+ 
+-inline string to_hex(unsigned int * message_digest, const int len = 1)
++inline string to_hex(unsigned char * message_digest, const int len = 4)
+ {
+   std::ostringstream buf;
+ 
+-  for(int i = 0; i < 5 ; i++) {
+-    buf.width(8);
++  for(int i = 0; i < 20 ; i++) {
++    buf.width(2);
+     buf.fill('0');
+-    buf << std::hex << message_digest[i];
++    buf << std::hex << (int)message_digest[i];
+     if (i + 1 >= len)
+       break;                    // only output the first LEN dwords
+   }
+@@ -598,9 +598,9 @@ inline string sha1sum(const string& str)
+ 
+   sha.process_bytes(str.c_str(), str.length());
+ 
+-  unsigned int message_digest[5];
++  unsigned char message_digest[20];
+   sha.get_digest(message_digest);
+-  return to_hex(message_digest, 5);
++  return to_hex(message_digest, 20);
+ }
+ 
+ extern const string version;
+
+From 4f4cc1688a8e8a7c03f18603cc5a4159d9c89ca3 Mon Sep 17 00:00:00 2001
+From: dbear496 <70439542+dbear496@users.noreply.github.com>
+Date: Sat, 14 Sep 2024 17:44:18 -0400
+Subject: [PATCH 2/3] promote compatability with Boost <1.86.0
+
+---
+ src/filters.cc |  6 +++---
+ src/utils.h    | 40 +++++++++++++++++++++++++---------------
+ 2 files changed, 28 insertions(+), 18 deletions(-)
+
+diff --git a/src/filters.cc b/src/filters.cc
+index eb397232d..71d835e6f 100644
+--- a/src/filters.cc
++++ b/src/filters.cc
+@@ -238,7 +238,7 @@ void anonymize_posts::render_commodity(amount_t& amt)
+ void anonymize_posts::operator()(post_t& post)
+ {
+ 	boost::uuids::detail::sha1  sha;
+-  unsigned char message_digest[20];
++  boost::uuids::detail::sha1::digest_type message_digest;
+   bool         copy_xact_details = false;
+ 
+   if (last_xact != post.xact) {
+@@ -260,7 +260,7 @@ void anonymize_posts::operator()(post_t& post)
+     sha.process_bytes(buf.str().c_str(), buf.str().length());
+     sha.get_digest(message_digest);
+ 
+-    xact.payee = to_hex(message_digest);
++    xact.payee = digest_to_hex(message_digest, 8);
+     xact.note  = none;
+   } else {
+     xact.journal = post.xact->journal;
+@@ -278,7 +278,7 @@ void anonymize_posts::operator()(post_t& post)
+     sha.process_bytes(buf.str().c_str(), buf.str().length());
+     sha.get_digest(message_digest);
+ 
+-    account_names.push_front(to_hex(message_digest));
++    account_names.push_front(digest_to_hex(message_digest, 8));
+   }
+ 
+   account_t * new_account =
+diff --git a/src/utils.h b/src/utils.h
+index 09dd09939..e09c603d1 100644
+--- a/src/utils.h
++++ b/src/utils.h
+@@ -578,29 +578,39 @@ inline int peek_next_nonws(std::istream& in) {
+     *_p = '\0';                                         \
+   }
+ 
+-inline string to_hex(unsigned char * message_digest, const int len = 4)
+-{
++inline string digest_to_hex(
++  const boost::uuids::detail::sha1::digest_type& message_digest,
++  size_t len = sizeof(boost::uuids::detail::sha1::digest_type) * 2
++) {
+   std::ostringstream buf;
+-
+-  for(int i = 0; i < 20 ; i++) {
+-    buf.width(2);
+-    buf.fill('0');
+-    buf << std::hex << (int)message_digest[i];
+-    if (i + 1 >= len)
+-      break;                    // only output the first LEN dwords
++  buf.setf(std::ios_base::hex, std::ios_base::basefield);
++  buf.fill('0');
++
++  // sha1::digest_type is an array type and may change between Boost versions
++  const size_t count = std::min(
++    sizeof(message_digest) / sizeof(message_digest[0]),
++    (len - 1) / (sizeof(message_digest[0]) * 2) + 1
++  );
++  for(size_t i = 0; i < count; i++) {
++    buf.width(sizeof(message_digest[i]) * 2);
++    buf << (unsigned int)message_digest[i];
+   }
+-  return buf.str();
++  string hex = buf.str();
++  hex.resize(len, '0'); // in case a partial element is requested
++  return hex;
+ }
+ 
+-inline string sha1sum(const string& str)
+-{
++inline string sha1sum(
++  const string& str,
++  size_t len = sizeof(boost::uuids::detail::sha1::digest_type) * 2
++) {
+ 	boost::uuids::detail::sha1 sha;
++  boost::uuids::detail::sha1::digest_type message_digest;
+ 
++	sha.reset();
+   sha.process_bytes(str.c_str(), str.length());
+-
+-  unsigned char message_digest[20];
+   sha.get_digest(message_digest);
+-  return to_hex(message_digest, 20);
++  return digest_to_hex(message_digest, len);
+ }
+ 
+ extern const string version;
+
+From 5320c9f719a309ddacdbe77181cabeb351949013 Mon Sep 17 00:00:00 2001
+From: dbear496 <70439542+dbear496@users.noreply.github.com>
+Date: Sat, 14 Sep 2024 18:21:29 -0400
+Subject: [PATCH 3/3] use sha1sum in anonymize_posts::operator()
+
+---
+ src/filters.cc | 16 ++--------------
+ src/utils.h    |  2 +-
+ 2 files changed, 3 insertions(+), 15 deletions(-)
+
+diff --git a/src/filters.cc b/src/filters.cc
+index 71d835e6f..523fa7959 100644
+--- a/src/filters.cc
++++ b/src/filters.cc
+@@ -237,8 +237,6 @@ void anonymize_posts::render_commodity(amount_t& amt)
+ 
+ void anonymize_posts::operator()(post_t& post)
+ {
+-	boost::uuids::detail::sha1  sha;
+-  boost::uuids::detail::sha1::digest_type message_digest;
+   bool         copy_xact_details = false;
+ 
+   if (last_xact != post.xact) {
+@@ -255,12 +253,7 @@ void anonymize_posts::operator()(post_t& post)
+     std::ostringstream buf;
+     buf << reinterpret_cast<boost::uintmax_t>(post.xact->payee.c_str())
+         << integer_gen() << post.xact->payee.c_str();
+-
+-		sha.reset();
+-    sha.process_bytes(buf.str().c_str(), buf.str().length());
+-    sha.get_digest(message_digest);
+-
+-    xact.payee = digest_to_hex(message_digest, 8);
++    xact.payee = sha1sum(buf.str(), 8);
+     xact.note  = none;
+   } else {
+     xact.journal = post.xact->journal;
+@@ -273,12 +266,7 @@ void anonymize_posts::operator()(post_t& post)
+        acct = acct->parent) {
+     std::ostringstream buf;
+     buf << integer_gen() << acct << acct->fullname();
+-
+-    sha.reset();
+-    sha.process_bytes(buf.str().c_str(), buf.str().length());
+-    sha.get_digest(message_digest);
+-
+-    account_names.push_front(digest_to_hex(message_digest, 8));
++    account_names.push_front(sha1sum(buf.str(), 8));
+   }
+ 
+   account_t * new_account =
+diff --git a/src/utils.h b/src/utils.h
+index e09c603d1..13cf26f63 100644
+--- a/src/utils.h
++++ b/src/utils.h
+@@ -604,7 +604,7 @@ inline string sha1sum(
+   const string& str,
+   size_t len = sizeof(boost::uuids::detail::sha1::digest_type) * 2
+ ) {
+-	boost::uuids::detail::sha1 sha;
++	static boost::uuids::detail::sha1 sha;
+   boost::uuids::detail::sha1::digest_type message_digest;
+ 
+ 	sha.reset();

^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2026-07-16 12:29 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-07-16 12:29 [rpms/ledger] f43: Add another upstream patch for the new Boost Jonathan Wakely

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox