Gentoo Archives: gentoo-dev

From: Sam James <sam@g.o>
To: gentoo-dev@l.g.o
Subject: Re: [gentoo-dev] cmake-utils.eclass consumers will be broken by >=dev-util/cmake-3.23.0
Date: Sun, 27 Feb 2022 02:52:30
Message-Id: F2099B9E-C614-42D8-96F9-D5A19D462416@gentoo.org
In Reply to: Re: [gentoo-dev] cmake-utils.eclass consumers will be broken by >=dev-util/cmake-3.23.0 by Jason Zaman
1 > On 27 Feb 2022, at 01:59, Jason Zaman <perfinion@g.o> wrote:
2 >
3 > On Sat, Feb 26, 2022 at 08:11:52PM +0100, Andreas Sturmlechner wrote:
4 >> Dear packagers,
5 >>
6 >> - More than 4500 ebuilds were switched to cmake.eclass since 2019-12-21 [1]
7 >> - Less than 110 ebuilds still inherit cmake-utils.eclass [2]
8 >> - A change in cmake-3.23 will break all revdeps doing so
9 >> - I am not fixing it
10 >> - If *you* fix it, you will become the sole maintainer of cmake-utils.eclass
11 >> - Any bugs filed as a result of this will block a future cmake-utils.eclass
12 >> last-rites tracker. Failure to respond will make your package a last-rites
13 >> candidate too.
14 >>
15 >> hth.
16 >>
17 >> [1] https://qa-reports.gentoo.org/output/eapi-per-eclass/cmake.eclass/
18 >> [2] https://qa-reports.gentoo.org/output/eapi-per-eclass/cmake-utils.eclass/
19 >
20 > Whoops, thanks for the heads up!
21 > google-cloud-cpp is mine (a dep of tensorflow).
22 > It took me a while to realize in the above it has both cmake{,-utils}.
23 >
24 > Is there a migration guide or some docs about for what I need to do to
25 > move it to the new eclass?
26
27 https://bugs.gentoo.org/834110#c0 but let's dig stuff up for ease:
28 - https://github.com/gentoo/gentoo/commits/master/eclass/cmake.eclass
29 - https://github.com/gentoo/gentoo/commit/9053737a4e16fb1c9bcdd95373ef4e42d61404f4
30 ```
31 - Drop all pre-EAPI-7 compatibility
32 - Drop CMAKE_MIN_VERSION
33 - Drop CMAKE_REMOVE_MODULES
34 - Array support for CMAKE_REMOVE_MODULES_LIST
35 - Drop pushd/popd from src_prepare
36 - Drop _cmake_generator_to_use()
37 CMAKE_MAKEFILE_GENERATOR validity is already checked in global scope.
38 Move the check for dev-util/ninja into src_prepare.
39 - Rename cmake_src_make() -> cmake_build()
40 - Drop _cmake_ninja_src_build and _cmake_emake_src_build, move into cmake_build
41 ```
42 - https://marc.info/?l=gentoo-dev&m=157714319110420&w=2
43 - https://devmanual.gentoo.org/eclass-reference/cmake.eclass/index.html (but this doesn't note the differences w/ -utils).
44
45 I think the summary is is (in addition to above):
46 - BUILD_SHARED_LIBS is now default on
47 - Note that between EAPI 7 and EAPI 8, cmake.eclass (not -utils) changed default build type from 'Gentoo' (custom) to 'RelWithDebInfo'
48 - Some changes to do with out-of-source builds or working directory
49
50 But just give a shout if something doesn't work!
51
52 Best,
53 sam

Attachments

File name MIME type
signature.asc application/pgp-signature