diff options
author | Christian Hesse | 2015-10-29 14:49:59 +0100 |
---|---|---|
committer | Christian Hesse | 2015-10-29 14:49:59 +0100 |
commit | 9a292ba4aaa1627ffb8efb233a78503c571f272f (patch) | |
tree | 5eecfb7aa3e9540315b550f5ba467e95433652bf | |
download | aur-9a292ba4aaa1627ffb8efb233a78503c571f272f.tar.gz |
initial import of mysql-workbench-git 6.3.5.r0.gaa9272c-1
-rw-r--r-- | .SRCINFO | 66 | ||||
-rw-r--r-- | 0001-mysql-workbench-no-check-for-updates.patch | 21 | ||||
-rw-r--r-- | 0007-mysql-workbench-no-set-gtid-purged.patch | 29 | ||||
-rw-r--r-- | 0009-mysql-workbench-gnome-keyring.patch | 17 | ||||
-rw-r--r-- | 0010-mysql-workbench-object.patch | 13 | ||||
-rw-r--r-- | 0012-mysql-workbench-cpp11.patch | 25 | ||||
-rw-r--r-- | 0013-mysql-workbench-no-json.patch | 58 | ||||
-rw-r--r-- | PKGBUILD | 126 | ||||
-rw-r--r-- | arch_linux_profile.xml | 16 | ||||
-rw-r--r-- | mysql-workbench.install | 14 |
10 files changed, 385 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO new file mode 100644 index 000000000000..92a572973d3d --- /dev/null +++ b/.SRCINFO @@ -0,0 +1,66 @@ +pkgbase = mysql-workbench-git + pkgdesc = A cross-platform, visual database design tool developed by MySQL - git checkout + pkgver = 6.3.5.r0.gaa9272c + pkgrel = 1 + url = https://www.mysql.com/products/workbench/ + install = mysql-workbench.install + arch = i686 + arch = x86_64 + license = GPL2 + makedepends = git + makedepends = cmake + makedepends = boost + makedepends = curl + makedepends = mesa + makedepends = swig + makedepends = java-runtime + makedepends = imagemagick + depends = python2 + depends = libzip + depends = libmariadbclient + depends = gtkmm + depends = ctemplate + depends = libgnome-keyring + depends = libgl + depends = python2-paramiko + depends = python2-pexpect + depends = gdal + depends = pcre + depends = tinyxml + depends = libxml2 + depends = mysql-python + depends = cairo + depends = python2-cairo + depends = hicolor-icon-theme + depends = desktop-file-utils + depends = libiodbc + depends = mysql-connector-c++ + depends = vsqlite++ + depends = unixodbc + depends = freetype2 + depends = libantlr3c + optdepends = gnome-keyring: store SSH/MySQL passwords in GNOME password manager + optdepends = python2-pyodbc: database migration + provides = mysql-workbench + conflicts = mysql-workbench + source = git://github.com/mysql/mysql-workbench.git + source = http://www.antlr3.org/download/antlr-3.4-complete.jar + source = 0001-mysql-workbench-no-check-for-updates.patch + source = 0007-mysql-workbench-no-set-gtid-purged.patch + source = 0009-mysql-workbench-gnome-keyring.patch + source = 0010-mysql-workbench-object.patch + source = 0012-mysql-workbench-cpp11.patch + source = 0013-mysql-workbench-no-json.patch + source = arch_linux_profile.xml + sha256sums = SKIP + sha256sums = 9d3e866b610460664522520f73b81777b5626fb0a282a5952b9800b751550bf7 + sha256sums = b189e15c6b6f5a707357d9a9297f39ee3a33264fd28b44d5de6f537f851f82cf + sha256sums = b49d4ea352d2c2013b9c5834668c44521a0a2c5f9c7e3fe746ad94ce0d2bb865 + sha256sums = 9c2ae2fe7a4f59502bdcf591a07353c350b0ba29c3935c8242d97848cc0e50d3 + sha256sums = 2bc79f935cd5059409d32aa64832b7aa2c49ba533cc93d40a063bcbfe01a4485 + sha256sums = f76ffa7343b758ac0de2448e948c533e8623a0e426d293602ab7261c853ec684 + sha256sums = 663b6eed3715988e16a695f5810bdfb7e76aaeb28baaf4b11b2a73ee2bcb403d + sha256sums = 28724c4b4cec29ce19aada08279df1b086381cd788fef7ae07c1860f7d17af7e + +pkgname = mysql-workbench-git + diff --git a/0001-mysql-workbench-no-check-for-updates.patch b/0001-mysql-workbench-no-check-for-updates.patch new file mode 100644 index 000000000000..129b63b18ff4 --- /dev/null +++ b/0001-mysql-workbench-no-check-for-updates.patch @@ -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> diff --git a/0007-mysql-workbench-no-set-gtid-purged.patch b/0007-mysql-workbench-no-set-gtid-purged.patch new file mode 100644 index 000000000000..69242c507bf8 --- /dev/null +++ b/0007-mysql-workbench-no-set-gtid-purged.patch @@ -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)] + } + + } diff --git a/0009-mysql-workbench-gnome-keyring.patch b/0009-mysql-workbench-gnome-keyring.patch new file mode 100644 index 000000000000..006cfec50437 --- /dev/null +++ b/0009-mysql-workbench-gnome-keyring.patch @@ -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 + diff --git a/0010-mysql-workbench-object.patch b/0010-mysql-workbench-object.patch new file mode 100644 index 000000000000..39b6cc5e1832 --- /dev/null +++ b/0010-mysql-workbench-object.patch @@ -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 diff --git a/0012-mysql-workbench-cpp11.patch b/0012-mysql-workbench-cpp11.patch new file mode 100644 index 000000000000..336d7bc2f484 --- /dev/null +++ b/0012-mysql-workbench-cpp11.patch @@ -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; + } diff --git a/0013-mysql-workbench-no-json.patch b/0013-mysql-workbench-no-json.patch new file mode 100644 index 000000000000..d290c261887a --- /dev/null +++ b/0013-mysql-workbench-no-json.patch @@ -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; diff --git a/PKGBUILD b/PKGBUILD new file mode 100644 index 000000000000..334b46749b8b --- /dev/null +++ b/PKGBUILD @@ -0,0 +1,126 @@ +# 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> + +pkgname=mysql-workbench-git +pkgver=6.3.5.r0.gaa9272c +pkgrel=1 +pkgdesc='A cross-platform, visual database design tool developed by MySQL - git checkout' +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') +provides=('mysql-workbench') +conflicts=('mysql-workbench') +makedepends=('git' 'cmake' 'boost' 'curl' 'mesa' 'swig' 'java-runtime' 'imagemagick') +install=mysql-workbench.install +validpgpkeys=('A4A9406876FCBD3C456770C88C718D3B5072E1F5') +source=('git://github.com/mysql/mysql-workbench.git' + '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=('SKIP' + '9d3e866b610460664522520f73b81777b5626fb0a282a5952b9800b751550bf7' + 'b189e15c6b6f5a707357d9a9297f39ee3a33264fd28b44d5de6f537f851f82cf' + 'b49d4ea352d2c2013b9c5834668c44521a0a2c5f9c7e3fe746ad94ce0d2bb865' + '9c2ae2fe7a4f59502bdcf591a07353c350b0ba29c3935c8242d97848cc0e50d3' + '2bc79f935cd5059409d32aa64832b7aa2c49ba533cc93d40a063bcbfe01a4485' + 'f76ffa7343b758ac0de2448e948c533e8623a0e426d293602ab7261c853ec684' + '663b6eed3715988e16a695f5810bdfb7e76aaeb28baaf4b11b2a73ee2bcb403d' + '28724c4b4cec29ce19aada08279df1b086381cd788fef7ae07c1860f7d17af7e') + +pkgver() { + cd mysql-workbench/ + + if GITTAG="$(git describe --abbrev=0 --tags 2>/dev/null)"; then + printf '%s.r%s.g%s' \ + "$(sed -e "s/^${pkgname%%-git}//" -e 's/^[-_/a-zA-Z]\+//' -e 's/[-_+]/./g' <<< ${GITTAG})" \ + "$(git rev-list --count ${GITTAG}..)" \ + "$(git log -1 --format='%h')" + else + printf '0.r%s.g%s' \ + "$(git rev-list --count master)" \ + "$(git log -1 --format='%h')" + fi +} + +prepare() { + cd mysql-workbench/ + + # 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 mysql-workbench/ + + # 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="-std=c++11" + + make +} + +package() { + cd mysql-workbench/ + + 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 +} + diff --git a/arch_linux_profile.xml b/arch_linux_profile.xml new file mode 100644 index 000000000000..cdfa8756ed1c --- /dev/null +++ b/arch_linux_profile.xml @@ -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> diff --git a/mysql-workbench.install b/mysql-workbench.install new file mode 100644 index 000000000000..a7bbe097a7c3 --- /dev/null +++ b/mysql-workbench.install @@ -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 +} + |