community/mysql-workbench to 8.0.12-1

This commit is contained in:
Kevin Mihelich 2018-07-30 13:50:44 +00:00
parent 75ced2ab94
commit dd305a4c88
8 changed files with 271 additions and 221 deletions

View file

@ -1,21 +1,30 @@
From d15e588be02e44b1317bf90ff7be1714267281c8 Mon Sep 17 00:00:00 2001
From: Christian Hesse <mail@eworm.de>
Date: Mon, 23 Jul 2018 11:03:19 +0200
Subject: [PATCH 1/4] mysql-workbench-no-check-for-updates
Signed-off-by: Christian Hesse <mail@eworm.de>
---
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>

View file

@ -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 <mail@eworm.de>
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 <mail@eworm.de>
---
@ -9,21 +9,18 @@ Signed-off-by: Christian Hesse <mail@eworm.de>
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

View file

@ -0,0 +1,146 @@
From 6fb2b4a97b8e9c066bdab62d24e38b9f3e5dbc79 Mon Sep 17 00:00:00 2001
From: Marcin Szalowicz <marcin.szalowicz@oracle.com>
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

View file

@ -1,36 +0,0 @@
From cca769c75b9421f8ef5090848cea6162ccd85ba7 Mon Sep 17 00:00:00 2001
From: Christian Hesse <mail@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 <mail@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

View file

@ -1,62 +0,0 @@
From 97d26e5edfccead3fe3a10b732de51caa427eb60 Mon Sep 17 00:00:00 2001
From: Christian Hesse <mail@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 <mail@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

View file

@ -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

View file

@ -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})

View file

@ -13,66 +13,64 @@ highmem=1
buildarch=28
pkgname=mysql-workbench
pkgver=6.3.10
pkgrel=7
_mysql_version=5.7.22
_connector_version=1.1.11
_gdal_version=2.3.0
_boost_version=1.59.0
pkgver=8.0.12
pkgrel=1
_mysql_version=8.0.12
_connector_version=8.0.12
_gdal_version=2.3.1
_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/'
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++' '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 <mysql-build@oss.oracle.com>
'8DFF53E18F2ABC8D8F3C92237EE0FC4DCC014E3D') # Andreas Schneider <asn@cryptomilk.org> (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'
'0003-Fix-segfault-in-getIssueBanner-add-missing-wrappers.patch'
'0004-fix-build-for-i686.patch'
'0005-gdal-use-CPLFree.patch'
'0006-mysql-include-my_dir.patch'
'0007-mysql-connector-cpp-linking.patch'
'arch_linux_profile.xml')
sha512sums=('f892853a5f8b000c424b945c38680e17b041699fe2b03743b71c803de6cedeb12e3f69ad94d1c737e23f26d8608026e18fb29d31be6b3a2ffea1d78229212a4d'
sha256sums=('0241586c95026a7d4d1b552ba2e33d8e66f6826e8f7e1a692b78c405f80cd334'
'SKIP'
'91df104493edac6a7b7e76ab1c8d465a6a5cba7552d2d0e2e0f58e3943a5ccdbcad9964f30c81d5d734d0dc988ef07f90215e91639014e51c8fba773855123d7'
'69f16e20834dbc60cb28d6df7351deda323330b9de685d22415f135bcedd1b20'
'SKIP'
'd6839ecda12d1f088f24b20c08f3e9a757e9907d3375dba39e0f247b6a11de59817739644201e74d782d4c900aa18bf60910fe60a9ee98a2c0138104fb55dc22'
'47d9f152988fe205350a6d31d032692a6777f838a886c3b3dc7af3b0652fdd50'
'SKIP'
'7eb5abd9e61fca2ac8c7022029b2492b98f56873ffd277e15ced23d3742e26fd29eb5f8ed7c916b096c3caeed9efc03d0c022390fa0bf762d0c6cb5c04e70ec7'
'8139e1ae997a86974071c5714ad3307e3d8fd15ef702b81a953410dd4d424b932135f53a0ef4891d9b9b747a38e539e66d6a803388fe0cc98e5166be872d682a'
'04be4dfba3a21f3ab9d9e439a64958bd8e844a9f151b798383bd9e0dd6ebc416783ae7cb1d1dbb27fb7288ab9756b13b8338cdb8ceb41a10949c852ad45ab1f2'
'efcccb010d6b0c66ac4f865f06e832d971e51dac9b1d8adb410ee4d01143966fe85b29e84dc77987ce845755ab10fb4a57f70bdb61bec44b8b0ae56b70aaac91'
'8636b02470f228c8deefedc6775faf7b5cdf06bc048ed5c1bb310c49d57ed1ce24c2b223351fc19d83cfc6eecdf5672bc66672d3004307e34aacf83563fc4511'
'3a53dce5ff62cb6b75e9329c511b7f234b37943891e102933fb6bbda207a3de2670d3093743eb4e8b58e045d3f38df1efaeb02f4e7f0a4d45eed090992ab866e'
'bd98c213a91a36a816f083cb252bf5064dc17071db250c0f2d0822ac55a4ea8f096729cfe59cc8d56304f9bd476e874c38bb7273e8bbb967d50156b5e6f3371a'
'08b921ce13ff38571fd4b25c4cd42d0248c78d57adeaa4e93d1add407ba1082118bec1a334e2628de269bc683b2d6614c7b90e78c746351d432c6d0880d9b5e6'
'f6214df7412935d872409cc4d957854c75bf7c5b8dbc3160955a56619bcd5ceb252c30de086ab8b8cd0f7f28aff3825d0b71ab111cf4379ca01f5e2a307e0e0b'
'1d9841b74be8d752426a8aa8283936f072c42c2bd93812c73fcd3e801026ccda5118257bdb2fce63d2878a8e59b4880daba77e07a41afee9e4dab7748d1e7ba0'
'0bf585e76083091fc048f59981ac19ead99c8b168518b77d86b279b99cec4acfaf1331f15b85ccd3466590a82e1c66eca896065bcb8ad237be11cb999f28b6d8')
'9c4625c45a3ee7e49a604ef221778983dd9fd8104922a87f20b99d9bedb7725a'
'2684c972994ee57fc5632e03bf044746f6eb45d4920c343937a465fd67a5adba'
'54e86dd5dc20e5367e58f3caab337ce37675f863f80df85b6b1614966a337095'
'SKIP'
'c39bed86f34a377015fb6d6552700a3838c5cae1a4a83b3e859539785aeabdba'
'cdf687f23bc6e8d52dbee9fa02b23d755e80f88476f0fc2e7c4c71cdfed3792f'
'2d0f6dcf38f22e49ef7ab9de0230484f1ffac41b7ac40feaf5ef4538ae2f7a18'
'f15d8c8b3cc74d2d0b792316834648620fc2299ce103c6419f4c562f759ad755'
'763925b336d9a398c15fdd757b6567a2f374a822090d32ffdefca018231128a4'
'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
cd "${srcdir}/mysql-connector-c++-${_connector_version}/"
# fix linking
patch -Np1 < "${srcdir}"/0007-mysql-connector-cpp-linking.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-workbench-community-${pkgver}-src/"
@ -83,27 +81,17 @@ prepare() {
# 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
# fix build for i686
patch -Np1 < "${srcdir}"/0004-fix-build-for-i686.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
# disable stringop-truncation for GCC 8.x
sed -i '/^set/s|-Wall|-Wall -Wno-stringop-truncation|' CMakeLists.txt
# make sure to link against bundled libraries
sed -i "/target_link_libraries/s|\\$|-L${srcdir}/install-bundle/usr/lib/ \\$|" backend/wbpublic/CMakeLists.txt
@ -111,31 +99,41 @@ prepare() {
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 \
@ -143,45 +141,68 @@ build() {
--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="${CXXFLAGS} -std=c++11 -fsigned-char" \
-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
# 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 \