------------------------------------------------------------------- Fri May 1 16:13:03 UTC 2020 - Bruno Friedmann - update to version 2.26 : Non-blocking TLS + Bug Fix : Remove empty subexpression from manifest regular expression. MacOS was not happy about this though other platforms seemed to work fine. + Improvements: - N on-blocking TLS implementation. - Only limit backup copy size for WAL-logged files. The prior behavior could possibly lead to postgresql.conf or postgresql.auto.conf being truncated in the backup. - TCP keep-alive options are configurable. - Add io-timeout option. - update to version 2.25 : LZ4 Compression Support + Features: - Add lz4 compression support. Note that setting compress-type=lz4 will make new backups and archive incompatible (unrestorable) with prior versions of pgBackRest. - Add --dry-run option to the expire command. Use dry-run to see which backups/archive would be removed by the expire command without actually removing anything. + Improvements: - Improve performance of remote manifest build. - Fix detection of keepalive options on Linux. - Add configure host detection to set standards flags correctly. - Remove compress/compress-level options from commands where unused. - Limit backup file copy size to size reported at backup start. If a file grows during the backup it will be reconstructed by WAL replay during recovery so there is no need to copy the additional data. - Packaging: + Add new requirement lz4 + Redo patch libpq-fe.h_localisation.patch to include configure ------------------------------------------------------------------- Tue Mar 24 14:34:27 UTC 2020 - Bruno Friedmann - update to 2.24 version : Bugfix + Bug Fixes: - Prevent defunct processes in asynchronous archive commands. - Error when archive-get/archive-push/restore are not run on a PostgreSQL host. - Read HTTP content to eof when size/encoding not specified. - Fix resume when the resumable backup was created by Perl. In this case the resumable backup should be ignored, but the C code was not able to load the partial manifest written by Perl since the format differs slightly. Add validations to catch this case and continue gracefully. + Features: - Auto-select backup set on restore when time target is specified. Auto-selection is performed only when --set is not specified. If a backup set for the given target time cannot not be found, the latest (default) backup set will be used. + Improvements: - Skip pg_internal.init temp file during backup. - Add more validations to the manifest on backup. + Documentation Improvements: - Prevent lock-bot from adding comments to locked issues. - Packaging + use %autopatch + use a normalized name for source %name-%version.tar.gz + spec cleaning + Refresh patch libpq-fe.h_localisation.patch + Delete merged upstream_wrongly_bring_back_pg_config.patch ------------------------------------------------------------------- Mon Jan 27 20:27:02 UTC 2020 - Bruno Friedmann - update to 2.23 : Bugfix + Bug Fixes: - Fix missing files corrupting the manifest. If a file was removed by PostgreSQL during the backup (or was missing from the standby) then the next file might not be copied and updated in the manifest. If this happened then the backup would error when restored. + Improvements: - Use pkg-config instead of xml2-config for libxml2 build options. - Validate checksums are set in the manifest on backup/restore. - Introduce upstream_wrongly_bring_back_pg_config.patch to fix upstream code (using pg_config in client code) Upstream issue #920 ------------------------------------------------------------------- Thu Jan 23 14:26:33 UTC 2020 - Bruno Friedmann - update to 2.22 : Bugfix + Fix error in timeline conversion. The timeline is required to verify WAL segments in the archive after a backup. The conversion was performed base 10 instead of 16, which led to errors when the timeline was ≥ 0xA. - update to 2.21 : C Migration Complete + Bug Fixes - Fix options being ignored by asynchronous commands. The asynchronous archive-get/archive-push processes were not loading options configured in command configuration sections, e.g. [global:archive-get]. - Fix handling of \ in filenames. \ was not being properly escaped when calculating the manifest checksum which prevented the manifest from loading. Since instances of \ in cluster filenames should be rare to nonexistent this does not seem likely to be a serious problem in the field. + Features: - pgBackRest is now pure C. - Add pg-user option. Specifies the database user name when connecting to PostgreSQL. If not specified pgBackRest will connect with the local OS user or PGUSER, which was the previous behavior. - Allow path-style URIs in S3 driver. + Improvements: - The backup command is implemented entirely in C. - update to 2.20 : Bug fixes + Fix archive-push/archive-get when PGDATA is symlinked. These commands tried to use cwd() as PGDATA but this would disagree with the path configured in pgBackRest if PGDATA was symlinked. If cwd() does not match the pgBackRest path then chdir() to the path and make sure the next cwd() matches the result from the first call. + Fix reference list when backup.info is reconstructed in expire command. Since the backup command is still using the Perl version of reconstruct this issue will not express unless 1) there is a backup missing from backup.info and 2) the expire command is run directly instead of running after backup as usual. This unlikely combination of events means this is probably not a problem in the field. + Fix segfault on unexpected EOF in gzip decompression. - Update and cleanup spec + Remove all uneeded Perl related part + Update copyright ------------------------------------------------------------------- Wed Dec 4 13:47:03 UTC 2019 - Bruno Friedmann - update to 2.19 : C Migrations and Bug Fixes + Bug Fixes: - Fix remote timeout in delta restore. When performing a delta restore on a largely unchanged cluster the remote could timeout if no files were fetched from the repository within protocol-timeout. Add keep-alives to prevent remote timeout. - Fix handling of repeated HTTP headers. When HTTP headers are repeated they should be considered equivalent to a single comma-separated header rather than generating an error, which was the prior behavior. + Improvements: - JSON output from the info command is no longer pretty-printed. Monitoring systems can more easily ingest the JSON without linefeeds. External tools such as jq can be used to pretty-print if desired. - The check command is implemented entirely in C. + Documentation Improvements: - Document how to contribute to pgBackRest. - Document maximum version for auto-stop option. + Test Suite Improvements: - Fix container test path being used when --vm=none. - Fix mismatched timezone in expect test. - Don't autogenerate embedded libc code by default. - Cleanup spec (license and pkgconfig) ------------------------------------------------------------------- Sun Oct 6 14:09:55 UTC 2019 - Bruno Friedmann - Update to 2.18 version PostgreSQL 12 Support + Features: - PostgreSQL 12 support. - Add info command set option for detailed text output. - Add standby restore type. This automatically adds standby_mode=on to recovery.conf for PostgreSQL < 12 and creates standby.signal for PostgreSQL ≥ 12, creating a common interface between PostgreSQL versions. + Improvements: - The restore command is implemented entirely in C. + Documentation Improvements: - Document the relationship between db-timeout and protocol-timeout. - Add documentation clarifications regarding standby repositories. - Add FAQ for time-based Point-in-Time Recovery. - Update to 2.17 version C Migrations and Bug Fixes + Bug fixes: - Improve slow manifest build for very large quantities of tables/segments. - Fix exclusions for special files. + Improvements: - The stanza-create/update/delete commands are implemented entirely in C. - The start/stop commands are implemented entirely in C. - Create log directories/files with 0750/0640 mode. + Documentation Bug Fixes: - Fix yum.p.o package being installed when custom package specified. + Documentation Improvements: - Build pgBackRest as an unprivileged user. ------------------------------------------------------------------- Sat Aug 24 16:31:39 UTC 2019 - Bruno Friedmann - Update to 2.16 release C Migrations and Bug Fixes + Bug Fixes: - Retry S3 RequestTimeTooSkewed errors instead of immediately terminating. - Fix incorrect handling of transfer-encoding response to HEAD request. - Fix scoping violations exposed by optimizations in gcc 9. + Features: - Add repo-s3-port option for setting a non-standard S3 service port. + Improvements: - The local command for backup is implemented entirely in C. - The check command is implemented partly in C. - Packaging adding new libpq-fe dependency - Added patch libpq-fe.h_localisation.patch ------------------------------------------------------------------- Thu Jul 11 12:09:42 UTC 2019 - Bruno Friedmann - Update to 2.15.1 release + Bug Fixes: Fix archive retention expiring too aggressively. + Improvements: The expire command is implemented entirely in C. The local command for restore is implemented entirely in C. Remove hard-coded PostgreSQL user so $PGUSER works. Honor configure --prefix option. Rename repo-s3-verify-ssl option to repo-s3-verify-tls. The new name is preferred because pgBackRest does not support any SSL protocol versions (they are all considered to be insecure). The old name will continue to be accepted. - Packaging: + export %optflag as CFLAG + fix make install with new supported prefix ------------------------------------------------------------------- Thu Jun 6 05:59:01 UTC 2019 - Bruno Friedmann - Emergency rollback, 2.14 segv ------------------------------------------------------------------- Wed Jun 5 15:24:17 UTC 2019 - Bruno Friedmann - Update to 2.14 release + Bug Fixes: Fix segfault when process-max > 8 for archive-push/archive-get. + Improvements: Bypass database checks when stanza-delete issued with force. Add configure script for improved multi-platform support. + Documentation Features: Add user guides for CentOS/RHEL 6/7. - 2.13 release + Bug Fixes: Fix zero-length reads causing problems for IO filters that did not expect them. Fix reliability of error reporting from local/remote processes. Fix Posix/CIFS error messages reporting the wrong filename on write/sync/close. - 2.12 release + IMPORTANT NOTE: The new TLS/SSL implementation forbids dots in S3 bucket names per RFC-2818. This security fix is required for compliant hostname verification. + Bug Fixes: Fix issues when a path option is / terminated. Fix issues when log-level-file=off is set for the archive-get command. Fix C code to recognize host:port option format like Perl does. Fix issues with remote/local command logging options. + Improvements: The archive-push command is implemented entirely in C. Increase process-max limit to 999. Improve error message when an S3 bucket name contains dots. + Documentation Improvements: Clarify that S3-compatible object stores are supported. - Packaging: add autoconf upstream is now using configure. ------------------------------------------------------------------- Mon Mar 11 09:10:56 UTC 2019 - Bruno Friedmann - Update to 2.11 release + C Implementation of Archive Get + Bug Fixes: - Fix possible truncated WAL segments when an error occurs mid-write. - Fix info command missing WAL min/max when stanza specified. - Fix non-compliant JSON for options passed from C to Perl. + Improvements: - The archive-get command is implemented entirely in C. - Enable socket keep-alive on older Perl versions. - Error when parameters are passed to a command that does not accept parameters. - Add hints when unable to find a WAL segment in the archive. - Improve error when hostname cannot be found in a certificate. - Add additional options to backup.manifest for debugging purposes. + Documentation Improvements: - Update default documentation version to PostgreSQL 10. - Packaging: + Remove merge upstream patch (2cd204f.patch) + Fix install destination to %{_bindir} ------------------------------------------------------------------- Wed Feb 20 08:15:24 UTC 2019 - Bruno Friedmann - Include upstream patch 2cd204f.patch to fix issue#677 ------------------------------------------------------------------- Sun Feb 17 10:02:49 UTC 2019 - Bruno Friedmann - Update to 2.10 version bug fixes + Add unimplemented S3 driver method required for archive-get. + Fix check for improperly configured pg-path. - Packaging: + Fix trailing space in changes (jengelh) + Use a factual description (jengelh) ------------------------------------------------------------------- Fri Feb 8 20:02:00 UTC 2019 - Bruno Friedmann - Update to 2.09 version bug fixes and improvements + Fix issue with multiple async status files causing a hard error. + info command is implemented entirely in C. + Simplify info command text message when no stanzas are present by replacing the repository path with "the repository". + Add _DARWIN_C_SOURCE flag to Makefile for MacOS builds. + Update address lookup in C TLS client to use modern methods. + Include Posix-compliant header for strcasecmp() and fd_set. - Packaging: remove comments/remark fixed and merged issue #659 ------------------------------------------------------------------- Sat Jan 26 10:00:00 UTC 2019 - Bruno Friedmann - Update to 2.08 version : bug fixes and improvement See more information https://pgbackrest.org/release.html - Add libxml2-devel as buildrequires - Add a comment about gethostbyname() upstream issue #659 - Update spec (date and order) ------------------------------------------------------------------- Sat Dec 1 08:58:07 UTC 2018 - Bruno Friedmann - Re-add all needed Perl (upstream issue #629): not all the code is ported to C ------------------------------------------------------------------- Tue Nov 20 13:36:49 UTC 2018 - Bruno Friedmann - Update to 2.07 version : bug fixes and improvement See more information https://pgbackrest.org/release.html ------------------------------------------------------------------- Sat Oct 27 20:12:17 UTC 2018 - Bruno Friedmann - Bug fix and improvement 2.06 version See more information https://pgbackrest.org/release.html - Packaging : Remove Requires perl, it not more used ------------------------------------------------------------------- Wed Oct 3 08:07:18 UTC 2018 - Bruno Friedmann - Bug fix and improvement 2.05 version See more information https://pgbackrest.org/release.html ------------------------------------------------------------------- Sat Jul 14 16:25:46 UTC 2018 - bruno@ioda-net.ch - Fix packaging : Avoid segv backtrace + Don't package and distribute perl or LibC They are already in final binary. Ref https://github.com/pgbackrest/pgbackrest/issues/558 + As a result : tests are no more usable, (only vagrant runs) use a simple call of the binary (pgbackrest version) to exclude futur backtrace + Clean spec: licence and remove macro for file ------------------------------------------------------------------- Wed Jul 11 07:49:49 UTC 2018 - bruno@ioda-net.ch - Critical bug fix release 2.04 (Backup Resume) + IMPORTANT NOTE: This release fixes a critical bug in the backup resume feature. All resumed backups prior to this release should be considered inconsistent. See more information https://pgbackrest.org/release.html + Bug Fixes: - Fix critical bug in resume that resulted in inconsistent backups. A regression in v0.82 removed the timestamp comparison when deciding which files from the aborted backup to keep on resume. - Fix error in selective restore when only one user database exists in the cluster. - Fix non-compliant ISO-8601 timestamp format in S3 authorization headers. AWS and some gateways were tolerant of space rather than zero-padded hours while others were not. + Features: - PostgreSQL 11 Beta 2 support. + Improvements: - Improve the HTTP client to set content-length to 0 when not specified by the server. S3 (and gateways) always set content-length or transfer-encoding but HTTP 1.1 does not require it and proxies (e.g. HAProxy) may not include either. - Set search_path = 'pg_catalog' on PostgreSQL connections + Documentation Improvements: - Create a new section to describe building pgBackRest and build on a separate host. - Add sample S3 policy to restrict bucket privileges. - Packaging : + Explicitly requires all perl deps + Define make_build for 42.3 compilation ------------------------------------------------------------------- Mon May 28 08:21:30 UTC 2018 - bruno@ioda-net.ch - Urgent fix : add perl as BuildRequires and Requires to force presence of libperl.so : Otherwise pgbackrest binary can't find it - Spec : use %make_build macros ------------------------------------------------------------------- Wed May 23 09:55:27 UTC 2018 - bruno@ioda-net.ch - Update release 2.03 version + Bug Fixes: - Fix potential buffer overrun in error message handling. - Fix archive write lock being taken for the synchronous archive-get command. + Improvements: - Embed exported C functions and Perl modules directly into the pgBackRest executable. - Use time_t instead of __time_t for better portability. - Print total runtime in milliseconds at command end. ------------------------------------------------------------------- Thu May 10 10:12:23 UTC 2018 - bruno@ioda-net.ch - Update to bugfix & improvement 2.02 version Parallel Asynchronous Archive Get and Configuration Includes Released May 6, 2018 + Bug Fixes: - Fix directory syncs running recursively when only the specified directory should be synced. - Fix archive-copy throwing "path not found" error for incr/diff backups. - Fix failure in manifest build when two or more files in PGDATA are linked to the same directory. - Fix delta restore failing when a linked file is missing. - Fix rendering of key/value and list options in help. + Features: - Add asynchronous, parallel archive-get. This feature maintains a queue of WAL segments to help reduce latency when PostgreSQL requests a WAL segment with restore_command. - Add support for additional pgBackRest configuration files in the directory specified by the --config-include-path option. Add --config-path option for overriding the default base path of the --config and --config-include-path option. - Add repo-s3-token option to allow temporary credentials tokens to be configured. pgBackRest currently has no way to request new credentials so the entire command (e.g. backup, restore) must complete before the credentials expire. + Improvements: - Update the archive-push-queue-max, manifest-save-threshold, and buffer-size options to accept values in KB, MB, GB, TB, PB where the multiplier is a power of 1024. - Make backup/restore path sync more efficient. Scanning the entire directory can be very expensive if there are a lot of small tables. The backup manifest contains the path list so use it to perform syncs instead of scanning the backup/restore path - Show command parameters as well as command options in initial info log message. - Rename archive-queue-max option to archive-push-queue-max to avoid confusion with the new archive-get-queue-max option. The old option name will continue to be accepted. + Documentation Bug Fixes: - Update docs with 32-bit support and caveats. 32-bit support was added in v1.26. + Documentation Improvements: - Add monitoring examples using PostgreSQL and jq. - Add example of command section usage to archiving configuration. - Remove documentation info --output=json as experimental. - Update out-of-date description for the spool-path option. + Test Suite Features: - Use lcov for C unit test coverage reporting. Switch from Devel::Cover because it would not report on branch coverage for reports converted from gcov. Incomplete branch coverage for a module now generates an error. Coverage of unit tests is not displayed in the report unless they are incomplete for either statement or branch coverage. - Changes of previous 2.01 version from March 6th 2018 + Bug Fixes: - Fix --target-action and --recovery-option options being reported as invalid when restoring with --type=immediate. - Immediately error when a secure option (e.g. repo1-s3-key) is passed on the command line. Since pgBackRest would not pass secure options on to sub-processes an obscure error was thrown. The new error is much clearer and provides hints about how to fix the problem. Update command documentation to omit secure options that cannot be specified on the command-line. - Fix issue passing --no-config to embedded Perl. - Fix issue where specifying log-level-stderr > warn would cause a local/remote process to error on exit due to output found on stderr when none was expected. The max value for a local/remote process is now error. - Fix manifest test in the check command when tablespaces are present. + Improvements: - Error when multiple arguments are set in the config file for an option that does not accept multiple arguments. - Remove extraneous sudo commands from src/Makefile. + Documentation Improvements: - Show index in examples for indexed options, i.e. repo-*, pg-*. - Simplify table of contents on command page by only listing commands. - Remove references to the C library being optional. + Test Suite Features: - Add CentOS/RHEL package builds. - Use clang for static code analysis. Nothing found initially except for some functions that should have been marked __noreturn__. ------------------------------------------------------------------- Fri Mar 9 15:16:24 UTC 2018 - bruno@ioda-net.ch - Packaging : + modernize spec with spec-cleaner -m + remove pgbackrest-release-1.00_datadir.patch pgbackrest is now written in C + Build C binary and lib C + Adjust new parameter name in pgbackrest-conf.patch - Update to new 2.0 version + Features: The archive-push command is now partially coded in C which allows the PostgreSQL archive_command to run significantly faster when processing status messages from the asynchronous archive process. (Reviewed by Cynthia Shang.) + Improvements: - Improve check command to verify that the backup manifest can be built. (Contributed by Cynthia Shang.) - Improve performance of HTTPS client. Buffering now takes the pending bytes on the socket into account (when present) rather than relying entirely on select(). In some instances the final bytes would not be flushed until the connection was closed. - Improve S3 delete performance. The constant S3_BATCH_MAX had been replaced with a hard-coded value of 2, probably during testing. - Allow any non-command-line option to be reset to default on the command-line. This allows options in pgbackrest.conf to be reset to default which reduces the need to write new config files for specific needs. - The C library is now required. This eliminates conditional loading and eases development of new library features. - The pgbackrest executable is now a C binary instead of Perl. This allows certain time-critical commands (like async archive-push) to run more quickly. - Rename db-* options to pg-* and backup-* options to repo-* to improve consistency. repo-* options are now indexed although currently only one is allowed. ** This imply you need to revisit your pgbackrest.conf ** - Packaging : + Use make install (now fixed upstream) for bin ------------------------------------------------------------------- Sun Feb 4 17:14:16 UTC 2018 - bruno@ioda-net.ch - Upgrade to 1.28 bugfix version + Bug Fixes: - Fixed inability to restore a single database contained in a tablespace using --db-include. (Fixed by Cynthia Shang.) - Ensure latest db-id is selected on when matching archive.info to backup.info. This provides correct matching in the event there are system-id and db-version duplicates (e.g. after reverting a pg_upgrade). (Fixed by Cynthia Shang. Reported by Adam K. Sumner.) - Fixed overly chatty error message when reporting an invalid command. (Reported by Jason O'Donnell.) + Features: Add stanza-delete command to cleanup unused stanzas. (Contributed by Cynthia Shang. Suggested by Magnus Hagander.) + Improvements: Improve stanza-create command so that it does not error when the stanza already exists. (Contributed by Cynthia Shang.) ------------------------------------------------------------------- Thu Feb 1 13:20:00 UTC 2018 - bruno@ioda-net.ch - Packaging : + Fix wrong requirement of previous version, now use correct %perl_requires, add openssl-devel for crytpo on libc + Add pgbackrest-conf.patch : a minimal working configuration file + Build pgbackrest-libc allowing crypto and checksum + Added %check section + Rework install and file section (copy of pgdg packaging and use of correct %perl macros + Disable build on i586 pgBackRest need perl with 64bit integer support. see upstream issue https://github.com/pgbackrest/pgbackrest/issues/478 + use %_localstatedir/lib as %_sharedstatedir is broken on Leap 42.x and some SLE12 ------------------------------------------------------------------- Fri Jan 26 15:19:05 UTC 2018 - joop.boonen@opensuse.org - update to 1.27 https://github.com/pgbackrest/pgbackrest/releases/tag/release%2F1.27 https://github.com/pgbackrest/pgbackrest/releases/tag/release%2F1.26 https://github.com/pgbackrest/pgbackrest/releases/tag/release%2F1.25 https://github.com/pgbackrest/pgbackrest/releases/tag/release%2F1.24 https://github.com/pgbackrest/pgbackrest/releases/tag/release%2F1.23 https://github.com/pgbackrest/pgbackrest/releases/tag/release%2F1.22 https://github.com/pgbackrest/pgbackrest/releases/tag/release%2F1.21 - Added missing requirement ------------------------------------------------------------------- Thu Aug 3 17:42:43 UTC 2017 - mrueckert@suse.de - update to 1.20 https://github.com/pgbackrest/pgbackrest/releases/tag/release%2F1.20 https://github.com/pgbackrest/pgbackrest/releases/tag/release%2F1.19 https://github.com/pgbackrest/pgbackrest/releases/tag/release%2F1.18 ------------------------------------------------------------------- Tue Mar 21 11:04:04 UTC 2017 - bruno@ioda-net.ch - update to 1.17 https://github.com/pgbackrest/pgbackrest/releases/tag/release%2F1.17 https://github.com/pgbackrest/pgbackrest/releases/tag/release%2F1.16 https://github.com/pgbackrest/pgbackrest/releases/tag/release%2F1.15 https://github.com/pgbackrest/pgbackrest/releases/tag/release%2F1.14 ------------------------------------------------------------------- Fri Feb 10 00:39:58 UTC 2017 - mrueckert@suse.de - update to 1.13 https://github.com/pgbackrest/pgbackrest/releases/tag/release%2F1.13 https://github.com/pgbackrest/pgbackrest/releases/tag/release%2F1.12 https://github.com/pgbackrest/pgbackrest/releases/tag/release%2F1.11 ------------------------------------------------------------------- Thu Nov 10 11:09:58 UTC 2016 - mrueckert@suse.de - update to 1.10 https://github.com/pgbackrest/pgbackrest/releases/tag/release%2F1.10 https://github.com/pgbackrest/pgbackrest/releases/tag/release%2F1.09 https://github.com/pgbackrest/pgbackrest/releases/tag/release%2F1.08 https://github.com/pgbackrest/pgbackrest/releases/tag/release%2F1.07 https://github.com/pgbackrest/pgbackrest/releases/tag/release%2F1.06 https://github.com/pgbackrest/pgbackrest/releases/tag/release%2F1.05 https://github.com/pgbackrest/pgbackrest/releases/tag/release%2F1.04 https://github.com/pgbackrest/pgbackrest/releases/tag/release%2F1.03 https://github.com/pgbackrest/pgbackrest/releases/tag/release%2F1.02 https://github.com/pgbackrest/pgbackrest/releases/tag/release%2F1.01 ------------------------------------------------------------------- Wed May 4 02:46:09 UTC 2016 - mrueckert@suse.de - added pgbackrest-release-1.00_datadir.patch: perl libraries installed in the normal search path we dont need this anymore. ------------------------------------------------------------------- Wed May 4 02:26:45 UTC 2016 - mrueckert@suse.de - update to 1.00