Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package pgbackrest for openSUSE:Factory 
checked in at 2026-08-25 13:20:48
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/pgbackrest (Old)
 and      /work/SRC/openSUSE:Factory/.pgbackrest.new.1258 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "pgbackrest"

Tue Aug 25 13:20:48 2026 rev:25 rq:1373541 version:2.59.1

Changes:
--------
--- /work/SRC/openSUSE:Factory/pgbackrest/pgbackrest.changes    2026-07-21 
23:00:34.818080696 +0200
+++ /work/SRC/openSUSE:Factory/.pgbackrest.new.1258/pgbackrest.changes  
2026-08-25 13:21:41.469348649 +0200
@@ -1,0 +2,21 @@
+Mon Aug 17 09:38:56 UTC 2026 - Marcus Rueckert <[email protected]>
+
+- update to 2.59.1
+  - Bug Fixes:
+    - Fix hang when the chunk buffer is smaller than the input
+      buffer. (Reviewed by Andrew Pogrebnoi, Douglas J Hunley.
+      Reported by crajac66.)
+    - Compare a new backup label only against its own full backup
+      set. (Reviewed by Douglas J Hunley. Reported by Anton
+      Glushakov.)
+    - Fix source archives generated by GitHub missing files
+      required to build. (Reported by aardvarkzed.)
+  - Features:
+    - PostgreSQL 19beta3 support. (Contributed by Lardière
+      Sébastien. Reviewed by David Steele.)
+  - Documentation Improvements:
+    - Document exception for dots in S3 bucket names when
+      repo-s3-uri-style=path.
+    - Remove explicit hot_standby configuration from user guide.
+
+-------------------------------------------------------------------

Old:
----
  pgbackrest-2.59.0.tar.gz

New:
----
  pgbackrest-2.59.1.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ pgbackrest.spec ++++++
--- /var/tmp/diff_new_pack.WPlm6T/_old  2026-08-25 13:21:42.984402074 +0200
+++ /var/tmp/diff_new_pack.WPlm6T/_new  2026-08-25 13:21:42.986402144 +0200
@@ -19,7 +19,7 @@
 
 %define services pgbackrest.target [email protected] 
[email protected] [email protected] pgbackrest.service 
[email protected] [email protected] [email protected]
 Name:           pgbackrest
-Version:        2.59.0
+Version:        2.59.1
 Release:        0
 Summary:        Reliable PostgreSQL Backup & Restore
 License:        MIT

++++++ pgbackrest-2.59.0.tar.gz -> pgbackrest-2.59.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pgbackrest-2.59.0/dist new/pgbackrest-2.59.1/dist
--- old/pgbackrest-2.59.0/dist  2026-07-20 10:14:42.326436800 +0200
+++ new/pgbackrest-2.59.1/dist  2026-08-17 11:10:21.775967600 +0200
@@ -1 +1 @@
-2.59.0
+2.59.1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pgbackrest-2.59.0/doc/html/command.html 
new/pgbackrest-2.59.1/doc/html/command.html
--- old/pgbackrest-2.59.0/doc/html/command.html 2026-07-20 10:14:42.323542800 
+0200
+++ new/pgbackrest-2.59.1/doc/html/command.html 2026-08-17 11:10:21.774024000 
+0200
@@ -15667,5 +15667,5 @@
 <pre class="code-block">default: text
 example: --output=num</pre>
 </div></div></div></div></div></div></div><div class="page-footer">
-Copyright &copy; 2015-2026, The PostgreSQL Global Development Group, <a 
href="https://github.com/pgbackrest/pgbackrest/blob/main/LICENSE";>MIT 
License</a>. Updated July 20, 2026
+Copyright &copy; 2015-2026, The PostgreSQL Global Development Group, <a 
href="https://github.com/pgbackrest/pgbackrest/blob/main/LICENSE";>MIT 
License</a>. Updated August 17, 2026
 </div></body></html>
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pgbackrest-2.59.0/doc/html/configuration.html 
new/pgbackrest-2.59.1/doc/html/configuration.html
--- old/pgbackrest-2.59.0/doc/html/configuration.html   2026-07-20 
10:14:42.323973000 +0200
+++ new/pgbackrest-2.59.1/doc/html/configuration.html   2026-08-17 
11:10:21.774469400 +0200
@@ -2191,5 +2191,5 @@
 </div>
 <pre class="code-block">example: pg1-user=backupuser</pre>
 </div></div></div></div></div><div class="page-footer">
-Copyright &copy; 2015-2026, The PostgreSQL Global Development Group, <a 
href="https://github.com/pgbackrest/pgbackrest/blob/main/LICENSE";>MIT 
License</a>. Updated July 20, 2026
+Copyright &copy; 2015-2026, The PostgreSQL Global Development Group, <a 
href="https://github.com/pgbackrest/pgbackrest/blob/main/LICENSE";>MIT 
License</a>. Updated August 17, 2026
 </div></body></html>
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pgbackrest-2.59.0/doc/html/faq.html 
new/pgbackrest-2.59.1/doc/html/faq.html
--- old/pgbackrest-2.59.0/doc/html/faq.html     2026-07-20 10:14:42.324068000 
+0200
+++ new/pgbackrest-2.59.1/doc/html/faq.html     2026-08-17 11:10:21.774563800 
+0200
@@ -108,6 +108,8 @@
 Can I use dots (periods) in my S3 bucket name?
 </div></div><div class="section-body"><div class="section-body-text">
 <span class="host">RFC-2818</span> does not allow wildcards to match on a dot 
(.) so s3 bucket names must not contain dots. If there are dots in the S3 
bucket name then an error such as <q>unable to find hostname 
'my.backup.bucket.s3.amazonaws.com' in certificate common name or subject 
alternative names</q> will occur.
+</div><div class="section-body-text">
+The exception is <span class="br-option">repo-s3-uri-style=path</span>, which 
prepends the bucket to the URI instead of the host. Since the bucket is not 
part of the host name, the certificate is matched against the endpoint alone 
and dots in the bucket name are not a problem. Note that path-style URIs are 
not supported by all S3-compatible object stores.
 </div></div></div><div class="section1"><a id="old-package"></a><div 
class="section1-header"><div class="section1-number"></div><div 
class="section1-title">
 Where can I find packages for older versions of <span 
class="backrest">pgBackRest</span>?
 </div></div><div class="section-body"><div class="section-body-text">
@@ -151,5 +153,5 @@
 </div><div class="section-body-text">
 Please note that recovering this backup will not result in a timeline switch, 
which means that this cluster should not push WAL to the original repository 
that it was exported from. If the new cluster is in a network-isolated 
environment this should not be a problem.
 </div></div></div></div><div class="page-footer">
-Copyright &copy; 2015-2026, The PostgreSQL Global Development Group, <a 
href="https://github.com/pgbackrest/pgbackrest/blob/main/LICENSE";>MIT 
License</a>. Updated July 20, 2026
+Copyright &copy; 2015-2026, The PostgreSQL Global Development Group, <a 
href="https://github.com/pgbackrest/pgbackrest/blob/main/LICENSE";>MIT 
License</a>. Updated August 17, 2026
 </div></body></html>
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pgbackrest-2.59.0/doc/html/index.html 
new/pgbackrest-2.59.1/doc/html/index.html
--- old/pgbackrest-2.59.0/doc/html/index.html   2026-07-20 10:14:42.324109300 
+0200
+++ new/pgbackrest-2.59.1/doc/html/index.html   2026-08-17 11:10:21.774604000 
+0200
@@ -27,7 +27,7 @@
 </div></div><div class="section-body"><div class="section-body-text">
 <span class="backrest">pgBackRest</span> is a reliable backup and restore 
solution for <span class="postgres">PostgreSQL</span> that seamlessly scales up 
to the largest databases and workloads.
 </div><div class="section-body-text">
-<span class="backrest">pgBackRest</span> <a 
href="https://github.com/pgbackrest/pgbackrest/releases/tag/release/2.59.0";>v2.59.0</a>
 is the current stable release. Release notes are on the <a 
href="release.html">Releases</a> page.
+<span class="backrest">pgBackRest</span> <a 
href="https://github.com/pgbackrest/pgbackrest/releases/tag/release/2.59.1";>v2.59.1</a>
 is the current stable release. Release notes are on the <a 
href="release.html">Releases</a> page.
 </div><div class="section-body-text">
 Please give us a star on <a 
href="https://github.com/pgbackrest/pgbackrest";>GitHub</a> if you like <span 
class="backrest">pgBackRest</span>!
 </div></div></div><div class="section1"><a id="features"></a><div 
class="section1-header"><div class="section1-title">
@@ -137,5 +137,5 @@
 </div><div class="section-body-text">
 Creating a robust disaster recovery policy with proper replication and backup 
strategies can be a very complex and daunting task. You may find that you need 
help during the architecture phase and ongoing support to ensure that your 
enterprise continues running smoothly.
 </div></div></div></div><div class="page-footer">
-Copyright &copy; 2015-2026, The PostgreSQL Global Development Group, <a 
href="https://github.com/pgbackrest/pgbackrest/blob/main/LICENSE";>MIT 
License</a>. Updated July 20, 2026
+Copyright &copy; 2015-2026, The PostgreSQL Global Development Group, <a 
href="https://github.com/pgbackrest/pgbackrest/blob/main/LICENSE";>MIT 
License</a>. Updated August 17, 2026
 </div></body></html>
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pgbackrest-2.59.0/doc/html/release.html 
new/pgbackrest-2.59.1/doc/html/release.html
--- old/pgbackrest-2.59.0/doc/html/release.html 2026-07-20 10:14:42.324150300 
+0200
+++ new/pgbackrest-2.59.1/doc/html/release.html 2026-08-17 11:10:21.774642700 
+0200
@@ -26,8 +26,8 @@
 Introduction
 </a></div></div><div class="section1-toc"><div class="section1-toc-title"><a 
href="#current">
 Current Stable Release
-</a></div><div class="section2-toc"><div class="section2-toc-title"><a 
href="#2.59.0">
-v2.59.0 Release Notes
+</a></div><div class="section2-toc"><div class="section2-toc-title"><a 
href="#2.59.1">
+v2.59.1 Release Notes
 </a></div></div></div><div class="section1-toc"><div 
class="section1-toc-title"><a href="#supported">
 Stable Releases
 </a></div></div><div class="section1-toc"><div class="section1-toc-title"><a 
href="#unsupported">
@@ -42,10 +42,36 @@
 The notes for a release may also contain <q>Additional Notes</q> but changes 
in this section are only to documentation or the test suite and have no direct 
impact on the <span class="backrest">pgBackRest</span> codebase.
 </div><div class="section-body"></div></div><div class="section1"><a 
id="current"></a><div class="section1-header"><div class="section1-title">
 Current Stable Release
+</div></div><div class="section-body"><div class="section2"><a 
id="2.59.1"></a><div class="section2-header"><div class="section2-title">
+v2.59.1 Release Notes
+</div></div><div class="section-body"><div class="section2-subtitle">
+PostgreSQL 19beta3 Support
+</div><div class="section2-subsubtitle">
+Released August 17, 2026
+</div><div class="section-body-text">
+<b> Bug Fixes:</b>
+</div><ul class="list-unordered"><li class="list-unordered">
+Fix hang when the chunk buffer is smaller than the input buffer. (<i>Reviewed 
by Andrew Pogrebnoi, Douglas J Hunley. Reported by crajac66.</i>)
+</li><li class="list-unordered">
+Compare a new backup label only against its own full backup set. (<i>Reviewed 
by Douglas J Hunley. Reported by Anton Glushakov.</i>)
+</li><li class="list-unordered">
+Fix source archives generated by GitHub missing files required to build. 
(<i>Reported by aardvarkzed.</i>)
+</li></ul><div class="section-body-text">
+<b> Features:</b>
+</div><ul class="list-unordered"><li class="list-unordered">
+<span class="host">PostgreSQL 19beta3</span> support. (<i>Contributed by 
Lardi&egrave;re S&eacute;bastien. Reviewed by David Steele.</i>)
+</li></ul><div class="section-body-text">
+<b>Documentation Improvements:</b>
+</div><ul class="list-unordered"><li class="list-unordered">
+Document exception for dots in <span class="host">S3</span> bucket names when 
<span class="br-setting">repo-s3-uri-style=path</span>.
+</li><li class="list-unordered">
+Remove explicit <span class="pg-setting">hot_standby</span> configuration from 
user guide.
+</li></ul></div></div></div></div><div class="section1"><a 
id="supported"></a><div class="section1-header"><div class="section1-title">
+Stable Releases
 </div></div><div class="section-body"><div class="section2"><a 
id="2.59.0"></a><div class="section2-header"><div class="section2-title">
 v2.59.0 Release Notes
 </div></div><div class="section-body"><div class="section2-subtitle">
-PostgreSQL 19 Support
+PostgreSQL 19beta2 Support
 </div><div class="section2-subsubtitle">
 Released July 20, 2026
 </div><div class="section-body-text">
@@ -136,9 +162,7 @@
 <b>Test Suite Improvements:</b>
 </div><ul class="list-unordered"><li class="list-unordered">
 Fix Alpine group conflicts in CI containers. (<i>Contributed by Artur Zakirov. 
Reviewed by David Steele.</i>)
-</li></ul></div></div></div></div><div class="section1"><a 
id="supported"></a><div class="section1-header"><div class="section1-title">
-Stable Releases
-</div></div><div class="section-body"><div class="section2"><a 
id="2.58.0"></a><div class="section2-header"><div class="section2-title">
+</li></ul></div></div><div class="section2"><a id="2.58.0"></a><div 
class="section2-header"><div class="section2-title">
 v2.58.0 Release Notes
 </div></div><div class="section-body"><div class="section2-subtitle">
 Object Storage Improvements
@@ -3405,5 +3429,5 @@
 </div><ul class="list-unordered"><li class="list-unordered">
 Absolutely no documentation (outside the code). Well, excepting these release 
notes.
 </li></ul></div></div></div></div></div><div class="page-footer">
-Copyright &copy; 2015-2026, The PostgreSQL Global Development Group, <a 
href="https://github.com/pgbackrest/pgbackrest/blob/main/LICENSE";>MIT 
License</a>. Updated July 20, 2026
+Copyright &copy; 2015-2026, The PostgreSQL Global Development Group, <a 
href="https://github.com/pgbackrest/pgbackrest/blob/main/LICENSE";>MIT 
License</a>. Updated August 17, 2026
 </div></body></html>
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pgbackrest-2.59.0/doc/html/user-guide-index.html 
new/pgbackrest-2.59.1/doc/html/user-guide-index.html
--- old/pgbackrest-2.59.0/doc/html/user-guide-index.html        2026-07-20 
10:14:42.324362300 +0200
+++ new/pgbackrest-2.59.1/doc/html/user-guide-index.html        2026-08-17 
11:10:21.774852800 +0200
@@ -29,5 +29,5 @@
 </li><li class="list-unordered">
 <a href="user-guide-rhel.html">RHEL</a>
 </li></ul></div></div></div><div class="page-footer">
-Copyright &copy; 2015-2026, The PostgreSQL Global Development Group, <a 
href="https://github.com/pgbackrest/pgbackrest/blob/main/LICENSE";>MIT 
License</a>. Updated July 20, 2026
+Copyright &copy; 2015-2026, The PostgreSQL Global Development Group, <a 
href="https://github.com/pgbackrest/pgbackrest/blob/main/LICENSE";>MIT 
License</a>. Updated August 17, 2026
 </div></body></html>
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pgbackrest-2.59.0/doc/html/user-guide-rhel.html 
new/pgbackrest-2.59.1/doc/html/user-guide-rhel.html
--- old/pgbackrest-2.59.0/doc/html/user-guide-rhel.html 2026-07-20 
10:14:42.324265700 +0200
+++ new/pgbackrest-2.59.1/doc/html/user-guide-rhel.html 2026-08-17 
11:10:21.774757100 +0200
@@ -223,11 +223,11 @@
 </div><div class="section-body-text">
 When building from source it is best to use a build host rather than building 
on production. Many of the tools required for the build should generally not be 
installed in production. <span class="backrest">pgBackRest</span> consists of a 
single executable so it is easy to copy to a new host once it is built.
 </div><div class="execute"><div class="execute-title">
-<span class="host">build</span> <b>&#x21d2;</b> Download version <span 
class="id">2.59.0</span> of <span class="backrest">pgBackRest</span> to <span 
class="path">/build</span> path
+<span class="host">build</span> <b>&#x21d2;</b> Download version <span 
class="id">2.59.1</span> of <span class="backrest">pgBackRest</span> to <span 
class="path">/build</span> path
 </div><div class="execute-body">
 <pre class="execute-body-cmd">mkdir -p /build</pre>
 <pre class="execute-body-cmd">curl -fsSL \
-       
https://github.com/pgbackrest/pgbackrest/releases/download/release%2F2.59.0/pgbackrest-2.59.0.tar.gz
 | \
+       
https://github.com/pgbackrest/pgbackrest/releases/download/release%2F2.59.1/pgbackrest-2.59.1.tar.gz
 | \
        tar zx -C /build</pre>
 </div></div><div class="execute"><div class="execute-title">
 <span class="host">build</span> <b>&#x21d2;</b> Install build dependencies
@@ -237,7 +237,7 @@
 </div></div><div class="execute"><div class="execute-title">
 <span class="host">build</span> <b>&#x21d2;</b> Configure and compile <span 
class="backrest">pgBackRest</span>
 </div><div class="execute-body">
-<pre class="execute-body-cmd">meson setup /build/pgbackrest 
/build/pgbackrest-2.59.0</pre>
+<pre class="execute-body-cmd">meson setup /build/pgbackrest 
/build/pgbackrest-2.59.1</pre>
 <pre class="execute-body-cmd">ninja -C /build/pgbackrest</pre>
 </div></div><div class="execute"><div class="execute-title">
 <span class="host">build</span> <b>&#x21d2;</b> Optionally run smoke tests to 
verify <span class="backrest">pgBackRest</span> was built correctly
@@ -393,6 +393,8 @@
 </div><div class="execute-body">
 <pre class="execute-body-cmd">sudo systemctl restart 
postgresql-14.service</pre>
 </div></div><div class="section-body-text">
+The <span class="pg-option">hot_standby</span> setting is enabled by default 
and should be left that way on every cluster. Any cluster may be restored as a 
standby later, e.g. a primary that is rebuilt as a standby after failover, and 
a standby will not accept read-only connections without it.
+</div><div class="section-body-text">
 When archiving a WAL segment is expected to take more than 60 seconds (the 
default) to reach the <span class="backrest">pgBackRest</span> repository, then 
the <span class="backrest">pgBackRest</span> <span 
class="br-option">archive-timeout</span> option should be increased. Note that 
this option is not the same as the <span class="postgres">PostgreSQL</span> 
<span class="pg-option">archive_timeout</span> option which is used to force a 
WAL segment switch; useful for databases where there are long periods of 
inactivity. For more information on the <span 
class="postgres">PostgreSQL</span> <span 
class="pg-option">archive_timeout</span> option, see <span 
class="postgres">PostgreSQL</span> <a 
href="https://www.postgresql.org/docs/current/static/runtime-config-wal.html";>Write
 Ahead Log</a>.
 </div><div class="section-body-text">
 The <span class="cmd">archive-push</span> command can be configured with its 
own options. For example, a lower compression level may be set to speed 
archiving without affecting the compression used for backups.
@@ -1519,7 +1521,7 @@
 <pre class="execute-body-cmd">sudo -u postgres cat 
/var/lib/pgsql/14/data/postgresql.auto.conf</pre>
 <pre class="execute-body-output">Output suppressed for testing</pre>
 </div></div><div class="section-body-text">
-The <span class="pg-setting">hot_standby</span> setting must be enabled before 
starting <span class="postgres">PostgreSQL</span> to allow read-only 
connections on <span class="host">pg-standby</span>. Otherwise, connection 
attempts will be refused. The rest of the configuration is in case the standby 
is promoted to a primary.
+The configuration is in case the standby is promoted to a primary.
 </div><div class="config"><div class="config-title">
 <span class="host">pg-standby</span>:<span 
class="file">/var/lib/pgsql/14/data/postgresql.conf</span> <b>&#x21d2;</b> 
Configure <span class="postgres">PostgreSQL</span>
 </div><div class="config-body"><div class="config-body-output">
@@ -1967,11 +1969,7 @@
 <span class="host">pg-standby</span> <b>&#x21d2;</b> Restore the demo standby 
cluster
 </div><div class="execute-body">
 <pre class="execute-body-cmd">sudo -u postgres pgbackrest --stanza=demo 
--type=standby restore</pre>
-</div></div><div class="config"><div class="config-title">
-<span class="host">pg-standby</span>:<span 
class="file">/var/lib/pgsql/15/data/postgresql.conf</span> <b>&#x21d2;</b> 
Configure <span class="postgres">PostgreSQL</span>
-</div><div class="config-body"><div class="config-body-output">
-Config suppressed for testing
-</div></div></div><div class="execute"><div class="execute-title">
+</div></div><div class="execute"><div class="execute-title">
 <span class="host">pg-standby</span> <b>&#x21d2;</b> Start <span 
class="postgres">PostgreSQL</span> and check the <span 
class="backrest">pgBackRest</span> configuration
 </div><div class="execute-body">
 <pre class="execute-body-cmd">sudo systemctl start postgresql-15.service</pre>
@@ -1984,5 +1982,5 @@
 </div><div class="config-body"><div class="config-body-output">
 Config suppressed for testing
 </div></div></div></div></div></div><div class="page-footer">
-Copyright &copy; 2015-2026, The PostgreSQL Global Development Group, <a 
href="https://github.com/pgbackrest/pgbackrest/blob/main/LICENSE";>MIT 
License</a>. Updated July 20, 2026
+Copyright &copy; 2015-2026, The PostgreSQL Global Development Group, <a 
href="https://github.com/pgbackrest/pgbackrest/blob/main/LICENSE";>MIT 
License</a>. Updated August 17, 2026
 </div></body></html>
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pgbackrest-2.59.0/doc/html/user-guide.html 
new/pgbackrest-2.59.1/doc/html/user-guide.html
--- old/pgbackrest-2.59.0/doc/html/user-guide.html      2026-07-20 
10:14:42.323359300 +0200
+++ new/pgbackrest-2.59.1/doc/html/user-guide.html      2026-08-17 
11:10:21.773832300 +0200
@@ -229,11 +229,11 @@
 </div><div class="section-body-text">
 When building from source it is best to use a build host rather than building 
on production. Many of the tools required for the build should generally not be 
installed in production. <span class="backrest">pgBackRest</span> consists of a 
single executable so it is easy to copy to a new host once it is built.
 </div><div class="execute"><div class="execute-title">
-<span class="host">build</span> <b>&#x21d2;</b> Download version <span 
class="id">2.59.0</span> of <span class="backrest">pgBackRest</span> to <span 
class="path">/build</span> path
+<span class="host">build</span> <b>&#x21d2;</b> Download version <span 
class="id">2.59.1</span> of <span class="backrest">pgBackRest</span> to <span 
class="path">/build</span> path
 </div><div class="execute-body">
 <pre class="execute-body-cmd">mkdir -p /build</pre>
 <pre class="execute-body-cmd">curl -fsSL \
-       
https://github.com/pgbackrest/pgbackrest/releases/download/release%2F2.59.0/pgbackrest-2.59.0.tar.gz
 | \
+       
https://github.com/pgbackrest/pgbackrest/releases/download/release%2F2.59.1/pgbackrest-2.59.1.tar.gz
 | \
        tar zx -C /build</pre>
 </div></div><div class="execute"><div class="execute-title">
 <span class="host">build</span> <b>&#x21d2;</b> Install build dependencies
@@ -243,7 +243,7 @@
 </div></div><div class="execute"><div class="execute-title">
 <span class="host">build</span> <b>&#x21d2;</b> Configure and compile <span 
class="backrest">pgBackRest</span>
 </div><div class="execute-body">
-<pre class="execute-body-cmd">meson setup /build/pgbackrest 
/build/pgbackrest-2.59.0</pre>
+<pre class="execute-body-cmd">meson setup /build/pgbackrest 
/build/pgbackrest-2.59.1</pre>
 <pre class="execute-body-cmd">ninja -C /build/pgbackrest</pre>
 </div></div><div class="execute"><div class="execute-title">
 <span class="host">build</span> <b>&#x21d2;</b> Optionally run smoke tests to 
verify <span class="backrest">pgBackRest</span> was built correctly
@@ -395,6 +395,8 @@
 </div><div class="execute-body">
 <pre class="execute-body-cmd">sudo pg_ctlcluster 17 demo restart</pre>
 </div></div><div class="section-body-text">
+The <span class="pg-option">hot_standby</span> setting is enabled by default 
and should be left that way on every cluster. Any cluster may be restored as a 
standby later, e.g. a primary that is rebuilt as a standby after failover, and 
a standby will not accept read-only connections without it.
+</div><div class="section-body-text">
 When archiving a WAL segment is expected to take more than 60 seconds (the 
default) to reach the <span class="backrest">pgBackRest</span> repository, then 
the <span class="backrest">pgBackRest</span> <span 
class="br-option">archive-timeout</span> option should be increased. Note that 
this option is not the same as the <span class="postgres">PostgreSQL</span> 
<span class="pg-option">archive_timeout</span> option which is used to force a 
WAL segment switch; useful for databases where there are long periods of 
inactivity. For more information on the <span 
class="postgres">PostgreSQL</span> <span 
class="pg-option">archive_timeout</span> option, see <span 
class="postgres">PostgreSQL</span> <a 
href="https://www.postgresql.org/docs/current/static/runtime-config-wal.html";>Write
 Ahead Log</a>.
 </div><div class="section-body-text">
 The <span class="cmd">archive-push</span> command can be configured with its 
own options. For example, a lower compression level may be set to speed 
archiving without affecting the compression used for backups.
@@ -1603,7 +1605,7 @@
 <pre class="execute-body-cmd">sudo -u postgres cat 
/var/lib/postgresql/17/demo/postgresql.auto.conf</pre>
 <pre class="execute-body-output">Output suppressed for testing</pre>
 </div></div><div class="section-body-text">
-The <span class="pg-setting">hot_standby</span> setting must be enabled before 
starting <span class="postgres">PostgreSQL</span> to allow read-only 
connections on <span class="host">pg-standby</span>. Otherwise, connection 
attempts will be refused. The rest of the configuration is in case the standby 
is promoted to a primary.
+The configuration is in case the standby is promoted to a primary.
 </div><div class="config"><div class="config-title">
 <span class="host">pg-standby</span>:<span 
class="file">/etc/postgresql/17/demo/postgresql.conf</span> <b>&#x21d2;</b> 
Configure <span class="postgres">PostgreSQL</span>
 </div><div class="config-body"><div class="config-body-output">
@@ -2077,11 +2079,7 @@
 <span class="host">pg-standby</span> <b>&#x21d2;</b> Restore the demo standby 
cluster
 </div><div class="execute-body">
 <pre class="execute-body-cmd">sudo -u postgres pgbackrest --stanza=demo 
--delta --type=standby restore</pre>
-</div></div><div class="config"><div class="config-title">
-<span class="host">pg-standby</span>:<span 
class="file">/etc/postgresql/18/demo/postgresql.conf</span> <b>&#x21d2;</b> 
Configure <span class="postgres">PostgreSQL</span>
-</div><div class="config-body"><div class="config-body-output">
-Config suppressed for testing
-</div></div></div><div class="execute"><div class="execute-title">
+</div></div><div class="execute"><div class="execute-title">
 <span class="host">pg-standby</span> <b>&#x21d2;</b> Start <span 
class="postgres">PostgreSQL</span> and check the <span 
class="backrest">pgBackRest</span> configuration
 </div><div class="execute-body">
 <pre class="execute-body-cmd">sudo pg_ctlcluster 18 demo start</pre>
@@ -2094,5 +2092,5 @@
 </div><div class="config-body"><div class="config-body-output">
 Config suppressed for testing
 </div></div></div></div></div></div><div class="page-footer">
-Copyright &copy; 2015-2026, The PostgreSQL Global Development Group, <a 
href="https://github.com/pgbackrest/pgbackrest/blob/main/LICENSE";>MIT 
License</a>. Updated July 20, 2026
+Copyright &copy; 2015-2026, The PostgreSQL Global Development Group, <a 
href="https://github.com/pgbackrest/pgbackrest/blob/main/LICENSE";>MIT 
License</a>. Updated August 17, 2026
 </div></body></html>
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pgbackrest-2.59.0/meson.build 
new/pgbackrest-2.59.1/meson.build
--- old/pgbackrest-2.59.0/meson.build   2026-07-20 10:13:35.000000000 +0200
+++ new/pgbackrest-2.59.1/meson.build   2026-08-17 11:08:40.000000000 +0200
@@ -4,7 +4,7 @@
 project(
     'pgbackrest',
     ['c'],
-    version: '2.59.0',
+    version: '2.59.1',
     license: 'MIT',
     meson_version: '>=0.47',
     default_options: [
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pgbackrest-2.59.0/src/command/backup/backup.c 
new/pgbackrest-2.59.1/src/command/backup/backup.c
--- old/pgbackrest-2.59.0/src/command/backup/backup.c   2026-07-20 
10:13:35.000000000 +0200
+++ new/pgbackrest-2.59.1/src/command/backup/backup.c   2026-08-17 
11:08:40.000000000 +0200
@@ -61,11 +61,20 @@
     {
         const String *backupLabelLatest = NULL;
 
+        // For full backup compare against all backups. For other backup types 
compare only against backups in the same full backup
+        // set, i.e. those whose name begins with the full backup part of 
backupLabelPrior. Since the new label is generated from
+        // backupLabelPrior it can never conflict with a label in another full 
backup set. This prevents label generation from
+        // failing when the last full backup is removed and then a diff/incr 
is generated from the last remaining full backup, or
+        // when a removed full backup is still returned by the repository 
listing, which can happen on object stores that retain
+        // empty prefixes.
+        const String *const labelRegExp =
+            type == backupTypeFull ?
+                backupRegExpP(.full = true, .differential = true, .incremental 
= true, .noAnchorEnd = true) :
+                strNewFmt("^%.*sF\\_" DATE_TIME_REGEX "(D|I)", DATE_TIME_LEN, 
strZ(backupLabelPrior));
+
         // Get the newest backup
         const StringList *const backupList = strLstSort(
-            storageListP(
-                storageRepo(), STRDEF(STORAGE_REPO_BACKUP),
-                .expression = backupRegExpP(.full = true, .differential = 
true, .incremental = true)),
+            storageListP(storageRepo(), STRDEF(STORAGE_REPO_BACKUP), 
.expression = strNewFmt("%s$", strZ(labelRegExp))),
             sortOrderDesc);
 
         if (!strLstEmpty(backupList))
@@ -78,18 +87,11 @@
 
         if (!strLstEmpty(historyYearList))
         {
-            // For full backup compare against all backups in the history. For 
other backup types find backups whose name begins
-            // with full backup part of backupLabelLatest. This prevents label 
generation from failing when the last full backup is
-            // removed and then an diff/incr is generated from the last 
remaining full backup.
-            const String *const fileNameRegExp =
-                (type == backupTypeFull) ?
-                    backupRegExpP(.full = true, .differential = true, 
.incremental = true, .noAnchorEnd = true) :
-                    strNewFmt("^%.*sF\\_" DATE_TIME_REGEX "(D|I)", 
DATE_TIME_LEN, strZ(backupLabelLatest));
             const StringList *const historyList = strLstSort(
                 storageListP(
                     storageRepo(),
                     strNewFmt(STORAGE_REPO_BACKUP "/" BACKUP_PATH_HISTORY 
"/%s", strZ(strLstGet(historyYearList, 0))),
-                    .expression = strNewFmt("%s\\.manifest\\.%s$", 
strZ(fileNameRegExp), strZ(compressTypeStr(compressTypeGz)))),
+                    .expression = strNewFmt("%s\\.manifest\\.%s$", 
strZ(labelRegExp), strZ(compressTypeStr(compressTypeGz)))),
                 sortOrderDesc);
 
             if (!strLstEmpty(historyList))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/pgbackrest-2.59.0/src/postgres/interface/version.vendor.h 
new/pgbackrest-2.59.1/src/postgres/interface/version.vendor.h
--- old/pgbackrest-2.59.0/src/postgres/interface/version.vendor.h       
2026-07-20 10:13:35.000000000 +0200
+++ new/pgbackrest-2.59.1/src/postgres/interface/version.vendor.h       
2026-08-17 11:08:40.000000000 +0200
@@ -1701,7 +1701,7 @@
 
 #elif PG_VERSION >= PG_VERSION_19
 
-#define XLOG_PAGE_MAGIC 0xD120 /* can be used as WAL version indicator */
+#define XLOG_PAGE_MAGIC 0xD121 /* can be used as WAL version indicator */
 
 #elif PG_VERSION >= PG_VERSION_18
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pgbackrest-2.59.0/src/storage/azure/write.c 
new/pgbackrest-2.59.1/src/storage/azure/write.c
--- old/pgbackrest-2.59.0/src/storage/azure/write.c     2026-07-20 
10:13:35.000000000 +0200
+++ new/pgbackrest-2.59.1/src/storage/azure/write.c     2026-08-17 
11:08:40.000000000 +0200
@@ -145,14 +145,14 @@
     ASSERT(this != NULL);
     ASSERT(buffer != NULL);
 
-    // Resize chunk buffer
-    storageWriteChunkBufferResize(buffer, this->blockBuffer, this->blockSize);
-
     // Continue until the write buffer has been exhausted
     size_t bytesTotal = 0;
 
     do
     {
+        // Resize block buffer. This must be done in the loop because block 
size grows as blocks are written.
+        storageWriteChunkBufferResize(buffer, bytesTotal, this->blockBuffer, 
this->blockSize);
+
         // Copy as many bytes as possible into the block buffer
         const size_t bytesNext =
             bufRemains(this->blockBuffer) > bufUsed(buffer) - bytesTotal ?
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pgbackrest-2.59.0/src/storage/gcs/write.c 
new/pgbackrest-2.59.1/src/storage/gcs/write.c
--- old/pgbackrest-2.59.0/src/storage/gcs/write.c       2026-07-20 
10:13:35.000000000 +0200
+++ new/pgbackrest-2.59.1/src/storage/gcs/write.c       2026-08-17 
11:08:40.000000000 +0200
@@ -211,14 +211,14 @@
     ASSERT(this != NULL);
     ASSERT(buffer != NULL);
 
-    // Resize chunk buffer
-    storageWriteChunkBufferResize(buffer, this->chunkBuffer, this->chunkSize);
-
     // Continue until the write buffer has been exhausted
     size_t bytesTotal = 0;
 
     do
     {
+        // Resize chunk buffer. This must be done in the loop because chunk 
size grows as chunks are written.
+        storageWriteChunkBufferResize(buffer, bytesTotal, this->chunkBuffer, 
this->chunkSize);
+
         // Copy as many bytes as possible into the chunk buffer
         const size_t bytesNext =
             bufRemains(this->chunkBuffer) > bufUsed(buffer) - bytesTotal ?
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pgbackrest-2.59.0/src/storage/s3/write.c 
new/pgbackrest-2.59.1/src/storage/s3/write.c
--- old/pgbackrest-2.59.0/src/storage/s3/write.c        2026-07-20 
10:13:35.000000000 +0200
+++ new/pgbackrest-2.59.1/src/storage/s3/write.c        2026-08-17 
11:08:40.000000000 +0200
@@ -146,14 +146,14 @@
     ASSERT(this != NULL);
     ASSERT(buffer != NULL);
 
-    // Resize chunk buffer
-    storageWriteChunkBufferResize(buffer, this->partBuffer, this->partSize);
-
     // Continue until the write buffer has been exhausted
     size_t bytesTotal = 0;
 
     do
     {
+        // Resize part buffer. This must be done in the loop because part size 
grows as parts are written.
+        storageWriteChunkBufferResize(buffer, bytesTotal, this->partBuffer, 
this->partSize);
+
         // Copy as many bytes as possible into the part buffer
         const size_t bytesNext =
             bufRemains(this->partBuffer) > bufUsed(buffer) - bytesTotal ?
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pgbackrest-2.59.0/src/storage/write.c 
new/pgbackrest-2.59.1/src/storage/write.c
--- old/pgbackrest-2.59.0/src/storage/write.c   2026-07-20 10:13:35.000000000 
+0200
+++ new/pgbackrest-2.59.1/src/storage/write.c   2026-08-17 11:08:40.000000000 
+0200
@@ -252,38 +252,48 @@
 
 
/**********************************************************************************************************************************/
 FN_EXTERN void
-storageWriteChunkBufferResize(const Buffer *const input, Buffer *const chunk, 
const size_t chunkSizeMax)
+storageWriteChunkBufferResize(const Buffer *const input, const size_t 
inputOffset, Buffer *const chunk, const size_t chunkSizeMax)
 {
     FUNCTION_TEST_BEGIN();
         FUNCTION_TEST_PARAM(BUFFER, input);
+        FUNCTION_TEST_PARAM(SIZE, inputOffset);
         FUNCTION_TEST_PARAM(BUFFER, chunk);
         FUNCTION_TEST_PARAM(SIZE, chunkSizeMax);
     FUNCTION_TEST_END();
 
     ASSERT(input != NULL);
+    ASSERT(inputOffset <= bufUsed(input));
     ASSERT(chunk != NULL);
     ASSERT(chunkSizeMax > 0);
 
-    // Resize chunk buffer if it is less than max chunk size
-    size_t chunkSize = bufSize(chunk);
+    // Size required for the chunk buffer to hold the input that has not been 
copied yet
+    const size_t chunkSizeRequired = bufUsed(chunk) + (bufUsed(input) - 
inputOffset);
 
-    if (chunkSize < chunkSizeMax)
+    // Resize chunk buffer if it cannot hold the remaining input and is less 
than max chunk size
+    if (chunkSizeRequired > bufSize(chunk) && bufSize(chunk) < chunkSizeMax)
     {
-        // If the input buffer is full there is very likely more data so 
increase size of the chunk buffer aggressively
-        if (bufFull(input))
+        size_t chunkSize;
+
+        // If the input buffer is full or the chunk buffer is not empty there 
is very likely more data coming, so increase the chunk
+        // buffer size aggressively rather than resizing repeatedly as small 
amounts of data arrive
+        if (bufFull(input) || !bufEmpty(chunk))
         {
             // If this is the first write set chunk size equal to double the 
input buffer size
-            if (chunkSize == 0)
+            if (bufSize(chunk) == 0)
             {
                 chunkSize = bufSize(input) * 2;
             }
             // Else double chunk size so as not to resize the chunk buffer too 
many times since prior data must be copied
             else
-                chunkSize *= 2;
+                chunkSize = bufSize(chunk) * 2;
+
+            // Chunk size must be large enough to hold the remaining input
+            if (chunkSize < chunkSizeRequired)
+                chunkSize = chunkSizeRequired;
         }
         // Else no more writes are expected so allocate only what is needed
         else
-            chunkSize += bufUsed(input) - bufRemains(chunk);
+            chunkSize = chunkSizeRequired;
 
         // Chunk size cannot be larger than max chunk size
         if (chunkSize > chunkSizeMax)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pgbackrest-2.59.0/src/storage/write.h 
new/pgbackrest-2.59.1/src/storage/write.h
--- old/pgbackrest-2.59.0/src/storage/write.h   2026-07-20 10:13:35.000000000 
+0200
+++ new/pgbackrest-2.59.1/src/storage/write.h   2026-08-17 11:08:40.000000000 
+0200
@@ -132,8 +132,9 @@
 FN_EXTERN size_t storageWriteChunkSize(
     size_t chunkSizeDefault, unsigned int defaultSplit, unsigned int maxSplit, 
unsigned int chunkIdx);
 
-// Resize chunk buffer for multipart upload to an object store
-FN_EXTERN void storageWriteChunkBufferResize(const Buffer *input, Buffer 
*const chunk, size_t chunkSizeMax);
+// Resize chunk buffer for multipart upload to an object store. After the 
resize the chunk buffer is able to hold the input from
+// inputOffset to the end of the input buffer, unless max chunk size has been 
reached.
+FN_EXTERN void storageWriteChunkBufferResize(const Buffer *input, size_t 
inputOffset, Buffer *const chunk, size_t chunkSizeMax);
 
 
/***********************************************************************************************************************************
 Macros for function logging
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pgbackrest-2.59.0/src/version.h 
new/pgbackrest-2.59.1/src/version.h
--- old/pgbackrest-2.59.0/src/version.h 2026-07-20 10:13:35.000000000 +0200
+++ new/pgbackrest-2.59.1/src/version.h 2026-08-17 11:08:40.000000000 +0200
@@ -35,10 +35,10 @@
 
***********************************************************************************************************************************/
 #define PROJECT_VERSION_MAJOR                                       2
 #define PROJECT_VERSION_MINOR                                       59
-#define PROJECT_VERSION_PATCH                                       0
+#define PROJECT_VERSION_PATCH                                       1
 #define PROJECT_VERSION_SUFFIX                                      ""
 
-#define PROJECT_VERSION                                             "2.59.0"
-#define PROJECT_VERSION_NUM                                         2059000
+#define PROJECT_VERSION                                             "2.59.1"
+#define PROJECT_VERSION_NUM                                         2059001
 
 #endif

Reply via email to