[Tarantool-patches] [PATCH v1] build: implement SuSE build with testing
Oleg Piskunov
o.piskunov at tarantool.org
Thu Apr 30 11:41:43 MSK 2020
LGTM.
>Четверг, 23 апреля 2020, 12:03 +03:00 от Alexander V. Tikhonov <avtikhon at tarantool.org>:
>
>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. 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.
>
>Closes #4562
>---
>
>Github: https://github.com/tarantool/tarantool/tree/avtikhon/gh-4562-suse-pack-full-ci
>Issue: https://github.com/tarantool/tarantool/issues/4562
>
> rpm/tarantool.spec | 26 ++++++++++++++++++++------
> test/app-tap/CMakeLists.txt | 1 +
> test/app/CMakeLists.txt | 1 +
> test/box-tap/cfg.skipcond | 6 ++++++
> test/box/CMakeLists.txt | 1 +
> 5 files changed, 29 insertions(+), 6 deletions(-)
>
>diff --git a/rpm/tarantool.spec b/rpm/tarantool.spec
>index ff95ed646..09de015e2 100644
>--- a/rpm/tarantool.spec
>+++ b/rpm/tarantool.spec
>@@ -1,5 +1,5 @@
> # 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
>@@ -7,7 +7,7 @@
>
> 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
>@@ -70,7 +70,7 @@ BuildRequires: libunwind-devel
> %endif
>
> # For tests
>-%if (0%{?fedora} >= 22 || 0%{?rhel} == 7)
>+%if (0%{?fedora} >= 22 || 0%{?rhel} == 7 || 0%{?sle_version} >= 1500)
> BuildRequires: python >= 2.7
> BuildRequires: python-six >= 1.9.0
> BuildRequires: python-gevent >= 1.0
>@@ -102,7 +102,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
>@@ -138,7 +138,14 @@ 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}
>@@ -154,20 +161,27 @@ 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 (0%{?fedora} >= 22 || 0%{?rhel} >= 7)
>+%if (0%{?fedora} >= 22 || 0%{?rhel} >= 7 || 0%{?sle_version} >= 1500)
> # https://github.com/tarantool/tarantool/issues/1227
> echo "self.skip = True" > ./test/app/socket.skipcond
> # https://github.com/tarantool/tarantool/issues/1322
> echo "self.skip = True" > ./test/app/digest.skipcond
> # run a safe subset of the test suite
>+%if (0%{?sle_version} >= 1500)
>+# SuSE uses only out-of-source builds always at build/ subdir in its macros
>+cd build && TEST_RUN_EXCLUDE='replication/' make test-force
>+%else
> cd test && ./test-run.py --force -j 1 unit/ app/ app-tap/ box/ box-tap/ engine/ vinyl/
> %endif
>+%endif
>
> %pre
> /usr/sbin/groupadd -r tarantool > /dev/null 2>&1 || :
>diff --git a/test/app-tap/CMakeLists.txt b/test/app-tap/CMakeLists.txt
>index ee67cf533..68aa3690b 100644
>--- a/test/app-tap/CMakeLists.txt
>+++ b/test/app-tap/CMakeLists.txt
>@@ -1 +1,2 @@
>+SET(CMAKE_SHARED_LINKER_FLAGS "")
> build_module(module_api module_api.c)
>diff --git a/test/app/CMakeLists.txt b/test/app/CMakeLists.txt
>index 059ee8f3d..8bafa6516 100644
>--- a/test/app/CMakeLists.txt
>+++ b/test/app/CMakeLists.txt
>@@ -1 +1,2 @@
>+SET(CMAKE_SHARED_LINKER_FLAGS "")
> build_module(loaderslib loaderslib.c)
>diff --git a/test/box-tap/cfg.skipcond b/test/box-tap/cfg.skipcond
>index 7950a5d93..9d5535f87 100644
>--- a/test/box-tap/cfg.skipcond
>+++ b/test/box-tap/cfg.skipcond
>@@ -1,8 +1,14 @@
>+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
>
> # vim: set ft=python:
>diff --git a/test/box/CMakeLists.txt b/test/box/CMakeLists.txt
>index 06bfbbe9d..e65559e81 100644
>--- a/test/box/CMakeLists.txt
>+++ b/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)
>--
>2.17.1
>
--
Oleg Piskunov
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.tarantool.org/pipermail/tarantool-patches/attachments/20200430/ed79c87b/attachment.html>
More information about the Tarantool-patches
mailing list