From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp29.i.mail.ru (smtp29.i.mail.ru [94.100.177.89]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dev.tarantool.org (Postfix) with ESMTPS id 667184696C3 for ; Wed, 29 Apr 2020 15:25:38 +0300 (MSK) Date: Wed, 29 Apr 2020 15:25:27 +0300 From: Sergey Bronnikov Message-ID: <20200429122527.GA84403@pony.bronevichok.ru> References: <1cb7469ca7d4ed1c345b32707fec46663c670fa4.1587632526.git.avtikhon@tarantool.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: <1cb7469ca7d4ed1c345b32707fec46663c670fa4.1587632526.git.avtikhon@tarantool.org> Subject: Re: [Tarantool-patches] [PATCH v1] build: implement SuSE build with testing List-Id: Tarantool development patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: "Alexander V. Tikhonov" Cc: Oleg Piskunov , tarantool-patches@dev.tarantool.org LGTM On 12:03 Thu 23 Apr , Alexander V. Tikhonov wrote: > 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 > -- sergeyb@