File mysql-workbench.spec of Package mysql-workbench

#
# spec file for package mysql-workbench
#
# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.

# Please submit bugfixes or comments via http://bugs.opensuse.org/
#


%define edition community
Name:           mysql-workbench
Version:        6.3.7
Release:        0
Summary:        A MySQL visual database modeling, administration and querying tool
License:        GPL-2.0+
Group:          Productivity/Databases/Clients
Url:            http://wb.mysql.com
Source:         http://dev.mysql.com/get/Downloads/MySQLGUITools/%{name}-%{edition}-%{version}-src.tar.gz
Source1:        openSUSE_Vendor_Package.xml
Source99:       %{name}.rpmlintrc
#Patches
Patch0:         patch-desktop-categories.patch
# Remove check for update in help
Patch1:         mysql-workbench-no-check-for-updates.patch
# Fix build error
# copytable.cpp:1638: undefined reference to `mysql_options4'
# This only exist in mysql 5.6.x but the if code didn't work
# So disable it
Patch2:         mysql-workbench-mysql_options4.patch
# PATCH-FIX-UPSTREAM sfalken@opensuse.org
Patch3:         mysql-workbench-cmake-3.2.patch
# remove json
Patch5:         %{name}-no-json.patch
Patch6:         %{name}-mysql-version.patch
# disabled , system scintila is buil with gtk3
Patch7:         mysql-workbench-unbundle-libscintilla.patch
Patch8:         mysql-workbench-preload-sqlparser.patch
BuildRequires:  Mesa-devel
BuildRequires:  ant
BuildRequires:  boost-devel
BuildRequires:  cmake
BuildRequires:  dos2unix
BuildRequires:  fdupes
BuildRequires:  gcc-c++
BuildRequires:  gnome-keyring-devel
BuildRequires:  gtkmm24-devel
BuildRequires:  libmysqlclient-devel
BuildRequires:  libmysqlcppconn-devel
BuildRequires:  libmysqld-devel > 5.1
# use bundled scintilla lib 
#BuildRequires:  libscintilla-devel
BuildRequires:  libtool
BuildRequires:  pkgconfig
BuildRequires:  python-paramiko
BuildRequires:  swig
BuildRequires:  tinyxml-devel
BuildRequires:  unixODBC-devel
BuildRequires:  update-desktop-files
BuildRequires:  vsqlite++-devel
BuildRequires:  pkgconfig(cairo) >= 1.5.12
BuildRequires:  pkgconfig(cairomm-1.0)
BuildRequires:  pkgconfig(gdal)
BuildRequires:  pkgconfig(glib-2.0)
BuildRequires:  pkgconfig(libctemplate)
BuildRequires:  pkgconfig(libglade-2.0)
BuildRequires:  pkgconfig(libgnome-2.0)
BuildRequires:  pkgconfig(libpcrecpp)
BuildRequires:  pkgconfig(libpng)
BuildRequires:  pkgconfig(libxml-2.0)
BuildRequires:  pkgconfig(libzip)
BuildRequires:  pkgconfig(lua)
BuildRequires:  pkgconfig(proj)
BuildRequires:  pkgconfig(python)
BuildRequires:  pkgconfig(sigc++-2.0)
BuildRequires:  pkgconfig(sqlite3)
BuildRequires:  pkgconfig(uuid)
BuildRequires:  pkgconfig(x11)
BuildRequires:  pkgconfig(xxf86vm)
Requires:       libmysqlclient-devel
Requires:       proj
Requires:       python-paramiko
Requires:       python-pexpect
Requires(post): desktop-file-utils
Requires(postun): desktop-file-utils
Requires(post): shared-mime-info
Requires(postun): shared-mime-info
Suggests:       gnome-keyring
Suggests:       mysqldump
Conflicts:      mysql-workbench-com-se
Conflicts:      mysql-workbench-oss
Provides:       mysql-administrator = %{version}
Provides:       mysql-gui-tools = %{version}
Provides:       mysql-querybrovser = %{version}
Provides:       mysql-workbench-%{edition}
Obsoletes:      mysql-administrator < %{version}
Obsoletes:      mysql-gui-tools < %{version}
Obsoletes:      mysql-querybrovser < %{version}
BuildRoot:      %{_tmppath}/%{name}-%{version}-build

%description
MySQL Workbench is a modeling tool that allows you to design
and generate MySQL databases graphically. It also has administration
and query development modules where you can manage MySQL server instances
and execute SQL queries.
This is the %{edition} build.

%prep
# Add the -D flag if you don't want to delete the source root on each build
%setup -q -n %{name}-%{edition}-%{version}-src
%patch0 -p1
%patch1 -p1
%patch2 -p1
%patch3 -p1
%patch5 -p1
%patch6 -p1
#%%patch7 -p1
%patch8 -p1

%build
export CXXFLAGS="%{optflags} -std=c++11"
%cmake \
    -DCMAKE_EXE_LINKER_FLAGS="-Wl,--as-needed -Wl,-z,now -pie" \
    -DCMAKE_MODULE_LINKER_FLAGS="-Wl,--as-needed -Wl,-z,now -pie" \
    -DCMAKE_SHARED_LINKER_FLAGS="-Wl,--as-needed -Wl,-z,now -pie" \
    -DMYSQL_CONFIG_PATH=%{_bindir}/mysql_config \
    -DCMAKE_BUILD_TYPE=%{edition} \
    -DREAL_EXECUTABLE_DIR=%{_libdir}/%{name} \
    -DUSE_UNIXODBC=TRUE
make %{?_smp_mflags}

%install
%cmake_install

find %{buildroot}%{_libdir}/%{name} -name \*.a  -exec rm {} \; -print
find %{buildroot} -type f -name "*.la" -delete -print

install -m 0644 "%{SOURCE1}" %{buildroot}%{_datadir}/mysql-workbench/mysql.profiles

mkdir -p %{buildroot}/%{_sysconfdir}/ld.so.conf.d
echo "%{_libdir}/%{name}" > %{buildroot}/%{_sysconfdir}/ld.so.conf.d/%{name}.conf
chmod 644 %{buildroot}/%{_sysconfdir}/ld.so.conf.d/%{name}.conf

# Check for duplicate files
%fdupes -s %{buildroot}

%post
/sbin/ldconfig
%icon_theme_cache_post
%mime_database_post
%desktop_database_post

%postun
/sbin/ldconfig
%icon_theme_cache_postun
%mime_database_postun
%desktop_database_postun

%files
%defattr(0644, root, root, 0755)
%dir %{_datadir}/doc/mysql-workbench
%doc %{_datadir}/doc/mysql-workbench/COPYING
%doc %{_datadir}/doc/mysql-workbench/README
%attr(0755,root,root) %{_bindir}/mysql*
%attr(0755,root,root) %{_bindir}/wbcopytables
%attr(0755,root,root) %{_libdir}/%{name}/%{name}-bin
%attr(0755,root,root) %{_libdir}/%{name}/wbcopytables-bin
%dir %{_libdir}/%{name}
%{_libdir}/%{name}/lib*
%dir %{_libdir}/%{name}/modules
%{_libdir}/%{name}/modules/*
%dir %{_libdir}/%{name}/plugins
%{_libdir}/%{name}/plugins/*
%dir %{_datadir}/%{name}
%{_datadir}/icons/hicolor/*/mimetypes/*
%{_datadir}/icons/hicolor/*/apps/*
%dir %{_datadir}/mime-info
%{_datadir}/mime-info/*
%{_datadir}/mime/packages/*
%{_datadir}/applications/*.desktop
%{_datadir}/%{name}/*
%attr(0755,root,root) %{_datadir}/%{name}/extras/*.sh
%config(noreplace) %{_sysconfdir}/ld.so.conf.d/%{name}.conf

%changelog
openSUSE Build Service is sponsored by