Date: Thursday, April 19, 2018 @ 07:18:32 Author: eworm Revision: 316969
archrelease: copy trunk to community-x86_64 Added: mysql-workbench/repos/community-x86_64/0001-mysql-workbench-no-check-for-updates.patch (from rev 316968, mysql-workbench/trunk/0001-mysql-workbench-no-check-for-updates.patch) mysql-workbench/repos/community-x86_64/0002-disable-unsupported-operating-system-warning.patch (from rev 316968, mysql-workbench/trunk/0002-disable-unsupported-operating-system-warning.patch) mysql-workbench/repos/community-x86_64/0003-add-option-to-hide-nonstandard-server-warning.patch (from rev 316968, mysql-workbench/trunk/0003-add-option-to-hide-nonstandard-server-warning.patch) mysql-workbench/repos/community-x86_64/0005-gdal-use-CPLFree.patch (from rev 316968, mysql-workbench/trunk/0005-gdal-use-CPLFree.patch) mysql-workbench/repos/community-x86_64/0006-mysql-include-my_dir.patch (from rev 316968, mysql-workbench/trunk/0006-mysql-include-my_dir.patch) mysql-workbench/repos/community-x86_64/PKGBUILD (from rev 316968, mysql-workbench/trunk/PKGBUILD) mysql-workbench/repos/community-x86_64/arch_linux_profile.xml (from rev 316968, mysql-workbench/trunk/arch_linux_profile.xml) Deleted: mysql-workbench/repos/community-x86_64/0001-mysql-workbench-no-check-for-updates.patch mysql-workbench/repos/community-x86_64/0002-disable-unsupported-operating-system-warning.patch mysql-workbench/repos/community-x86_64/0003-add-option-to-hide-nonstandard-server-warning.patch mysql-workbench/repos/community-x86_64/0005-gdal-use-CPLFree.patch mysql-workbench/repos/community-x86_64/0006-mysql-include-my_dir.patch mysql-workbench/repos/community-x86_64/0007-gdal-json-c-0-13.patch mysql-workbench/repos/community-x86_64/PKGBUILD mysql-workbench/repos/community-x86_64/arch_linux_profile.xml ----------------------------------------------------------+ 0001-mysql-workbench-no-check-for-updates.patch | 42 - 0002-disable-unsupported-operating-system-warning.patch | 58 +- 0003-add-option-to-hide-nonstandard-server-warning.patch | 72 +- 0005-gdal-use-CPLFree.patch | 124 ++-- 0006-mysql-include-my_dir.patch | 24 0007-gdal-json-c-0-13.patch | 111 ---- PKGBUILD | 355 ++++++------- 7 files changed, 334 insertions(+), 452 deletions(-) Deleted: 0001-mysql-workbench-no-check-for-updates.patch =================================================================== --- 0001-mysql-workbench-no-check-for-updates.patch 2018-04-19 07:18:26 UTC (rev 316968) +++ 0001-mysql-workbench-no-check-for-updates.patch 2018-04-19 07:18:32 UTC (rev 316969) @@ -1,21 +0,0 @@ -diff --git a/res/wbdata/main_menu.xml b/res/wbdata/main_menu.xml -index a32256c..08d9a21 100644 ---- a/res/wbdata/main_menu.xml -+++ b/res/wbdata/main_menu.xml -@@ -2900,6 +2900,7 @@ value type="object" struct-name="app.MenuItem" id="com.mysql.wb.menu.view.fkhili - <value type="string" key="itemType">action</value> - </value> - -+ <!-- We build a package that should be updated via pacman, so disable this check. - <value type="object" struct-name="app.MenuItem" id="com.mysql.wb.menu.separator.help.checkver"> - <value type="string" key="itemType">separator</value> - </value> -@@ -2910,7 +2911,7 @@ value type="object" struct-name="app.MenuItem" id="com.mysql.wb.menu.view.fkhili - <value type="string" key="name">checkUpdate</value> - <value type="string" key="command">plugin:wb.tools.checkForUpdates</value> - <value type="string" key="itemType">action</value> -- </value> -+ </value> //--> - - <value type="object" struct-name="app.MenuItem" id="com.mysql.wb.menu.separator.help.report_a_bug"> - <value type="string" key="itemType">separator</value> Copied: mysql-workbench/repos/community-x86_64/0001-mysql-workbench-no-check-for-updates.patch (from rev 316968, mysql-workbench/trunk/0001-mysql-workbench-no-check-for-updates.patch) =================================================================== --- 0001-mysql-workbench-no-check-for-updates.patch (rev 0) +++ 0001-mysql-workbench-no-check-for-updates.patch 2018-04-19 07:18:32 UTC (rev 316969) @@ -0,0 +1,21 @@ +diff --git a/res/wbdata/main_menu.xml b/res/wbdata/main_menu.xml +index a32256c..08d9a21 100644 +--- a/res/wbdata/main_menu.xml ++++ b/res/wbdata/main_menu.xml +@@ -2900,6 +2900,7 @@ value type="object" struct-name="app.MenuItem" id="com.mysql.wb.menu.view.fkhili + <value type="string" key="itemType">action</value> + </value> + ++ <!-- We build a package that should be updated via pacman, so disable this check. + <value type="object" struct-name="app.MenuItem" id="com.mysql.wb.menu.separator.help.checkver"> + <value type="string" key="itemType">separator</value> + </value> +@@ -2910,7 +2911,7 @@ value type="object" struct-name="app.MenuItem" id="com.mysql.wb.menu.view.fkhili + <value type="string" key="name">checkUpdate</value> + <value type="string" key="command">plugin:wb.tools.checkForUpdates</value> + <value type="string" key="itemType">action</value> +- </value> ++ </value> //--> + + <value type="object" struct-name="app.MenuItem" id="com.mysql.wb.menu.separator.help.report_a_bug"> + <value type="string" key="itemType">separator</value> Deleted: 0002-disable-unsupported-operating-system-warning.patch =================================================================== --- 0002-disable-unsupported-operating-system-warning.patch 2018-04-19 07:18:26 UTC (rev 316968) +++ 0002-disable-unsupported-operating-system-warning.patch 2018-04-19 07:18:32 UTC (rev 316969) @@ -1,29 +0,0 @@ -From 784599e99ee97574798512f6daf987cab8fd4cdf Mon Sep 17 00:00:00 2001 -From: Christian Hesse <m...@eworm.de> -Date: Wed, 8 Feb 2017 09:12:24 +0100 -Subject: [PATCH 1/1] disable unsupported operating system warning - -Signed-off-by: Christian Hesse <m...@eworm.de> ---- - backend/wbprivate/workbench/wb_context.cpp | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/backend/wbprivate/workbench/wb_context.cpp b/backend/wbprivate/workbench/wb_context.cpp -index 82c0fa6..f06ff99 100644 ---- a/backend/wbprivate/workbench/wb_context.cpp -+++ b/backend/wbprivate/workbench/wb_context.cpp -@@ -1009,9 +1009,11 @@ void WBContext::init_finish_(WBOptions *options) { - - _frontendCallbacks->show_status_text(_("Ready.")); - -+#if 0 - if (options->open_at_startup_type != - "run-script") // <--- so that our runtime tests don't lock up when a modal warning dialog is displayed - warnIfRunningOnUnsupportedOS(); -+#endif - - try { - // execute action requested from command line --- -2.11.1 - Copied: mysql-workbench/repos/community-x86_64/0002-disable-unsupported-operating-system-warning.patch (from rev 316968, mysql-workbench/trunk/0002-disable-unsupported-operating-system-warning.patch) =================================================================== --- 0002-disable-unsupported-operating-system-warning.patch (rev 0) +++ 0002-disable-unsupported-operating-system-warning.patch 2018-04-19 07:18:32 UTC (rev 316969) @@ -0,0 +1,29 @@ +From 784599e99ee97574798512f6daf987cab8fd4cdf Mon Sep 17 00:00:00 2001 +From: Christian Hesse <m...@eworm.de> +Date: Wed, 8 Feb 2017 09:12:24 +0100 +Subject: [PATCH 1/1] disable unsupported operating system warning + +Signed-off-by: Christian Hesse <m...@eworm.de> +--- + backend/wbprivate/workbench/wb_context.cpp | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/backend/wbprivate/workbench/wb_context.cpp b/backend/wbprivate/workbench/wb_context.cpp +index 82c0fa6..f06ff99 100644 +--- a/backend/wbprivate/workbench/wb_context.cpp ++++ b/backend/wbprivate/workbench/wb_context.cpp +@@ -1009,9 +1009,11 @@ void WBContext::init_finish_(WBOptions *options) { + + _frontendCallbacks->show_status_text(_("Ready.")); + ++#if 0 + if (options->open_at_startup_type != + "run-script") // <--- so that our runtime tests don't lock up when a modal warning dialog is displayed + warnIfRunningOnUnsupportedOS(); ++#endif + + try { + // execute action requested from command line +-- +2.11.1 + Deleted: 0003-add-option-to-hide-nonstandard-server-warning.patch =================================================================== --- 0003-add-option-to-hide-nonstandard-server-warning.patch 2018-04-19 07:18:26 UTC (rev 316968) +++ 0003-add-option-to-hide-nonstandard-server-warning.patch 2018-04-19 07:18:32 UTC (rev 316969) @@ -1,36 +0,0 @@ -From cca769c75b9421f8ef5090848cea6162ccd85ba7 Mon Sep 17 00:00:00 2001 -From: Christian Hesse <m...@eworm.de> -Date: Wed, 8 Feb 2017 09:42:29 +0100 -Subject: [PATCH 1/1] add option to hide nonstandard server warning - -Signed-off-by: Christian Hesse <m...@eworm.de> ---- - backend/wbprivate/workbench/wb_context.cpp | 5 +++-- - 1 file changed, 3 insertions(+), 2 deletions(-) - -diff --git a/backend/wbprivate/workbench/wb_context.cpp b/backend/wbprivate/workbench/wb_context.cpp -index f06ff99..f89006b 100644 ---- a/backend/wbprivate/workbench/wb_context.cpp -+++ b/backend/wbprivate/workbench/wb_context.cpp -@@ -3038,7 +3038,7 @@ std::shared_ptr<SqlEditorForm> WBContext::add_new_query_window(const db_mgmt_Con - logError("Unsupported server version: %s %s\n", form->connection_details()["dbmsProductName"].c_str(), - form->connection_details()["dbmsProductVersion"].c_str()); - -- if (mforms::Utilities::show_warning( -+ if (mforms::Utilities::show_message_and_remember( - base::strfmt("Connection Warning (%s)", targetConnection->name().c_str()), - base::strfmt( - "Incompatible/nonstandard server version or connection protocol detected (%s).\n\n" -@@ -3046,7 +3046,8 @@ std::shared_ptr<SqlEditorForm> WBContext::add_new_query_window(const db_mgmt_Con - "properly since the database is not fully compatible with the supported versions of MySQL.\n\n" - "MySQL Workbench is developed and tested for MySQL Server versions 5.1, 5.5, 5.6 and 5.7", - bec::sanitize_server_version_number(form->connection_details()["dbmsProductVersion"]).c_str()), -- "Continue Anyway", "Cancel") != mforms::ResultOk) { -+ "Continue Anyway", "Cancel", "", "wb.supported_server_check.suppress_warning", -+ "Don't show this message again") != mforms::ResultOk) { - _frontendCallbacks->show_status_text(_("Unsupported server")); - return SqlEditorForm::Ref(); - } --- -2.11.1 - Copied: mysql-workbench/repos/community-x86_64/0003-add-option-to-hide-nonstandard-server-warning.patch (from rev 316968, mysql-workbench/trunk/0003-add-option-to-hide-nonstandard-server-warning.patch) =================================================================== --- 0003-add-option-to-hide-nonstandard-server-warning.patch (rev 0) +++ 0003-add-option-to-hide-nonstandard-server-warning.patch 2018-04-19 07:18:32 UTC (rev 316969) @@ -0,0 +1,36 @@ +From cca769c75b9421f8ef5090848cea6162ccd85ba7 Mon Sep 17 00:00:00 2001 +From: Christian Hesse <m...@eworm.de> +Date: Wed, 8 Feb 2017 09:42:29 +0100 +Subject: [PATCH 1/1] add option to hide nonstandard server warning + +Signed-off-by: Christian Hesse <m...@eworm.de> +--- + backend/wbprivate/workbench/wb_context.cpp | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +diff --git a/backend/wbprivate/workbench/wb_context.cpp b/backend/wbprivate/workbench/wb_context.cpp +index f06ff99..f89006b 100644 +--- a/backend/wbprivate/workbench/wb_context.cpp ++++ b/backend/wbprivate/workbench/wb_context.cpp +@@ -3038,7 +3038,7 @@ std::shared_ptr<SqlEditorForm> WBContext::add_new_query_window(const db_mgmt_Con + logError("Unsupported server version: %s %s\n", form->connection_details()["dbmsProductName"].c_str(), + form->connection_details()["dbmsProductVersion"].c_str()); + +- if (mforms::Utilities::show_warning( ++ if (mforms::Utilities::show_message_and_remember( + base::strfmt("Connection Warning (%s)", targetConnection->name().c_str()), + base::strfmt( + "Incompatible/nonstandard server version or connection protocol detected (%s).\n\n" +@@ -3046,7 +3046,8 @@ std::shared_ptr<SqlEditorForm> WBContext::add_new_query_window(const db_mgmt_Con + "properly since the database is not fully compatible with the supported versions of MySQL.\n\n" + "MySQL Workbench is developed and tested for MySQL Server versions 5.1, 5.5, 5.6 and 5.7", + bec::sanitize_server_version_number(form->connection_details()["dbmsProductVersion"]).c_str()), +- "Continue Anyway", "Cancel") != mforms::ResultOk) { ++ "Continue Anyway", "Cancel", "", "wb.supported_server_check.suppress_warning", ++ "Don't show this message again") != mforms::ResultOk) { + _frontendCallbacks->show_status_text(_("Unsupported server")); + return SqlEditorForm::Ref(); + } +-- +2.11.1 + Deleted: 0005-gdal-use-CPLFree.patch =================================================================== --- 0005-gdal-use-CPLFree.patch 2018-04-19 07:18:26 UTC (rev 316968) +++ 0005-gdal-use-CPLFree.patch 2018-04-19 07:18:32 UTC (rev 316969) @@ -1,62 +0,0 @@ -From 97d26e5edfccead3fe3a10b732de51caa427eb60 Mon Sep 17 00:00:00 2001 -From: Christian Hesse <m...@eworm.de> -Date: Tue, 16 May 2017 09:31:39 +0200 -Subject: [PATCH 1/1] gdal: use CPLFree() - -OGRFree() is deprecated as of gdal 2.2.0, so use CPLFree() instead. - -Signed-off-by: Christian Hesse <m...@eworm.de> ---- - backend/wbpublic/grt/spatial_handler.cpp | 4 ++-- - backend/wbpublic/objimpl/db.query/db_query_Resultset.cpp | 6 +++--- - 2 files changed, 5 insertions(+), 5 deletions(-) - -diff --git a/backend/wbpublic/grt/spatial_handler.cpp b/backend/wbpublic/grt/spatial_handler.cpp -index 9b357603..ee36fa03 100644 ---- a/backend/wbpublic/grt/spatial_handler.cpp -+++ b/backend/wbpublic/grt/spatial_handler.cpp -@@ -443,7 +443,7 @@ spatial::Importer::Importer() : _geometry(NULL), _interrupt(false), _srid(0) { - - spatial::Importer::~Importer() { - if (_geometry != NULL) -- OGRFree(_geometry); -+ CPLFree(_geometry); - } - - OGRGeometry *spatial::Importer::steal_data() { -@@ -495,7 +495,7 @@ std::string spatial::Importer::as_wkt() { - logError("Error exporting data to WKT (%i)\n", err); - } else { - std::string tmp(data); -- OGRFree(data); -+ CPLFree(data); - return tmp; - } - } -diff --git a/backend/wbpublic/objimpl/db.query/db_query_Resultset.cpp b/backend/wbpublic/objimpl/db.query/db_query_Resultset.cpp -index d2eb8495..7a7948bf 100644 ---- a/backend/wbpublic/objimpl/db.query/db_query_Resultset.cpp -+++ b/backend/wbpublic/objimpl/db.query/db_query_Resultset.cpp -@@ -47,7 +47,7 @@ static grt::StringRef getGeoRepresentation(grt::StringRef data, bool outputAsJso - OGRGeometryFactory::createFromWkb((unsigned char *)const_cast<char *>(&(*((*data).begin() + 4))), NULL, &geometry); - if (ret_val != OGRERR_NONE) { - if (geometry) -- OGRFree(geometry); -+ CPLFree(geometry); - throw std::exception(); - } - -@@ -61,8 +61,8 @@ static grt::StringRef getGeoRepresentation(grt::StringRef data, bool outputAsJso - - if (err == OGRERR_NONE && data != NULL) { - grt::StringRef tmp(data); -- OGRFree(data); -- OGRFree(geometry); -+ CPLFree(data); -+ CPLFree(geometry); - return tmp; - } else - throw std::runtime_error("Conversion of OGR geometry data failed"); --- -2.13.0 - Copied: mysql-workbench/repos/community-x86_64/0005-gdal-use-CPLFree.patch (from rev 316968, mysql-workbench/trunk/0005-gdal-use-CPLFree.patch) =================================================================== --- 0005-gdal-use-CPLFree.patch (rev 0) +++ 0005-gdal-use-CPLFree.patch 2018-04-19 07:18:32 UTC (rev 316969) @@ -0,0 +1,62 @@ +From 97d26e5edfccead3fe3a10b732de51caa427eb60 Mon Sep 17 00:00:00 2001 +From: Christian Hesse <m...@eworm.de> +Date: Tue, 16 May 2017 09:31:39 +0200 +Subject: [PATCH 1/1] gdal: use CPLFree() + +OGRFree() is deprecated as of gdal 2.2.0, so use CPLFree() instead. + +Signed-off-by: Christian Hesse <m...@eworm.de> +--- + backend/wbpublic/grt/spatial_handler.cpp | 4 ++-- + backend/wbpublic/objimpl/db.query/db_query_Resultset.cpp | 6 +++--- + 2 files changed, 5 insertions(+), 5 deletions(-) + +diff --git a/backend/wbpublic/grt/spatial_handler.cpp b/backend/wbpublic/grt/spatial_handler.cpp +index 9b357603..ee36fa03 100644 +--- a/backend/wbpublic/grt/spatial_handler.cpp ++++ b/backend/wbpublic/grt/spatial_handler.cpp +@@ -443,7 +443,7 @@ spatial::Importer::Importer() : _geometry(NULL), _interrupt(false), _srid(0) { + + spatial::Importer::~Importer() { + if (_geometry != NULL) +- OGRFree(_geometry); ++ CPLFree(_geometry); + } + + OGRGeometry *spatial::Importer::steal_data() { +@@ -495,7 +495,7 @@ std::string spatial::Importer::as_wkt() { + logError("Error exporting data to WKT (%i)\n", err); + } else { + std::string tmp(data); +- OGRFree(data); ++ CPLFree(data); + return tmp; + } + } +diff --git a/backend/wbpublic/objimpl/db.query/db_query_Resultset.cpp b/backend/wbpublic/objimpl/db.query/db_query_Resultset.cpp +index d2eb8495..7a7948bf 100644 +--- a/backend/wbpublic/objimpl/db.query/db_query_Resultset.cpp ++++ b/backend/wbpublic/objimpl/db.query/db_query_Resultset.cpp +@@ -47,7 +47,7 @@ static grt::StringRef getGeoRepresentation(grt::StringRef data, bool outputAsJso + OGRGeometryFactory::createFromWkb((unsigned char *)const_cast<char *>(&(*((*data).begin() + 4))), NULL, &geometry); + if (ret_val != OGRERR_NONE) { + if (geometry) +- OGRFree(geometry); ++ CPLFree(geometry); + throw std::exception(); + } + +@@ -61,8 +61,8 @@ static grt::StringRef getGeoRepresentation(grt::StringRef data, bool outputAsJso + + if (err == OGRERR_NONE && data != NULL) { + grt::StringRef tmp(data); +- OGRFree(data); +- OGRFree(geometry); ++ CPLFree(data); ++ CPLFree(geometry); + return tmp; + } else + throw std::runtime_error("Conversion of OGR geometry data failed"); +-- +2.13.0 + Deleted: 0006-mysql-include-my_dir.patch =================================================================== --- 0006-mysql-include-my_dir.patch 2018-04-19 07:18:26 UTC (rev 316968) +++ 0006-mysql-include-my_dir.patch 2018-04-19 07:18:32 UTC (rev 316969) @@ -1,12 +0,0 @@ -diff --git a/mysys/my_symlink.c b/mysys/my_symlink.c -index ab0d76e91d0..b96d78e8c17 100644 ---- a/mysys/my_symlink.c -+++ b/mysys/my_symlink.c -@@ -23,6 +23,7 @@ - #include <sys/param.h> - #include <sys/stat.h> - #endif -+#include <my_dir.h> - - /* - Reads the content of a symbolic link Copied: mysql-workbench/repos/community-x86_64/0006-mysql-include-my_dir.patch (from rev 316968, mysql-workbench/trunk/0006-mysql-include-my_dir.patch) =================================================================== --- 0006-mysql-include-my_dir.patch (rev 0) +++ 0006-mysql-include-my_dir.patch 2018-04-19 07:18:32 UTC (rev 316969) @@ -0,0 +1,12 @@ +diff --git a/mysys/my_symlink.c b/mysys/my_symlink.c +index ab0d76e91d0..b96d78e8c17 100644 +--- a/mysys/my_symlink.c ++++ b/mysys/my_symlink.c +@@ -23,6 +23,7 @@ + #include <sys/param.h> + #include <sys/stat.h> + #endif ++#include <my_dir.h> + + /* + Reads the content of a symbolic link Deleted: 0007-gdal-json-c-0-13.patch =================================================================== --- 0007-gdal-json-c-0-13.patch 2018-04-19 07:18:26 UTC (rev 316968) +++ 0007-gdal-json-c-0-13.patch 2018-04-19 07:18:32 UTC (rev 316969) @@ -1,111 +0,0 @@ -From 05a1fd773c8f418ee9765465fc4863c1d6472a4c Mon Sep 17 00:00:00 2001 -From: Even Rouault <even.roua...@mines-paris.org> -Date: Fri, 5 Jan 2018 18:08:49 +0000 -Subject: [PATCH] =?UTF-8?q?Add=20support=20for=20json-c=20v0.13=20(patch?= - =?UTF-8?q?=20by=20Bj=C3=B6rn=20Esser,=20fixes=20=E2=80=8Bhttps://github.c?= - =?UTF-8?q?om/OSGeo/gdal/pull/277,=20backport=20of=20r41043,=20fixes=20#71?= - =?UTF-8?q?95)?= -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -git-svn-id: https://svn.osgeo.org/gdal/branches/2.2@41200 f0d54148-0727-0410-94bb-9a71ac55c965 ---- - gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwriter.cpp | 30 +++++++++++++++++------ - 1 file changed, 22 insertions(+), 8 deletions(-) - -diff --git a/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwriter.cpp b/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwriter.cpp -index fdf4b77b459..f8937885c76 100644 ---- a/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwriter.cpp -+++ b/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwriter.cpp -@@ -27,12 +27,18 @@ - * DEALINGS IN THE SOFTWARE. - ****************************************************************************/ - -+#define JSON_C_VER_013 (13 << 8) -+ - #include "ogrgeojsonwriter.h" - #include "ogrgeojsonutils.h" - #include "ogr_geojson.h" - #include "ogrgeojsonreader.h" - #include <json.h> // JSON-C -+ -+#if (!defined(JSON_C_VERSION_NUM)) || (JSON_C_VERSION_NUM < JSON_C_VER_013) - #include <json_object_private.h> -+#endif -+ - #include <printbuf.h> - #include <ogr_api.h> - #include <ogr_p.h> -@@ -1381,13 +1387,17 @@ static int OGR_json_double_with_precision_to_string( struct json_object *jso, - { - // TODO(schwehr): Explain this casting. - const int nPrecision = -+#if (!defined(JSON_C_VERSION_NUM)) || (JSON_C_VERSION_NUM < JSON_C_VER_013) - static_cast<int>(reinterpret_cast<GUIntptr_t>(jso->_userdata)); -+#else -+ static_cast<int>(reinterpret_cast<GUIntptr_t>(json_object_get_userdata(jso))); -+#endif - char szBuffer[75] = {}; -- OGRFormatDouble( szBuffer, sizeof(szBuffer), jso->o.c_double, '.', -+ OGRFormatDouble( szBuffer, sizeof(szBuffer), json_object_get_double(jso), '.', - (nPrecision < 0) ? 15 : nPrecision ); - if( szBuffer[0] == 't' /*oobig */ ) - { -- CPLsnprintf(szBuffer, sizeof(szBuffer), "%.18g", jso->o.c_double); -+ CPLsnprintf(szBuffer, sizeof(szBuffer), "%.18g", json_object_get_double(jso)); - } - return printbuf_memappend(pb, szBuffer, static_cast<int>(strlen(szBuffer))); - } -@@ -1417,11 +1427,11 @@ OGR_json_double_with_significant_figures_to_string( struct json_object *jso, - { - char szBuffer[75] = {}; - int nSize = 0; -- if( CPLIsNan(jso->o.c_double)) -+ if( CPLIsNan(json_object_get_double(jso))) - nSize = CPLsnprintf(szBuffer, sizeof(szBuffer), "NaN"); -- else if( CPLIsInf(jso->o.c_double) ) -+ else if( CPLIsInf(json_object_get_double(jso)) ) - { -- if( jso->o.c_double > 0 ) -+ if( json_object_get_double(jso) > 0 ) - nSize = CPLsnprintf(szBuffer, sizeof(szBuffer), "Infinity"); - else - nSize = CPLsnprintf(szBuffer, sizeof(szBuffer), "-Infinity"); -@@ -1429,13 +1439,17 @@ OGR_json_double_with_significant_figures_to_string( struct json_object *jso, - else - { - char szFormatting[32] = {}; -+#if (!defined(JSON_C_VERSION_NUM)) || (JSON_C_VERSION_NUM < JSON_C_VER_013) - const int nSignificantFigures = (int) (GUIntptr_t) jso->_userdata; -+#else -+ const int nSignificantFigures = (int) (GUIntptr_t) json_object_get_userdata(jso); -+#endif - const int nInitialSignificantFigures = - nSignificantFigures >= 0 ? nSignificantFigures : 17; - CPLsnprintf(szFormatting, sizeof(szFormatting), - "%%.%dg", nInitialSignificantFigures); - nSize = CPLsnprintf(szBuffer, sizeof(szBuffer), -- szFormatting, jso->o.c_double); -+ szFormatting, json_object_get_double(jso)); - const char* pszDot = NULL; - if( nSize+2 < static_cast<int>(sizeof(szBuffer)) && - (pszDot = strchr(szBuffer, '.')) == NULL ) -@@ -1457,7 +1471,7 @@ OGR_json_double_with_significant_figures_to_string( struct json_object *jso, - CPLsnprintf(szFormatting, sizeof(szFormatting), - "%%.%dg", nInitialSignificantFigures- i); - nSize = CPLsnprintf(szBuffer, sizeof(szBuffer), -- szFormatting, jso->o.c_double); -+ szFormatting, json_object_get_double(jso)); - pszDot = strchr(szBuffer, '.'); - if( pszDot != NULL && - strstr(pszDot, "999999") == NULL && -@@ -1472,7 +1486,7 @@ OGR_json_double_with_significant_figures_to_string( struct json_object *jso, - CPLsnprintf(szFormatting, sizeof(szFormatting), - "%%.%dg", nInitialSignificantFigures); - nSize = CPLsnprintf(szBuffer, sizeof(szBuffer), -- szFormatting, jso->o.c_double); -+ szFormatting, json_object_get_double(jso)); - if( nSize+2 < static_cast<int>(sizeof(szBuffer)) && - strchr(szBuffer, '.') == NULL ) - { Deleted: PKGBUILD =================================================================== --- PKGBUILD 2018-04-19 07:18:26 UTC (rev 316968) +++ PKGBUILD 2018-04-19 07:18:32 UTC (rev 316969) @@ -1,181 +0,0 @@ -# $Id$ -# Maintainer: Christian Hesse <m...@eworm.de> -# Contributor: Alexandre Boily <alexandrebo...@gmail.com> -# Contributor: Illarion Kovalchuk <illarion.kovalc...@gmail.com> -# Contributor: totoloco <totoloco at gmail _dot_com> -# Contributor: Ionut Biru <ib...@archlinux.org> - -pkgname=mysql-workbench -pkgver=6.3.10 -pkgrel=4 -_mysql_version=5.7.21 -_connector_version=1.1.9 -_gdal_version=2.2.3 -_boost_version=1.59.0 -pkgdesc='A cross-platform, visual database design tool developed by MySQL' -arch=('x86_64') -url='https://www.mysql.com/products/workbench/' -license=('GPL2') -depends=('cairo' 'ctemplate' 'desktop-file-utils' 'freetype2' 'gtkmm3' - 'hicolor-icon-theme' 'libgl' 'libgnome-keyring' 'libiodbc' 'libxml2' - 'libzip' 'mysql-python' 'pcre' 'python2' 'python2-cairo' 'python2-paramiko' - 'python2-pexpect' 'tinyxml' 'unixodbc' 'vsqlite++' 'proj' 'json-c') -optdepends=('gnome-keyring: store SSH/MySQL passwords in GNOME password manager' - 'python2-pyodbc: database migration') -makedepends=('cmake' 'boost' 'mesa' 'swig' 'java-runtime' 'imagemagick') -validpgpkeys=('A4A9406876FCBD3C456770C88C718D3B5072E1F5') -source=("https://cdn.mysql.com/Downloads/MySQLGUITools/mysql-workbench-community-${pkgver}-src.tar.gz"{,.asc} - "https://cdn.mysql.com/Downloads/MySQL-${_mysql_version%.*}/mysql-${_mysql_version}.tar.gz"{,.asc} - "https://cdn.mysql.com/Downloads/Connector-C++/mysql-connector-c++-${_connector_version}.tar.gz"{,.asc} - "http://download.osgeo.org/gdal/${_gdal_version}/gdal-${_gdal_version}.tar.xz" - "https://downloads.sourceforge.net/project/boost/boost/${_boost_version}/boost_${_boost_version//./_}.tar.bz2" - 'http://www.antlr3.org/download/antlr-3.4-complete.jar' - '0001-mysql-workbench-no-check-for-updates.patch' - '0002-disable-unsupported-operating-system-warning.patch' - '0003-add-option-to-hide-nonstandard-server-warning.patch' - '0005-gdal-use-CPLFree.patch' - '0006-mysql-include-my_dir.patch' - '0007-gdal-json-c-0-13.patch' - 'arch_linux_profile.xml') -sha256sums=('b5593e439c6f8d50262a8950456a9ba3709b02d1dece0360d5f6e47e1b0d7dc3' - 'SKIP' - 'fa205079c27a39c24f3485e7498dd0906a6e0b379b4f99ebc0ec38a9ec5b09b7' - 'SKIP' - '3e31847a69a4e5c113b7c483731317ec4533858e3195d3a85026a0e2f509d2e4' - 'SKIP' - 'a328d63d476b3653f5a25b5f7971e87a15cdf8860ab0729d4b1157ba988b8d0b' - '727a932322d94287b62abb1bd2d41723eec4356a7728909e38adb65ca25241ca' - '9d3e866b610460664522520f73b81777b5626fb0a282a5952b9800b751550bf7' - 'b189e15c6b6f5a707357d9a9297f39ee3a33264fd28b44d5de6f537f851f82cf' - '0d65832bc5a73d4cfecef4b552bb78a30ce6020a5fabe5558dcf2ade8341b593' - '3c9097af599f08388c471d6fd02f40ea72e5759eaa89f731e662852a5e67feea' - '0965b4f12a0ae26bea131f05c7383d4a9b068d556b092ad23e19e1d8f6895531' - 'd97a1fec15e0dc4491e79ce380f6f994f1c4b387d960c13e178a18b0299c0436' - '7000da5a03b7a44b26d86653104558798879ce9a2f6e7e1b929f8f9fcabdf33f' - '2ade582ca25f6d6d748bc84a913de39b34dcaa6e621a77740fe143007f2833af') - -prepare() { - cd "${srcdir}/mysql-${_mysql_version}" - - # fix build without server - patch -Np1 < "${srcdir}"/0006-mysql-include-my_dir.patch - - cd "${srcdir}/gdal-${_gdal_version}" - - # Add support for json-c v0.13 - patch -Np2 < "${srcdir}"/0007-gdal-json-c-0-13.patch - - cd "${srcdir}/mysql-workbench-community-${pkgver}-src/" - - # Disable 'Help' -> 'Check for Updates' - # Updates are provided via Arch Linux packages - patch -Np1 < "${srcdir}"/0001-mysql-workbench-no-check-for-updates.patch - - # disable unsupported operating system warning - patch -Np1 < "${srcdir}"/0002-disable-unsupported-operating-system-warning.patch - - # add option to hide nonstandard server warning - patch -Np1 < "${srcdir}"/0003-add-option-to-hide-nonstandard-server-warning.patch - - # gdal: use CPLFree() - patch -Np1 < "${srcdir}"/0005-gdal-use-CPLFree.patch - - # GCC 7.x introduced some new warnings, remove '-Werror' for the build to complete - sed -i '/^set/s|-Werror -Wall|-Wall|' CMakeLists.txt - - # GCC 7.x complains about unsupported flag - sed -i 's|-Wno-deprecated-register||' ext/scintilla/gtk/CMakeLists.txt - - # we need python 2.x - sed -i '/^FIND_PROGRAM(PYTHON_EXEC /c FIND_PROGRAM(PYTHON_EXEC "python2")' \ - CMakeLists.txt - - # put antlr into place - install -D ${srcdir}/antlr-3.4-complete.jar ${srcdir}/linux-res/bin/antlr-3.4-complete.jar - - # make sure to link against bundled libraries - sed -i "/target_link_libraries/s|\\$|-L${srcdir}/install-bundle/usr/lib/ \\$|" backend/wbpublic/CMakeLists.txt -} - -build() { - # Build mysql - cd "${srcdir}/mysql-${_mysql_version}" - cmake . \ - -DWITHOUT_SERVER=ON \ - -DBUILD_CONFIG=mysql_release \ - -DCMAKE_INSTALL_PREFIX=/usr \ - -DCMAKE_INSTALL_LIBDIR=lib \ - -DSYSCONFDIR=/etc/mysql \ - -DMYSQL_DATADIR=/var/lib/mysql \ - -DWITH_BOOST="${srcdir}/boost_${_boost_version//./_}" - make - make DESTDIR="${srcdir}/install-bundle/" install - - # Build mysql-connector-c++ - cd "${srcdir}/mysql-connector-c++-${_connector_version}/" - cmake . \ - -Wno-dev \ - -DCMAKE_INSTALL_PREFIX=/usr \ - -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_INSTALL_LIBDIR=lib \ - -DMYSQLCPPCONN_BUILD_EXAMPLES=OFF \ - -DMYSQL_DIR="${srcdir}/install-bundle/" \ - -DMYSQL_CONFIG_EXECUTABLE="${srcdir}/install-bundle/usr/bin/mysql_config" \ - -DBOOST_ROOT:STRING="${srcdir}/boost_${_boost_version//./_}" - - make DESTDIR="${srcdir}/install-bundle/" install - - # Build gdal - cd "${srcdir}/gdal-${_gdal_version}/" - ./configure \ - --prefix=/usr \ - --includedir=/usr/include/gdal \ - --with-sqlite3 \ - --with-mysql="${srcdir}/install-bundle/usr/bin/mysql_config" \ - --with-curl \ - --without-jasper - make - make DESTDIR="${srcdir}/install-bundle/" install - - # Build MySQL Workbench itself with bundled libs - cd "${srcdir}/mysql-workbench-community-${pkgver}-src/" - cmake . \ - -DCMAKE_INSTALL_PREFIX:PATH=/usr \ - -DCMAKE_CXX_FLAGS="-std=c++11" \ - -DCMAKE_BUILD_TYPE=Release \ - -DMySQL_CONFIG_PATH="${srcdir}/install-bundle/usr/bin/mysql_config" \ - -DMySQLCppConn_LIBRARY="${srcdir}/install-bundle/usr/lib/libmysqlcppconn.so" \ - -DMySQLCppConn_INCLUDE_DIR="${srcdir}/install-bundle/usr/include" \ - -DGDAL_INCLUDE_DIR="${srcdir}/install-bundle/usr/include" \ - -DGDAL_LIBRARY="${srcdir}/install-bundle/usr/lib/libgdal.so" \ - -DUSE_BUNDLED_MYSQLDUMP=1 - make -} - -package() { - # install bundled libraries files and files - for LIBRARY in $(find "${srcdir}/install-bundle/usr/lib/" -type f -regex '.*/lib\(gdal\|mysql\(client\|cppconn\)\)\.so\..*'); do - install -D -m0755 "${LIBRARY}" "${pkgdir}"/usr/lib/mysql-workbench/"$(basename "${LIBRARY}")" - done - for SYMLINK in $(find "${srcdir}/install-bundle/usr/lib/" -type l -regex '.*/lib\(gdal\|mysql\(client\|cppconn\)\)\.so\..*'); do - ln -s "$(readlink "${SYMLINK}")" "${pkgdir}"/usr/lib/mysql-workbench/"$(basename "${SYMLINK}")" - done - install -m0755 "${srcdir}/install-bundle/usr/bin/mysql"{,dump} "${pkgdir}"/usr/lib/mysql-workbench/ - - # install MySQL Workbench itself - cd "${srcdir}/mysql-workbench-community-${pkgver}-src/" - - make DESTDIR="${pkgdir}" install - - # icons - for SIZE in 16 24 32 48 64 96 128; do - convert -scale ${SIZE} \ - images/icons/linux/128x128/apps/mysql-workbench.png \ - ${srcdir}/mysql-workbench.png - install -D -m0644 ${srcdir}/mysql-workbench.png "${pkgdir}/usr/share/icons/hicolor/${SIZE}x${SIZE}/apps/mysql-workbench.png" - done - - install -D -m 0644 "${srcdir}"/arch_linux_profile.xml \ - "${pkgdir}"/usr/share/mysql-workbench/mysql.profiles/Arch_Linux_\(MariaDB\).xml -} - Copied: mysql-workbench/repos/community-x86_64/PKGBUILD (from rev 316968, mysql-workbench/trunk/PKGBUILD) =================================================================== --- PKGBUILD (rev 0) +++ PKGBUILD 2018-04-19 07:18:32 UTC (rev 316969) @@ -0,0 +1,174 @@ +# $Id$ +# Maintainer: Christian Hesse <m...@eworm.de> +# Contributor: Alexandre Boily <alexandrebo...@gmail.com> +# Contributor: Illarion Kovalchuk <illarion.kovalc...@gmail.com> +# Contributor: totoloco <totoloco at gmail _dot_com> +# Contributor: Ionut Biru <ib...@archlinux.org> + +pkgname=mysql-workbench +pkgver=6.3.10 +pkgrel=5 +_mysql_version=5.7.22 +_connector_version=1.1.9 +_gdal_version=2.2.4 +_boost_version=1.59.0 +pkgdesc='A cross-platform, visual database design tool developed by MySQL' +arch=('x86_64') +url='https://www.mysql.com/products/workbench/' +license=('GPL2') +depends=('cairo' 'ctemplate' 'desktop-file-utils' 'freetype2' 'gtkmm3' + 'hicolor-icon-theme' 'libgl' 'libgnome-keyring' 'libiodbc' 'libxml2' + 'libzip' 'mysql-python' 'pcre' 'python2' 'python2-cairo' 'python2-paramiko' + 'python2-pexpect' 'tinyxml' 'unixodbc' 'vsqlite++' 'proj' 'json-c') +optdepends=('gnome-keyring: store SSH/MySQL passwords in GNOME password manager' + 'python2-pyodbc: database migration') +makedepends=('cmake' 'boost' 'mesa' 'swig' 'java-runtime' 'imagemagick') +validpgpkeys=('A4A9406876FCBD3C456770C88C718D3B5072E1F5') +source=("https://cdn.mysql.com/Downloads/MySQLGUITools/mysql-workbench-community-${pkgver}-src.tar.gz"{,.asc} + "https://cdn.mysql.com/Downloads/MySQL-${_mysql_version%.*}/mysql-${_mysql_version}.tar.gz"{,.asc} + "https://cdn.mysql.com/Downloads/Connector-C++/mysql-connector-c++-${_connector_version}.tar.gz"{,.asc} + "http://download.osgeo.org/gdal/${_gdal_version}/gdal-${_gdal_version}.tar.xz" + "https://downloads.sourceforge.net/project/boost/boost/${_boost_version}/boost_${_boost_version//./_}.tar.bz2" + 'http://www.antlr3.org/download/antlr-3.4-complete.jar' + '0001-mysql-workbench-no-check-for-updates.patch' + '0002-disable-unsupported-operating-system-warning.patch' + '0003-add-option-to-hide-nonstandard-server-warning.patch' + '0005-gdal-use-CPLFree.patch' + '0006-mysql-include-my_dir.patch' + 'arch_linux_profile.xml') +sha256sums=('b5593e439c6f8d50262a8950456a9ba3709b02d1dece0360d5f6e47e1b0d7dc3' + 'SKIP' + '4eb8405b0a9acb0381eae94c1741b2850dfc6467742b24b676e62b566409cff2' + 'SKIP' + '3e31847a69a4e5c113b7c483731317ec4533858e3195d3a85026a0e2f509d2e4' + 'SKIP' + '441eb1d1acb35238ca43a1a0a649493fc91fdcbab231d0747e9d462eea192278' + '727a932322d94287b62abb1bd2d41723eec4356a7728909e38adb65ca25241ca' + '9d3e866b610460664522520f73b81777b5626fb0a282a5952b9800b751550bf7' + 'b189e15c6b6f5a707357d9a9297f39ee3a33264fd28b44d5de6f537f851f82cf' + '0d65832bc5a73d4cfecef4b552bb78a30ce6020a5fabe5558dcf2ade8341b593' + '3c9097af599f08388c471d6fd02f40ea72e5759eaa89f731e662852a5e67feea' + '0965b4f12a0ae26bea131f05c7383d4a9b068d556b092ad23e19e1d8f6895531' + 'd97a1fec15e0dc4491e79ce380f6f994f1c4b387d960c13e178a18b0299c0436' + '2ade582ca25f6d6d748bc84a913de39b34dcaa6e621a77740fe143007f2833af') + +prepare() { + cd "${srcdir}/mysql-${_mysql_version}" + + # fix build without server + patch -Np1 < "${srcdir}"/0006-mysql-include-my_dir.patch + + cd "${srcdir}/mysql-workbench-community-${pkgver}-src/" + + # Disable 'Help' -> 'Check for Updates' + # Updates are provided via Arch Linux packages + patch -Np1 < "${srcdir}"/0001-mysql-workbench-no-check-for-updates.patch + + # disable unsupported operating system warning + patch -Np1 < "${srcdir}"/0002-disable-unsupported-operating-system-warning.patch + + # add option to hide nonstandard server warning + patch -Np1 < "${srcdir}"/0003-add-option-to-hide-nonstandard-server-warning.patch + + # gdal: use CPLFree() + patch -Np1 < "${srcdir}"/0005-gdal-use-CPLFree.patch + + # GCC 7.x introduced some new warnings, remove '-Werror' for the build to complete + sed -i '/^set/s|-Werror -Wall|-Wall|' CMakeLists.txt + + # GCC 7.x complains about unsupported flag + sed -i 's|-Wno-deprecated-register||' ext/scintilla/gtk/CMakeLists.txt + + # we need python 2.x + sed -i '/^FIND_PROGRAM(PYTHON_EXEC /c FIND_PROGRAM(PYTHON_EXEC "python2")' \ + CMakeLists.txt + + # put antlr into place + install -D ${srcdir}/antlr-3.4-complete.jar ${srcdir}/linux-res/bin/antlr-3.4-complete.jar + + # make sure to link against bundled libraries + sed -i "/target_link_libraries/s|\\$|-L${srcdir}/install-bundle/usr/lib/ \\$|" backend/wbpublic/CMakeLists.txt +} + +build() { + # Build mysql + cd "${srcdir}/mysql-${_mysql_version}" + cmake . \ + -DWITHOUT_SERVER=ON \ + -DBUILD_CONFIG=mysql_release \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DSYSCONFDIR=/etc/mysql \ + -DMYSQL_DATADIR=/var/lib/mysql \ + -DWITH_BOOST="${srcdir}/boost_${_boost_version//./_}" + make + make DESTDIR="${srcdir}/install-bundle/" install + + # Build mysql-connector-c++ + cd "${srcdir}/mysql-connector-c++-${_connector_version}/" + cmake . \ + -Wno-dev \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DMYSQLCPPCONN_BUILD_EXAMPLES=OFF \ + -DMYSQL_DIR="${srcdir}/install-bundle/" \ + -DMYSQL_CONFIG_EXECUTABLE="${srcdir}/install-bundle/usr/bin/mysql_config" \ + -DBOOST_ROOT:STRING="${srcdir}/boost_${_boost_version//./_}" + + make DESTDIR="${srcdir}/install-bundle/" install + + # Build gdal + cd "${srcdir}/gdal-${_gdal_version}/" + ./configure \ + --prefix=/usr \ + --includedir=/usr/include/gdal \ + --with-sqlite3 \ + --with-mysql="${srcdir}/install-bundle/usr/bin/mysql_config" \ + --with-curl \ + --without-jasper + make + make DESTDIR="${srcdir}/install-bundle/" install + + # Build MySQL Workbench itself with bundled libs + cd "${srcdir}/mysql-workbench-community-${pkgver}-src/" + cmake . \ + -DCMAKE_INSTALL_PREFIX:PATH=/usr \ + -DCMAKE_CXX_FLAGS="-std=c++11" \ + -DCMAKE_BUILD_TYPE=Release \ + -DMySQL_CONFIG_PATH="${srcdir}/install-bundle/usr/bin/mysql_config" \ + -DMySQLCppConn_LIBRARY="${srcdir}/install-bundle/usr/lib/libmysqlcppconn.so" \ + -DMySQLCppConn_INCLUDE_DIR="${srcdir}/install-bundle/usr/include" \ + -DGDAL_INCLUDE_DIR="${srcdir}/install-bundle/usr/include" \ + -DGDAL_LIBRARY="${srcdir}/install-bundle/usr/lib/libgdal.so" \ + -DUSE_BUNDLED_MYSQLDUMP=1 + make +} + +package() { + # install bundled libraries files and files + for LIBRARY in $(find "${srcdir}/install-bundle/usr/lib/" -type f -regex '.*/lib\(gdal\|mysql\(client\|cppconn\)\)\.so\..*'); do + install -D -m0755 "${LIBRARY}" "${pkgdir}"/usr/lib/mysql-workbench/"$(basename "${LIBRARY}")" + done + for SYMLINK in $(find "${srcdir}/install-bundle/usr/lib/" -type l -regex '.*/lib\(gdal\|mysql\(client\|cppconn\)\)\.so\..*'); do + ln -s "$(readlink "${SYMLINK}")" "${pkgdir}"/usr/lib/mysql-workbench/"$(basename "${SYMLINK}")" + done + install -m0755 "${srcdir}/install-bundle/usr/bin/mysql"{,dump} "${pkgdir}"/usr/lib/mysql-workbench/ + + # install MySQL Workbench itself + cd "${srcdir}/mysql-workbench-community-${pkgver}-src/" + + make DESTDIR="${pkgdir}" install + + # icons + for SIZE in 16 24 32 48 64 96 128; do + convert -scale ${SIZE} \ + images/icons/linux/128x128/apps/mysql-workbench.png \ + ${srcdir}/mysql-workbench.png + install -D -m0644 ${srcdir}/mysql-workbench.png "${pkgdir}/usr/share/icons/hicolor/${SIZE}x${SIZE}/apps/mysql-workbench.png" + done + + install -D -m 0644 "${srcdir}"/arch_linux_profile.xml \ + "${pkgdir}"/usr/share/mysql-workbench/mysql.profiles/Arch_Linux_\(MariaDB\).xml +} + Deleted: arch_linux_profile.xml =================================================================== (Binary files differ) Copied: mysql-workbench/repos/community-x86_64/arch_linux_profile.xml (from rev 316968, mysql-workbench/trunk/arch_linux_profile.xml) =================================================================== (Binary files differ)