From 2517e6af487e5c7f0a144b1cc0baa15caacf84b8 Mon Sep 17 00:00:00 2001 From: Kevin Mihelich <kevin@archlinuxarm.org> Date: Thu, 23 Aug 2018 12:34:38 +0000 Subject: [PATCH] community/mysql-workbench to 8.0.12-4 --- ...-getIssueBanner-add-missing-wrappers.patch | 146 ------------------ .../0004-libssh-fix-read-config.patch | 29 ---- community/mysql-workbench/PKGBUILD | 53 ++----- 3 files changed, 11 insertions(+), 217 deletions(-) delete mode 100644 community/mysql-workbench/0003-Fix-segfault-in-getIssueBanner-add-missing-wrappers.patch delete mode 100644 community/mysql-workbench/0004-libssh-fix-read-config.patch diff --git a/community/mysql-workbench/0003-Fix-segfault-in-getIssueBanner-add-missing-wrappers.patch b/community/mysql-workbench/0003-Fix-segfault-in-getIssueBanner-add-missing-wrappers.patch deleted file mode 100644 index 64da9ade7..000000000 --- a/community/mysql-workbench/0003-Fix-segfault-in-getIssueBanner-add-missing-wrappers.patch +++ /dev/null @@ -1,146 +0,0 @@ -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 - diff --git a/community/mysql-workbench/0004-libssh-fix-read-config.patch b/community/mysql-workbench/0004-libssh-fix-read-config.patch deleted file mode 100644 index b6fec1195..000000000 --- a/community/mysql-workbench/0004-libssh-fix-read-config.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 5333be5988c3789e7011598995f4df90d50d84d0 Mon Sep 17 00:00:00 2001 -From: "Artyom V. Poptsov" <poptsov.artyom@gmail.com> -Date: Sun, 4 Jun 2017 11:54:55 +0300 -Subject: config: Bugfix: Don't skip unseen opcodes - -libssh fails to read the configuration from a config file due to a -wrong check in 'ssh_config_parse_line' procedure in 'config.c'; it's -effectively skipping every opcode (and therefore every option) from -the file. The change fixes that behaviour. - -Signed-off-by: Artyom V. Poptsov <poptsov.artyom@gmail.com> -Reviewed-by: Andreas Schneider <asn@cryptomilk.org> ---- - src/config.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/config.c b/src/config.c -index 6478fc5f..519926e7 100644 ---- a/src/config.c -+++ b/src/config.c -@@ -219,7 +219,7 @@ static int ssh_config_parse_line(ssh_session session, const char *line, - - opcode = ssh_config_get_opcode(keyword); - if (*parsing == 1 && opcode != SOC_HOST) { -- if (seen[opcode] == 0) { -+ if (seen[opcode] != 0) { - return 0; - } - seen[opcode] = 1; diff --git a/community/mysql-workbench/PKGBUILD b/community/mysql-workbench/PKGBUILD index 90ce88120..4ac62a8ec 100644 --- a/community/mysql-workbench/PKGBUILD +++ b/community/mysql-workbench/PKGBUILD @@ -14,35 +14,30 @@ buildarch=28 pkgname=mysql-workbench pkgver=8.0.12 -pkgrel=3 +pkgrel=4 _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' 'libsecret' 'libiodbc' 'libxml2' - 'libzip' 'mysql-python' 'pcre' 'python2' 'python2-cairo' + 'libzip' 'mysql-python' 'pcre' 'python2' 'python2-cairo' 'libssh' 'python2-pexpect' 'tinyxml' 'unixodbc' 'vsqlite++' 'proj' 'json-c' 'antlr4-runtime') optdepends=('python2-pyodbc: database migration') 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) +validpgpkeys=('A4A9406876FCBD3C456770C88C718D3B5072E1F5') # MySQL Release Engineering <mysql-build@oss.oracle.com> 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}-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" - "https://www.libssh.org/files/${_libssh_version%.*}/libssh-${_libssh_version}.tar."{xz,asc} '0001-mysql-workbench-no-check-for-updates.patch' '0002-disable-unsupported-operating-system-warning.patch' - '0003-Fix-segfault-in-getIssueBanner-add-missing-wrappers.patch' - '0004-libssh-fix-read-config.patch' '0004-fix-build-for-i686.patch' 'atomic.patch' 'arch_linux_profile.xml') @@ -54,25 +49,13 @@ sha256sums=('0241586c95026a7d4d1b552ba2e33d8e66f6826e8f7e1a692b78c405f80cd334' 'SKIP' '9c4625c45a3ee7e49a604ef221778983dd9fd8104922a87f20b99d9bedb7725a' '2684c972994ee57fc5632e03bf044746f6eb45d4920c343937a465fd67a5adba' - '54e86dd5dc20e5367e58f3caab337ce37675f863f80df85b6b1614966a337095' - 'SKIP' - 'c39bed86f34a377015fb6d6552700a3838c5cae1a4a83b3e859539785aeabdba' 'cdf687f23bc6e8d52dbee9fa02b23d755e80f88476f0fc2e7c4c71cdfed3792f' '2d0f6dcf38f22e49ef7ab9de0230484f1ffac41b7ac40feaf5ef4538ae2f7a18' - 'f15d8c8b3cc74d2d0b792316834648620fc2299ce103c6419f4c562f759ad755' '763925b336d9a398c15fdd757b6567a2f374a822090d32ffdefca018231128a4' '17294a67637ab7ffff5c39262208e63d21acac72cc2492f616ef1d8e0ae9ac02' '2ade582ca25f6d6d748bc84a913de39b34dcaa6e621a77740fe143007f2833af') prepare() { - cd "${srcdir}/libssh-${_libssh_version}" - - # from libssh package - patch -Np1 < "${srcdir}"/0004-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/" # Disable 'Help' -> 'Check for Updates' @@ -153,20 +136,6 @@ build() { 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 mkdir "${srcdir}/mysql-workbench-community-${pkgver}-src-build" cd "${srcdir}/mysql-workbench-community-${pkgver}-src-build" @@ -181,8 +150,6 @@ build() { -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" @@ -190,13 +157,15 @@ build() { } package() { - # install bundled libraries files and files - for LIBRARY in $(find "${srcdir}/install-bundle/usr/lib/" -type f -regex '.*/lib\(gdal\|mysql\(client\|cppconn\)\|ssh\)\.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\)\|ssh\)\.so\..*'); do - ln -s "$(readlink "${SYMLINK}")" "${pkgdir}"/usr/lib/mysql-workbench/"$(basename "${SYMLINK}")" + # install bundled libraries + for LIBRARY in $(find "${srcdir}/install-bundle/usr/lib/" -type f -regex '.*/lib\(gdal\|mysql\(client\|cppconn\)\)\.so\..*'); do + BASENAME="$(basename "${LIBRARY}")" + SONAME="$(readelf -d "${LIBRARY}" | grep -Po '(?<=(Library soname: \[)).*(?=\])')" + install -D -m0755 "${LIBRARY}" "${pkgdir}"/usr/lib/mysql-workbench/"${BASENAME}" + ln -s "${BASENAME}" "${pkgdir}"/usr/lib/mysql-workbench/"${SONAME}" done + + # install bundled mysql and mysqldump install -m0755 "${srcdir}/install-bundle/usr/bin/mysql"{,dump} "${pkgdir}"/usr/lib/mysql-workbench/ # install MySQL Workbench itself