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 4EB9CCC30D; Wed, 20 Jan 2021 21:19:51 +0300 (MSK) DKIM-Filter: OpenDKIM Filter v2.11.0 dev.tarantool.org 4EB9CCC30D DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=tarantool.org; s=dev; t=1611166791; bh=cVva82kMg+wJadfGbT9ortpnKX63V1RNtkeky1OmLpA=; h=To:Date:Subject:List-Id:List-Unsubscribe:List-Archive:List-Post: List-Help:List-Subscribe:From:Reply-To:Cc:From; b=D3Wh+MY6jrsKLTuJIjfUumryjxgqAtAj0my9Uwl9KRw3L5dSSaYis1jWj1xhAtfGD mkBRlGCQJYgxjxaydQl8MJpRqF5SQ6esb5faMcsH4BoBQkP0Tz8pvLcxDesdWJehA9 sX98L8q5qXzhWokJx1VXcROYIm7SI/rETBURSWQc= Received: from smtpng3.m.smailru.net (smtpng3.m.smailru.net [94.100.177.149]) (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 873F1CC307 for ; Wed, 20 Jan 2021 21:19:50 +0300 (MSK) DKIM-Filter: OpenDKIM Filter v2.11.0 dev.tarantool.org 873F1CC307 Received: by smtpng3.m.smailru.net with esmtpa (envelope-from ) id 1l2I57-0005rt-EM; Wed, 20 Jan 2021 21:19:49 +0300 To: Alexander Turenko , "Alexander V. Tikhonov" Date: Wed, 20 Jan 2021 21:19:45 +0300 Message-Id: X-Mailer: git-send-email 2.25.0 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-7564579A: 646B95376F6C166E X-77F55803: 4F1203BC0FB41BD9D0E79FBC973162CD1269BAEF2517FA5CABD5EB3486AA6E7100894C459B0CD1B9877010FADE5D26D692CD09B29ADF8C88FD558A0F433ED070CBBB4FF5790A3399 X-7FA49CB5: FF5795518A3D127A4AD6D5ED66289B5278DA827A17800CE792C68BF9CD4C0E9EEA1F7E6F0F101C67BD4B6F7A4D31EC0BCC500DACC3FED6E28638F802B75D45FF8AA50765F79006370CE92FB8C11ED3D88638F802B75D45FF5571747095F342E8C7A0BC55FA0FE5FCAAA1ADD1EA3AE2AA1F1AA792A8504397B3DDA11445384048389733CBF5DBD5E913377AFFFEAFD269176DF2183F8FC7C0D9442B0B5983000E8941B15DA834481FCF19DD082D7633A0EF3E4896CB9E6436389733CBF5DBD5E9D5E8D9A59859A8B68424CA1AAF98A6958941B15DA834481F9449624AB7ADAF3735872C767BF85DA29E625A9149C048EE0A3850AC1BE2E7351D6A3D1828C120DE4AD6D5ED66289B524E70A05D1297E1BB35872C767BF85DA227C277FBC8AE2E8B706619B2D358707475ECD9A6C639B01B4E70A05D1297E1BBC6867C52282FAC85D9B7C4F32B44FF57285124B2A10EEC6C00306258E7E6ABB4E4A6367B16DE6309 X-C1DE0DAB: C20DE7B7AB408E4181F030C43753B8186998911F362727C414F749A5E30D975C2549B6A8B600A67ADD94972FD3F84DDD1879DFECE63513F19C2B6934AE262D3EE7EAB7254005DCED486631563A2D6D609510FB958DCE06DB6ED91DBE5ABE359A3485EE9140A7D39D23D4379F09C64C7393EDB24507CE13387DFF0A840B692CF8 X-C8649E89: 4E36BF7865823D7055A7F0CF078B5EC49A30900B95165D3454CC76E5F54B410C37F82614F906F05F849A0D5A2649E338CAF6B840718B1FF8F38E9176949468291D7E09C32AA3244C433BAA080C9086EF83BD2760E9269CCD853296C06374E602927AC6DF5659F194 X-D57D3AED: 3ZO7eAau8CL7WIMRKs4sN3D3tLDjz0dLbV79QFUyzQ2Ujvy7cMT6pYYqY16iZVKkSc3dCLJ7zSJH7+u4VD18S7Vl4ZUrpaVfd2+vE6kuoey4m4VkSEu530nj6fImhcD4MUrOEAnl0W826KZ9Q+tr5ycPtXkTV4k65bRjmOUUP8cvGozZ33TWg5HZplvhhXbhDGzqmQDTd6OAevLeAnq3Ra9uf7zvY2zzsIhlcp/Y7m53TZgf2aB4JOg4gkr2biojbL9S8ysBdXgx/5zeUdIBVzVIC/KHWb8V X-Mailru-Sender: 689FA8AB762F73936BC43F508A0638225C0DA8372AC719BCB67AC8777B162E6EA7C8D0F45F857DBFE9F1EFEE2F478337FB559BB5D741EB964C8C2C849690F8E70A04DAD6CC59E33667EA787935ED9F1B X-Mras: Ok Subject: [Tarantool-patches] [PATCH 0/2] Update CMake minimal 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: Igor Munkin via Tarantool-patches Reply-To: Igor Munkin Cc: tarantool-patches@dev.tarantool.org Errors-To: tarantool-patches-bounces@dev.tarantool.org Sender: "Tarantool-patches" 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. [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 Branch: https://github.com/tarantool/tarantool/tree/imun/cmake3-toolchain Issue: https://github.com/tarantool/tarantool/issues/4862 CI is green: https://gitlab.com/tarantool/tarantool/-/pipelines/244503943 Igor Munkin (2): gitlab-ci: purge Debian Jessie from CI build: update minimal CMake version to 3.1 .gitlab-ci.yml | 12 ------------ debian/control | 9 ++++++++- rpm/tarantool.spec | 33 ++++++++++++++++++++++++++++++--- 3 files changed, 38 insertions(+), 16 deletions(-) -- 2.25.0