diff options
author | Willy Sudiarto Raharjo <willysr@slackbuilds.org> | 2019-01-22 21:48:40 +0700 |
---|---|---|
committer | Willy Sudiarto Raharjo <willysr@slackbuilds.org> | 2021-04-19 13:16:15 +0700 |
commit | 5c60b0e25590a3c16c4e230e13a959620e61a196 (patch) | |
tree | 94484357fb1c87f8c8c4f2402b05ebf49530a584 /development/mysql-workbench/mysql-workbench.SlackBuild | |
parent | 329f3491b3150d4af0f51b99f48bcf53e9ea6bfc (diff) |
development/mysql-workbench: Updated for version 8.0.23.
Signed-off-by: Willy Sudiarto Raharjo <willysr@slackbuilds.org>
Diffstat (limited to 'development/mysql-workbench/mysql-workbench.SlackBuild')
-rw-r--r-- | development/mysql-workbench/mysql-workbench.SlackBuild | 227 |
1 files changed, 161 insertions, 66 deletions
diff --git a/development/mysql-workbench/mysql-workbench.SlackBuild b/development/mysql-workbench/mysql-workbench.SlackBuild index b0d607b78f6ec..326b09ca610f8 100644 --- a/development/mysql-workbench/mysql-workbench.SlackBuild +++ b/development/mysql-workbench/mysql-workbench.SlackBuild @@ -3,7 +3,7 @@ # Slackware build script for mysql-workbench # Originally written by Andre Geraldo Vieira <andre.geraldo@gmail.com> -# Copyright 2013-2017 Willy Sudiarto Raharjo <willysr@slackbuilds.org> +# Copyright 2013-2021 Willy Sudiarto Raharjo <willysr@slackbuilds.org> # All rights reserved. # # Redistribution and use of this script, with or without modification, is @@ -24,9 +24,15 @@ # ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. PRGNAM=mysql-workbench -PRGNAM2=antlr -VERSION=${VERSION:-6.3.10} -ANTLRVER=3.4 +PRGNAM2=mysql +VERSION=${VERSION:-8.0.23} +VERSION_MYSQL=8.0.23 +PRGNAM3=boost +VERSION_BOOST=1_73_0 +PRGNAM4=mysql-connector-c++ +VERSION_MYSQL_CONNECTOR=8.0.23 +PRGNAM5=gdal +VERSION_GDAL=3.1.2 BUILD=${BUILD:-1} TAG=${TAG:-_SBo} @@ -61,9 +67,103 @@ fi set -e -rm -rf $PKG +rm -rf $PKG $TMP/install-bundle mkdir -p $TMP $PKG $OUTPUT cd $TMP + +# Extract Boost +rm -rf ${PRGNAM3}_${VERSION_BOOST} +tar xvf $CWD/${PRGNAM3}_${VERSION_BOOST}.tar.bz2 + +# Building MySQL +rm -rf $PRGNAM2-${VERSION_MYSQL} +tar xvf $CWD/$PRGNAM2-${VERSION_MYSQL}.tar.gz +cd $PRGNAM2-${VERSION_MYSQL} +chown -R root:root . +find -L . \ + \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \ + -o -perm 511 \) -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \ + -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \; + +mkdir -p build +cd build +cmake \ + -DCMAKE_C_FLAGS:STRING="$SLKCFLAGS" \ + -DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS" \ + -DWITHOUT_SERVER=ON \ + -DBUILD_CONFIG=mysql_release \ + -DINSTALL_LIBDIR="lib${LIBDIRSUFFIX}" \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DSYSCONFDIR=/etc/mysql \ + -DMYSQL_DATADIR=/var/lib/mysql \ + -DWITH_BOOST=$TMP/${PRGNAM3}_${VERSION_BOOST} \ + -DCMAKE_BUILD_TYPE=Release .. + +make +make install DESTDIR=$TMP/install-bundle + +cd ../.. + +# Building mysql-connector-c++ +rm -rf $PRGNAM4-$VERSION-src +tar xvf $CWD/${PRGNAM4}-${VERSION_MYSQL_CONNECTOR}-src.tar.gz +cd $PRGNAM4-${VERSION_MYSQL_CONNECTOR}-src +chown -R root:root . +find -L . \ + \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \ + -o -perm 511 \) -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \ + -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \; + +mkdir -p build +cd build +cmake \ + -DCMAKE_C_FLAGS:STRING="$SLKCFLAGS" \ + -DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS" \ + -Wno-dev \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DWITH_JDBC=ON \ + -DCMAKE_INSTALL_LIBDIR=/usr/lib${LIBDIRSUFFIX} \ + -DINSTALL_LIB_DIR=lib${LIBDIRSUFFIX} \ + -DMYSQL_DIR="$TMP/install-bundle/" \ + -DMYSQL_CONFIG_EXECUTABLE="$TMP/install-bundle/usr/bin/mysql_config" \ + -DCMAKE_BUILD_TYPE=Release .. + +make +make install DESTDIR=$TMP/install-bundle + +cd ../.. + +# Building gdal +rm -rf ${PRGNAM5}-${VERSION_GDAL} +tar xvf $CWD/${PRGNAM5}-${VERSION_GDAL}.tar.xz +cd ${PRGNAM5}-${VERSION_GDAL} +chown -R root:root . +find -L . \ + \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \ + -o -perm 511 \) -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \ + -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +CXXFLAGS="$SLKCFLAGS -fpermissive" \ +CPPFLAGS="-I/usr/include/mysql/server" \ +./configure \ + --prefix=/usr \ + --includedir=/usr/include/gdal \ + --with-sqlite3 \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --with-mysql="$TMP/install-bundle/usr/bin/mysql_config" \ + --with-curl \ + --without-jasper + +make LD_LIBRARY_PATH="$TMP/install-bundle/usr/lib${LIBDIRSUFFIX}/" +make LD_LIBRARY_PATH="$TMP/install-bundle/usr/lib${LIBDIRSUFFIX}/" DESTDIR="$TMP/install-bundle/" install + +cd ../ + +# Building mysql-workbench rm -rf $PRGNAM-community-$SRCVERSION tar xvf $CWD/$PRGNAM-community-$SRCVERSION.tar.gz cd $PRGNAM-community-$SRCVERSION @@ -82,88 +182,83 @@ sed -i '/^set/s|-Werror -Wall|-Wall|' CMakeLists.txt # Patch from Ponce patch -p1 < $CWD/config_and_ifconfig_paths.patch -# Patch to fix gdal include path -sed -i '/#include/s|gdal/||' \ - backend/wbpublic/grtui/geom_draw_box.h \ - backend/wbpublic/grt/spatial_handler.h \ - backend/wbpublic/objimpl/db.query/db_query_Resultset.cpp - -# mysqldump from mariadb does not support --set-gtid-purged -patch -p1 < $CWD/mysql-workbench-no-set-gtid-purged.patch - -# fix gnome-keyring -# this is reserved for future gnome-keyring releases, but harmless for -# gnome-keyring package in stable release as well -patch -p1 < $CWD/mysql-workbench-gnome-keyring.patch +# Big thanks to ARCH Linux for all these work. +# GCC 7.x introduced some new warnings, remove '-Werror' for the build to complete +sed -i '/^set/s|-Werror -Wall|-Wall|' CMakeLists.txt -# Patch to remove JSON support -# MariaDB support for JSON started at 10.2 -patch -p1 < $CWD/mysql-workbench-no-json.patch +# GCC 7.x complains about unsupported flag +sed -i 's|-Wno-deprecated-register||' ext/scintilla/gtk/CMakeLists.txt -# Self-made patch -# Used to avoid differences between MariaDB and MySQL 5.7 -# mysql_real_escape_string_quote is available in MySQL 5.7.6 and above -# https://dev.mysql.com/doc/refman/5.7/en/mysql-real-escape-string-quote.html -patch -p1 < $CWD/copytable.patch +# disable stringop-truncation for GCC 8.x +sed -i '/^set/s|-Wall|-Wall -Wno-stringop-truncation|' CMakeLists.txt -# Patch to disable warning on Slackware and fix for x86 -# Taken from ARCH Linux -patch -p1 < $CWD/disable-unsupported-operating-system-warning.patch -patch -p1 < $CWD/add-option-to-hide-nonstandard-server-warning.patch -patch -p1 < $CWD/fix-build-for-i686.patch +# make sure to link against bundled libraries +sed -i "/target_link_libraries/s|\\$|-L$TMP/install-bundle/usr/lib${LIBDIRSUFFIX}/ \\$|" backend/wbpublic/CMakeLists.txt -install -D $CWD/$PRGNAM2-$ANTLRVER-complete.jar $TMP/linux-res/bin/$PRGNAM2-$ANTLRVER-complete.jar +# Fix libssh path +patch -p1 < $CWD/find-libssh.patch -# make cmake happy with mariadb -sed -i '/^find_package(MySQL /c find_package(MySQL REQUIRED)' CMakeLists.txt +# Fix boost 1.73 +patch -p1 < $CWD/boost-1.73.0.patch -# save this for GCC 7.0 -#sed -i "s|std=c++11|std=c++11 -Wno-error=implicit-fallthrough -Wno-error=strict-aliasing -Wno-error=format-overflow|" CMakeLists.txt +# Install antlr Java JAR +cp $CWD/antlr-4.8-complete.jar $TMP/install-bundle/antlr-4.8-complete.jar # https://www.antlr.org/download/antlr-4.8-complete.jar -# patch for gdal 2.2.0 -patch -p1 < $CWD/gdal-2.2.0.patch +sed -i 's|4.7.1|4.8|' CMakeLists.txt mkdir -p wb-build cd wb-build cmake \ - -DCMAKE_C_FLAGS:STRING="$SLKCFLAGS" \ - -DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS" \ - -DCMAKE_INSTALL_PREFIX=/usr \ - -DLIB_INSTALL_DIR=/usr/lib$LIBDIRSUFFIX \ - -DPYTHON_INCLUDE_DIR:PATH=/usr/include/python2.7 \ - -DPYTHON_LIBRARY:FILEPATH=/usr/lib$LIBDIRSUFFIX/libpython2.7.so \ - -DGDAL_INCLUDE_DIR=/usr/include \ - -DCMAKE_CXX_FLAGS="-std=c++11" \ - -DCMAKE_BUILD_TYPE=Release .. + -DCMAKE_C_FLAGS:STRING="$SLKCFLAGS" \ + -DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS" \ + -Wno-dev \ + -DCMAKE_INSTALL_PREFIX:PATH=/usr \ + -DCMAKE_CXX_FLAGS="-std=c++14" \ + -DCMAKE_BUILD_TYPE=Release \ + -DLIB_INSTALL_DIR=/usr/lib${LIBDIRSUFFIX} \ + -DMySQL_CONFIG_PATH="$TMP/install-bundle/usr/bin/mysql_config" \ + -DMySQLCppConn_LIBRARY="$TMP/install-bundle/usr/lib${LIBDIRSUFFIX}/libmysqlcppconn.so" \ + -DMySQLCppConn_INCLUDE_DIR="$TMP/install-bundle/usr/include/jdbc" \ + -DGDAL_INCLUDE_DIR="$TMP/install-bundle/usr/include" \ + -DGDAL_LIBRARY="$TMP/install-bundle/usr/lib${LIBDIRSUFFIX}/libgdal.so" \ + -DWITH_ANTLR_JAR="$TMP/install-bundle/antlr-4.8-complete.jar" \ + -DUSE_BUNDLED_MYSQLDUMP=1 \ + .. -make +make -j1 +make install DESTDIR=$PKG -# we will remove it later after installation -# without these document, it will fail to build -touch $TMP/$PRGNAM-community-$SRCVERSION/LICENSE.mysql +cd .. -make install DESTDIR=$PKG +# Add Slackware Linux Profile +install -m0644 $CWD/slackware_linux_profile.xml $PKG/usr/share/mysql-workbench/mysql.profiles/Slackware_Linux_15.0_\(MySQL_5.6_Package\).xml + +# install bundled mysql and mysqldump +install -m0755 "$TMP/install-bundle/usr/bin/mysql"{,dump} $PKG/usr/lib${LIBDIRSUFFIX}/mysql-workbench/ -# Add Slackware Linux -install -m0644 $CWD/slackware_linux_profile.xml $PKG/usr/share/mysql-workbench/mysql.profiles/Slackware_Linux_14.1_\(MariaDB_5.5_Package\).xml +# icons +for SIZE in 16 24 32 48 64 96 128; do +# set modify/create for reproducible builds + convert -scale ${SIZE} +set date:create +set date:modify \ + "images/icons/MySQLWorkbench-128.png" \ + "mysql-workbench.png" + install -D -m0644 "mysql-workbench.png" "$PKG/usr/share/icons/hicolor/${SIZE}x${SIZE}/apps/mysql-workbench.png" +done + +# install bundled libraries +for LIBRARY in $(find "$TMP/install-bundle/usr/lib${LIBDIRSUFFIX}/" -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}" "$PKG"/usr/lib${LIBDIRSUFFIX}/mysql-workbench/"${BASENAME}" + ln -s "${BASENAME}" "$PKG"/usr/lib${LIBDIRSUFFIX}/mysql-workbench/"${SONAME}" +done find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \ | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true -cd .. mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION -cp -a AUTHORS COPYING* ChangeLog README INSTALL $PKG/usr/doc/$PRGNAM-$VERSION +mv AUTHORS *.txt $PKG/usr/doc/$PRGNAM-$VERSION cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild -# remove unnecessary empty document -rm -f $TMP/$PRGNAM-$SRCVERSION/LICENSE.mysql - -# Fix missing shared library libwbbase -( - cd $PKG/usr/lib${LIBDIRSUFFIX} - rm -f libwbbase.so* - ln -s mysql-workbench/libwbbase.so . - ln -s libwbbase.so libwbbase.so.${VERSION} -) mkdir -p $PKG/install cat $CWD/slack-desc > $PKG/install/slack-desc |