- Revert the CMake change regarding the in-source builds for now
- %%cmake macro covers the %%{set_build_flags}, so they are not needed That also means, the debug buildchnages to the build flags must be done AFTER the %%cmake macro was used. - %%cmake macro also covers the CMAKE_INSTALL_PREFIX="%%{_prefix}" option - Default to %%cmake commands instead fo %%make commands - Update the WITH_UNITTEST macro to the one upstream use now - Introduce macro to enable / disable testusite (and building of the *-test subpackage)
This commit is contained in:
parent
ccd1d1c064
commit
b59d80d8fe
@ -1,9 +1,26 @@
|
|||||||
# For deep debugging we need to build binaries with extra debug info
|
# For deep debugging we need to build binaries with extra debug info
|
||||||
%bcond_with debug
|
%bcond_with debug
|
||||||
|
# Enable building and packing of the testsuite
|
||||||
|
%bcond_without testsuite
|
||||||
|
|
||||||
|
# Enable CMake in-source builds
|
||||||
|
# This is is a workaround for the https://fedoraproject.org/wiki/Changes/CMake_to_do_out-of-source_builds
|
||||||
|
# which reverts the CMake behaviour to before F33
|
||||||
|
# The Change owners offered themselves to help fix the affected packages via ProvenPackager rights.
|
||||||
|
# I'm generally in favor of this change, however when I tried to adapt it, I encountered a number of issues.
|
||||||
|
# That's why I disabled it for now.
|
||||||
|
%global __cmake_in_source_build 1
|
||||||
|
# Specifically, be aware that all subsequent call of CMake *MUST* be called with the specified builddir
|
||||||
|
# e.g. " cmake -B %%{__cmake_builddir} -LAH "
|
||||||
|
# Otherwise you will experience *really odd* behaviour. HOWEVER the "%%{__cmake_builddir}" is not suitable for use,
|
||||||
|
# read this mail discussion for details:
|
||||||
|
# https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/thread/WJUNUJ7BJQYXQTONR5AGOKD3ZNKLSDDC/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Name: mariadb-connector-c
|
Name: mariadb-connector-c
|
||||||
Version: 3.1.9
|
Version: 3.1.9
|
||||||
Release: 4%{?with_debug:.debug}%{?dist}
|
Release: 5%{?with_debug:.debug}%{?dist}
|
||||||
Summary: The MariaDB Native Client library (C driver)
|
Summary: The MariaDB Native Client library (C driver)
|
||||||
License: LGPLv2+
|
License: LGPLv2+
|
||||||
Source: https://downloads.mariadb.org/interstitial/connector-c-%{version}/%{name}-%{version}-src.tar.gz
|
Source: https://downloads.mariadb.org/interstitial/connector-c-%{version}/%{name}-%{version}-src.tar.gz
|
||||||
@ -12,10 +29,12 @@ Source3: client.cnf
|
|||||||
Url: http://mariadb.org/
|
Url: http://mariadb.org/
|
||||||
# More information: https://mariadb.com/kb/en/mariadb/building-connectorc-from-source/
|
# More information: https://mariadb.com/kb/en/mariadb/building-connectorc-from-source/
|
||||||
|
|
||||||
|
%if %{with testsuite}
|
||||||
Patch1: testsuite.patch
|
Patch1: testsuite.patch
|
||||||
|
%endif
|
||||||
|
|
||||||
Requires: %{_sysconfdir}/my.cnf
|
Requires: %{_sysconfdir}/my.cnf
|
||||||
BuildRequires: zlib-devel cmake openssl-devel gcc-c++
|
BuildRequires: gcc-c++ cmake openssl-devel zlib-devel
|
||||||
# Remote-IO plugin
|
# Remote-IO plugin
|
||||||
BuildRequires: libcurl-devel
|
BuildRequires: libcurl-devel
|
||||||
# auth_gssapi_client plugin
|
# auth_gssapi_client plugin
|
||||||
@ -40,6 +59,7 @@ Contains everything needed to build against libmariadb.so >=3 client library.
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
%if %{with testsuite}
|
||||||
%package test
|
%package test
|
||||||
Summary: Testsuite files for mariadb-connector-c
|
Summary: Testsuite files for mariadb-connector-c
|
||||||
Requires: %{name} = %{version}-%{release}
|
Requires: %{name} = %{version}-%{release}
|
||||||
@ -50,7 +70,7 @@ Recommends: mariadb-server
|
|||||||
Testsuite files for mariadb-connector-c.
|
Testsuite files for mariadb-connector-c.
|
||||||
Contains binaries and a prepared CMake ctest file.
|
Contains binaries and a prepared CMake ctest file.
|
||||||
Requires running MariaDB / MySQL server with create database "test".
|
Requires running MariaDB / MySQL server with create database "test".
|
||||||
|
%endif
|
||||||
|
|
||||||
|
|
||||||
%package config
|
%package config
|
||||||
@ -68,21 +88,16 @@ and require this package, so the /etc/my.cnf file is present.
|
|||||||
|
|
||||||
%prep
|
%prep
|
||||||
%setup -q -n %{name}-%{version}-src
|
%setup -q -n %{name}-%{version}-src
|
||||||
|
%if %{with testsuite}
|
||||||
%patch1 -p1
|
%patch1 -p1
|
||||||
|
%endif
|
||||||
|
|
||||||
# Remove unsused parts
|
# Remove unsused parts
|
||||||
rm -r win zlib win-iconv examples
|
rm -r win win-iconv zlib examples
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
%build
|
%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:
|
# https://jira.mariadb.org/browse/MDEV-13836:
|
||||||
# The server has (used to have for ages) some magic around the port number.
|
# 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 0, the default port value will use getservbyname("mysql", "tcp"), that is, whatever is written in /etc/services.
|
||||||
@ -99,29 +114,38 @@ export CFLAGS CXXFLAGS
|
|||||||
-DMARIADB_UNIX_ADDR=%{_sharedstatedir}/mysql/mysql.sock \
|
-DMARIADB_UNIX_ADDR=%{_sharedstatedir}/mysql/mysql.sock \
|
||||||
-DMARIADB_PORT=3306 \
|
-DMARIADB_PORT=3306 \
|
||||||
\
|
\
|
||||||
-DWITH_EXTERNAL_ZLIB=YES \
|
-DWITH_EXTERNAL_ZLIB=ON \
|
||||||
-DWITH_SSL=OPENSSL \
|
-DWITH_SSL=OPENSSL \
|
||||||
-DWITH_MYSQLCOMPAT=ON \
|
-DWITH_MYSQLCOMPAT=ON \
|
||||||
-DPLUGIN_CLIENT_ED25519=DYNAMIC \
|
-DPLUGIN_CLIENT_ED25519=DYNAMIC \
|
||||||
\
|
\
|
||||||
-DINSTALL_LAYOUT=RPM \
|
-DINSTALL_LAYOUT=RPM \
|
||||||
-DCMAKE_INSTALL_PREFIX="%{_prefix}" \
|
|
||||||
-DINSTALL_BINDIR="bin" \
|
-DINSTALL_BINDIR="bin" \
|
||||||
-DINSTALL_LIBDIR="%{_lib}" \
|
-DINSTALL_LIBDIR="%{_lib}" \
|
||||||
-DINSTALL_INCLUDEDIR="include/mysql" \
|
-DINSTALL_INCLUDEDIR="include/mysql" \
|
||||||
-DINSTALL_PLUGINDIR="%{_lib}/mariadb/plugin" \
|
-DINSTALL_PLUGINDIR="%{_lib}/mariadb/plugin" \
|
||||||
-DINSTALL_PCDIR="%{_lib}/pkgconfig" \
|
-DINSTALL_PCDIR="%{_lib}/pkgconfig" \
|
||||||
\
|
\
|
||||||
-DWITH_UNITTEST=ON
|
%if %{with testsuite}
|
||||||
|
-DWITH_UNIT_TESTS=ON
|
||||||
|
%endif
|
||||||
|
|
||||||
|
# Override all optimization flags when making a debug build
|
||||||
|
%if %{with debug}
|
||||||
|
CFLAGS="$CFLAGS -O0 -g"; export CFLAGS
|
||||||
|
CXXFLAGS="$CXXFLAGS -O0 -g"; export CXXFLAGS
|
||||||
|
FFLAGS="$FFLAGS -O0 -g"; export FFLAGS
|
||||||
|
FCFLAGS="$FCFLAGS -O0 -g"; export FCFLAGS
|
||||||
|
%endif
|
||||||
|
|
||||||
#cmake ./ -LAH
|
#cmake ./ -LAH
|
||||||
|
|
||||||
%make_build
|
%cmake_build
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
%install
|
%install
|
||||||
%make_install
|
%cmake_install
|
||||||
|
|
||||||
%multilib_fix_c_header --file %{_includedir}/mysql/mariadb_version.h
|
%multilib_fix_c_header --file %{_includedir}/mysql/mariadb_version.h
|
||||||
|
|
||||||
@ -146,10 +170,11 @@ install -D -p -m 0644 %{SOURCE3} %{buildroot}%{_sysconfdir}/my.cnf.d/client.cnf
|
|||||||
# - don't run mytap tests
|
# - don't run mytap tests
|
||||||
# - ignore the testsuite result for now. Enable tests now, fix them later.
|
# - 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
|
# Note: there must be a database called 'test' created for the testcases to be run
|
||||||
|
%if %{with testsuite}
|
||||||
pushd unittest/libmariadb/
|
pushd unittest/libmariadb/
|
||||||
ctest || :
|
%ctest || :
|
||||||
popd
|
popd
|
||||||
|
%endif
|
||||||
|
|
||||||
|
|
||||||
%files
|
%files
|
||||||
@ -190,11 +215,12 @@ popd
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
%if %{with testsuite}
|
||||||
%files test
|
%files test
|
||||||
%dir %{_datadir}/%{name}
|
%dir %{_datadir}/%{name}
|
||||||
%{_datadir}/%{name}/*
|
%{_datadir}/%{name}/*
|
||||||
%{_libdir}/libcctap.so
|
%{_libdir}/libcctap.so
|
||||||
|
%endif
|
||||||
|
|
||||||
|
|
||||||
# Opened issues on the upstream tracker:
|
# Opened issues on the upstream tracker:
|
||||||
@ -213,6 +239,16 @@ popd
|
|||||||
# Need to ensure, that the testsuite will also run properly on 'fedpkg local' buid, not damaging the host machine
|
# Need to ensure, that the testsuite will also run properly on 'fedpkg local' buid, not damaging the host machine
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Tue Aug 04 2020 Michal Schorm <mschorm@redhat.com> - 3.1.9-5
|
||||||
|
- Revert the CMake change regarding the in-source builds for now
|
||||||
|
- %%cmake macro covers the %%{set_build_flags}, so they are not needed
|
||||||
|
That also means, the debug buildchnages to the build flags must be done AFTER the
|
||||||
|
%%cmake macro was used.
|
||||||
|
- %%cmake macro also covers the CMAKE_INSTALL_PREFIX="%%{_prefix}" option
|
||||||
|
- Default to %%cmake commands instead fo %%make commands
|
||||||
|
- Update the WITH_UNITTEST macro to the one upstream use now
|
||||||
|
- Introduce macro to enable / disable testusite (and building of the *-test subpackage)
|
||||||
|
|
||||||
* Sat Aug 01 2020 Fedora Release Engineering <releng@fedoraproject.org> - 3.1.9-4
|
* Sat Aug 01 2020 Fedora Release Engineering <releng@fedoraproject.org> - 3.1.9-4
|
||||||
- Second attempt - Rebuilt for
|
- Second attempt - Rebuilt for
|
||||||
https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
|
https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
|
||||||
|
Loading…
Reference in New Issue
Block a user