From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from [87.239.111.99] (localhost [127.0.0.1]) by dev.tarantool.org (Postfix) with ESMTP id 6B2B17030E; Mon, 25 Jan 2021 22:47:49 +0300 (MSK) DKIM-Filter: OpenDKIM Filter v2.11.0 dev.tarantool.org 6B2B17030E DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=tarantool.org; s=dev; t=1611604069; bh=LhnbttCUbofHXcysCP0LcLrU/jn2v1CQH8VjfWkYSRs=; h=Date:To:Cc:References:In-Reply-To:Subject:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe: From:Reply-To:From; b=ai1sScqBNhhc2utEcJ/dBGTg3r0bTFJ8wDbo9R+KqWs6boOmQYq5pPlJmPDUTdnMo 57qOdKpYINk8E6z6MY1wVrKVI8VlZSScF00lzxaZoRI6gIIRPnwKA9/6ZlDvhihKUa I3p5mTRTFAQdFPrbYJ/cEu3xYkJAgrO1GP/+LScM= Received: from smtp50.i.mail.ru (smtp50.i.mail.ru [94.100.177.110]) (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 D27C57030E for ; Mon, 25 Jan 2021 22:47:44 +0300 (MSK) DKIM-Filter: OpenDKIM Filter v2.11.0 dev.tarantool.org D27C57030E Received: by smtp50.i.mail.ru with esmtpa (envelope-from ) id 1l47pv-0005oa-VF; Mon, 25 Jan 2021 22:47:44 +0300 Date: Mon, 25 Jan 2021 22:47:42 +0300 To: Igor Munkin Cc: tarantool-patches@dev.tarantool.org Message-ID: <20210125194742.GA107785@hpalx> References: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-7564579A: 646B95376F6C166E X-77F55803: 4F1203BC0FB41BD92BC6D7A73B5E1EC9A4696E262F57B05E134BE683453920D000894C459B0CD1B9A7F4DA5AE44E2E8F12ED1DA79AC866620C5B1D51D2B37BD2261E30AE1A3D80FE X-7FA49CB5: FF5795518A3D127A4AD6D5ED66289B5278DA827A17800CE728F774C865CF4B07EA1F7E6F0F101C67BD4B6F7A4D31EC0BCC500DACC3FED6E28638F802B75D45FF8AA50765F790063767500BC4578134A08638F802B75D45FF5571747095F342E8C7A0BC55FA0FE5FCCF9CA6B51300925EFBC3DA3AADFEE7A8043692F48020C012389733CBF5DBD5E913377AFFFEAFD269176DF2183F8FC7C07E7E81EEA8A9722B8941B15DA834481FCF19DD082D7633A0EF3E4896CB9E6436389733CBF5DBD5E9D5E8D9A59859A8B68424CA1AAF98A6958941B15DA834481F9449624AB7ADAF3735872C767BF85DA29E625A9149C048EE0A3850AC1BE2E735B58781B77DE60D364AD6D5ED66289B524E70A05D1297E1BB35872C767BF85DA227C277FBC8AE2E8B696E4123C2B4120575ECD9A6C639B01B4E70A05D1297E1BBC6867C52282FAC85D9B7C4F32B44FF57C2F2A386D11C4599BD9CCCA9EDD067B1EDA766A37F9254B7 X-C1DE0DAB: 0D63561A33F958A5BCB6F7A2F2E1B0F98D1A848AFBB69EEAEE3DE6CAB28B4DECD59269BC5F550898D99A6476B3ADF6B47008B74DF8BB9EF7333BD3B22AA88B938A852937E12ACA75448CF9D3A7B2C848410CA545F18667F91A7EA1CDA0B5A7A0 X-C8649E89: 4E36BF7865823D7055A7F0CF078B5EC49A30900B95165D343D1F112031EF3D627596B57FD97E34A5A955C239C734352399263A9FDAC7130A75FACF7E291E31361D7E09C32AA3244C9799D7F239CB129C8B671D1F93B44F4B35DA7DC5AF9B58C0729B2BEF169E0186 X-D57D3AED: 3ZO7eAau8CL7WIMRKs4sN3D3tLDjz0dLbV79QFUyzQ2Ujvy7cMT6pYYqY16iZVKkSc3dCLJ7zSJH7+u4VD18S7Vl4ZUrpaVfd2+vE6kuoey4m4VkSEu530nj6fImhcD4MUrOEAnl0W826KZ9Q+tr5ycPtXkTV4k65bRjmOUUP8cvGozZ33TWg5HZplvhhXbhDGzqmQDTd6OAevLeAnq3Ra9uf7zvY2zzsIhlcp/Y7m53TZgf2aB4JOg4gkr2biojbLwCnVtyriddDAB7MIV2IA== X-Mailru-Sender: 3B9A0136629DC91203FBB98BB0AC256ED73C32AA6CD7B6E5BF890FC236A9A12999E669F8D7242331C6BE15A09D9B9DC7F25921C611F62F88B76B9718D0A84D677D8D5F77027693F59437F6177E88F7363CDA0F3B3F5B9367 X-Mras: Ok Subject: Re: [Tarantool-patches] [PATCH v2 0/2] Update CMake minimum version in Tarantool X-BeenThere: tarantool-patches@dev.tarantool.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Tarantool development patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , From: "Alexander V. Tikhonov via Tarantool-patches" Reply-To: "Alexander V. Tikhonov" Errors-To: tarantool-patches-bounces@dev.tarantool.org Sender: "Tarantool-patches" Hi Igor, thanks for the patch set. It looks great with lots of information, it LTGM. On Mon, Jan 25, 2021 at 10:14:41PM +0300, Igor Munkin wrote: > This series contains auxiliary activities required for this issue[1]. > > The second and main patch updates Tarantool build infrastructure to use > CMake 3.1 or newer. Since this CMake release[2] the vital for LuaJIT > testing environment feature is introduced: one can use generator > expressions[3] in target DEPENDS section. This CMake feature is used to > pass either Tarantool binary or LuaJIT binary to the newly implemented > testing machinery with no changes in it. > > Unfortunately, not all distributions provides CMake 3.1 or newer from their > repositories. Here is the actual list of default packages providing CMake > for the distributions that support Tarantool: > | Distro | CMake version | Repo | > |--------------------+---------------+---------------------| > | CentOS 6 | 2.8.12 | base | > | CentOS 7 | 2.8.12 | base | > | CentOS 8 | 3.11.4 | appstream | > | Debian Jessie | 3.0.2 | jessie/main | > | Debian Stretch | 3.7.2 | stretch/main | > | Debian Buster | 3.13.4 | buster/main | > | Fedora 28 | 3.14.4 | updates | > | Fedora 29 | 3.14.5 | updates | > | Fedora 30 | 3.17.2 | updates | > | Fedora 31 | 3.17.4 | updates | > | Fedora 32 | 3.17.4 | updates | > | FreeBSD 12 | 3.15.5 | default | > | OSX 14 | 3.19.3 | brew | > | OSX 15 | 3.19.3 | brew | > | Ubuntu 14.04 | 2.8.12 | trusty/main | > | Ubuntu 16.04 | 3.5.1 | xenial-updates/main | > | Ubuntu 18.04 | 3.10.2 | bionic-updates/main | > | Ubuntu 20.04 | 3.16.3 | focal/main | > | openSUSE Leap 15.1 | 3.10.2 | Main | > | openSUSE Leap 15.2 | 3.17.0 | Main | > > As one can see, there are no required packages provided by default for > the following old distributions: CentOS 6, CentOS 7, Debian Jessie and > Ubuntu 14.04. There are alternative packages (i.e. cmake3) providing a > newer CMake than the default one for the old packages: > | Distro | CMake3 version | Repo | > |--------------------+-----------------+-------------------------| > | CentOS 6 | 3.6.1 | epel* | > | CentOS 7 | 3.17.5 | epel* | > | Ubuntu 14.04 | 3.5.1 | trusty-updates/universe | > > (*) Unfortunately, I failed to find the way to make rpmbuild install and > enable EPEL repository prior to the build step. However, cmake3 > requirement obligues user to enable EPEL by himself, otherwise this > dependency is left unmet. If there are any issues with building an > RPM on CentOS 7 please proceed to the docs: > https://www.tarantool.io/en/doc/latest/dev_guide/building_from_source/ > > So the last problem is Debian Jessie: the required CMake toolchain is > provided neither via the default repository nor via the auxiliary one > (e.g. updates like it's done for Ubuntu 14.04). Anyway, Debian Jessie > long term support has reached its EOL[4], so we can freely drop this > distribution from our regular building testing. This is done in the > first patch of this series. > > NB: Be careful with updating CMake to 3.1 in CMakeLists. The following > patch breaks Tarantool build. > | diff --git a/CMakeLists.txt b/CMakeLists.txt > | index 4fbd19558..6dc78fa88 100644 > | --- a/CMakeLists.txt > | +++ b/CMakeLists.txt > | @@ -1,4 +1,4 @@ > | -cmake_minimum_required(VERSION 2.8) > | +cmake_minimum_required(VERSION 3.1) > | > | project(tarantool C CXX) > | > > Surprisingly, as a result of this change -Wno-gnu-alignof-expression > flag is removed from CFLAGS and the build fails on OSX with the > following error[5]: > | /tarantool/src/box/field_map.c:69:36: error: '_Alignof' applied to an expression is a GNU extension [-Werror,-Wgnu-alignof-expression] > | region_aligned_alloc(region, sz, alignof(*extent)); > | ^ > | /Library/Developer/CommandLineTools/usr/lib/clang/12.0.0/include/stdalign.h:15:17: note: expanded from macro 'alignof' > | #define alignof _Alignof > | ^ > | 1 error generated. > > Anyway, I believe this is out of the scope of this series, so I just > leave this for the further CMake upgrade endeavors. > > Changes in v2: > * Adjust the series in accordance with recently merged PRs moving all > build jobs to GitHub CI[6], removing CentOS 6 CI pipeline[7] and > introducing Fedora 33 build job to CI[8]. > * Moved some parts of cover letter to commit messages. > > [1]: https://github.com/tarantool/tarantool/issues/4862 > [2]: https://cmake.org/cmake/help/latest/release/3.1.html#commands > [3]: https://cmake.org/cmake/help/v3.1/manual/cmake-generator-expressions.7.html > [4]: https://www.debian.org/News/2020/20200709 > [5]: https://gitlab.com/tarantool/tarantool/-/pipelines/243423841 > [6]: https://github.com/tarantool/tarantool/pull/5724 > [7]: https://github.com/tarantool/tarantool/pull/5729 > [8]: https://github.com/tarantool/tarantool/pull/5707 > > Branch: https://github.com/tarantool/tarantool/tree/imun/cmake3-toolchain > V1: https://lists.tarantool.org/tarantool-patches/20210120184230.GC5460@tarantool.org/T/#t > Issue: https://github.com/tarantool/tarantool/issues/4862 > CI is green but I can't share a single link to it after the changes in > #5724, so please check whether there is a green tick everywhere for the > top commit on the mentioned branch. > > @ChangeLog: > | * Updated CMake minimum required version in Tarantool build > | infrastructure to 3.1. > > Igor Munkin (2): > github-ci: purge Debian Jessie from CI > build: update CMake minimum version to 3.1 > > .github/workflows/debian_8.yml | 58 ---------------------------------- > debian/control | 9 +++++- > rpm/tarantool.spec | 30 ++++++++++++++++-- > 3 files changed, 35 insertions(+), 62 deletions(-) > delete mode 100644 .github/workflows/debian_8.yml > > -- > 2.25.0 >