mirror of
https://github.com/pgbackrest/pgbackrest.git
synced 2024-12-12 10:04:14 +02:00
v2.33: Multi-Repository and GCS Support
Bug Fixes: * Fix option warnings breaking async archive-get/archive-push. (Reviewed by Cynthia Shang. Reported by Lev Kokotov.) * Fix memory leak in backup during archive copy. (Reviewed by Cynthia Shang. Reported by Christian ROUX, Efremov Egor.) * Fix stack overflow in cipher passphrase generation. (Reviewed by Cynthia Shang. Reported by bsiara.) * Fix repo-ls / on S3 repositories. (Reviewed by Cynthia Shang. Reported by Lesovsky Alexey.) Features: * Multiple repository support. (Contributed by Cynthia Shang, David Steele. Reviewed by Stefan Fercot, Stephen Frost.) * GCS support for repository storage. (Reviewed by Cynthia Shang.) * Add archive-header-check option. (Reviewed by Stephen Frost, Cynthia Shang. Suggested by Hans-Jürgen Schönig.) Improvements: * Include recreated system databases during selective restore. (Contributed by Stefan Fercot. Reviewed by Cynthia Shang.) * Exclude content-length from S3 signed headers. (Reviewed by Cynthia Shang. Suggested by Brian P Bockelman.) * Consolidate less commonly used repository storage options. (Reviewed by Cynthia Shang.) * Allow custom config-path default with ./configure --with-configdir. (Contributed by Michael Schout. Reviewed by David Steele.) * Log archive copy during backup. (Reviewed by Cynthia Shang, Stefan Fercot.) Documentation Improvements: * Update reference to include links to user guide examples. (Contributed by Cynthia Shang. Reviewed by David Steele.) * Update selective restore documentation with caveats. (Reviewed by Cynthia Shang, Stefan Fercot.) * Add compress-type clarification to archive-copy documentation. (Reviewed by Cynthia Shang, Stefan Fercot.) * Add compress-level defaults per compress-type value. (Contributed by Cynthia Shang. Reviewed by David Steele.) * Add note about required NFS settings being the same as PostgreSQL. (Contributed by Cynthia Shang. Reviewed by David Steele.)
This commit is contained in:
parent
a6a544c7f9
commit
a3d89143d6
@ -45,12 +45,12 @@ pgbackrest/test/test.pl --vm=none --dry-run
|
|||||||
|
|
||||||
P00 INFO: test begin - log level info
|
P00 INFO: test begin - log level info
|
||||||
P00 INFO: builds required: bin
|
P00 INFO: builds required: bin
|
||||||
--> P00 INFO: 68 tests selected
|
--> P00 INFO: 69 tests selected
|
||||||
|
|
||||||
P00 INFO: P1-T01/68 - vm=none, module=common, test=error
|
P00 INFO: P1-T01/69 - vm=none, module=common, test=error
|
||||||
[filtered 65 lines of output]
|
[filtered 66 lines of output]
|
||||||
P00 INFO: P1-T67/68 - vm=none, module=performance, test=type
|
P00 INFO: P1-T68/69 - vm=none, module=performance, test=type
|
||||||
P00 INFO: P1-T68/68 - vm=none, module=performance, test=storage
|
P00 INFO: P1-T69/69 - vm=none, module=performance, test=storage
|
||||||
--> P00 INFO: DRY RUN COMPLETED SUCCESSFULLY
|
--> P00 INFO: DRY RUN COMPLETED SUCCESSFULLY
|
||||||
```
|
```
|
||||||
|
|
||||||
|
12
README.md
12
README.md
@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
pgBackRest aims to be a reliable, easy-to-use backup and restore solution that can seamlessly scale up to the largest databases and workloads by utilizing algorithms that are optimized for database-specific requirements.
|
pgBackRest aims to be a reliable, easy-to-use backup and restore solution that can seamlessly scale up to the largest databases and workloads by utilizing algorithms that are optimized for database-specific requirements.
|
||||||
|
|
||||||
pgBackRest [v2.32](https://github.com/pgbackrest/pgbackrest/releases/tag/release/2.32) is the current stable release. Release notes are on the [Releases](http://www.pgbackrest.org/release.html) page.
|
pgBackRest [v2.33](https://github.com/pgbackrest/pgbackrest/releases/tag/release/2.33) is the current stable release. Release notes are on the [Releases](http://www.pgbackrest.org/release.html) page.
|
||||||
|
|
||||||
Documentation for v1 can be found [here](http://www.pgbackrest.org/1). No further releases are planned for v1 because v2 is backward-compatible with v1 options and repositories.
|
Documentation for v1 can be found [here](http://www.pgbackrest.org/1). No further releases are planned for v1 because v2 is backward-compatible with v1 options and repositories.
|
||||||
|
|
||||||
@ -20,6 +20,10 @@ Utilizing multiple cores for compression makes it possible to achieve 1TB/hr raw
|
|||||||
|
|
||||||
A custom protocol allows pgBackRest to backup, restore, and archive locally or remotely via SSH with minimal configuration. An interface to query PostgreSQL is also provided via the protocol layer so that remote access to PostgreSQL is never required, which enhances security.
|
A custom protocol allows pgBackRest to backup, restore, and archive locally or remotely via SSH with minimal configuration. An interface to query PostgreSQL is also provided via the protocol layer so that remote access to PostgreSQL is never required, which enhances security.
|
||||||
|
|
||||||
|
### Multiple Repositories
|
||||||
|
|
||||||
|
Multiple repositories allow, for example, a local repository with minimal retention for fast restores and a remote repository with a longer retention for redundancy and access across the enterprise.
|
||||||
|
|
||||||
### Full, Incremental, & Differential Backups
|
### Full, Incremental, & Differential Backups
|
||||||
|
|
||||||
Full, differential, and incremental backups are supported. pgBackRest is not susceptible to the time resolution issues of rsync, making differential and incremental backups completely safe.
|
Full, differential, and incremental backups are supported. pgBackRest is not susceptible to the time resolution issues of rsync, making differential and incremental backups completely safe.
|
||||||
@ -74,9 +78,9 @@ Tablespaces are fully supported and on restore tablespaces can be remapped to an
|
|||||||
|
|
||||||
File and directory links are supported for any file or directory in the PostgreSQL cluster. When restoring it is possible to restore all links to their original locations, remap some or all links, or restore some or all links as normal files or directories within the cluster directory.
|
File and directory links are supported for any file or directory in the PostgreSQL cluster. When restoring it is possible to restore all links to their original locations, remap some or all links, or restore some or all links as normal files or directories within the cluster directory.
|
||||||
|
|
||||||
### S3 and Azure Compatible Object Store Support
|
### S3, Azure, and GCS Compatible Object Store Support
|
||||||
|
|
||||||
pgBackRest repositories can be located in S3 and Azure compatible object stores to allow for virtually unlimited capacity and retention.
|
pgBackRest repositories can be located in S3, Azure, and GCS compatible object stores to allow for virtually unlimited capacity and retention.
|
||||||
|
|
||||||
### Encryption
|
### Encryption
|
||||||
|
|
||||||
@ -100,7 +104,7 @@ pgBackRest strives to be easy to configure and operate:
|
|||||||
|
|
||||||
Contributions to pgBackRest are always welcome!
|
Contributions to pgBackRest are always welcome!
|
||||||
|
|
||||||
Code fixes or new features can be submitted via pull requests. Ideas for new features and improvements to existing functionality or documentation can be [submitted as issues](https://github.com/pgbackrest/pgbackrest/issues). You may want to check the [Feature Backlog](https://github.com/pgbackrest/pgbackrest/wiki#backlog) to see if your suggestion has already been submitted.
|
Code fixes or new features can be submitted via pull requests. Ideas for new features and improvements to existing functionality or documentation can be [submitted as issues](https://github.com/pgbackrest/pgbackrest/issues). You may want to check the [Project Boards](https://github.com/pgbackrest/pgbackrest/projects) to see if your suggestion has already been submitted.
|
||||||
|
|
||||||
Bug reports should be [submitted as issues](https://github.com/pgbackrest/pgbackrest/issues). Please provide as much information as possible to aid in determining the cause of the problem.
|
Bug reports should be [submitted as issues](https://github.com/pgbackrest/pgbackrest/issues). Please provide as much information as possible to aid in determining the cause of the problem.
|
||||||
|
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
This makes the rest of the commands in the document easier to run (change to your repo path):
|
This makes the rest of the commands in the document easier to run (change to your repo path):
|
||||||
```
|
```
|
||||||
export PGBR_REPO=/backrest
|
export PGBR_REPO=~/pgbackrest
|
||||||
```
|
```
|
||||||
|
|
||||||
## Create a branch to test the release
|
## Create a branch to test the release
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -1,4 +1,499 @@
|
|||||||
[
|
[
|
||||||
|
{
|
||||||
|
"commit": "a6a544c7f9cda61af854ef980924d36c02b514bd",
|
||||||
|
"date": "2021-04-02 15:35:41 -0400",
|
||||||
|
"subject": "Fix extraneous hrnReplaceKey() calls in unit tests.",
|
||||||
|
"body": "hrnReplaceKey() was added to the TEST_ERROR*() macros in 58760486 but some calls to TEST_ERROR*() already used it. This led to the function being called twice on the same buffer which had no effect but valgrind definitely did not like.\n\nRemove extraneous calls to make valgrind happy. Since this is test code there are no implications for production."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"commit": "1615cb02610668b6eae2e3907519212eabd1ad30",
|
||||||
|
"date": "2021-03-31 10:36:22 -0400",
|
||||||
|
"subject": "Add --gen-check option to test.pl to check autogenerated code.",
|
||||||
|
"body": "Make sure that auto-generated code does not change during CI.\n\nThis is useful for catching missed code generation, especially help.auto.c."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"commit": "e89452557ee8b0b883716331e8d542310875eadd",
|
||||||
|
"date": "2021-03-31 09:41:33 -0400",
|
||||||
|
"subject": "Update to help.auto.c missed in d372dd652c9."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"commit": "d372dd652c9a01b72444998d87f0f44464676803",
|
||||||
|
"date": "2021-03-31 09:36:56 -0400",
|
||||||
|
"subject": "Update reference to include links to user guide examples.",
|
||||||
|
"body": "The command-example and command-example-list elements were removed from the documentation rendering some time ago so these tags were dead code. The tags, however, contained some examples and information that were pertinent to the command, so where possible, the information was included in the description of the command and/or the user-guide and links to the relevant user guide sections were added.\r\n\r\nNote that some commands could not be updated with user guide references since doing so would cause a cyclical reference in the user guide. These commands have an internal comment to indicate this.\r\n\r\nIn addition, some clarifications were added (e.g. expire --set option) where information was lacking."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"commit": "fead2360da5634b278dba621aa98790add120762",
|
||||||
|
"date": "2021-03-30 15:49:03 -0400",
|
||||||
|
"subject": "Link Github issues/PRs to release notes.",
|
||||||
|
"body": "This makes it easier to determine which release notes relate to issues and PRs, especially for bug fixes or user requests."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"commit": "21db7f65ef497d323b37c0aa60c89f4c7c754622",
|
||||||
|
"date": "2021-03-29 09:49:42 -0400",
|
||||||
|
"subject": "Update to help.auto.c missed in 75987621."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"commit": "75987621fab5f57d0e95b42eabd301731587c438",
|
||||||
|
"date": "2021-03-26 10:11:06 -0400",
|
||||||
|
"subject": "Add note about required NFS settings being the same as PostgreSQL."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"commit": "3e206088e79c4a73a20b8f2fda1706c6b95fa188",
|
||||||
|
"date": "2021-03-26 09:25:31 -0400",
|
||||||
|
"subject": "Add compress-level defaults per compress-type value.",
|
||||||
|
"body": "Document these defaults until they can be added to the config parser and automated."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"commit": "b6106f3c1f586b410c50c9da8dcea583cc157423",
|
||||||
|
"date": "2021-03-25 15:33:50 -0400",
|
||||||
|
"subject": "Add archive-header-check option.",
|
||||||
|
"body": "Enabled by default, this option checks the WAL header against the PostgreSQL version and system identifier to ensure that the WAL is being copied to the correct stanza. This is in addition to checking pg_control against the stanza and verifying that WAL is being copied from the same PostgreSQL data directory where pg_control is located.\r\n\r\nTherefore, disabling this check is fairly safe but should only be done when required, e.g. if the WAL is encrypted."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"commit": "01b8e2258f6efa5386665c33cb5c267c154376fb",
|
||||||
|
"date": "2021-03-25 12:54:49 -0400",
|
||||||
|
"subject": "Improve archive-push command fault tolerance.",
|
||||||
|
"body": "3b8f0ef missed some cases that could cause archive-push to fail:\r\n\r\n* Checking archive info.\r\n* Checking to see if a WAL segment already exists.\r\n\r\nThese cases are now handled so archive-push can succeed on any valid repos."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"commit": "2789d3b6206c4de9299a3bc459e04cdab793abc9",
|
||||||
|
"date": "2021-03-25 12:29:36 -0400",
|
||||||
|
"subject": "Improve info command fault tolerance.",
|
||||||
|
"body": "This improvement reduces the number of errors thrown; these errors will now be reported as a status for the stanza or repo as appropriate. Invalid option configurations are still thrown but all other errors are caught, formatted and reported. This was necessary for multiple repositories so that the command can complete gathering information from each repository and report the results rather than immediately aborting when an error occurs.\r\n\r\nTwo new error codes were introduced:\r\n6 = requested backup not found\r\n99 = other, which is used to indicate an error has occurred that requires more details to be provided\r\n\r\nA new stanza name of \"[invalid]\" was created for instances where a stanza was not specified and no stanza can be found.\r\n\r\nIf there is only one repository configured the error will move up to the stanza level with the standard error formatting of 'error (message)' where the message will be \"other\" and the details of the error will be listed on the next line(s):\r\n\r\nstanza: stanza1\r\n status: error (other)\r\n [CryptoError] unable to load info file '/var/lib/pgbackrest/repo/backup/stanza1/backup.info' or '/var/lib/pgbackrest/repo/backup/stanza1/backup.info.copy':\r\n CryptoError: cipher header invalid\r\n HINT: is or was the repo encrypted?\r\n FileMissingError: unable to open missing file '/var/lib/pgbackrest/repo/backup/stanza1/backup.info.copy' for read\r\n HINT: backup.info cannot be opened and is required to perform a backup.\r\n HINT: has a stanza-create been performed?\r\n HINT: use option --stanza if encryption settings are different for the stanza than the global\r\n cipher: aes-256-cbc\r\n\r\nIf a backup set is requested but is not found on any repo, a stanza-level status error of 'requested backup not found' is reported when there are no other errors:\r\n\r\npgbackrest info --stanza=demo --set=bogus\r\nstanza: demo\r\n status: error (requested backup not found)\r\n cipher: mixed\r\n repo1: aes-256-cbc\r\n repo2: none\r\n\r\nIf there are multiple repositories configured and a single repo is in error but the other repos are ok or have a different error:\r\n\r\npgbackrest info --stanza=demo --set=20210322-171211F\r\nstanza: demo\r\n status: mixed\r\n repo1: error\r\n [CryptoError] unable to load info file '/var/lib/pgbackrest/repo/backup/stanza1/backup.info' or '/var/lib/pgbackrest/repo/backup/stanza1/backup.info.copy':\r\n CryptoError: cipher header invalid\r\n HINT: is or was the repo encrypted?\r\n FileMissingError: unable to open missing file '/var/lib/pgbackrest/repo/backup/stanza1/backup.info.copy' for read\r\n HINT: backup.info cannot be opened and is required to perform a backup.\r\n HINT: has a stanza-create been performed?\r\n HINT: use option --stanza if encryption settings are different for the stanza than the global\r\n repo2: ok\r\n cipher: mixed\r\n repo1: aes-256-cbc\r\n repo2: none\r\n\r\n db (current)\r\n wal archive min/max (12): 000000010000000000000001/000000010000000000000003\r\n\r\n full backup: 20210322-171211F\r\n timestamp start/stop: 2021-03-22 17:12:11 / 2021-03-22 17:12:28\r\n wal start/stop: 000000010000000000000002 / 000000010000000000000002\r\n database size: 23.4MB, database backup size: 23.4MB\r\n repo2: backup set size: 2.8MB, backup size: 2.8MB\r\n database list: postgres (13359)\r\n\r\nJson output will include the repository information and any error information. If no stanzas are found, then [invalid] will be set as the name:\r\n\r\n[\r\n {\r\n \"archive\":[],\r\n \"backup\":[],\r\n \"cipher\":\"none\",\r\n \"db\":[],\r\n \"name\":\"[invalid]\",\r\n \"repo\":[\r\n {\r\n \"cipher\":\"none\",\r\n \"key\":1,\r\n \"status\":{\r\n \"code\":99,\r\n \"message\":\"[PathOpenError] unable to list file info for path '/var/lib/pgbackrest/repo2/backup': [13] Permission denied\"\r\n }\r\n }\r\n ],\r\n \"status\":{\r\n \"code\":99,\r\n \"lock\":{\"backup\":{\"held\":false}},\r\n \"message\":\"other\"\r\n }\r\n }\r\n]"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"commit": "7d7ac0e0eb63a02bbc1dd8bd8fc89c6008c740f8",
|
||||||
|
"date": "2021-03-25 07:07:16 -0400",
|
||||||
|
"subject": "Exclude content-length from S3 signed headers.",
|
||||||
|
"body": "The content-length header was being signed since it was the only header that didn't need to be and it seemed simpler just to sign it as well. Also, the S3 documentation encourages signing as many headers as possible to avoid tampering.\r\n\r\nHowever, some proxies munge this header causing authentication failure, so skip signing content-length."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"commit": "5876048675dceb76b8ddac8757ad47be8b55a817",
|
||||||
|
"date": "2021-03-23 18:20:26 -0400",
|
||||||
|
"subject": "Allow key replacements in TEST_ERROR*() macros.",
|
||||||
|
"body": "Allow standard replacements (e.g. {[path]}) in TEST_ERROR*() macros.\n\nUpdate command/archive-push unit test as an example of usage."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"commit": "b2440947fb0e585aa515fc6b1edfa0d164606a54",
|
||||||
|
"date": "2021-03-18 16:29:14 -0400",
|
||||||
|
"subject": "Fix comment type and phrasing."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"commit": "6800f9e9cd578c61799c8c0dff803fff15e53021",
|
||||||
|
"date": "2021-03-18 16:26:30 -0400",
|
||||||
|
"subject": "Changed unnecessary strNewFmt() to strNew()."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"commit": "73e94a4e9c32a3dd32e1a1e763a55eb3ea121e05",
|
||||||
|
"date": "2021-03-16 17:02:03 -0400",
|
||||||
|
"subject": "Fix comment typo."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"commit": "2016fac0d9d5ef9196d7b3058d0b854adf4472ca",
|
||||||
|
"date": "2021-03-16 13:09:34 -0400",
|
||||||
|
"subject": "Improve protocol handlers.",
|
||||||
|
"body": "Make protocol handlers have one function per command. This allows the logic of finding the handler to be in ProtocolServer, isolates each command to a function, and removes the need to test the \"not found\" condition for each handler."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"commit": "b1d945ebb774c25676155af439b0558e8582bbe5",
|
||||||
|
"date": "2021-03-16 12:42:55 -0400",
|
||||||
|
"subject": "Fix repo-ls / on S3 repositories.",
|
||||||
|
"body": "S3 returns 200 for HEAD / which indicates it is a file but does not return the expected headers which causes an error.\r\n\r\nRather than fix this for S3, just automatically return / as not existing for any storage that does not support paths.\r\n\r\nAlso add some defensive checks to prevent this from generating a segfault if it happens again."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"commit": "0eb5b22ffa02bb01e8dcf013c7b716c867d4acee",
|
||||||
|
"date": "2021-03-15 17:24:58 -0400",
|
||||||
|
"subject": "Add back performance tests lost during Github Actions switch.",
|
||||||
|
"body": "These tests do not provide code coverage but testing them regularly is important so they work when needed."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"commit": "6942ff569dd950a5146faa0bebfee69e241c4179",
|
||||||
|
"date": "2021-03-15 12:54:14 -0400",
|
||||||
|
"subject": "Include recreated system databases during selective restore.",
|
||||||
|
"body": "Some standard system databases (e.g. postgres) may be recreated by the user and have an OID that makes them look like user databases.\r\n\r\nIdentify the standard three system databases (template0, template1, postgres) and restore them non-zeroed no matter what OID they have."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"commit": "c0283eec99325cafe0b4e94750a8efc99976cccf",
|
||||||
|
"date": "2021-03-12 17:13:34 -0500",
|
||||||
|
"subject": "Explicitly free local processes after restore error unit test.",
|
||||||
|
"body": "Local processes are still running after this error and it is best to free them before ending the test."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"commit": "ec347847e5f1f38a646220bdbeb59b77d1c8e89f",
|
||||||
|
"date": "2021-03-12 15:19:32 -0500",
|
||||||
|
"subject": "Pass cipher type directly to backupFileProtocol().",
|
||||||
|
"body": "Cipher type was inferred from the presence of cipherSubPass rather than being passed explicitly in order to maintain compatibility with Perl backupFile().\n\nNow that Perl is gone it makes sense to pass it explicitly, as we do elsewhere."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"commit": "e07040c2e4a7fd290fa8c26f4297dc7a5b2b9ab1",
|
||||||
|
"date": "2021-03-12 12:54:34 -0500",
|
||||||
|
"subject": "Add HRN_STORAGE_TIME() harness macro.",
|
||||||
|
"body": "Makes updating the time of a path/file more streamlined in tests.\n\nAlso update all tests where utime() was being used directly."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"commit": "3c85a497a618aed8fe7a26463b4e281c513deb50",
|
||||||
|
"date": "2021-03-11 14:40:14 -0500",
|
||||||
|
"subject": "Add backup delta unit test.",
|
||||||
|
"body": "This test was added to take the place of another test, which turned out not to be workable.\n\nEven so, it adds coverages at little cost so it seems worth keeping."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"commit": "dc1052f1da0065bf5d8d1b8d50c93d16662dcb51",
|
||||||
|
"date": "2021-03-11 14:11:21 -0500",
|
||||||
|
"subject": "Remove extra spaces before macro continuation."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"commit": "c18abb0af70307b6ec0bfeb08f713e32d8728aaa",
|
||||||
|
"date": "2021-03-11 12:13:43 -0500",
|
||||||
|
"subject": "Update to help.auto.c missed in 9506ffae and 92d12ccb."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"commit": "92d12ccb9bd0787e30441794e2a2a4d4a4e0fe9c",
|
||||||
|
"date": "2021-03-11 10:19:50 -0500",
|
||||||
|
"subject": "Update selective restore documentation with caveats.",
|
||||||
|
"body": "Recovery may error unless --type=immediate is specified. This is because after consistency is reached PostgreSQL will flag zeroed pages as errors even for a full-page write.\r\n\r\nFor PostgreSQL ≥ 13 the ignore_invalid_pages setting may be used to ignore invalid pages. In this case it is important to check the logs after recovery to ensure that no invalid pages were reported in the selected databases."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"commit": "c862e9654aff198167efeb897957bf93c1afe453",
|
||||||
|
"date": "2021-03-11 08:22:44 -0500",
|
||||||
|
"subject": "Log archive copy during backup.",
|
||||||
|
"body": "Copying can be a fairly expensive operation so it makes sense to log it so the user gets some status during long copy operations."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"commit": "9506ffae39dd86d2c5454511026f1249097d96a2",
|
||||||
|
"date": "2021-03-11 07:53:10 -0500",
|
||||||
|
"subject": "Add compress-type clarification to archive-copy documentation.",
|
||||||
|
"body": "It is best if the archive-push and backup commands have the same compress-type (e.g. lz4) when using archive-copy. Otherwise, the WAL segments will need to be recompressed with the compress-type used by the backup, which can be fairly expensive depending on how much WAL was generated during the backup."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"commit": "28301199ebf647909ff31a0fe6df417bd44b6208",
|
||||||
|
"date": "2021-03-10 18:42:22 -0500",
|
||||||
|
"subject": "Rename FUNCTION_HARNESS_RESULT*() macros to FUNCTION_HARNESS_RETURN*().",
|
||||||
|
"body": "When the FUNCTION_*_RESULT*() macros were renamed to FUNCTION_*_RETURN_*() in the core code the test harness macros were missed.\n\nUpdate them to make the naming consistent."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"commit": "778adbf19f71ceb90071f01197bf189d59b14df0",
|
||||||
|
"date": "2021-03-10 09:15:35 -0500",
|
||||||
|
"subject": "Fix memory leak in backup during archive copy.",
|
||||||
|
"body": "There was already leakage here but when the compression transcoding was added it became a deluge.\n\nThere is some argument to be made that the filters should clean themselves up better but a temp mem context makes sense here anyway so do that."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"commit": "31c7824a4d84cbf5a0ba0938f4caa546fa67af0a",
|
||||||
|
"date": "2021-03-10 08:10:46 -0500",
|
||||||
|
"subject": "Allow stanza-* commands to be run remotely.",
|
||||||
|
"body": "The stanza-create, stanza-upgrade and stanza-delete were required to be run on the repository host. When there was only one repository allowed this was not a problem.\r\n\r\nHowever, with the introduction of multiple repository support, this becomes more of a burden to the user, therefore the stanza-create, stanza-upgrade and stanza-delete commands have been improved to allow for them to be run remotely."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"commit": "c4a3dc4e46406634fa0426d80a4fd2f1cd495285",
|
||||||
|
"date": "2021-03-10 07:44:18 -0500",
|
||||||
|
"subject": "Combine multi-repo release notes."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"commit": "dde2e2326b8b8d732ebdc6e48764d0fc381062ca",
|
||||||
|
"date": "2021-03-08 17:32:36 -0500",
|
||||||
|
"subject": "Print module type (e.g. c or h) in stack trace.",
|
||||||
|
"body": "Now that there are inline functions in .h files it is important to include the extension so the functions can be found when debugging."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"commit": "fe4ba455ed7f5c0685ce928d5dec8ca1247736ac",
|
||||||
|
"date": "2021-03-08 16:01:05 -0500",
|
||||||
|
"subject": "Move configuration definition to src/build/config/config.yaml.",
|
||||||
|
"body": "Moving to YAML allows the configuration data to be read by C programs.\n\nAlso go back to using YAML::XS since it is the only implementation that has proper boolean support."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"commit": "1dbb3bf50b94dcc9d53dfe1e5ad57a17bd6d38e8",
|
||||||
|
"date": "2021-03-08 13:31:13 -0500",
|
||||||
|
"subject": "Multiple repository support.",
|
||||||
|
"body": "Up to four repositories may be configured. A potential benefit is the ability to have a local repository for fast restores and a remote repository for redundancy.\r\n\r\nSome commands, e.g. stanza-create/stanza-update, will automatically work with all configured repositories while others, e.g. stanza-delete, will require a repository to be specified using the repo option. See the command reference for details on which commands require the repository to be specified.\r\n\r\nNote that the repo option is not required when only repo1 is configured in order to maintain backward compatibility. However, the repo option is required when a single repo is configured as, e.g. repo2. This is to prevent command breakage if a new repository is added later.\r\n\r\nThe archive-push command will always push WAL to the archive in all configured repositories but backups will need to be scheduled individually for each repository. In many cases this is desirable since backup types and retention will vary by repository. Likewise, restores must specify a repository. It is generally better to specify a repository for restores that has low latency/cost even if that means more recovery time. Only restore testing can determine which repository will be most efficient.\r\nFor single repository configurations there should be no change in behavior."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"commit": "8b87e66448a30b07c12ac00cb2c6ee2f5f29f043",
|
||||||
|
"date": "2021-03-05 17:48:53 -0500",
|
||||||
|
"subject": "Update to help.auto.c missed in e7bbdf38."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"commit": "a5f07dff0afdc776a04ca1c4554ad016168f5d63",
|
||||||
|
"date": "2021-03-05 16:27:57 -0500",
|
||||||
|
"subject": "Remove autoconf cache when configure is built."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"commit": "e7bbdf38ecae3705908a267c91c7d98adec3f927",
|
||||||
|
"date": "2021-03-05 12:57:07 -0500",
|
||||||
|
"subject": "Fix option validity by role and make sections conform to C help.",
|
||||||
|
"body": "The HTML command reference was showing some options that were not valid because it did not properly understand the new role validity system. Also, the custom section for the new repo option was not being honored.\n\nThis is a bit messy because it leads to some duplicated code in help.c but there doesn't seem to be any way to fix that with the Perl data structures as they are.\n\nThis code is being migrated to C so it doesn't seem worth messing with it too much with the risk of breaking other things."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"commit": "088662d986288843d1bfd118b724091c93df4569",
|
||||||
|
"date": "2021-03-05 12:13:51 -0500",
|
||||||
|
"subject": "GCS support for repository storage.",
|
||||||
|
"body": "GCS and GCS-compatible object stores can now be used for repository storage."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"commit": "20bb544e7a321562bf0c9061a91369bb6a12d7c1",
|
||||||
|
"date": "2021-03-05 08:41:15 -0500",
|
||||||
|
"subject": "Fix .gitignore in doc directory.",
|
||||||
|
"body": "doc/output/* was invalid and use output/ to exclude the dir as well as the files in it."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"commit": "753b60d3d51b89798ce5126f599126c77bbbec03",
|
||||||
|
"date": "2021-03-04 14:21:30 -0500",
|
||||||
|
"subject": "Add missing assert."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"commit": "95063f6812279cd59380fd72e16e67b631582bd0",
|
||||||
|
"date": "2021-03-03 09:21:06 -0500",
|
||||||
|
"subject": "Make --repo optional for remaining commands except stanza-delete.",
|
||||||
|
"body": "Some commands (repo-*, verify) still required the --repo option but it makes sense to give them the same treatment as backup and simply use the first repo when one is not specified.\n\nThis leaves stanza-delete as the only remaining command that requires --repo. This is by design to enhance safe usage."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"commit": "cb26e8c72d74cc36373a8e882a446ef0e37043ed",
|
||||||
|
"date": "2021-03-02 17:00:08 -0500",
|
||||||
|
"subject": "Update to help.auto.c missed in d1aa765a."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"commit": "d1aa765a9d5f290738c1de00c5ea99d5f6056ba5",
|
||||||
|
"date": "2021-03-02 13:51:40 -0500",
|
||||||
|
"subject": "Consolidate less commonly used repository storage options.",
|
||||||
|
"body": "The following options are renamed as specified:\r\n\r\nrepo1-azure-ca-file -> repo1-storage-ca-file\r\nrepo1-azure-ca-path -> repo1-storage-ca-path\r\nrepo1-azure-host -> repo1-storage-host\r\nrepo1-azure-port -> repo1-storage-port\r\nrepo1-azure-verify-tls -> repo1-storage-verify-tls\r\nrepo1-s3-ca-file -> repo1-storage-ca-file\r\nrepo1-s3-ca-path -> repo1-storage-ca-path\r\nrepo1-s3-host -> repo1-storage-host\r\nrepo1-s3-port -> repo1-storage-port\r\nrepo1-s3-verify-tls -> repo1-storage-verify-tls\r\n\r\nThe old option names (e.g. repo1-s3-port) will continue to work for repo1, but repo2, etc. will require the new names."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"commit": "e64999db7744cad55117f582c2cd42fb4b836f6f",
|
||||||
|
"date": "2021-03-01 13:44:47 -0500",
|
||||||
|
"subject": "Add HttpUrl object.",
|
||||||
|
"body": "Parse a URL into component parts."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"commit": "1d77db31433032041bd1cf5ff318fb3630bd4500",
|
||||||
|
"date": "2021-02-28 18:02:09 -0500",
|
||||||
|
"subject": "Add storageInfoLevelType.",
|
||||||
|
"body": "This allows the removal of the callback in the S3/Azure storage drivers that existed only to parse the size/time information.\n\nThe extra callback was required because not all callers of storage*ListInternal() want size/time info, so it was wasteful to add it to storage*ListInternal(). Now those callers can request type info only."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"commit": "54c4eb0c10758879b4bf2b96efd2a1523ecccc21",
|
||||||
|
"date": "2021-02-28 17:42:32 -0500",
|
||||||
|
"subject": "Make remote storage objects writeable.",
|
||||||
|
"body": "This wasn't exposed before because the remote protocol directly uses the storage driver, which bypasses the writeable checks.\n\nHowever, the upcoming GCS driver explicitly requests write permissions so remote operations fail when a write is required.\n\nIt would be far better if the remote itself was marked as writeable but that will require much more work."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"commit": "46922ff2e98a7c1a3c7950c18d2a86653938dcb4",
|
||||||
|
"date": "2021-02-28 17:31:23 -0500",
|
||||||
|
"subject": "Fix comments."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"commit": "0766b7e524f62c00d61d5588ef1491bbcccaf9a0",
|
||||||
|
"date": "2021-02-28 17:27:48 -0500",
|
||||||
|
"subject": "Suppress implicit-fallthrough warning.",
|
||||||
|
"body": "Warning on missing breaks in switch statements works great until it is intended.\n\nSuppressing on a case by case basis varies by compiler and version so is not very practical. Our tests should be sufficient to the task of finding missing breaks."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"commit": "a1341b4af013a757c60de0f0595e2839f2ac27e6",
|
||||||
|
"date": "2021-02-28 17:00:41 -0500",
|
||||||
|
"subject": "Make S3/Azure file missing error messages match Posix.",
|
||||||
|
"body": "The S3 driver was missed when the constants were added and then Azure was copied from S3."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"commit": "3fb6da6412fd403820ba92e5076cf3b36bda138c",
|
||||||
|
"date": "2021-02-28 16:01:38 -0500",
|
||||||
|
"subject": "Add missing linefeed."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"commit": "3b8f0ef7ae8a81ae969934fff4ad3da299454b24",
|
||||||
|
"date": "2021-02-26 16:52:59 -0500",
|
||||||
|
"subject": "Add write fault-tolerance to archive-push command.",
|
||||||
|
"body": "The archive-push command will continue to push even after it gets a write error on one or more repos. The idea is to archive to as many repos as possible even we still need to throw an error to PostgreSQL to prevent it from removing the WAL file."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"commit": "a1280c41e530500e5bbde73a900683f6db207686",
|
||||||
|
"date": "2021-02-26 15:58:11 -0500",
|
||||||
|
"subject": "Refactor archive-push command warnings to work like archive-get.",
|
||||||
|
"body": "Warnings are logged individually in the async log rather than all together."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"commit": "13dc8e68d74fa9e06180e67b7e59994767b4a34d",
|
||||||
|
"date": "2021-02-26 14:49:50 -0500",
|
||||||
|
"subject": "Make --repo optional for backup command.",
|
||||||
|
"body": "If there are multiple repos and the --repo option is not specified then backup will automatically select the highest priority repo."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"commit": "9243962b9504787c6f4af42318af6dc27094136d",
|
||||||
|
"date": "2021-02-25 12:03:44 -0500",
|
||||||
|
"subject": "Allow custom config-path default with ./configure --with-configdir.",
|
||||||
|
"body": "Add --with-confdir=DIR option to configure, which can be used to override the default configuration directory of /etc/pgbackrest.\r\n\r\nProbably in the future it would be better to just leverage ${sysconfdir} which is based on prefix, but since previously the config directory was hard coded to /etc/pgbackrest, we retain that default value by not relying on sysconfdir for now."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"commit": "0ddc0380ff408f9ed6e8bcd4d328df500681ce77",
|
||||||
|
"date": "2021-02-24 11:32:13 -0500",
|
||||||
|
"subject": "Remove restore default repo from integration tests.",
|
||||||
|
"body": "The default is now to scan all repos so update the integration tests to reflect that."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"commit": "8f03c3574b40b589b19a601a48c469da8305fc78",
|
||||||
|
"date": "2021-02-24 08:27:58 -0500",
|
||||||
|
"subject": "Reduce default file log level for integration tests.",
|
||||||
|
"body": "The real/all test could fill the ramdisk depending on which vm and pg version were selected.\n\nDebug level should be fine for most purposes and the level can be increased when needed."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"commit": "065b2ff2300a9f06a8c32621fac521451ca942bd",
|
||||||
|
"date": "2021-02-23 16:27:05 -0500",
|
||||||
|
"subject": "Refactor info command repoMin/Max."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"commit": "118d9e64fea71c2e049b52802e55f72f5793871b",
|
||||||
|
"date": "2021-02-23 16:17:27 -0500",
|
||||||
|
"subject": "Enhance restore command multi-repo support.",
|
||||||
|
"body": "The restore command automatically defaults to selecting the latest backup from a single repository. With multiple repositories configured, the restore command will now default to selecting the latest backup from the first repository where backups exist. The order in which the repositories are checked is dictated by the pgbackrest.conf order.\n\nTo select from a specific repository, the --repo option can be passed (e.g. --repo=1). The --set option can be passed if a backup other than the latest is desired."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"commit": "bec3e20b2cb061ef0413df24234ebe246ea53063",
|
||||||
|
"date": "2021-02-23 15:34:28 -0500",
|
||||||
|
"subject": "Add archive-get command multi-repo support.",
|
||||||
|
"body": "Repositories will be searched in order for the requested archive file.\n\nErrors will be reported as warnings as long as a valid copy of the archive file is found."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"commit": "e28f6f11e97a80e9c1adf1a6eaeeabbfc991914f",
|
||||||
|
"date": "2021-02-23 12:20:02 -0500",
|
||||||
|
"subject": "Expire continues if an error occurs processing a repository.",
|
||||||
|
"body": "Errors are logged to the log file rather than thrown. If, after processing all repos, one or more errors occurred, then a single error error will be thrown to indicate there were errors and the log file should be inspected.\n\nAlso update log messages to be more consistent with new patterns."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"commit": "e14036bf57866ea7c2ed4c6fdf7cc204a8f00cb7",
|
||||||
|
"date": "2021-02-23 07:33:32 -0500",
|
||||||
|
"subject": "Remove unused header files in S3 and Azure storage modules."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"commit": "6fb9de9a48630722df3b398cacb09ae964dc825d",
|
||||||
|
"date": "2021-02-23 06:35:45 -0500",
|
||||||
|
"subject": "Use list to search for WAL segments to preserve in queueNeed().",
|
||||||
|
"body": "The regular expression predates strLstFind() on sorted lists. Using the list is both simpler and faster."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"commit": "00b60e564eef13f8adba0ab867fcde2c352669d6",
|
||||||
|
"date": "2021-02-19 19:21:06 -0500",
|
||||||
|
"subject": "Add base64url encoding.",
|
||||||
|
"body": "For now only encoding is supported. Decoding is not needed and may never be."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"commit": "a1f4fd32a1790e569ccae3598cd9648bb25d13b6",
|
||||||
|
"date": "2021-02-19 19:03:42 -0500",
|
||||||
|
"subject": "Add ASSERT_MSG().",
|
||||||
|
"body": "Used when execution reaches an invalid location rather than an invalid condition."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"commit": "f6c3262861252b24e7e0cffd6d67e0c5e3291f3e",
|
||||||
|
"date": "2021-02-19 18:25:50 -0500",
|
||||||
|
"subject": "Do not expose valid/validate functions from encode module.",
|
||||||
|
"body": "These functions have never been used externally. Validation is always part of decoding so performing validation separately would be wasteful."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"commit": "edab2a0b89eabc5fd5ba6e795d938670bd5d3105",
|
||||||
|
"date": "2021-02-19 17:57:13 -0500",
|
||||||
|
"subject": "Use switch rather than if-else for encoding types.",
|
||||||
|
"body": "This is more efficient and the error case can be an assert rather than a runtime error.\n\nFor extra safety initialize destinationSize to SIZE_MAX to increase the chances of an error if the switch fails."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"commit": "abcbe0f9c1804ecb1b93b811cfb0a362c17e1b85",
|
||||||
|
"date": "2021-02-19 17:25:00 -0500",
|
||||||
|
"subject": "Combine encode module files into a single file.",
|
||||||
|
"body": "There is not enough code here to justify multiple files and declaring the functions for each encoding as static allows the compiler to inline where appropriate."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"commit": "d4856096587c72daee76f8ad8408db677a16d6dd",
|
||||||
|
"date": "2021-02-19 17:05:15 -0500",
|
||||||
|
"subject": "Add strNewEncode(), strCatEncode(), and bufNewDecode().",
|
||||||
|
"body": "These constructors wrap encodeToStr() and decodeToBin(), making them convenient and safe by eliminating the need to create intermediate buffers. Encoding/decoding is performed directly into the target String/Buffer. Sizing of the destination buffer is handled by the new functions so it doesn't have to be done at each call site."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"commit": "5b98968605d5ce73918ee84d8bb3ec83b6f21c65",
|
||||||
|
"date": "2021-02-19 10:29:29 -0500",
|
||||||
|
"subject": "Do not lower-case help summaries when first word is an acronym.",
|
||||||
|
"body": "If the second letter is capital or a digit then the word is likely an acronym so don't lower-case the first letter.\n\nFor now only the digit case is checked since there are no summaries with a capital as the second letter."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"commit": "66a4ff496afe63305cb1a437bcb52d1efc11edf7",
|
||||||
|
"date": "2021-02-19 09:05:32 -0500",
|
||||||
|
"subject": "Encode path before passing to HttpRequest.",
|
||||||
|
"body": "GCS requires mixed encoding in the path so encoding inside HttpRequest does not work.\n\nInstead, require the path to be correctly encoded before being passed to HttpRequest."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"commit": "1b4b3538cc218f66ed1e903c3caeade4b0ab1120",
|
||||||
|
"date": "2021-02-19 08:22:50 -0500",
|
||||||
|
"subject": "Rename uri to path where appropriate in HTTP and storage modules.",
|
||||||
|
"body": "The path was originally named uri due to the canonicalized path being called \"canonicalized uri\" in the S3 authentication documentation. The name got propagated everywhere from there.\n\nThis is not correct for general usage, however, so rename to path when describing the path component of an HTTP request."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"commit": "dcb79ab8fb18c63c2d56ecacd9d680b999ea044b",
|
||||||
|
"date": "2021-02-19 07:32:40 -0500",
|
||||||
|
"subject": "Decode JSON \\u escaped characters.",
|
||||||
|
"body": "ASCII may occasionally be encoded (e.g. &) to prevent ambiguity depending on where the JSON is located.\n\nOnly ASCII can be decoded. In general Unicode should not be encoded in JSON."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"commit": "c4243331de250926328045aa25c60a0c94262fa2",
|
||||||
|
"date": "2021-02-19 07:24:59 -0500",
|
||||||
|
"subject": "Silence chmod warning of empty path when removing unit test data."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"commit": "3837e61a7504b1e211e4b3a70cbe97343c1cf2e6",
|
||||||
|
"date": "2021-02-18 13:29:09 -0500",
|
||||||
|
"subject": "Fix option warnings breaking async archive-get/archive-push.",
|
||||||
|
"body": "Option warnings will cause the async process to fail because a warning is logged but stdout is closed so the process aborts.\r\n\r\nThis bug has existed for quite some time, but it was made worse by abb8ebe because now the async role can have different valid options than the default role. Previously at least a warning would be emitted before the async process died.\r\n\r\nFix this by only allowing warnings for the default role. Warnings were already suppressed for local and remote roles so the logic already exists."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"commit": "d7befd4189cbfafb8984468fc13318fa087dc812",
|
||||||
|
"date": "2021-02-16 16:28:19 -0500",
|
||||||
|
"subject": "Fix tests that ensure log levels are not set for local/remote roles.",
|
||||||
|
"body": "These tests were broken because they were being gated by resetLogLevel. So they were not setting the log levels, but not because of the role setting. Because resetLogLevel was being checked last coverage testing indicated that the tests were working.\n\nFix the resetLogLevel parameter in the tests and move resetLogLevel to be tested first so coverage reporting works as expected. This isn't perfect but it is an improvement."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"commit": "d29855bd0bf8b957fa8c06445d22e425c443a704",
|
||||||
|
"date": "2021-02-12 10:08:47 -0500",
|
||||||
|
"subject": "Fix stack overflow in cipher passphrase generation.",
|
||||||
|
"body": "The destination buffer on the stack was not large enough to contain the zero-terminating character.\r\n\r\nIncrease the buffer size and add an assertion to prevent regressions.\r\n\r\nFound on arm64 running musl libc. Other architectures and glibc do not seem to be affected though it is clearly a bug."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"commit": "920c746adb1f4db5850bc2e5fdfbb5e1b89d313f",
|
||||||
|
"date": "2021-02-10 15:54:37 -0500",
|
||||||
|
"subject": "Better exclusions for configure help.",
|
||||||
|
"body": "Exclude known unused options rather than trying to include used options. This works better when new options are added."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"commit": "6a717e032f1309ddc9dc955042b5e2ac2bc7324d",
|
||||||
|
"date": "2021-02-10 14:46:26 -0500",
|
||||||
|
"subject": "Set config path in configure script.",
|
||||||
|
"body": "This allows the config path to be modified with a parameter to the configure script, though this commit does not do that.\n\nUpdate the Perl code generator to allow literals so that defaults can be C defines rather than static strings."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"commit": "3408f1ee2ee3f774699a15de045e0afe3eaf9a26",
|
||||||
|
"date": "2021-02-10 12:03:52 -0500",
|
||||||
|
"subject": "Enhance expire command multi-repo support.",
|
||||||
|
"body": "The expire command has been enhanced to expire backups and archives from all configured repositories by default.\n\nIn addition, it will accept the --repo option to expire backups and archives only from the specified repository. Using the --repo options the --set option can also be refined further to the specified repo. If --set is provided but the --repo option has not, then all repositories will be searched and retention settings will be applied on each whether the backup set has been found or not."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"commit": "26cbebbda7b04d0b142e28b41205337717959616",
|
||||||
|
"date": "2021-02-10 09:10:51 -0500",
|
||||||
|
"subject": "Use latex sloppypar to fix monospace wrapping in PDF rendering.",
|
||||||
|
"body": "Monospaced identifiers could end up running over if latex was not able to find a place to break the line. Using sloppypar forces breaks so monospaced identifiers don't run over or get broken up.\n\nAlso add vspace to admonitions so they have some separation from the prior text."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"commit": "c7d7280fa8f2b91cca2517b1bdab4b40603b9bd6",
|
||||||
|
"date": "2021-02-08 16:36:38 -0500",
|
||||||
|
"subject": "Ensure test user has permissions before removing test files.",
|
||||||
|
"body": "This allows files to be deleted even when tests have limited the permissions."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"commit": "b2bba678a0c7de2a8a0e2c949c68c4897e986151",
|
||||||
|
"date": "2021-02-08 16:28:16 -0500",
|
||||||
|
"subject": "Add missing linefeeds."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"commit": "b9f0070d91ef79dab3ee34015418f0d3bd941089",
|
||||||
|
"date": "2021-02-08 13:44:50 -0500",
|
||||||
|
"subject": "Update config.guess and config.sub to latest versions."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"commit": "00f06065e70916f626e4a5278fed6a1f23898c4c",
|
||||||
|
"date": "2021-02-08 13:18:22 -0500",
|
||||||
|
"subject": "Begin v2.33 development."
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"commit": "aadc9e2fe6ac54783e61c1ff1660feea4d7b1da0",
|
"commit": "aadc9e2fe6ac54783e61c1ff1660feea4d7b1da0",
|
||||||
"date": "2021-02-08 09:08:16 -0500",
|
"date": "2021-02-08 09:08:16 -0500",
|
||||||
|
@ -14,23 +14,23 @@
|
|||||||
|
|
||||||
<table-row>
|
<table-row>
|
||||||
<table-cell>command/archive/get</table-cell>
|
<table-cell>command/archive/get</table-cell>
|
||||||
<table-cell>8/8 (100.0%)</table-cell>
|
<table-cell>9/9 (100.0%)</table-cell>
|
||||||
<table-cell>116/116 (100.0%)</table-cell>
|
<table-cell>184/184 (100.0%)</table-cell>
|
||||||
<table-cell>300/300 (100.0%)</table-cell>
|
<table-cell>460/460 (100.0%)</table-cell>
|
||||||
</table-row>
|
</table-row>
|
||||||
|
|
||||||
<table-row>
|
<table-row>
|
||||||
<table-cell>command/archive/push</table-cell>
|
<table-cell>command/archive/push</table-cell>
|
||||||
<table-cell>10/10 (100.0%)</table-cell>
|
<table-cell>12/12 (100.0%)</table-cell>
|
||||||
<table-cell>124/124 (100.0%)</table-cell>
|
<table-cell>130/130 (100.0%)</table-cell>
|
||||||
<table-cell>312/312 (100.0%)</table-cell>
|
<table-cell>391/391 (100.0%)</table-cell>
|
||||||
</table-row>
|
</table-row>
|
||||||
|
|
||||||
<table-row>
|
<table-row>
|
||||||
<table-cell>command/backup</table-cell>
|
<table-cell>command/backup</table-cell>
|
||||||
<table-cell>34/34 (100.0%)</table-cell>
|
<table-cell>34/34 (100.0%)</table-cell>
|
||||||
<table-cell>472/472 (100.0%)</table-cell>
|
<table-cell>474/474 (100.0%)</table-cell>
|
||||||
<table-cell>1110/1110 (100.0%)</table-cell>
|
<table-cell>1116/1116 (100.0%)</table-cell>
|
||||||
</table-row>
|
</table-row>
|
||||||
|
|
||||||
<table-row>
|
<table-row>
|
||||||
@ -50,36 +50,36 @@
|
|||||||
<table-row>
|
<table-row>
|
||||||
<table-cell>command/expire</table-cell>
|
<table-cell>command/expire</table-cell>
|
||||||
<table-cell>9/9 (100.0%)</table-cell>
|
<table-cell>9/9 (100.0%)</table-cell>
|
||||||
<table-cell>210/210 (100.0%)</table-cell>
|
<table-cell>222/222 (100.0%)</table-cell>
|
||||||
<table-cell>331/331 (100.0%)</table-cell>
|
<table-cell>354/354 (100.0%)</table-cell>
|
||||||
</table-row>
|
</table-row>
|
||||||
|
|
||||||
<table-row>
|
<table-row>
|
||||||
<table-cell>command/help</table-cell>
|
<table-cell>command/help</table-cell>
|
||||||
<table-cell>4/4 (100.0%)</table-cell>
|
<table-cell>4/4 (100.0%)</table-cell>
|
||||||
<table-cell>124/124 (100.0%)</table-cell>
|
<table-cell>130/130 (100.0%)</table-cell>
|
||||||
<table-cell>199/199 (100.0%)</table-cell>
|
<table-cell>202/202 (100.0%)</table-cell>
|
||||||
</table-row>
|
</table-row>
|
||||||
|
|
||||||
<table-row>
|
<table-row>
|
||||||
<table-cell>command/info</table-cell>
|
<table-cell>command/info</table-cell>
|
||||||
<table-cell>11/11 (100.0%)</table-cell>
|
<table-cell>12/12 (100.0%)</table-cell>
|
||||||
<table-cell>270/270 (100.0%)</table-cell>
|
<table-cell>298/298 (100.0%)</table-cell>
|
||||||
<table-cell>586/586 (100.0%)</table-cell>
|
<table-cell>649/649 (100.0%)</table-cell>
|
||||||
</table-row>
|
</table-row>
|
||||||
|
|
||||||
<table-row>
|
<table-row>
|
||||||
<table-cell>command/local</table-cell>
|
<table-cell>command/local</table-cell>
|
||||||
<table-cell>1/1 (100.0%)</table-cell>
|
<table-cell>1/1 (100.0%)</table-cell>
|
||||||
<table-cell>---</table-cell>
|
<table-cell>---</table-cell>
|
||||||
<table-cell>18/18 (100.0%)</table-cell>
|
<table-cell>14/14 (100.0%)</table-cell>
|
||||||
</table-row>
|
</table-row>
|
||||||
|
|
||||||
<table-row>
|
<table-row>
|
||||||
<table-cell>command/remote</table-cell>
|
<table-cell>command/remote</table-cell>
|
||||||
<table-cell>1/1 (100.0%)</table-cell>
|
<table-cell>1/1 (100.0%)</table-cell>
|
||||||
<table-cell>6/6 (100.0%)</table-cell>
|
<table-cell>6/6 (100.0%)</table-cell>
|
||||||
<table-cell>28/28 (100.0%)</table-cell>
|
<table-cell>25/25 (100.0%)</table-cell>
|
||||||
</table-row>
|
</table-row>
|
||||||
|
|
||||||
<table-row>
|
<table-row>
|
||||||
@ -91,30 +91,30 @@
|
|||||||
|
|
||||||
<table-row>
|
<table-row>
|
||||||
<table-cell>command/restore</table-cell>
|
<table-cell>command/restore</table-cell>
|
||||||
<table-cell>26/26 (100.0%)</table-cell>
|
<table-cell>27/27 (100.0%)</table-cell>
|
||||||
<table-cell>454/454 (100.0%)</table-cell>
|
<table-cell>478/478 (100.0%)</table-cell>
|
||||||
<table-cell>937/937 (100.0%)</table-cell>
|
<table-cell>984/984 (100.0%)</table-cell>
|
||||||
</table-row>
|
</table-row>
|
||||||
|
|
||||||
<table-row>
|
<table-row>
|
||||||
<table-cell>command/stanza</table-cell>
|
<table-cell>command/stanza</table-cell>
|
||||||
<table-cell>7/7 (100.0%)</table-cell>
|
<table-cell>7/7 (100.0%)</table-cell>
|
||||||
<table-cell>112/112 (100.0%)</table-cell>
|
<table-cell>108/108 (100.0%)</table-cell>
|
||||||
<table-cell>161/161 (100.0%)</table-cell>
|
<table-cell>155/155 (100.0%)</table-cell>
|
||||||
</table-row>
|
</table-row>
|
||||||
|
|
||||||
<table-row>
|
<table-row>
|
||||||
<table-cell>command/verify</table-cell>
|
<table-cell>command/verify</table-cell>
|
||||||
<table-cell>20/20 (100.0%)</table-cell>
|
<table-cell>20/20 (100.0%)</table-cell>
|
||||||
<table-cell>270/270 (100.0%)</table-cell>
|
<table-cell>268/268 (100.0%)</table-cell>
|
||||||
<table-cell>702/702 (100.0%)</table-cell>
|
<table-cell>700/700 (100.0%)</table-cell>
|
||||||
</table-row>
|
</table-row>
|
||||||
|
|
||||||
<table-row>
|
<table-row>
|
||||||
<table-cell>common</table-cell>
|
<table-cell>common</table-cell>
|
||||||
<table-cell>173/173 (100.0%)</table-cell>
|
<table-cell>178/178 (100.0%)</table-cell>
|
||||||
<table-cell>556/556 (100.0%)</table-cell>
|
<table-cell>584/584 (100.0%)</table-cell>
|
||||||
<table-cell>1769/1769 (100.0%)</table-cell>
|
<table-cell>1883/1883 (100.0%)</table-cell>
|
||||||
</table-row>
|
</table-row>
|
||||||
|
|
||||||
<table-row>
|
<table-row>
|
||||||
@ -159,13 +159,6 @@
|
|||||||
<table-cell>467/467 (100.0%)</table-cell>
|
<table-cell>467/467 (100.0%)</table-cell>
|
||||||
</table-row>
|
</table-row>
|
||||||
|
|
||||||
<table-row>
|
|
||||||
<table-cell>common/encode</table-cell>
|
|
||||||
<table-cell>5/5 (100.0%)</table-cell>
|
|
||||||
<table-cell>32/32 (100.0%)</table-cell>
|
|
||||||
<table-cell>81/81 (100.0%)</table-cell>
|
|
||||||
</table-row>
|
|
||||||
|
|
||||||
<table-row>
|
<table-row>
|
||||||
<table-cell>common/io</table-cell>
|
<table-cell>common/io</table-cell>
|
||||||
<table-cell>67/67 (100.0%)</table-cell>
|
<table-cell>67/67 (100.0%)</table-cell>
|
||||||
@ -182,9 +175,9 @@
|
|||||||
|
|
||||||
<table-row>
|
<table-row>
|
||||||
<table-cell>common/io/http</table-cell>
|
<table-cell>common/io/http</table-cell>
|
||||||
<table-cell>62/62 (100.0%)</table-cell>
|
<table-cell>66/66 (100.0%)</table-cell>
|
||||||
<table-cell>212/212 (100.0%)</table-cell>
|
<table-cell>240/240 (100.0%)</table-cell>
|
||||||
<table-cell>653/653 (100.0%)</table-cell>
|
<table-cell>724/724 (100.0%)</table-cell>
|
||||||
</table-row>
|
</table-row>
|
||||||
|
|
||||||
<table-row>
|
<table-row>
|
||||||
@ -203,30 +196,30 @@
|
|||||||
|
|
||||||
<table-row>
|
<table-row>
|
||||||
<table-cell>common/type</table-cell>
|
<table-cell>common/type</table-cell>
|
||||||
<table-cell>295/295 (100.0%)</table-cell>
|
<table-cell>298/298 (100.0%)</table-cell>
|
||||||
<table-cell>732/732 (100.0%)</table-cell>
|
<table-cell>734/734 (100.0%)</table-cell>
|
||||||
<table-cell>3502/3502 (100.0%)</table-cell>
|
<table-cell>3548/3548 (100.0%)</table-cell>
|
||||||
</table-row>
|
</table-row>
|
||||||
|
|
||||||
<table-row>
|
<table-row>
|
||||||
<table-cell>config</table-cell>
|
<table-cell>config</table-cell>
|
||||||
<table-cell>91/91 (100.0%)</table-cell>
|
<table-cell>91/91 (100.0%)</table-cell>
|
||||||
<table-cell>752/752 (100.0%)</table-cell>
|
<table-cell>740/740 (100.0%)</table-cell>
|
||||||
<table-cell>1480/1480 (100.0%)</table-cell>
|
<table-cell>1475/1475 (100.0%)</table-cell>
|
||||||
</table-row>
|
</table-row>
|
||||||
|
|
||||||
<table-row>
|
<table-row>
|
||||||
<table-cell>db</table-cell>
|
<table-cell>db</table-cell>
|
||||||
<table-cell>27/27 (100.0%)</table-cell>
|
<table-cell>29/29 (100.0%)</table-cell>
|
||||||
<table-cell>102/102 (100.0%)</table-cell>
|
<table-cell>94/94 (100.0%)</table-cell>
|
||||||
<table-cell>369/369 (100.0%)</table-cell>
|
<table-cell>389/389 (100.0%)</table-cell>
|
||||||
</table-row>
|
</table-row>
|
||||||
|
|
||||||
<table-row>
|
<table-row>
|
||||||
<table-cell>info</table-cell>
|
<table-cell>info</table-cell>
|
||||||
<table-cell>122/122 (100.0%)</table-cell>
|
<table-cell>122/122 (100.0%)</table-cell>
|
||||||
<table-cell>752/752 (100.0%)</table-cell>
|
<table-cell>752/752 (100.0%)</table-cell>
|
||||||
<table-cell>2396/2396 (100.0%)</table-cell>
|
<table-cell>2400/2400 (100.0%)</table-cell>
|
||||||
</table-row>
|
</table-row>
|
||||||
|
|
||||||
<table-row>
|
<table-row>
|
||||||
@ -245,23 +238,23 @@
|
|||||||
|
|
||||||
<table-row>
|
<table-row>
|
||||||
<table-cell>protocol</table-cell>
|
<table-cell>protocol</table-cell>
|
||||||
<table-cell>70/70 (100.0%)</table-cell>
|
<table-cell>69/69 (100.0%)</table-cell>
|
||||||
<table-cell>204/204 (100.0%)</table-cell>
|
<table-cell>204/204 (100.0%)</table-cell>
|
||||||
<table-cell>842/842 (100.0%)</table-cell>
|
<table-cell>838/838 (100.0%)</table-cell>
|
||||||
</table-row>
|
</table-row>
|
||||||
|
|
||||||
<table-row>
|
<table-row>
|
||||||
<table-cell>storage</table-cell>
|
<table-cell>storage</table-cell>
|
||||||
<table-cell>70/70 (100.0%)</table-cell>
|
<table-cell>70/70 (100.0%)</table-cell>
|
||||||
<table-cell>216/216 (100.0%)</table-cell>
|
<table-cell>222/222 (100.0%)</table-cell>
|
||||||
<table-cell>817/817 (100.0%)</table-cell>
|
<table-cell>825/825 (100.0%)</table-cell>
|
||||||
</table-row>
|
</table-row>
|
||||||
|
|
||||||
<table-row>
|
<table-row>
|
||||||
<table-cell>storage/azure</table-cell>
|
<table-cell>storage/azure</table-cell>
|
||||||
<table-cell>24/24 (100.0%)</table-cell>
|
<table-cell>23/23 (100.0%)</table-cell>
|
||||||
<table-cell>100/100 (100.0%)</table-cell>
|
<table-cell>100/100 (100.0%)</table-cell>
|
||||||
<table-cell>499/499 (100.0%)</table-cell>
|
<table-cell>481/481 (100.0%)</table-cell>
|
||||||
</table-row>
|
</table-row>
|
||||||
|
|
||||||
<table-row>
|
<table-row>
|
||||||
@ -271,30 +264,37 @@
|
|||||||
<table-cell>9/9 (100.0%)</table-cell>
|
<table-cell>9/9 (100.0%)</table-cell>
|
||||||
</table-row>
|
</table-row>
|
||||||
|
|
||||||
|
<table-row>
|
||||||
|
<table-cell>storage/gcs</table-cell>
|
||||||
|
<table-cell>28/28 (100.0%)</table-cell>
|
||||||
|
<table-cell>112/112 (100.0%)</table-cell>
|
||||||
|
<table-cell>594/594 (100.0%)</table-cell>
|
||||||
|
</table-row>
|
||||||
|
|
||||||
<table-row>
|
<table-row>
|
||||||
<table-cell>storage/posix</table-cell>
|
<table-cell>storage/posix</table-cell>
|
||||||
<table-cell>26/26 (100.0%)</table-cell>
|
<table-cell>26/26 (100.0%)</table-cell>
|
||||||
<table-cell>149/150 (99.33%)</table-cell>
|
<table-cell>153/154 (99.35%)</table-cell>
|
||||||
<table-cell>461/461 (100.0%)</table-cell>
|
<table-cell>461/461 (100.0%)</table-cell>
|
||||||
</table-row>
|
</table-row>
|
||||||
|
|
||||||
<table-row>
|
<table-row>
|
||||||
<table-cell>storage/remote</table-cell>
|
<table-cell>storage/remote</table-cell>
|
||||||
<table-cell>24/24 (100.0%)</table-cell>
|
<table-cell>32/32 (100.0%)</table-cell>
|
||||||
<table-cell>104/104 (100.0%)</table-cell>
|
<table-cell>88/88 (100.0%)</table-cell>
|
||||||
<table-cell>534/534 (100.0%)</table-cell>
|
<table-cell>623/623 (100.0%)</table-cell>
|
||||||
</table-row>
|
</table-row>
|
||||||
|
|
||||||
<table-row>
|
<table-row>
|
||||||
<table-cell>storage/s3</table-cell>
|
<table-cell>storage/s3</table-cell>
|
||||||
<table-cell>27/27 (100.0%)</table-cell>
|
<table-cell>26/26 (100.0%)</table-cell>
|
||||||
<table-cell>120/120 (100.0%)</table-cell>
|
<table-cell>124/124 (100.0%)</table-cell>
|
||||||
<table-cell>591/591 (100.0%)</table-cell>
|
<table-cell>579/579 (100.0%)</table-cell>
|
||||||
</table-row>
|
</table-row>
|
||||||
|
|
||||||
<table-row>
|
<table-row>
|
||||||
<table-cell>TOTAL</table-cell>
|
<table-cell>TOTAL</table-cell>
|
||||||
<table-cell>1459/1459 (100.0%)</table-cell>
|
<table-cell>1506/1506 (100.0%)</table-cell>
|
||||||
<table-cell>7171/7172 (99.99%)</table-cell>
|
<table-cell>7427/7428 (99.99%)</table-cell>
|
||||||
<table-cell>22582/22582 (100.0%)</table-cell>
|
<table-cell>23774/23774 (100.0%)</table-cell>
|
||||||
</table-row>
|
</table-row>
|
@ -12,7 +12,7 @@
|
|||||||
</intro>
|
</intro>
|
||||||
|
|
||||||
<release-list>
|
<release-list>
|
||||||
<release date="XXXX-XX-XX" version="2.33dev" title="UNDER DEVELOPMENT">
|
<release date="2021-05-05" version="2.33" title="Multi-Repository and GCS Support">
|
||||||
<release-core-list>
|
<release-core-list>
|
||||||
<release-bug-list>
|
<release-bug-list>
|
||||||
<release-item>
|
<release-item>
|
||||||
|
35
src/build/aclocal.m4
vendored
35
src/build/aclocal.m4
vendored
@ -1,6 +1,6 @@
|
|||||||
# generated automatically by aclocal 1.15.1 -*- Autoconf -*-
|
# generated automatically by aclocal 1.16.1 -*- Autoconf -*-
|
||||||
|
|
||||||
# Copyright (C) 1996-2017 Free Software Foundation, Inc.
|
# Copyright (C) 1996-2018 Free Software Foundation, Inc.
|
||||||
|
|
||||||
# This file is free software; the Free Software Foundation
|
# This file is free software; the Free Software Foundation
|
||||||
# gives unlimited permission to copy and/or distribute it,
|
# gives unlimited permission to copy and/or distribute it,
|
||||||
@ -43,33 +43,12 @@ m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun
|
|||||||
# Copyright (c) 2008 Guido U. Draheim <guidod@gmx.de>
|
# Copyright (c) 2008 Guido U. Draheim <guidod@gmx.de>
|
||||||
# Copyright (c) 2011 Maarten Bosmans <mkbosmans@gmail.com>
|
# Copyright (c) 2011 Maarten Bosmans <mkbosmans@gmail.com>
|
||||||
#
|
#
|
||||||
# This program is free software: you can redistribute it and/or modify it
|
# Copying and distribution of this file, with or without modification, are
|
||||||
# under the terms of the GNU General Public License as published by the
|
# permitted in any medium without royalty provided the copyright notice
|
||||||
# Free Software Foundation, either version 3 of the License, or (at your
|
# and this notice are preserved. This file is offered as-is, without any
|
||||||
# option) any later version.
|
# warranty.
|
||||||
#
|
|
||||||
# This program is distributed in the hope that it will be useful, but
|
|
||||||
# WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
|
|
||||||
# Public License for more details.
|
|
||||||
#
|
|
||||||
# You should have received a copy of the GNU General Public License along
|
|
||||||
# with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
#
|
|
||||||
# As a special exception, the respective Autoconf Macro's copyright owner
|
|
||||||
# gives unlimited permission to copy, distribute and modify the configure
|
|
||||||
# scripts that are the output of Autoconf when processing the Macro. You
|
|
||||||
# need not follow the terms of the GNU General Public License when using
|
|
||||||
# or distributing such scripts, even though portions of the text of the
|
|
||||||
# Macro appear in them. The GNU General Public License (GPL) does govern
|
|
||||||
# all other use of the material that constitutes the Autoconf Macro.
|
|
||||||
#
|
|
||||||
# This special exception to the GPL applies to versions of the Autoconf
|
|
||||||
# Macro released by the Autoconf Archive. When you make and distribute a
|
|
||||||
# modified version of the Autoconf Macro, you may extend this special
|
|
||||||
# exception to the GPL to apply to your modified version as well.
|
|
||||||
|
|
||||||
#serial 5
|
#serial 6
|
||||||
|
|
||||||
AC_DEFUN([AX_CHECK_COMPILE_FLAG],
|
AC_DEFUN([AX_CHECK_COMPILE_FLAG],
|
||||||
[AC_PREREQ(2.64)dnl for _AC_LANG_PREFIX and AS_VAR_IF
|
[AC_PREREQ(2.64)dnl for _AC_LANG_PREFIX and AS_VAR_IF
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
# Initialize configuration
|
# Initialize configuration
|
||||||
# ----------------------------------------------------------------------------------------------------------------------------------
|
# ----------------------------------------------------------------------------------------------------------------------------------
|
||||||
AC_PREREQ([2.69])
|
AC_PREREQ([2.69])
|
||||||
AC_INIT([pgBackRest], [2.33dev])
|
AC_INIT([pgBackRest], [2.33])
|
||||||
AC_CONFIG_SRCDIR([version.h])
|
AC_CONFIG_SRCDIR([version.h])
|
||||||
AC_CONFIG_AUX_DIR(build)
|
AC_CONFIG_AUX_DIR(build)
|
||||||
|
|
||||||
|
20
src/configure
vendored
20
src/configure
vendored
@ -1,6 +1,6 @@
|
|||||||
#! /bin/sh
|
#! /bin/sh
|
||||||
# Guess values for system-dependent variables and create Makefiles.
|
# Guess values for system-dependent variables and create Makefiles.
|
||||||
# Generated by GNU Autoconf 2.69 for pgBackRest 2.33dev.
|
# Generated by GNU Autoconf 2.69 for pgBackRest 2.33.
|
||||||
#
|
#
|
||||||
#
|
#
|
||||||
# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
|
# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
|
||||||
@ -577,8 +577,8 @@ MAKEFLAGS=
|
|||||||
# Identity of this package.
|
# Identity of this package.
|
||||||
PACKAGE_NAME='pgBackRest'
|
PACKAGE_NAME='pgBackRest'
|
||||||
PACKAGE_TARNAME='pgbackrest'
|
PACKAGE_TARNAME='pgbackrest'
|
||||||
PACKAGE_VERSION='2.33dev'
|
PACKAGE_VERSION='2.33'
|
||||||
PACKAGE_STRING='pgBackRest 2.33dev'
|
PACKAGE_STRING='pgBackRest 2.33'
|
||||||
PACKAGE_BUGREPORT=''
|
PACKAGE_BUGREPORT=''
|
||||||
PACKAGE_URL=''
|
PACKAGE_URL=''
|
||||||
|
|
||||||
@ -1251,7 +1251,7 @@ if test "$ac_init_help" = "long"; then
|
|||||||
# Omit some internal or obsolete options to make the list less imposing.
|
# Omit some internal or obsolete options to make the list less imposing.
|
||||||
# This message is too long to be a string in the A/UX 3.1 sh.
|
# This message is too long to be a string in the A/UX 3.1 sh.
|
||||||
cat <<_ACEOF
|
cat <<_ACEOF
|
||||||
\`configure' configures pgBackRest 2.33dev to adapt to many kinds of systems.
|
\`configure' configures pgBackRest 2.33 to adapt to many kinds of systems.
|
||||||
|
|
||||||
Usage: $0 [OPTION]... [VAR=VALUE]...
|
Usage: $0 [OPTION]... [VAR=VALUE]...
|
||||||
|
|
||||||
@ -1298,7 +1298,7 @@ fi
|
|||||||
|
|
||||||
if test -n "$ac_init_help"; then
|
if test -n "$ac_init_help"; then
|
||||||
case $ac_init_help in
|
case $ac_init_help in
|
||||||
short | recursive ) echo "Configuration of pgBackRest 2.33dev:";;
|
short | recursive ) echo "Configuration of pgBackRest 2.33:";;
|
||||||
esac
|
esac
|
||||||
cat <<\_ACEOF
|
cat <<\_ACEOF
|
||||||
|
|
||||||
@ -1393,7 +1393,7 @@ fi
|
|||||||
test -n "$ac_init_help" && exit $ac_status
|
test -n "$ac_init_help" && exit $ac_status
|
||||||
if $ac_init_version; then
|
if $ac_init_version; then
|
||||||
cat <<\_ACEOF
|
cat <<\_ACEOF
|
||||||
pgBackRest configure 2.33dev
|
pgBackRest configure 2.33
|
||||||
generated by GNU Autoconf 2.69
|
generated by GNU Autoconf 2.69
|
||||||
|
|
||||||
Copyright (C) 2012 Free Software Foundation, Inc.
|
Copyright (C) 2012 Free Software Foundation, Inc.
|
||||||
@ -1691,7 +1691,7 @@ cat >config.log <<_ACEOF
|
|||||||
This file contains any messages produced by compilers while
|
This file contains any messages produced by compilers while
|
||||||
running configure, to aid debugging if configure makes a mistake.
|
running configure, to aid debugging if configure makes a mistake.
|
||||||
|
|
||||||
It was created by pgBackRest $as_me 2.33dev, which was
|
It was created by pgBackRest $as_me 2.33, which was
|
||||||
generated by GNU Autoconf 2.69. Invocation command line was
|
generated by GNU Autoconf 2.69. Invocation command line was
|
||||||
|
|
||||||
$ $0 $@
|
$ $0 $@
|
||||||
@ -4843,7 +4843,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
|
|||||||
# report actual input values of CONFIG_FILES etc. instead of their
|
# report actual input values of CONFIG_FILES etc. instead of their
|
||||||
# values after options handling.
|
# values after options handling.
|
||||||
ac_log="
|
ac_log="
|
||||||
This file was extended by pgBackRest $as_me 2.33dev, which was
|
This file was extended by pgBackRest $as_me 2.33, which was
|
||||||
generated by GNU Autoconf 2.69. Invocation command line was
|
generated by GNU Autoconf 2.69. Invocation command line was
|
||||||
|
|
||||||
CONFIG_FILES = $CONFIG_FILES
|
CONFIG_FILES = $CONFIG_FILES
|
||||||
@ -4905,7 +4905,7 @@ _ACEOF
|
|||||||
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
|
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
|
||||||
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
|
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
|
||||||
ac_cs_version="\\
|
ac_cs_version="\\
|
||||||
pgBackRest config.status 2.33dev
|
pgBackRest config.status 2.33
|
||||||
configured by $0, generated by GNU Autoconf 2.69,
|
configured by $0, generated by GNU Autoconf 2.69,
|
||||||
with options \\"\$ac_cs_config\\"
|
with options \\"\$ac_cs_config\\"
|
||||||
|
|
||||||
@ -5609,4 +5609,4 @@ if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then
|
|||||||
$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;}
|
$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;}
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Generated from src/build/configure.ac sha1 61f1b4aec11fa131a5fc0da0e5a34dcc75ac0b82
|
# Generated from src/build/configure.ac sha1 d2ddef413c8ce65fcc9eaa929dd51c58747f25d4
|
||||||
|
@ -33,6 +33,6 @@ repository will be invalid unless migration functions are written.
|
|||||||
/***********************************************************************************************************************************
|
/***********************************************************************************************************************************
|
||||||
Software version
|
Software version
|
||||||
***********************************************************************************************************************************/
|
***********************************************************************************************************************************/
|
||||||
#define PROJECT_VERSION "2.33dev"
|
#define PROJECT_VERSION "2.33"
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -203,6 +203,10 @@ src/build/config.sub:
|
|||||||
class: build
|
class: build
|
||||||
type: make
|
type: make
|
||||||
|
|
||||||
|
src/build/config/config.yaml:
|
||||||
|
class: build
|
||||||
|
type: yaml
|
||||||
|
|
||||||
src/build/configure.ac:
|
src/build/configure.ac:
|
||||||
class: build
|
class: build
|
||||||
type: make
|
type: make
|
||||||
@ -675,14 +679,6 @@ src/common/encode.h:
|
|||||||
class: core
|
class: core
|
||||||
type: c/h
|
type: c/h
|
||||||
|
|
||||||
src/common/encode/base64.c:
|
|
||||||
class: core
|
|
||||||
type: c
|
|
||||||
|
|
||||||
src/common/encode/base64.h:
|
|
||||||
class: core
|
|
||||||
type: c/h
|
|
||||||
|
|
||||||
src/common/error.auto.c:
|
src/common/error.auto.c:
|
||||||
class: core/auto
|
class: core/auto
|
||||||
type: c
|
type: c
|
||||||
@ -883,6 +879,14 @@ src/common/io/http/session.h:
|
|||||||
class: core
|
class: core
|
||||||
type: c/h
|
type: c/h
|
||||||
|
|
||||||
|
src/common/io/http/url.c:
|
||||||
|
class: core
|
||||||
|
type: c
|
||||||
|
|
||||||
|
src/common/io/http/url.h:
|
||||||
|
class: core
|
||||||
|
type: c/h
|
||||||
|
|
||||||
src/common/io/io.c:
|
src/common/io/io.c:
|
||||||
class: core
|
class: core
|
||||||
type: c
|
type: c
|
||||||
@ -1467,6 +1471,34 @@ src/storage/cifs/storage.h:
|
|||||||
class: core
|
class: core
|
||||||
type: c/h
|
type: c/h
|
||||||
|
|
||||||
|
src/storage/gcs/read.c:
|
||||||
|
class: core
|
||||||
|
type: c
|
||||||
|
|
||||||
|
src/storage/gcs/read.h:
|
||||||
|
class: core
|
||||||
|
type: c/h
|
||||||
|
|
||||||
|
src/storage/gcs/storage.c:
|
||||||
|
class: core
|
||||||
|
type: c
|
||||||
|
|
||||||
|
src/storage/gcs/storage.h:
|
||||||
|
class: core
|
||||||
|
type: c/h
|
||||||
|
|
||||||
|
src/storage/gcs/storage.intern.h:
|
||||||
|
class: core
|
||||||
|
type: c/h
|
||||||
|
|
||||||
|
src/storage/gcs/write.c:
|
||||||
|
class: core
|
||||||
|
type: c
|
||||||
|
|
||||||
|
src/storage/gcs/write.h:
|
||||||
|
class: core
|
||||||
|
type: c/h
|
||||||
|
|
||||||
src/storage/helper.c:
|
src/storage/helper.c:
|
||||||
class: core
|
class: core
|
||||||
type: c
|
type: c
|
||||||
@ -1767,6 +1799,10 @@ test/lib/pgBackRestTest/Env/Host/HostDbTest.pm:
|
|||||||
class: test/harness
|
class: test/harness
|
||||||
type: perl
|
type: perl
|
||||||
|
|
||||||
|
test/lib/pgBackRestTest/Env/Host/HostGcsTest.pm:
|
||||||
|
class: test/harness
|
||||||
|
type: perl
|
||||||
|
|
||||||
test/lib/pgBackRestTest/Env/Host/HostS3Test.pm:
|
test/lib/pgBackRestTest/Env/Host/HostS3Test.pm:
|
||||||
class: test/harness
|
class: test/harness
|
||||||
type: perl
|
type: perl
|
||||||
@ -2167,6 +2203,10 @@ test/src/module/storage/cifsTest.c:
|
|||||||
class: test/module
|
class: test/module
|
||||||
type: c
|
type: c
|
||||||
|
|
||||||
|
test/src/module/storage/gcsTest.c:
|
||||||
|
class: test/module
|
||||||
|
type: c
|
||||||
|
|
||||||
test/src/module/storage/posixTest.c:
|
test/src/module/storage/posixTest.c:
|
||||||
class: test/module
|
class: test/module
|
||||||
type: c
|
type: c
|
||||||
|
@ -64,7 +64,7 @@ sub codeCountScan
|
|||||||
$strFile =~ '^test/expect/' ||
|
$strFile =~ '^test/expect/' ||
|
||||||
$strFile =~ '^test/patch/' ||
|
$strFile =~ '^test/patch/' ||
|
||||||
$strFile =~ '^test/result/' ||
|
$strFile =~ '^test/result/' ||
|
||||||
$strFile eq 'test/scratch.txt' ||
|
$strFile =~ '^test/scratch' ||
|
||||||
$strFile =~ '^test/src/valgrind\.suppress\.' ||
|
$strFile =~ '^test/src/valgrind\.suppress\.' ||
|
||||||
$strFile eq 'test/src/lcov.conf');
|
$strFile eq 'test/src/lcov.conf');
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user