LGTM.   >Четверг, 23 апреля 2020, 12:03 +03:00 от Alexander V. Tikhonov : >  >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