added community/mysql-workbench

This commit is contained in:
Kevin Mihelich 2015-10-26 18:28:25 +00:00
parent 7fc4b20a58
commit 50717eaaff
9 changed files with 307 additions and 0 deletions

View file

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

View file

@ -0,0 +1,29 @@
diff --git a/plugins/wb.admin/frontend/wb_admin_export.py b/plugins/wb.admin/frontend/wb_admin_export.py
index 40f5167..ebf6c3d 100644
--- a/plugins/wb.admin/frontend/wb_admin_export.py
+++ b/plugins/wb.admin/frontend/wb_admin_export.py
@@ -1858,8 +1858,6 @@ class WbAdminExportTab(WbAdminSchemaListTab):
args.append("--ssl-cipher=%s" % conn["sslCipher"])
# Sets the compatibility parameters if needed
- if self._compatibility_params:
- args.append("--set-gtid-purged=OFF")
if conn.get("OPT_ENABLE_CLEARTEXT_PLUGIN", ""):
args.append("--enable-cleartext-plugin")
diff --git a/plugins/wb.admin/frontend/wb_admin_export_options.py b/plugins/wb.admin/frontend/wb_admin_export_options.py
index e9ec2e7..653f531 100644
--- a/plugins/wb.admin/frontend/wb_admin_export_options.py
+++ b/plugins/wb.admin/frontend/wb_admin_export_options.py
@@ -53,9 +53,9 @@ export_options = {
"order-by-primary":["Dump each table's rows sorted by its primary key, or by its first unique index.","FALSE"],
"dump-date":["Include dump date as \"Dump completed on\" comment if --comments is given.","TRUE"],
"$internal$show-internal-schemas":["Show internal MySQL schemas (mysql, information_schema, performance_schema) in the export schema list.","FALSE"],
- "tz-utc":["Add SET TIME_ZONE='+00:00' to the dump file.","TRUE"],
+ "tz-utc":["Add SET TIME_ZONE='+00:00' to the dump file.","TRUE"]
# "xml":["Produce XML output.","FALSE"]
- "set-gtid-purged":["Add 'SET @@GLOBAL.GTID_PURGED' to the output.","AUTO","STR",("5.6.9", None)]
+# "set-gtid-purged":["Add 'SET @@GLOBAL.GTID_PURGED' to the output.","AUTO","STR",("5.6.9", None)]
}
}

View file

@ -0,0 +1,17 @@
diff --git a/frontend/linux/workbench/mysql-workbench.in b/frontend/linux/workbench/mysql-workbench.in
index 02a8061..f8176f6 100755
--- a/frontend/linux/workbench/mysql-workbench.in
+++ b/frontend/linux/workbench/mysql-workbench.in
@@ -4,6 +4,12 @@
# This will cause passwords to be stored only temporarily for the session.
#WB_NO_GNOME_KEYRING=1
+# Looks like WB expects gnome-keyring to be present as soon as XDG_RUNTIME_DIR
+# environment variable is set. Do an extra check here...
+if ! type gnome-keyring-daemon >/dev/null 2>/dev/null; then
+ export WB_NO_GNOME_KEYRING=1
+fi
+
# force disable the Mac style single menu hack in Ubuntu Unity
export UBUNTU_MENUPROXY=0

View file

@ -0,0 +1,13 @@
diff --git a/plugins/migration/copytable/copytable.cpp b/plugins/migration/copytable/copytable.cpp
index 7b760e0..ec05d11 100644
--- a/plugins/migration/copytable/copytable.cpp
+++ b/plugins/migration/copytable/copytable.cpp
@@ -1922,7 +1922,7 @@ MySQLCopyDataTarget::MySQLCopyDataTarget(const std::string &hostname, int port,
mysql_init(&_mysql);
#if defined(MYSQL_VERSION_MAJOR) && defined(MYSQL_VERSION_MINOR) && defined(MYSQL_VERSION_PATCH)
#if MYSQL_CHECK_VERSION(5,6,6)
- if (is_mysql_version_at_least(5,6,6))
+ if (MySQLCopyDataTarget::is_mysql_version_at_least(5,6,6))
mysql_options4(&_mysql, MYSQL_OPT_CONNECT_ATTR_ADD, "program_name", app_name.c_str());
#endif
#endif

View file

@ -0,0 +1,25 @@
diff --git a/library/forms/swig/mforms.i b/library/forms/swig/mforms.i
index 3f5104f..cdcca30 100644
--- a/library/forms/swig/mforms.i
+++ b/library/forms/swig/mforms.i
@@ -533,7 +533,7 @@ inline boost::function<void (mforms::TextEntryAction)> pycall_void_entryaction_f
#define SWIG_ADD_SIGNAL_BOOL_INT_CALLBACK(method, signal)\
void add_##method(PyObject *callback) { signal->connect(pycall_bool_int_fun(callback)); }\
- bool call_##method(int i) { return (*signal)(i); }
+ bool call_##method(int i) { return *( (*signal)(i) ); }
#define SWIG_ADD_SIGNAL_VOID_ENTRYACTION_CALLBACK(method, signal)\
void add_##method(PyObject *callback) { signal->connect(pycall_void_entryaction_fun(callback)); }
diff --git a/library/forms/view.cpp b/library/forms/view.cpp
index ec49389..67ff486 100644
--- a/library/forms/view.cpp
+++ b/library/forms/view.cpp
@@ -512,7 +512,7 @@ DropPosition View::get_drop_position()
bool View::mouse_leave()
{
if (_signal_mouse_leave.num_slots() > 0)
- return _signal_mouse_leave();
+ return *_signal_mouse_leave();
return false;
}

View file

@ -0,0 +1,58 @@
diff --git a/plugins/migration/copytable/copytable.cpp b/plugins/migration/copytable/copytable.cpp
index de52d91..2df53a4 100644
--- a/plugins/migration/copytable/copytable.cpp
+++ b/plugins/migration/copytable/copytable.cpp
@@ -79,7 +79,7 @@ static const char *mysql_field_type_to_name(enum enum_field_types type)
case MYSQL_TYPE_VAR_STRING: return "MYSQL_TYPE_VAR_STRING";
case MYSQL_TYPE_STRING: return "MYSQL_TYPE_STRING";
case MYSQL_TYPE_GEOMETRY: return "MYSQL_TYPE_GEOMETRY";
- case MYSQL_TYPE_JSON: return "MYSQL_TYPE_JSON";
+// case MYSQL_TYPE_JSON: return "MYSQL_TYPE_JSON";
default:
return "UNKNOWN";
}
@@ -241,7 +241,7 @@ RowBuffer::RowBuffer(boost::shared_ptr<std::vector<ColumnInfo> > columns,
case MYSQL_TYPE_STRING:
case MYSQL_TYPE_VAR_STRING:
case MYSQL_TYPE_BIT:
- case MYSQL_TYPE_JSON:
+// case MYSQL_TYPE_JSON:
if (!col->is_long_data)
bind.buffer_length = (unsigned)col->source_length+1;
@@ -1551,8 +1551,8 @@ bool MySQLCopyDataSource::fetch_row(RowBuffer &rowbuffer)
rowbuffer[index].buffer_type == MYSQL_TYPE_LONG_BLOB ||
rowbuffer[index].buffer_type == MYSQL_TYPE_BLOB ||
rowbuffer[index].buffer_type == MYSQL_TYPE_STRING ||
- rowbuffer[index].buffer_type == MYSQL_TYPE_GEOMETRY ||
- rowbuffer[index].buffer_type == MYSQL_TYPE_JSON)
+ rowbuffer[index].buffer_type == MYSQL_TYPE_GEOMETRY)
+// rowbuffer[index].buffer_type == MYSQL_TYPE_JSON)
{
if (rowbuffer[index].buffer_length)
free(rowbuffer[index].buffer);
@@ -2357,7 +2357,7 @@ bool MySQLCopyDataTarget::append_bulk_column(size_t col_index)
case MYSQL_TYPE_STRING:
case MYSQL_TYPE_ENUM:
case MYSQL_TYPE_SET:
- case MYSQL_TYPE_JSON:
+// case MYSQL_TYPE_JSON:
_bulk_insert_record.append("'", 1);
ret_val = _bulk_insert_record.append_escaped((char*)(*_row_buffer)[col_index].buffer, *(*_row_buffer)[col_index].length);
_bulk_insert_record.append("'", 1);
diff --git a/backend/wbpublic/objimpl/db.query/db_query_Resultset.cpp b/backend/wbpublic/objimpl/db.query/db_query_Resultset.cpp
index f5c2ffb..b42ba6a 100644
--- a/backend/wbpublic/objimpl/db.query/db_query_Resultset.cpp
+++ b/backend/wbpublic/objimpl/db.query/db_query_Resultset.cpp
@@ -300,9 +300,9 @@ public:
case sql::DataType::SET:
type= "string";
break;
- case sql::DataType::JSON:
+ /* case sql::DataType::JSON:
type = "json";
- break;
+ break; */
case sql::DataType::SQLNULL:
type = "null";
break;

View file

@ -0,0 +1,114 @@
# $Id$
# Maintainer: Christian Hesse <mail@eworm.de>
# Contributor: Alexandre Boily <alexandreboily@gmail.com>
# Contributor: Illarion Kovalchuk <illarion.kovalchuk@gmail.com>
# Contributor: totoloco <totoloco at gmail _dot_com>
# Contributor: Ionut Biru <ibiru@archlinux.org>
# ALARM: Kevin Mihelich <kevin@archlinuxarm.org>
# - use our cxxflags plus -fsigned-char
pkgname=mysql-workbench
pkgver=6.3.5
pkgrel=1
pkgdesc='A cross-platform, visual database design tool developed by MySQL'
arch=('i686' 'x86_64')
url='https://www.mysql.com/products/workbench/'
license=('GPL2')
depends=('python2' 'libzip' 'libmariadbclient' 'gtkmm' 'ctemplate'
'libgnome-keyring' 'libgl' 'python2-paramiko' 'python2-pexpect' 'gdal'
'pcre' 'tinyxml' 'libxml2' 'mysql-python' 'cairo'
'python2-cairo' 'hicolor-icon-theme' 'desktop-file-utils' 'libiodbc'
'mysql-connector-c++' 'vsqlite++' 'unixodbc' 'freetype2'
'libantlr3c')
optdepends=('gnome-keyring: store SSH/MySQL passwords in GNOME password manager'
'python2-pyodbc: database migration')
makedepends=('cmake' 'boost' 'curl' 'mesa' 'swig' 'java-runtime' 'imagemagick')
install=mysql-workbench.install
validpgpkeys=('A4A9406876FCBD3C456770C88C718D3B5072E1F5')
source=("http://cdn.mysql.com/Downloads/MySQLGUITools/mysql-workbench-community-${pkgver}-src.tar.gz"{,.asc}
'http://www.antlr3.org/download/antlr-3.4-complete.jar'
'0001-mysql-workbench-no-check-for-updates.patch'
'0007-mysql-workbench-no-set-gtid-purged.patch'
'0009-mysql-workbench-gnome-keyring.patch'
'0010-mysql-workbench-object.patch'
'0012-mysql-workbench-cpp11.patch'
'0013-mysql-workbench-no-json.patch'
'arch_linux_profile.xml')
sha256sums=('7a63d05cfb5dec60ece3e73869eb61afc7125e4a8a18e53d760cd7ca0479dc84'
'SKIP'
'9d3e866b610460664522520f73b81777b5626fb0a282a5952b9800b751550bf7'
'b189e15c6b6f5a707357d9a9297f39ee3a33264fd28b44d5de6f537f851f82cf'
'b49d4ea352d2c2013b9c5834668c44521a0a2c5f9c7e3fe746ad94ce0d2bb865'
'9c2ae2fe7a4f59502bdcf591a07353c350b0ba29c3935c8242d97848cc0e50d3'
'2bc79f935cd5059409d32aa64832b7aa2c49ba533cc93d40a063bcbfe01a4485'
'f76ffa7343b758ac0de2448e948c533e8623a0e426d293602ab7261c853ec684'
'663b6eed3715988e16a695f5810bdfb7e76aaeb28baaf4b11b2a73ee2bcb403d'
'28724c4b4cec29ce19aada08279df1b086381cd788fef7ae07c1860f7d17af7e')
prepare() {
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
# mysqldump from mariadb (currently 1.0.16) does not support --set-gtid-purged
patch -Np1 < "${srcdir}"/0007-mysql-workbench-no-set-gtid-purged.patch
# fix gnome-keyring
patch -Np1 < "${srcdir}"/0009-mysql-workbench-gnome-keyring.patch
# fix cannot call member function without object
patch -Np1 < "${srcdir}"/0010-mysql-workbench-object.patch
# fix for C++11
# http://bugs.mysql.com/bug.php?id=78668
patch -Np1 < "${srcdir}"/0012-mysql-workbench-cpp11.patch
# we have no JSON, probably missing in mariadb
patch -Np1 < "${srcdir}"/0013-mysql-workbench-no-json.patch
# fix the swig workaround
sed -i '/SWIG_VERSION/s/0x030008/0x030006/' \
library/forms/mforms/textbox.h \
library/forms/swig/mforms.i
# fix GDAL
sed -i '/#include/s|gdal/||' \
backend/wbpublic/grtui/geom_draw_box.h \
backend/wbpublic/grt/spatial_handler.h
# put antlr into place
install -D ${srcdir}/antlr-3.4-complete.jar ${srcdir}/linux-res/bin/antlr-3.4-complete.jar
}
build() {
cd "${srcdir}/mysql-workbench-community-${pkgver}-src/"
# link to libsigc++, which requires ISO C++ 2011 standard
# so add the flag to enable c++11
cmake . \
-DCMAKE_INSTALL_PREFIX:PATH=/usr \
-DCMAKE_CXX_FLAGS="${CXXFLAGS} -std=c++11 -fsigned-char"
make
}
package() {
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_5.5_Package\).xml
}

View file

@ -0,0 +1,16 @@
<?xml version="1.0"?>
<data>
<value type="dict">
<value type="string" key="sys.config.path">/etc/mysql/my.cnf</value>
<value type="string" key="sys.config.section">mysqld</value>
<value type="string" key="sys.mysqld.start">systemctl start mysqld</value>
<value type="string" key="sys.mysqld.stop">systemctl stop mysqld</value>
<value type="string" key="sys.mysqld.status">ps -C mysqld -o pid=</value>
<value type="int" key="sys.usesudo">0</value>
<value type="string" key="sys.system">Linux</value>
<value type="string" key="serverVersion">10.0</value>
</value>
</data>

View file

@ -0,0 +1,14 @@
post_install() {
gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
update-desktop-database -q
update-mime-database usr/share/mime
}
post_upgrade() {
post_install
}
post_remove() {
post_install
}