Skip to content

Commit

Permalink
build: implement SuSE build with testing
Browse files Browse the repository at this point in the history
Added makefile to build the SuSE based packages.
Implemented build with testing for opensuse images:
SuSE 15.0, 15.1, 15.2

Tarantool spec file changed with:
Added checks of %{sle_version} according to
https://en.opensuse.org/openSUSE:Packaging_for_Leap#RPM_Distro_Version_Macros

Found that opensuse adding linker flag like '--no-undefined' which
produces the fails on building test modules at app-tap/app/box-tap
suites and tests in luajit repository. Decided to block this flag.

Running tests by make test, because opensuse uses out-of-source
build by default.
Set complete testing except replication suite.
Test box-tap/cfg fails and temporary blocked according to the
issue created for it #4594.

Close #4562
  • Loading branch information
avtikhon committed Jun 24, 2020
1 parent 83462a5 commit 3c62929
Show file tree
Hide file tree
Showing 6 changed files with 26 additions and 8 deletions.
23 changes: 16 additions & 7 deletions rpm/tarantool.spec
@@ -1,13 +1,13 @@
# Enable systemd for on RHEL >= 7 and Fedora >= 15
%if (0%{?fedora} >= 15 || 0%{?rhel} >= 7)
%if (0%{?fedora} >= 15 || 0%{?rhel} >= 7 || 0%{?sle_version} >= 1500)
%bcond_without systemd
%else
%bcond_with systemd
%endif

BuildRequires: cmake >= 2.8
BuildRequires: make
%if (0%{?fedora} >= 22 || 0%{?rhel} >= 7)
%if (0%{?fedora} >= 22 || 0%{?rhel} >= 7 || 0%{?sle_version} >= 1500)
# RHEL 6 requires devtoolset
BuildRequires: gcc >= 4.5
BuildRequires: gcc-c++ >= 4.5
Expand Down Expand Up @@ -72,7 +72,7 @@ BuildRequires: libunwind-devel
# Set dependences for tests.
# Do not install unused Python 3 packages which
# is default since Fedora 31 and CentOS 8.
%if (0%{?fedora} >= 31 || 0%{?rhel} >= 8)
%if (0%{?fedora} >= 22 || 0%{?rhel} == 7 || 0%{?sle_version} >= 1500)
BuildRequires: python2 >= 2.7
BuildRequires: python2-six >= 1.9.0
BuildRequires: python2-gevent >= 1.0
Expand Down Expand Up @@ -105,7 +105,7 @@ Requires: /etc/services
# Deps for built-in package manager
# https://github.com/tarantool/tarantool/issues/2612
Requires: openssl
%if (0%{?fedora} >= 22 || 0%{?rhel} >= 8)
%if (0%{?fedora} >= 22 || 0%{?rhel} >= 8 || 0%{?sle_version} >= 1500)
# RHEL <= 7 doesn't support Recommends:
Recommends: tarantool-devel
Recommends: git-core
Expand Down Expand Up @@ -141,10 +141,17 @@ C and Lua/C modules.

%build
# RHBZ #1301720: SYSCONFDIR an LOCALSTATEDIR must be specified explicitly
%cmake . -DCMAKE_BUILD_TYPE=RelWithDebInfo \
%if (0%{?sle_version} >= 1500)
# SuSE uses only out-of-source builds in its macros
%cmake .. \
-DCMAKE_INSTALL_PREFIX:PATH=/usr \
%else
%cmake . \
%endif
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
-DCMAKE_INSTALL_LOCALSTATEDIR:PATH=%{_localstatedir} \
-DCMAKE_INSTALL_SYSCONFDIR:PATH=%{_sysconfdir} \
%if %{with backtrace}
%if (%{with backtrace} || 0%{?sle_version} >= 1500)
-DENABLE_BACKTRACE:BOOL=ON \
%else
-DENABLE_BACKTRACE:BOOL=OFF \
Expand All @@ -157,14 +164,16 @@ C and Lua/C modules.
-DENABLE_DIST:BOOL=ON
make %{?_smp_mflags}

%if (0%{?sle_version} == 0)
%install
%endif
%make_install
# %%doc and %%license macroses are used instead
rm -rf %{buildroot}%{_datarootdir}/doc/tarantool/

%check
%if "%{_ci}" == "travis"
%if (0%{?fedora} >= 22 || 0%{?rhel} >= 7)
%if (0%{?fedora} >= 22 || 0%{?rhel} >= 7 || 0%{?sle_version} >= 1500)
cd test && ./test-run.py --force -j 1 unit/ app/ app-tap/ box/ box-tap/ engine/ vinyl/
%endif
%else
Expand Down
1 change: 1 addition & 0 deletions test/app-tap/CMakeLists.txt
@@ -1 +1,2 @@
SET(CMAKE_SHARED_LINKER_FLAGS "")
build_module(module_api module_api.c)
1 change: 1 addition & 0 deletions test/app/CMakeLists.txt
@@ -1 +1,2 @@
SET(CMAKE_SHARED_LINKER_FLAGS "")
build_module(loaderslib loaderslib.c)
6 changes: 6 additions & 0 deletions test/box-tap/cfg.skipcond
@@ -1,9 +1,15 @@
import os
import platform

# Disabled on FreeBSD due to fail #4271:
# Data segment size exceeds process limit
if platform.system() == 'FreeBSD':
self.skip = 1
try:
if os.popen('lsb_release -i').read().split(':')[1].strip() == 'openSUSE':
self.skip = 1
except IndexError:
pass

# Disabled on OpenBSD due to fail #XXXX:
if platform.system() == 'OpenBSD':
Expand Down
1 change: 1 addition & 0 deletions test/box/CMakeLists.txt
@@ -1,3 +1,4 @@
SET(CMAKE_SHARED_LINKER_FLAGS "")
include_directories(${MSGPUCK_INCLUDE_DIRS})
build_module(function1 function1.c)
build_module(reload1 reload1.c)
Expand Down
2 changes: 1 addition & 1 deletion third_party/luajit

0 comments on commit 3c62929

Please sign in to comment.