Date: Monday, July 30, 2018 @ 11:21:56 Author: eworm Revision: 364966
upgpkg: mysql-workbench 8.0.12-1 new upstream release Added: mysql-workbench/trunk/0003-Fix-segfault-in-getIssueBanner-add-missing-wrappers.patch Modified: mysql-workbench/trunk/0001-mysql-workbench-no-check-for-updates.patch mysql-workbench/trunk/0002-disable-unsupported-operating-system-warning.patch mysql-workbench/trunk/PKGBUILD Deleted: mysql-workbench/trunk/0003-add-option-to-hide-nonstandard-server-warning.patch mysql-workbench/trunk/0005-gdal-use-CPLFree.patch mysql-workbench/trunk/0006-mysql-include-my_dir.patch mysql-workbench/trunk/0007-mysql-connector-cpp-linking.patch ----------------------------------------------------------------+ 0001-mysql-workbench-no-check-for-updates.patch | 45 +- 0002-disable-unsupported-operating-system-warning.patch | 17 - 0003-Fix-segfault-in-getIssueBanner-add-missing-wrappers.patch | 146 +++++++++ 0003-add-option-to-hide-nonstandard-server-warning.patch | 36 -- 0005-gdal-use-CPLFree.patch | 62 ---- 0006-mysql-include-my_dir.patch | 12 0007-mysql-connector-cpp-linking.patch | 13 PKGBUILD | 153 +++++----- 8 files changed, 267 insertions(+), 217 deletions(-) Modified: 0001-mysql-workbench-no-check-for-updates.patch =================================================================== --- 0001-mysql-workbench-no-check-for-updates.patch 2018-07-30 10:36:23 UTC (rev 364965) +++ 0001-mysql-workbench-no-check-for-updates.patch 2018-07-30 11:21:56 UTC (rev 364966) @@ -1,21 +1,30 @@ +From d15e588be02e44b1317bf90ff7be1714267281c8 Mon Sep 17 00:00:00 2001 +From: Christian Hesse <[email protected]> +Date: Mon, 23 Jul 2018 11:03:19 +0200 +Subject: [PATCH 1/4] mysql-workbench-no-check-for-updates + +Signed-off-by: Christian Hesse <[email protected]> +--- + res/wbdata/main_menu.xml | 2 ++ + 1 file changed, 2 insertions(+) + diff --git a/res/wbdata/main_menu.xml b/res/wbdata/main_menu.xml -index a32256c..08d9a21 100644 +index bfa63ef..957f809 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> +@@ -2277,6 +2277,7 @@ + <value type="string" key="command">builtin:show_log_file</value> + <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> +@@ -2287,6 +2288,7 @@ + <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> + <value type="string" key="platform">windows,linux</value> Modified: 0002-disable-unsupported-operating-system-warning.patch =================================================================== --- 0002-disable-unsupported-operating-system-warning.patch 2018-07-30 10:36:23 UTC (rev 364965) +++ 0002-disable-unsupported-operating-system-warning.patch 2018-07-30 11:21:56 UTC (rev 364966) @@ -1,7 +1,7 @@ -From 784599e99ee97574798512f6daf987cab8fd4cdf Mon Sep 17 00:00:00 2001 +From 98a9974f550dfb5c8f66213774e4ef95848127e1 Mon Sep 17 00:00:00 2001 From: Christian Hesse <[email protected]> -Date: Wed, 8 Feb 2017 09:12:24 +0100 -Subject: [PATCH 1/1] disable unsupported operating system warning +Date: Mon, 23 Jul 2018 11:04:55 +0200 +Subject: [PATCH 2/4] disable-unsupported-operating-system-warning Signed-off-by: Christian Hesse <[email protected]> --- @@ -9,21 +9,18 @@ 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 +index e80501a..a4047b1 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) { +@@ -1011,9 +1011,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 + // Avoid our runtime tests to lock up when a modal warning dialog is displayed. + if (options->open_at_startup_type != "run-script") warnIfRunningOnUnsupportedOS(); +#endif try { // execute action requested from command line --- -2.11.1 - Added: 0003-Fix-segfault-in-getIssueBanner-add-missing-wrappers.patch =================================================================== --- 0003-Fix-segfault-in-getIssueBanner-add-missing-wrappers.patch (rev 0) +++ 0003-Fix-segfault-in-getIssueBanner-add-missing-wrappers.patch 2018-07-30 11:21:56 UTC (rev 364966) @@ -0,0 +1,146 @@ +From 6fb2b4a97b8e9c066bdab62d24e38b9f3e5dbc79 Mon Sep 17 00:00:00 2001 +From: Marcin Szalowicz <[email protected]> +Date: Mon, 11 Jun 2018 11:25:43 +0200 +Subject: [PATCH] Fix segfault in getIssueBanner, add missing wrappers + +make some private properties protected +--- + include/libssh/libsshpp.hpp | 73 ++++++++++++++++++++++++++++++++++++++------- + 1 file changed, 62 insertions(+), 11 deletions(-) + +diff --git a/include/libssh/libsshpp.hpp b/include/libssh/libsshpp.hpp +index b8652f7..d1fa77b 100644 +--- a/include/libssh/libsshpp.hpp ++++ b/include/libssh/libsshpp.hpp +@@ -194,6 +194,43 @@ public: + ssh_throw(ret); + return ret; + } ++ ++ /** @brief Authenticate through the "keyboard-interactive" method. ++ * @param[in] The username to authenticate. You can specify NULL if ssh_option_set_username() has been used. You cannot try two different logins in a row. ++ * @param[in] Undocumented. Set it to NULL. ++ * @throws SshException on error ++ * @returns SSH_AUTH_SUCCESS, SSH_AUTH_PARTIAL, SSH_AUTH_DENIED, SSH_AUTH_ERROR, SSH_AUTH_INFO, SSH_AUTH_AGAIN ++ * @see ssh_userauth_kbdint ++ */ ++ int userauthKbdint(const char* username, const char* submethods){ ++ int ret=ssh_userauth_kbdint(c_session,NULL,NULL); ++ ssh_throw(ret); ++ return ret; ++ } ++ ++ /** @brief Get the number of prompts (questions) the server has given. ++ * @returns The number of prompts. ++ * @see ssh_userauth_kbdint_getnprompts ++ */ ++ int userauthKbdintGetNPrompts(){ ++ return ssh_userauth_kbdint_getnprompts(c_session); ++ } ++ ++ /** @brief Set the answer for a question from a message block.. ++ * @param[in] index The number of the ith prompt. ++ * @param[in] The answer to give to the server. The answer MUST be encoded UTF-8. It is up to the server how to interpret the value and validate it. However, if you read the answer in some other encoding, you MUST convert it to UTF-8. ++ * @throws SshException on error ++ * @returns 0 on success, < 0 on error ++ * @see ssh_userauth_kbdint_setanswer ++ */ ++ int userauthKbdintSetAnswer(unsigned int i, const char* answer){ ++ int ret=ssh_userauth_kbdint_setanswer(c_session, i, answer); ++ ssh_throw(ret); ++ return ret; ++ } ++ ++ ++ + /** @brief Authenticates using the password method. + * @param[in] password password to use for authentication + * @throws SshException on error +@@ -228,8 +265,7 @@ public: + ssh_throw(ret); + return ret; + } +- int userauthPrivatekeyFile(const char *filename, +- const char *passphrase); ++ + /** @brief Returns the available authentication methods from the server + * @throws SshException on error + * @returns Bitfield of available methods. +@@ -281,8 +317,12 @@ public: + */ + std::string getIssueBanner(){ + char *banner=ssh_get_issue_banner(c_session); +- std::string ret= std::string(banner); +- ::free(banner); ++ std::string ret; ++ if (banner) ++ { ++ ret= std::string(banner); ++ ::free(banner); ++ } + return ret; + } + /** @brief returns the OpenSSH version (server) if possible +@@ -378,11 +418,14 @@ public: + return_throwable; + } + +-private: +- ssh_session c_session; + ssh_session getCSession(){ + return c_session; + } ++ ++protected: ++ ssh_session c_session; ++ ++private: + /* No copy constructor, no = operator */ + Session(const Session &); + Session& operator=(const Session &); +@@ -481,12 +524,12 @@ public: + ssh_throw(err); + return err; + } +- int read(void *dest, size_t count, bool is_stderr){ ++ int read(void *dest, size_t count){ + int err; + /* handle int overflow */ + if(count > 0x7fffffff) + count = 0x7fffffff; +- err=ssh_channel_read_timeout(channel,dest,count,is_stderr,-1); ++ err=ssh_channel_read_timeout(channel,dest,count,false,-1); + ssh_throw(err); + return err; + } +@@ -584,16 +627,24 @@ public: + ssh_throw(ret); + return ret; + } +-private: ++ + ssh_session getCSession(){ + return session->getCSession(); + } ++ ++ ssh_channel getCChannel() { ++ return channel; ++ } ++ ++protected: ++ Session *session; ++ ssh_channel channel; ++ ++private: + Channel (Session &session, ssh_channel c_channel){ + this->channel=c_channel; + this->session=&session; + } +- Session *session; +- ssh_channel channel; + /* No copy and no = operator */ + Channel(const Channel &); + Channel &operator=(const Channel &); +-- +2.7.4 + Deleted: 0003-add-option-to-hide-nonstandard-server-warning.patch =================================================================== --- 0003-add-option-to-hide-nonstandard-server-warning.patch 2018-07-30 10:36:23 UTC (rev 364965) +++ 0003-add-option-to-hide-nonstandard-server-warning.patch 2018-07-30 11:21:56 UTC (rev 364966) @@ -1,36 +0,0 @@ -From cca769c75b9421f8ef5090848cea6162ccd85ba7 Mon Sep 17 00:00:00 2001 -From: Christian Hesse <[email protected]> -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 <[email protected]> ---- - 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-07-30 10:36:23 UTC (rev 364965) +++ 0005-gdal-use-CPLFree.patch 2018-07-30 11:21:56 UTC (rev 364966) @@ -1,62 +0,0 @@ -From 97d26e5edfccead3fe3a10b732de51caa427eb60 Mon Sep 17 00:00:00 2001 -From: Christian Hesse <[email protected]> -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 <[email protected]> ---- - 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-07-30 10:36:23 UTC (rev 364965) +++ 0006-mysql-include-my_dir.patch 2018-07-30 11:21:56 UTC (rev 364966) @@ -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 Deleted: 0007-mysql-connector-cpp-linking.patch =================================================================== --- 0007-mysql-connector-cpp-linking.patch 2018-07-30 10:36:23 UTC (rev 364965) +++ 0007-mysql-connector-cpp-linking.patch 2018-07-30 11:21:56 UTC (rev 364966) @@ -1,13 +0,0 @@ -diff --git a/FindMySQL.cmake b/FindMySQL.cmake -index c9d10c6..0df9683 100644 ---- a/FindMySQL.cmake -+++ b/FindMySQL.cmake -@@ -700,8 +700,6 @@ endif() - - # For dynamic linking use the built-in sys and strings - if(NOT MYSQLCLIENT_STATIC_LINKING) -- list(APPEND SYS_LIBRARIES "mysql_sys") -- list(APPEND SYS_LIBRARIES "mysql_strings") - list(APPEND SYS_LIBRARIES ${MYSQL_LIBRARIES}) - SET(MYSQL_LIBRARIES ${SYS_LIBRARIES}) - Modified: PKGBUILD =================================================================== --- PKGBUILD 2018-07-30 10:36:23 UTC (rev 364965) +++ PKGBUILD 2018-07-30 11:21:56 UTC (rev 364966) @@ -6,12 +6,13 @@ # Contributor: Ionut Biru <[email protected]> pkgname=mysql-workbench -pkgver=6.3.10 -pkgrel=7 -_mysql_version=5.7.22 -_connector_version=1.1.11 +pkgver=8.0.12 +pkgrel=1 +_mysql_version=8.0.12 +_connector_version=8.0.12 _gdal_version=2.3.1 -_boost_version=1.59.0 +_boost_version=1.67.0 +_libssh_version=0.7.5 pkgdesc='A cross-platform, visual database design tool developed by MySQL' arch=('x86_64') url='https://www.mysql.com/products/workbench/' @@ -18,53 +19,50 @@ 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') + 'libzip' 'mysql-python' 'pcre' 'python2' 'python2-cairo' + 'python2-pexpect' 'tinyxml' 'unixodbc' 'vsqlite++' 'proj' 'json-c' + 'antlr4-runtime') 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') +makedepends=('cmake' 'boost' 'mesa' 'swig' 'java-runtime' 'imagemagick' 'antlr4') +validpgpkeys=('A4A9406876FCBD3C456770C88C718D3B5072E1F5' # MySQL Release Engineering <[email protected]> + '8DFF53E18F2ABC8D8F3C92237EE0FC4DCC014E3D') # Andreas Schneider <[email protected]> (for libssh) 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} + "https://cdn.mysql.com/Downloads/Connector-C++/mysql-connector-c++-${_connector_version}-src.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' + "https://www.libssh.org/files/${_libssh_version%.*}/libssh-${_libssh_version}.tar."{xz,asc} + 'libssh-fix-read-config.patch::https://git.libssh.org/projects/libssh.git/patch/?id=5333be59' '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-mysql-connector-cpp-linking.patch' + '0003-Fix-segfault-in-getIssueBanner-add-missing-wrappers.patch' 'arch_linux_profile.xml') -sha256sums=('b5593e439c6f8d50262a8950456a9ba3709b02d1dece0360d5f6e47e1b0d7dc3' +sha256sums=('0241586c95026a7d4d1b552ba2e33d8e66f6826e8f7e1a692b78c405f80cd334' 'SKIP' - '4eb8405b0a9acb0381eae94c1741b2850dfc6467742b24b676e62b566409cff2' + '69f16e20834dbc60cb28d6df7351deda323330b9de685d22415f135bcedd1b20' 'SKIP' - '1962489c205bb86aa984e46a0a8a7702ea2ea25ee6e177973e6587cd92de6a65' + '47d9f152988fe205350a6d31d032692a6777f838a886c3b3dc7af3b0652fdd50' 'SKIP' '9c4625c45a3ee7e49a604ef221778983dd9fd8104922a87f20b99d9bedb7725a' - '727a932322d94287b62abb1bd2d41723eec4356a7728909e38adb65ca25241ca' - '9d3e866b610460664522520f73b81777b5626fb0a282a5952b9800b751550bf7' - 'b189e15c6b6f5a707357d9a9297f39ee3a33264fd28b44d5de6f537f851f82cf' - '0d65832bc5a73d4cfecef4b552bb78a30ce6020a5fabe5558dcf2ade8341b593' - '3c9097af599f08388c471d6fd02f40ea72e5759eaa89f731e662852a5e67feea' - '0965b4f12a0ae26bea131f05c7383d4a9b068d556b092ad23e19e1d8f6895531' - 'd97a1fec15e0dc4491e79ce380f6f994f1c4b387d960c13e178a18b0299c0436' - 'ea857f44f8e7abacec9a693ad0c4129aa9f93b238c26f4b53aa097a4bb42074a' + '2684c972994ee57fc5632e03bf044746f6eb45d4920c343937a465fd67a5adba' + '54e86dd5dc20e5367e58f3caab337ce37675f863f80df85b6b1614966a337095' + 'SKIP' + 'c39bed86f34a377015fb6d6552700a3838c5cae1a4a83b3e859539785aeabdba' + 'cdf687f23bc6e8d52dbee9fa02b23d755e80f88476f0fc2e7c4c71cdfed3792f' + '2d0f6dcf38f22e49ef7ab9de0230484f1ffac41b7ac40feaf5ef4538ae2f7a18' + 'f15d8c8b3cc74d2d0b792316834648620fc2299ce103c6419f4c562f759ad755' '2ade582ca25f6d6d748bc84a913de39b34dcaa6e621a77740fe143007f2833af') prepare() { - cd "${srcdir}/mysql-${_mysql_version}" + cd "${srcdir}/libssh-${_libssh_version}" - # fix build without server - patch -Np1 < "${srcdir}"/0006-mysql-include-my_dir.patch + # from libssh package + patch -Np1 < "${srcdir}"/libssh-fix-read-config.patch + # required for mysql-workbench + # TODO: drop bundled libssh when this is merged upstream and hits our package + patch -Np1 < "${srcdir}"/0003-Fix-segfault-in-getIssueBanner-add-missing-wrappers.patch - cd "${srcdir}/mysql-connector-c++-${_connector_version}/" - - # fix linking - patch -Np1 < "${srcdir}"/0007-mysql-connector-cpp-linking.patch - cd "${srcdir}/mysql-workbench-community-${pkgver}-src/" # Disable 'Help' -> 'Check for Updates' @@ -74,12 +72,6 @@ # 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 @@ -86,13 +78,9 @@ # 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 + # disable stringop-truncation for GCC 8.x + sed -i '/^set/s|-Wall|-Wall -Wno-stringop-truncation|' 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 } @@ -99,31 +87,41 @@ build() { # Build mysql - cd "${srcdir}/mysql-${_mysql_version}" - cmake . \ + mkdir "${srcdir}/mysql-${_mysql_version}-build" + cd "${srcdir}/mysql-${_mysql_version}-build" + msg "Configure mysql" + cmake "${srcdir}/mysql-${_mysql_version}" \ -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//./_}" + msg "Build mysql" + make + msg "Install mysql" make DESTDIR="${srcdir}/install-bundle/" install # Build mysql-connector-c++ - cd "${srcdir}/mysql-connector-c++-${_connector_version}/" - cmake . \ + mkdir "${srcdir}/mysql-connector-c++-${_connector_version}-src-build" + cd "${srcdir}/mysql-connector-c++-${_connector_version}-src-build" + msg "Configure mysql-connector-c++" + cmake "${srcdir}/mysql-connector-c++-${_connector_version}-src" \ -Wno-dev \ -DCMAKE_INSTALL_PREFIX=/usr \ -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_INSTALL_LIBDIR=lib \ - -DMYSQLCPPCONN_BUILD_EXAMPLES=OFF \ + -DINSTALL_LIB_DIR=lib \ -DMYSQL_DIR="${srcdir}/install-bundle/" \ - -DMYSQL_CONFIG_EXECUTABLE="${srcdir}/install-bundle/usr/bin/mysql_config" + -DMYSQL_CONFIG_EXECUTABLE="${srcdir}/install-bundle/usr/bin/mysql_config" \ + -DWITH_JDBC=ON + msg "Build mysql-connector-c++" + make + msg "Install mysql-connector-c++" make DESTDIR="${srcdir}/install-bundle/" install # Build gdal - cd "${srcdir}/gdal-${_gdal_version}/" + cd "${srcdir}/gdal-${_gdal_version}" + msg "Configure gdal" ./configure \ --prefix=/usr \ --includedir=/usr/include/gdal \ @@ -131,36 +129,59 @@ --with-mysql="${srcdir}/install-bundle/usr/bin/mysql_config" \ --with-curl \ --without-jasper - make lib-target - make DESTDIR="${srcdir}/install-bundle/" install-lib install-static-lib + msg "Build gdal" + make LD_LIBRARY_PATH="${srcdir}/install-bundle/usr/lib/" + msg "Install gdal" + make LD_LIBRARY_PATH="${srcdir}/install-bundle/usr/lib/" DESTDIR="${srcdir}/install-bundle/" install + # Build libssh + mkdir "${srcdir}/libssh-${_libssh_version}-build" + cd "${srcdir}/libssh-${_libssh_version}-build" + msg "Configure libssh" + cmake "${srcdir}/libssh-${_libssh_version}" \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DWITH_GSSAPI=OFF \ + -DWITH_GCRYPT=ON \ + -DWITH_TESTING=OFF + msg "Build libssh" + make + msg "Install libssh" + make DESTDIR="${srcdir}/install-bundle/" install + # Build MySQL Workbench itself with bundled libs - cd "${srcdir}/mysql-workbench-community-${pkgver}-src/" - cmake . \ + mkdir "${srcdir}/mysql-workbench-community-${pkgver}-src-build" + cd "${srcdir}/mysql-workbench-community-${pkgver}-src-build" + msg "Configure mysql-workbench" + cmake "${srcdir}/mysql-workbench-community-${pkgver}-src" \ + -Wno-dev \ -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" \ + -DMySQLCppConn_INCLUDE_DIR="${srcdir}/install-bundle/usr/include/jdbc" \ -DGDAL_INCLUDE_DIR="${srcdir}/install-bundle/usr/include" \ -DGDAL_LIBRARY="${srcdir}/install-bundle/usr/lib/libgdal.so" \ + -DLibSSH_INCLUDE_DIR="${srcdir}/install-bundle/usr/include" \ + -DLibSSH_LIBRARY="${srcdir}/install-bundle/usr/lib/libssh.so" \ + -DWITH_ANTLR_JAR='/usr/share/java/antlr-complete.jar' \ -DUSE_BUNDLED_MYSQLDUMP=1 + msg "Build mysql-workbench" 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 + for LIBRARY in $(find "${srcdir}/install-bundle/usr/lib/" -type f -regex '.*/lib\(gdal\|mysql\(client\|cppconn\)\|ssh\(\|_threads\)\)\.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 + for SYMLINK in $(find "${srcdir}/install-bundle/usr/lib/" -type l -regex '.*/lib\(gdal\|mysql\(client\|cppconn\)\|ssh\(\|_threads\)\)\.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/" + cd "${srcdir}/mysql-workbench-community-${pkgver}-src-build" make DESTDIR="${pkgdir}" install @@ -167,9 +188,9 @@ # 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" + "${srcdir}/mysql-workbench-community-${pkgver}-src/images/icons/MySQLWorkbench-128.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 \
