<HTML><BODY><div>LGTM.<br> <blockquote style="border-left:1px solid #0857A6; margin:10px; padding:0 0 0 10px;">Четверг, 23 апреля 2020, 12:03 +03:00 от Alexander V. Tikhonov <avtikhon@tarantool.org>:<br> <div id=""><div class="js-helper js-readmsg-msg"><style type="text/css"></style><div><div id="style_15876326251034026594_BODY">Added makefile to build the SuSE based packages.<br>Implemented build with testing for opensuse images:<br>SuSE 15.0, 15.1, 15.2<br><br>Tarantool spec file changed with:<br>Added checks of %{sle_version} according to<br><a href="https://en.opensuse.org/openSUSE:Packaging_for_Leap#RPM_Distro_Version_Macros" target="_blank">https://en.opensuse.org/openSUSE:Packaging_for_Leap#RPM_Distro_Version_Macros</a><br><br>Found that opensuse adding linker flag like '--no-undefined' which<br>produces the fails on building test modules at app-tap/app/box-tap<br>suites. Decided to block this flag.<br><br>Running tests by make test, because opensuse uses out-of-source<br>build by default.<br>Set complete testing except replication suite.<br>Test box-tap/cfg fails and temporary blocked according to the<br>issue created for it #4594.<br><br>Closes #4562<br>---<br><br>Github: <a href="https://github.com/tarantool/tarantool/tree/avtikhon/gh-4562-suse-pack-full-ci" target="_blank">https://github.com/tarantool/tarantool/tree/avtikhon/gh-4562-suse-pack-full-ci</a><br>Issue: <a href="https://github.com/tarantool/tarantool/issues/4562" target="_blank">https://github.com/tarantool/tarantool/issues/4562</a><br><br> rpm/tarantool.spec | 26 ++++++++++++++++++++------<br> test/app-tap/CMakeLists.txt | 1 +<br> test/app/CMakeLists.txt | 1 +<br> test/box-tap/cfg.skipcond | 6 ++++++<br> test/box/CMakeLists.txt | 1 +<br> 5 files changed, 29 insertions(+), 6 deletions(-)<br><br>diff --git a/rpm/tarantool.spec b/rpm/tarantool.spec<br>index ff95ed646..09de015e2 100644<br>--- a/rpm/tarantool.spec<br>+++ b/rpm/tarantool.spec<br>@@ -1,5 +1,5 @@<br> # Enable systemd for on RHEL >= 7 and Fedora >= 15<br>-%if (0%{?fedora} >= 15 || 0%{?rhel} >= 7)<br>+%if (0%{?fedora} >= 15 || 0%{?rhel} >= 7 || 0%{?sle_version} >= 1500)<br> %bcond_without systemd<br> %else<br> %bcond_with systemd<br>@@ -7,7 +7,7 @@<br> <br> BuildRequires: cmake >= 2.8<br> BuildRequires: make<br>-%if (0%{?fedora} >= 22 || 0%{?rhel} >= 7)<br>+%if (0%{?fedora} >= 22 || 0%{?rhel} >= 7 || 0%{?sle_version} >= 1500)<br> # RHEL 6 requires devtoolset<br> BuildRequires: gcc >= 4.5<br> BuildRequires: gcc-c++ >= 4.5<br>@@ -70,7 +70,7 @@ BuildRequires: libunwind-devel<br> %endif<br> <br> # For tests<br>-%if (0%{?fedora} >= 22 || 0%{?rhel} == 7)<br>+%if (0%{?fedora} >= 22 || 0%{?rhel} == 7 || 0%{?sle_version} >= 1500)<br> BuildRequires: python >= 2.7<br> BuildRequires: python-six >= 1.9.0<br> BuildRequires: python-gevent >= 1.0<br>@@ -102,7 +102,7 @@ Requires: /etc/services<br> # Deps for built-in package manager<br> # <a href="https://github.com/tarantool/tarantool/issues/2612" target="_blank">https://github.com/tarantool/tarantool/issues/2612</a><br> Requires: openssl<br>-%if (0%{?fedora} >= 22 || 0%{?rhel} >= 8)<br>+%if (0%{?fedora} >= 22 || 0%{?rhel} >= 8 || 0%{?sle_version} >= 1500)<br> # RHEL <= 7 doesn't support Recommends:<br> Recommends: tarantool-devel<br> Recommends: git-core<br>@@ -138,7 +138,14 @@ C and Lua/C modules.<br> <br> %build<br> # RHBZ #1301720: SYSCONFDIR an LOCALSTATEDIR must be specified explicitly<br>-%cmake . -DCMAKE_BUILD_TYPE=RelWithDebInfo \<br>+%if (0%{?sle_version} >= 1500)<br>+# SuSE uses only out-of-source builds in its macros<br>+%cmake .. \<br>+ -DCMAKE_INSTALL_PREFIX:PATH=/usr \<br>+%else<br>+%cmake . \<br>+%endif<br>+ -DCMAKE_BUILD_TYPE=RelWithDebInfo \<br>          -DCMAKE_INSTALL_LOCALSTATEDIR:PATH=%{_localstatedir} \<br>          -DCMAKE_INSTALL_SYSCONFDIR:PATH=%{_sysconfdir} \<br> %if %{with backtrace}<br>@@ -154,20 +161,27 @@ C and Lua/C modules.<br>          -DENABLE_DIST:BOOL=ON<br> make %{?_smp_mflags}<br> <br>+%if (0%{?sle_version} == 0)<br> %install<br>+%endif<br> %make_install<br> # %%doc and %%license macroses are used instead<br> rm -rf %{buildroot}%{_datarootdir}/doc/tarantool/<br> <br> %check<br>-%if (0%{?fedora} >= 22 || 0%{?rhel} >= 7)<br>+%if (0%{?fedora} >= 22 || 0%{?rhel} >= 7 || 0%{?sle_version} >= 1500)<br> # <a href="https://github.com/tarantool/tarantool/issues/1227" target="_blank">https://github.com/tarantool/tarantool/issues/1227</a><br> echo "self.skip = True" > ./test/app/socket.skipcond<br> # <a href="https://github.com/tarantool/tarantool/issues/1322" target="_blank">https://github.com/tarantool/tarantool/issues/1322</a><br> echo "self.skip = True" > ./test/app/digest.skipcond<br> # run a safe subset of the test suite<br>+%if (0%{?sle_version} >= 1500)<br>+# SuSE uses only out-of-source builds always at build/ subdir in its macros<br>+cd build && TEST_RUN_EXCLUDE='replication/' make test-force<br>+%else<br> cd test && ./test-run.py --force -j 1 unit/ app/ app-tap/ box/ box-tap/ engine/ vinyl/<br> %endif<br>+%endif<br> <br> %pre<br> /usr/sbin/groupadd -r tarantool > /dev/null 2>&1 || :<br>diff --git a/test/app-tap/CMakeLists.txt b/test/app-tap/CMakeLists.txt<br>index ee67cf533..68aa3690b 100644<br>--- a/test/app-tap/CMakeLists.txt<br>+++ b/test/app-tap/CMakeLists.txt<br>@@ -1 +1,2 @@<br>+SET(CMAKE_SHARED_LINKER_FLAGS "")<br> build_module(module_api module_api.c)<br>diff --git a/test/app/CMakeLists.txt b/test/app/CMakeLists.txt<br>index 059ee8f3d..8bafa6516 100644<br>--- a/test/app/CMakeLists.txt<br>+++ b/test/app/CMakeLists.txt<br>@@ -1 +1,2 @@<br>+SET(CMAKE_SHARED_LINKER_FLAGS "")<br> build_module(loaderslib loaderslib.c)<br>diff --git a/test/box-tap/cfg.skipcond b/test/box-tap/cfg.skipcond<br>index 7950a5d93..9d5535f87 100644<br>--- a/test/box-tap/cfg.skipcond<br>+++ b/test/box-tap/cfg.skipcond<br>@@ -1,8 +1,14 @@<br>+import os<br> import platform<br> <br> # Disabled on FreeBSD due to fail #4271:<br> # Data segment size exceeds process limit<br> if platform.system() == 'FreeBSD':<br>     self.skip = 1<br>+try:<br>+ if os.popen('lsb_release -i').read().split(':')[1].strip() == 'openSUSE':<br>+ self.skip = 1<br>+except IndexError:<br>+ pass<br> <br> # vim: set ft=python:<br>diff --git a/test/box/CMakeLists.txt b/test/box/CMakeLists.txt<br>index 06bfbbe9d..e65559e81 100644<br>--- a/test/box/CMakeLists.txt<br>+++ b/test/box/CMakeLists.txt<br>@@ -1,3 +1,4 @@<br>+SET(CMAKE_SHARED_LINKER_FLAGS "")<br> include_directories(${MSGPUCK_INCLUDE_DIRS})<br> build_module(function1 function1.c)<br> build_module(reload1 reload1.c)<br>--<br>2.17.1<br> </div></div></div></div></blockquote> <div> </div><div data-signature-widget="container"><div data-signature-widget="content"><div>--<br>Oleg Piskunov</div></div></div><div> </div></div></BODY></HTML>