# # # patch "database.cc" # from [e2ae990cfbcbc57de672bfcfe305b1b92597fcf2] # to [13691f398e5cb731474f97753a84021dc89ae8ba] # # patch "monotone.cc" # from [93299a42a7f45751a401d60f9a5a1014606a52a1] # to [c35e567ae5754fe9b77cfe09d9ddc94008df1fe2] # # patch "pcrewrap.hh" # from [2cc9a12c8aa86c27d982ab2b11d6a11455afa222] # to [bcb9af0ef76ffbf353ee409ba9f071971584e157] # # patch "schema_migration.cc" # from [82c601471af7f3cc6c576c879b523268eadc76b1] # to [454dc2da8e318381c5bfb84ce855d020a4880cfa] # ============================================================ --- database.cc e2ae990cfbcbc57de672bfcfe305b1b92597fcf2 +++ database.cc 13691f398e5cb731474f97753a84021dc89ae8ba @@ -404,18 +404,23 @@ sqlite3_hex_fn(sqlite3_context *f, int n } string decoded; - // This operation may throw informative_failure. We must intercept that + // This operation may throw (un)recoverable_failure. We must intercept that // and turn it into a call to sqlite3_result_error, or rollback will fail. try { decoded = encode_hexenc(reinterpret_cast( - sqlite3_value_text(args[0]))); + sqlite3_value_text(args[0])), origin::database); } - catch (informative_failure & e) + catch (recoverable_failure & e) { sqlite3_result_error(f, e.what(), -1); return; } + catch (unrecoverable_failure & e) + { + sqlite3_result_error(f, e.what(), -1); + return; + } sqlite3_result_blob(f, decoded.data(), decoded.size(), SQLITE_TRANSIENT); } ============================================================ --- monotone.cc 93299a42a7f45751a401d60f9a5a1014606a52a1 +++ monotone.cc c35e567ae5754fe9b77cfe09d9ddc94008df1fe2 @@ -206,10 +206,10 @@ cpp_main(int argc, char ** argv) // check the SQLite library version we got dynamically linked against. #ifdef SUPPORT_SQLITE_BEFORE_3003014 - N(sqlite3_libversion_number() >= 3003008, + E(sqlite3_libversion_number() >= 3003008, origin::system, F("This monotone binary requires at least SQLite 3.3.8 to run.")); #else - N(sqlite3_libversion_number() >= 3003014, + E(sqlite3_libversion_number() >= 3003014, origin::system, F("This monotone binary requires at least SQLite 3.3.14 to run.")); #endif @@ -220,27 +220,27 @@ cpp_main(int argc, char ** argv) // Botan 1.7.14 has an incompatible API change, which got reverted // again in 1.7.15. Thus we do not care to support 1.7.14. - N(linked_botan_version != BOTAN_VERSION_CODE_FOR(1,7,14), + E(linked_botan_version != BOTAN_VERSION_CODE_FOR(1,7,14), origin::system, F("Monotone does not support Botan 1.7.14.")); #if BOTAN_VERSION_CODE <= BOTAN_VERSION_CODE_FOR(1,7,6) - N(linked_botan_version >= BOTAN_VERSION_CODE_FOR(1,6,3), + E(linked_botan_version >= BOTAN_VERSION_CODE_FOR(1,6,3), origin::system, F("This monotone binary requires Botan 1.6.3 or newer.")); - N(linked_botan_version <= BOTAN_VERSION_CODE_FOR(1,7,6), + E(linked_botan_version <= BOTAN_VERSION_CODE_FOR(1,7,6), origin::system, F("This monotone binary does not work with Botan newer than 1.7.6.")); #elif BOTAN_VERSION_CODE <= BOTAN_VERSION_CODE_FOR(1,7,22) - N(linked_botan_version > BOTAN_VERSION_CODE_FOR(1,7,6), + E(linked_botan_version > BOTAN_VERSION_CODE_FOR(1,7,6), origin::system, F("This monotone binary requires Botan 1.7.7 or newer.")); // While compiling against 1.7.22 or newer is recommended, because // it enables new features of Botan, the monotone binary compiled // against Botan 1.7.21 and before should still work with newer Botan // versions, including all of the stable branch 1.8.x. - N(linked_botan_version < BOTAN_VERSION_CODE_FOR(1,9,0), + E(linked_botan_version < BOTAN_VERSION_CODE_FOR(1,9,0), origin::system, F("This monotone binary does not work with Botan 1.9.x."); #else - N(linked_botan_version > BOTAN_VERSION_CODE_FOR(1,7,22), + E(linked_botan_version > BOTAN_VERSION_CODE_FOR(1,7,22), origin::system, F("This monotone binary requires Botan 1.7.22 or newer.")); - N(linked_botan_version < BOTAN_VERSION_CODE_FOR(1,9,0), + E(linked_botan_version < BOTAN_VERSION_CODE_FOR(1,9,0), origin::system, F("This monotone binary does not work with Botan 1.9.x.")); #endif ============================================================ --- pcrewrap.hh 2cc9a12c8aa86c27d982ab2b11d6a11455afa222 +++ pcrewrap.hh bcb9af0ef76ffbf353ee409ba9f071971584e157 @@ -10,9 +10,6 @@ #ifndef _PCREWRAP_HH #define _PCREWRAP_HH -#define REQUIRED_PCRE_MAJOR 7 -#define REQUIRED_PCRE_MINOR 6 - #include "sanity.hh" // This is a sensible C++ wrapper interface around the bare C API exported ============================================================ --- schema_migration.cc 82c601471af7f3cc6c576c879b523268eadc76b1 +++ schema_migration.cc 454dc2da8e318381c5bfb84ce855d020a4880cfa @@ -53,7 +53,7 @@ assert_sqlite3_ok(sqlite3 * db) // errno's. L(FL("sqlite error: %d: %s") % errcode % errmsg); - // Check the string to see if it looks like an informative_failure + // Check the string to see if it looks like a recoverable_failure // thrown from within an SQL extension function, caught, and turned // into a call to sqlite3_result_error. (Extension functions have to // do this to avoid corrupting sqlite's internal state.) If it is,