diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..0ea0969 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +SOURCES/mariadb-connector-c-3.1.11-src.tar.gz diff --git a/.mariadb-connector-c.metadata b/.mariadb-connector-c.metadata new file mode 100644 index 0000000..fccb75d --- /dev/null +++ b/.mariadb-connector-c.metadata @@ -0,0 +1 @@ +33c124ac6203aa8f936743d91f37f63aa13d8977 SOURCES/mariadb-connector-c-3.1.11-src.tar.gz diff --git a/SOURCES/client.cnf b/SOURCES/client.cnf new file mode 100644 index 0000000..9028505 --- /dev/null +++ b/SOURCES/client.cnf @@ -0,0 +1,13 @@ +# +# These two groups are read by the client library +# Use it for options that affect all clients, but not the server +# + + +[client] + +# This group is not read by mysql client library, +# If you use the same .cnf file for MySQL and MariaDB, +# use it for MariaDB-only client options +[client-mariadb] + diff --git a/SOURCES/my.cnf b/SOURCES/my.cnf new file mode 100644 index 0000000..913b88f --- /dev/null +++ b/SOURCES/my.cnf @@ -0,0 +1,11 @@ +# +# This group is read both both by the client and the server +# use it for options that affect everything +# +[client-server] + +# +# include all files from the config directory +# +!includedir /etc/my.cnf.d + diff --git a/SPECS/mariadb-connector-c.spec b/SPECS/mariadb-connector-c.spec new file mode 100644 index 0000000..7522d69 --- /dev/null +++ b/SPECS/mariadb-connector-c.spec @@ -0,0 +1,360 @@ +# For deep debugging we need to build binaries with extra debug info +%bcond_with debug + +Name: mariadb-connector-c +Version: 3.1.11 +Release: 2%{?with_debug:.debug}%{?dist} +Summary: The MariaDB Native Client library (C driver) +License: LGPLv2+ +Source: https://downloads.mariadb.org/interstitial/connector-c-%{version}/mariadb-connector-c-%{version}-src.tar.gz +Source2: my.cnf +Source3: client.cnf +Url: http://mariadb.org/ +# More information: https://mariadb.com/kb/en/mariadb/building-connectorc-from-source/ + +Requires: %{_sysconfdir}/my.cnf +BuildRequires: zlib-devel cmake openssl-devel gcc-c++ +# Remote-IO plugin +BuildRequires: libcurl-devel +# auth_gssapi_client plugin +BuildRequires: krb5-devel + +Requires: ( mariadb >= 3:10.3.27 if mariadb ) +Requires: ( %{name}-config = %{version}-%{release} if %{name}-config ) + +%description +The MariaDB Native Client library (C driver) is used to connect applications +developed in C/C++ to MariaDB and MySQL databases. + + + +%package devel +Summary: Development files for mariadb-connector-c +Requires: %{name} = %{version}-%{release} +Requires: openssl-devel zlib-devel +BuildRequires: multilib-rpm-config +Conflicts: mysql-devel + +Requires: ( mariadb-devel >= 3:10.3.27 if mariadb-devel ) + +%description devel +Development files for mariadb-connector-c. +Contains everything needed to build against libmariadb.so >=3 client library. + + + +%package config +Summary: Configuration files for packages that use /etc/my.cnf as a configuration file +BuildArch: noarch +Obsoletes: mariadb-config <= 3:10.3.8-4 + +%description config +This package delivers /etc/my.cnf that includes other configuration files +from the /etc/my.cnf.d directory and ships this directory as well. +Other packages should only put their files into /etc/my.cnf.d directory +and require this package, so the /etc/my.cnf file is present. + + + +%prep +%setup -q -n %{name}-%{version}-src + +# Remove unsused parts +rm -r win zlib win-iconv + + + +%build +%{set_build_flags} + +# Override all optimization flags when making a debug build +%{?with_debug: CFLAGS="$CFLAGS -O0 -g"} +CXXFLAGS="$CFLAGS" +export CFLAGS CXXFLAGS + +# https://jira.mariadb.org/browse/MDEV-13836: +# The server has (used to have for ages) some magic around the port number. +# If it's 0, the default port value will use getservbyname("mysql", "tcp"), that is, whatever is written in /etc/services. +# If it's a positive number, say, 3306, it will be 3306, no matter what /etc/services say. +# I don't know if that behavior makes much sense, /etc/services wasn't supposed to be a system configuration file. + +# The INSTALL_xxx macros have to be specified relative to CMAKE_INSTALL_PREFIX +# so we can't use %%{_datadir} and so forth here. + +%cmake . \ + -DCMAKE_BUILD_TYPE="%{?with_debug:Debug}%{!?with_debug:RelWithDebInfo}" \ + -DCMAKE_SYSTEM_PROCESSOR="%{_arch}" \ +\ + -DMARIADB_UNIX_ADDR=%{_sharedstatedir}/mysql/mysql.sock \ + -DMARIADB_PORT=3306 \ +\ + -DWITH_EXTERNAL_ZLIB=YES \ + -DWITH_SSL=OPENSSL \ + -DWITH_MYSQLCOMPAT=ON \ + -DPLUGIN_CLIENT_ED25519=DYNAMIC \ +\ + -DINSTALL_LAYOUT=RPM \ + -DCMAKE_INSTALL_PREFIX="%{_prefix}" \ + -DINSTALL_BINDIR="bin" \ + -DINSTALL_LIBDIR="%{_lib}" \ + -DINSTALL_INCLUDEDIR="include/mysql" \ + -DINSTALL_PLUGINDIR="%{_lib}/mariadb/plugin" \ + -DINSTALL_PCDIR="%{_lib}/pkgconfig" \ +\ + -DWITH_UNITTEST=ON + + + +#cmake -LAH + +%make_build + + + +%install +%make_install + +%multilib_fix_c_header --file %{_includedir}/mysql/mariadb_version.h + +# Remove static linked libraries and symlinks to them +rm %{buildroot}%{_libdir}/lib*.a + +# Add a compatibility symlinks +ln -s mariadb_config %{buildroot}%{_bindir}/mysql_config +ln -s mariadb_version.h %{buildroot}%{_includedir}/mysql/mysql_version.h + +# Install config files +install -D -p -m 0644 %{SOURCE2} %{buildroot}%{_sysconfdir}/my.cnf +install -D -p -m 0644 %{SOURCE3} %{buildroot}%{_sysconfdir}/my.cnf.d/client.cnf + + + +%check +# Check the generated configuration on the actual machine +%{buildroot}%{_bindir}/mariadb_config + +# Run the unit tests +# - don't run mytap tests +# - ignore the testsuite result for now. Enable tests now, fix them later. +# Note: there must be a database called 'test' created for the testcases to be run +pushd unittest/libmariadb/ +ctest || : +popd + + + +%files +%{_libdir}/libmariadb.so.3 + +%dir %{_libdir}/mariadb +%dir %{_libdir}/mariadb/plugin +%{_libdir}/mariadb/plugin/* + +%doc README +%license COPYING.LIB + + + +%files devel +# Binary which provides compiler info for software compiling against this library +%{_bindir}/mariadb_config +%{_bindir}/mysql_config + +# Symlinks to the versioned library +%{_libdir}/libmariadb.so +%{_libdir}/libmysqlclient.so +%{_libdir}/libmysqlclient_r.so + +# Pkgconfig +%{_libdir}/pkgconfig/libmariadb.pc + +# Header files +%dir %{_includedir}/mysql +%{_includedir}/mysql/* + +%license COPYING.LIB + + +%files config +%dir %{_sysconfdir}/my.cnf.d +%config(noreplace) %{_sysconfdir}/my.cnf +%config(noreplace) %{_sysconfdir}/my.cnf.d/client.cnf + + + +%changelog +* Thu Dec 03 2020 Michal Schorm - 3.1.11-2 +- Require specific minimal version of the 'mariadb' package, if it is installed + +* Tue Nov 10 2020 Michal Schorm - 3.1.11-1 +- Rebase to 3.1.11 + +* Wed Jun 24 2020 Lukas Javorsky - 3.1.9-1 +- Rebase to 3.1.9 +- Overlinking issues fixed by upstream in 3.1.3 release +- Add explicit confict between mariadb-connector-c-devel and mysql-devel packages + +* Fri Jul 12 2019 Michal Schorm - 3.1.2-1 +- Rebase to 3.1.2 +- Introducing ED25519 plugin +- Plugindir issues (from 3.0.9 release) fixed by upstream + Resolves: #1691176 + +* Wed May 15 2019 Michal Schorm - 3.0.10-1 +- Rebase to 3.0.10 +- Use macro for tarball name +- Use macro to set build flags +- Use macros for make commands +- Remove the scriptlets non relevant for RHEL-8 +- Add info for the testsuite execution +- Remove glob from library version +- Remove info about the upstream issues + +* Fri Mar 29 2019 Michal Schorm - 3.0.8-2 +- Add "zlib-devel" requirement in "-devel" subpackage. MariaDB requires + linking with "-lz", which will fail without the zlib library +- Resolves: #1710471 + +* Wed Jan 02 2019 Michal Schorm - 3.0.8-1 +- Rebase to 3.0.8 + +* Mon Dec 10 2018 Michal Schorm - 3.0.7-1 +- Rebase to 3.0.7 + +* Tue Sep 04 2018 Michal Schorm - 3.0.6-2 +- Fix parallel installability of x86_64 and i686 devel package +- Resolves: #1637031 + +* Fri Aug 03 2018 Michal Schorm - 3.0.6-1 +- Rebase to 3.0.6 + +* Tue Jul 17 2018 Honza Horak - 3.0.5-2 +- Add -config sub-package that delivers system-wide /etc/my.cnf and + /etc/my.cnf.d directory, that other packages should use + This package also obsoletes mariadb-config + +* Fri Jun 08 2018 Michal Schorm - 3.0.5-1 +- Rebase to 3.0.5 + +* Thu Apr 26 2018 Michal Schorm - 3.0.4-1 +- Rebase to 3.0.4 + +* Mon Apr 23 2018 Michal Schorm - 3.0.3-4 +- Further fix of the '--plugindir' output from the config binary + Realted: #1569159 + +* Wed Mar 21 2018 Richard W.M. Jones - 3.0.3-3 +- Fix plugin install directory (INSTALL_PLUGINDIR not PLUGIN_INSTALL_DIR). + +* Thu Feb 08 2018 Fedora Release Engineering - 3.0.3-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Fri Jan 19 2018 Michal Schorm - 3.0.3-1 +- Rebase to 3.0.3 + +* Mon Nov 27 2017 Honza Horak - 3.0.2-21 +- Remove unneeded dependency on xmlto + +* Tue Nov 14 2017 Pavel Raiskup - 3.0.2-19 +- drop misleading provides + +* Wed Nov 08 2017 Michal Schorm - 3.0.2-19 +- Move the scriptlet to the correct package + +* Thu Nov 02 2017 Michal Schorm - 3.0.2-18 +- Fix typo in require + +* Wed Nov 01 2017 Michal Schorm - 3.0.2-17 +- Use correct require for OpenSSL + +* Wed Nov 01 2017 Merlin Mathesius - 3.0.2-16 +- Correct typo in spec file conditional + +* Tue Oct 31 2017 Merlin Mathesius - 3.0.2-15 +- Cleanup spec file conditionals + +* Tue Oct 31 2017 Michal Schorm - 3.0.2-14 +- Remove Requires for openssl. Managed by RPM. + +* Mon Oct 30 2017 Michal Schorm - 3.0.2-13 +- Update scriplet dealing with symlinks as Guidelines suggests + Related: #1501933 + +* Thu Oct 26 2017 Michal Schorm - 3.0.2-12 +- Move library directly to libdir, don't create any symlinks to directories +- Update scritplets, so they only check for old symlinks to directories + Related: #1501933 +- Add 'Conflicts' with mariadb package on F<28 + Related: #1506441 + +* Mon Oct 09 2017 Michal Schorm - 3.0.2-11 +- Fix ldconfig path + +* Wed Oct 04 2017 Michal Schorm - 3.0.2-10 +- Add scriptlets to handle errors in /usr/lib64/ created by older versions + of mariadb and mariadb-connector-c pakages + +* Wed Sep 20 2017 Michal Schorm - 3.0.2-9 +- Add symlinks so more packages will build succesfully +- Change libdir from .../lib64/mariadb to mysql + Related: #1497234 + +* Wed Sep 13 2017 Michal Schorm - 3.0.2-7 +- Move header files to the same location, as they would be in mariadb-server +- Add provides "libmysqlclient.so" + +* Tue Sep 05 2017 Honza Horak - 3.0.2-5 +- Remove a symlink /usr/lib64/mysql that conflicts with mariadb-libs + +* Mon Aug 14 2017 Honza Horak - 3.0.2-4 +- Add compatibility symlinks + +* Thu Aug 03 2017 Fedora Release Engineering - 3.0.2-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild + +* Wed Jul 26 2017 Fedora Release Engineering - 3.0.2-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Wed Jun 07 2017 Michal Schorm - 3.0.2-1 +- Rebase to version 3.0.2 +- Library libmariadb.so.3 introduced +- Plugin Remote-IO enabled + +* Wed Jun 07 2017 Michal Schorm - 2.3.3-1 +- Rebase to version 2.3.3 +- Patch dropped, solved by upstream; https://jira.mariadb.org/browse/CONC-231 + +* Tue Feb 07 2017 Michal Schorm - 2.3.2-2 +- Fix based on output from RPMLint in previous version + +* Tue Jan 24 2017 Michal Schorm - 2.3.2-1 +- Rebase to version 2.3.2, patch needed (fixed by upstream in later versions) +- Plugin dir moved from /libdir/plugin to /libdir/mariadb/plugin + +* Thu Oct 27 2016 Michal Schorm - 2.3.1-3 +- Fixed ownership of {_libdir}/mariadb (this dir must me owned by package) +- Fixed ownership of {_sysconfigdir}/ld.so.conf.d (this dir must me owned by package) +- Fixed redundnace on lines with {_sysconfigdir}/ld.so.conf.d +- Fixed ownership of {_bindir} (only one program is owned, so let's be accurate) +- Some comments added, for me and future maintainers + +* Mon Oct 17 2016 Michal Schorm - 2.3.1-2 +- Fixed ownership of {_libdir}/mariadb directory and cosmetic specfile changes + +* Tue Sep 13 2016 Michal Schorm - 2.3.1-1 +- Rebase to version 2.3.1 + +* Thu Feb 04 2016 Fedora Release Engineering - 2.1.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild + +* Thu Jul 23 2015 Matej Mužila - 2.1.0-1 +- Rebase to version 2.1.0 + +* Wed Jun 17 2015 Fedora Release Engineering - 2.0.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild + +* Wed Sep 24 2014 Matej Mužila - 2.0.0-2 +- Fixed html IDs in documentation + +* Tue Aug 26 2014 Matej Mužila - 2.0.0-2 +- Initial version for 2.0.0