[gentoo-dev] [PATCH] cmake-multilib.eclass: Drop cmake-utils support
cmake-utils.eclass was dropped on 2022-08-01 in commit 3e744f5a. See also: https://github.com/gentoo/gentoo/pull/26858 --- eclass/cmake-multilib.eclass | 30 ++ 1 file changed, 10 insertions(+), 20 deletions(-) diff --git a/eclass/cmake-multilib.eclass b/eclass/cmake-multilib.eclass index 61bacd3d60e3..7e4a86d56756 100644 --- a/eclass/cmake-multilib.eclass +++ b/eclass/cmake-multilib.eclass @@ -1,4 +1,4 @@ -# Copyright 1999-2021 Gentoo Authors +# Copyright 1999-2022 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 # @ECLASS: cmake-multilib.eclass @@ -7,7 +7,7 @@ # @AUTHOR: # Author: Michał Górny # @SUPPORTED_EAPIS: 7 8 -# @PROVIDES: cmake cmake-utils multilib-minimal +# @PROVIDES: cmake multilib-minimal # @BLURB: cmake wrapper for multilib builds # @DESCRIPTION: # The cmake-multilib.eclass provides a glue between cmake.eclass(5) @@ -20,31 +20,21 @@ # in multilib-minimal, yet they ought to call appropriate cmake # phase rather than 'default'. -[[ ${EAPI} == 7 ]] && : ${CMAKE_ECLASS:=cmake-utils} # @ECLASS_VARIABLE: CMAKE_ECLASS -# @PRE_INHERIT +# @DEPRECATED # @DESCRIPTION: -# Only "cmake" is supported in EAPI-8 and later. -# In EAPI-7, default is "cmake-utils" for compatibility. Specify "cmake" for -# ebuilds that ported to cmake.eclass already. +# Only "cmake" is supported. : ${CMAKE_ECLASS:=cmake} -# @ECLASS_VARIABLE: _CMAKE_ECLASS_IMPL -# @INTERNAL -# @DESCRIPTION: -# TODO: Cleanup once EAPI-7 support is gone. -_CMAKE_ECLASS_IMPL=cmake - case ${EAPI} in 7|8) case ${CMAKE_ECLASS} in - cmake-utils|cmake) ;; + cmake) ;; *) eerror "Unknown value for \$ {CMAKE_ECLASS}" die "Value ${CMAKE_ECLASS} is not supported" ;; esac - _CMAKE_ECLASS_IMPL=${CMAKE_ECLASS} ;; *) die "${ECLASS}: EAPI=${EAPI:-0} is not supported" ;; esac @@ -56,7 +46,7 @@ fi if [[ -z ${_CMAKE_MULTILIB_ECLASS} ]]; then _CMAKE_MULTILIB_ECLASS=1 -inherit ${_CMAKE_ECLASS_IMPL} multilib-minimal +inherit cmake multilib-minimal cmake-multilib_src_configure() { local _cmake_args=( "${@}" ) @@ -65,7 +55,7 @@ cmake-multilib_src_configure() { } multilib_src_configure() { - ${_CMAKE_ECLASS_IMPL}_src_configure "${_cmake_args[@]}" + cmake_src_configure "${_cmake_args[@]}" } cmake-multilib_src_compile() { @@ -75,7 +65,7 @@ cmake-multilib_src_compile() { } multilib_src_compile() { - ${_CMAKE_ECLASS_IMPL}_src_compile "${_cmake_args[@]}" + cmake_src_compile "${_cmake_args[@]}" } cmake-multilib_src_test() { @@ -85,7 +75,7 @@ cmake-multilib_src_test() { } multilib_src_test() { - ${_CMAKE_ECLASS_IMPL}_src_test "${_cmake_args[@]}" + cmake_src_test "${_cmake_args[@]}" } cmake-multilib_src_install() { @@ -95,7 +85,7 @@ cmake-multilib_src_install() { } multilib_src_install() { - ${_CMAKE_ECLASS_IMPL}_src_install "${_cmake_args[@]}" + cmake_src_install "${_cmake_args[@]}" } fi -- 2.37.2 signature.asc Description: This is a digitally signed message part.
[gentoo-dev] Last-rites: kde-apps/kalarmcal
# Andreas Sturmlechner (2022-07-25) # Merged into kde-apps/kalarm since 22.04.3, no other revdeps, obsolete. # Masked for removal on 2022-08-08. kde-apps/kalarmcal signature.asc Description: This is a digitally signed message part.
[gentoo-dev] Last-rites: kde-misc/plasma-applet-weather-widget
# Andreas Sturmlechner (2022-07-19) # No upstream commits since 2017, broken by yr.no widget discontinuation. # Replaced by kde-misc/kweather from KDE Plasma Mobile Gear. # Removal on 2022-08-18. kde-misc/plasma-applet-weather-widget signature.asc Description: This is a digitally signed message part.
[gentoo-dev] Up for grabs: mail-client/kube and dependencies, including dev-libs/flatbuffers
This was added to Gentoo ebuild repository as a beta grade Mail client when it probably should not have been at that early stage. While its repository is found on invent.kde.org it is not particularly well integrated with KDE community, release tarballs aren't even hosted there. There is no overlap with the big KDE PIM suite. There is no particular appetite to continue maintain this especially with the limited dev hours available to Gentoo KDE proj, and in fact those packages have already fallen behind. A PR appeared to add kube-0.9.0 +deps but never came to fruition: https://github.com/gentoo/gentoo/pull/22371 See also: https://kube-project.com/getit.html As a result, the following packages are up for grabs very soon: mail-client/kube (0.7.0 in tree, 0.9.0 upstream) dev-libs/sink (bug 830945; 0.8.0 in tree, 0.9.0 upstream) net-libs/kdav2 (0.3.0 in tree, 0.4.0 upstream) net-libs/kimap2 (0.3.0 in tree, 0.4.0 upstream) dev-libs/flatbuffers (up to date, stabilisation pending) Regards, Andreas signature.asc Description: This is a digitally signed message part.
[gentoo-dev] [RFC v2] [News Item] Qt 5.15.3 version bump with binary path changes
Title: Qt 5.15.3 version bump with binary path changes Author: Andreas Sturmlechner Posted: 2022-03-28 Revision: 1 News-Item-Format: 2.0 Display-If-Installed: dev-qt/qtchooser Up until Qt 5.15.2 we were using qtchooser to provide unversioned links to Qt binaries in PATH, like qmake, moc, qmljs etc. Starting with 5.15.3 [1] such links will be installed by each respective Qt package and '5'-version-suffixed, e.g. qmake becomes qmake5, qml becomes qml5 etc., mirroring Qt6. If you develop with Qt5 and rely on unversioned binaries for your workflow, dev-qt/qtchooser as a tool for quickly switching between multiple Qt installations (e.g. Qt3, Qt4 and Qt5) can still be manually installed. The 'default' Qt version in PATH is then controlled via config in /etc/xdg/qtchooser. Otherwise, dev-qt/qtchooser will be slated for cleanup on your next emerge -- depclean run. [1] https://archives.gentoo.org/gentoo-dev/message/ 5f3681b5b28dabeb5339d44e9585d29f signature.asc Description: This is a digitally signed message part.
[gentoo-dev] [RFC] [News Item] Qt 5.15.3 version bump with binary path changes
Title: Qt 5.15.3 version bump with binary path changes Author: Andreas Sturmlechner Posted: 2022-03-27 Revision: 1 News-Item-Format: 2.0 Up until Qt 5.15.2 we were using qtchooser to provide unversioned links to Qt binaries in PATH, like qmake, moc, qmljs etc. Starting with 5.15.3 such links will be installed by each respective Qt package and '5'-version-suffixed, e.g. qmake becomes qmake5, qml becomes qml5 etc., mirroring Qt6. If you develop with Qt5 and rely on unversioned binaries for your workflow, dev-qt/qtchooser as a tool for quickly switching between multiple Qt installations (e.g. Qt3, Qt4 and Qt5) can still be manually installed. The 'default' Qt version in PATH is then controlled via config in /etc/xdg/qtchooser. Otherwise, dev-qt/qtchooser will be slated for cleanup on your next emerge -- depclean run. signature.asc Description: This is a digitally signed message part.
Re: [gentoo-dev] Re: Qt 5.15.3 version bump with breaking changes incoming
On Montag, 21. März 2022 13:21:45 CET Anna Vyalkova wrote: > kde-frameworks/kguiaddons needs it. $ equery g kguiaddons * dependency graph for kde-frameworks/kguiaddons-5.92.0 `-- dev-qt/qtwaylandscanner-5.15.3 (>=dev-qt/qtwaylandscanner-5.15.2) ... signature.asc Description: This is a digitally signed message part.
[gentoo-dev] Qt 5.15.3 version bump with breaking changes incoming
Please upgrade to Qt 5.15.3 which is in package.mask now and help testing, especially if you maintain Qt5-based packages yourself. 1) dev-qt/qtwaylandscanner (new package) split from dev-qt/qtwayland With that, qtwaylandscanner binary gets its own package, to be usually put into BDEPEND by revdeps. => Please check your packages for this dependency change. [1][2] 2) dev-qt/qtchooser ceases to manage Qt development binaries in PATH as links qtchooser is a tool for quickly switching between multiple Qt installations (e.g. Qt3, Qt4 and Qt5) and was used, in times when unversioned Qt binaries conflicted with each other, to control the default Qt version in Gentoo's PATH via config in /etc/xdg/qtchooser. Other distributions were solving the situation with '-qt5' or '5' suffixed links, and packages as a result often test for both variants, while in Gentoo we have been busy fixing upstream packages wrongly depending on PATH for build dependencies [3]. Qt6 is finally installing binaries in a non-conflicting way using the '6' suffix, so we will adopt this convention as well. This brings the following changes to Qt packaging: a) Development binaries no longer unversioned in PATH - instead, e.g. qmake becomes qmake5, qml becomes qml5, ... b) Binary tool-only packages install unversioned symlinks, moving SLOT=0 This affects assistant, linguist, qdbus, qdbusviewer, pixeltool PATH changes have been Tinderbox tested for well over a year without revealing more than a handful of build issues [4][5][6] right at the beginning. There might be silent breakage though: => Please test your package with Qt 5.15.3 and *without* dev-qt/qtchooser Watch out for ebuilds with... a) IUSE={qt5,gui} suddenly ineffective silently b) automagical Qt5 detection suddenly ending up without GUI => Do *not* depend on dev-qt/qtchooser or QT_SELECT for your package, instead fix the build system (see [3]) Users will still be able to install and use dev-qt/qtchooser for development purposes if they wish, or even to provide old Qt4 in PATH, as our symlinks will not collide with it. [1] https://qa-reports.gentoo.org/output/genrdeps/bindex/dev-qt/qtwayland [2] https://qa-reports.gentoo.org/output/genrdeps/dindex/dev-qt/qtwayland [3] https://bugs.gentoo.org/show_bug.cgi?id=qtbindir [4] https://bugs.gentoo.org/756262 [5] https://bugs.gentoo.org/755977 [6] https://gitweb.gentoo.org/repo/gentoo.git/commit/?id= b0d93f19dd63cf0dd6f9154ef33ef8326e3c7872 signature.asc Description: This is a digitally signed message part.
[gentoo-dev] Last-rites: sci-chemistry/openbabel-perl
# Andreas Sturmlechner (2022-03-07) # Obsolete by >=sci-chemistry/openbabel-3[perl]. # Bug #834261. Removal on 2022-04-06. sci-chemistry/openbabel-perl signature.asc Description: This is a digitally signed message part.
[gentoo-dev] Last-rites: dev-libs/device-atlas-api-c
# Andreas Sturmlechner (2022-03-07) # Proprietary, requires login to download, no maintainer, blocks cleanup. # Bug #770499. Removal on 2022-04-06. dev-libs/device-atlas-api-c signature.asc Description: This is a digitally signed message part.
[gentoo-dev] Last-rites: sci-chemistry/votca-ctp
# Andreas Sturmlechner (2022-03-01) # Dead upstream, blocks cleanup of dependencies. # Bug #773175. Removal on 2022-03-31. sci-chemistry/votca-ctp signature.asc Description: This is a digitally signed message part.
[gentoo-dev] Last-rites: dev-libs/injeqt
# Andreas Sturmlechner (2022-03-01) # No revdeps since 2020-11-28, still EAPI-6 and uses cmake-utils.eclass. # Bug #834317. Removal on 2022-03-31. dev-libs/injeqt signature.asc Description: This is a digitally signed message part.
[gentoo-dev] Last-rites: x11-libs/libyui, x11-libs/libyui-gtk, x11-libs/libyui-ncurses and x11-libs/libyui-qt
# Andreas Sturmlechner (2022-02-27) # No revdeps since begin of gentoo.git history, outdated and unmaintained. # Bug #834307. Removal on 2022-03-29. x11-libs/libyui x11-libs/libyui-gtk x11-libs/libyui-ncurses x11-libs/libyui-qt signature.asc Description: This is a digitally signed message part.
[gentoo-dev] cmake-utils.eclass consumers will be broken by >=dev-util/cmake-3.23.0
Dear packagers, - More than 4500 ebuilds were switched to cmake.eclass since 2019-12-21 [1] - Less than 110 ebuilds still inherit cmake-utils.eclass [2] - A change in cmake-3.23 will break all revdeps doing so - I am not fixing it - If *you* fix it, you will become the sole maintainer of cmake-utils.eclass - Any bugs filed as a result of this will block a future cmake-utils.eclass last-rites tracker. Failure to respond will make your package a last-rites candidate too. hth. [1] https://qa-reports.gentoo.org/output/eapi-per-eclass/cmake.eclass/ [2] https://qa-reports.gentoo.org/output/eapi-per-eclass/cmake-utils.eclass/ signature.asc Description: This is a digitally signed message part.
[gentoo-dev] dev-util/cmake needs a (co-)maintainer
The de facto maintainer for many years has effectively quit doing so. While kde project is the main user of cmake, I don't have the time to care for every package that is part of KDE packages' dependency graph. This means that without a more dedicated co-maintainer, cmake version bumps will occur much less often in the future. Regards, Andreas signature.asc Description: This is a digitally signed message part.
[gentoo-dev] [PATCH] cmake.eclass: Fix MYCMAKEARGS breakage with >=dev-util/cmake-3.23
I'm not sure what this variable is about, but we gotta fix it. ...and rather drop on next EAPI bump. Bug: https://bugs.gentoo.org/833100 Signed-off-by: Andreas Sturmlechner --- eclass/cmake.eclass | 5 - 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/eclass/cmake.eclass b/eclass/cmake.eclass index 36f2621e19..64a2931898 100644 --- a/eclass/cmake.eclass +++ b/eclass/cmake.eclass @@ -593,9 +593,12 @@ cmake_src_configure() { "${mycmakeargs_local[@]}" -DCMAKE_BUILD_TYPE="${CMAKE_BUILD_TYPE}" -DCMAKE_TOOLCHAIN_FILE="${toolchain_file}" - "${MYCMAKEARGS}" ) + if [[ -n ${MYCMAKEARGS} ]] ; then + cmakeargs+=( "${MYCMAKEARGS}" ) + fi + if [[ -n "${CMAKE_EXTRA_CACHE_FILE}" ]] ; then cmakeargs+=( -C "${CMAKE_EXTRA_CACHE_FILE}" ) fi -- 2.35.1 signature.asc Description: This is a digitally signed message part.
[gentoo-dev] Last-rites: sys-cluster/mpich2
# Andreas Sturmlechner (2022-01-09) # No more revdeps after sys-cluster/mpe2 last-rites was initiated. # Removal on 2022-01-31, bug #547208 sys-cluster/mpich2 signature.asc Description: This is a digitally signed message part.
[gentoo-dev] Last-rites: net-libs/jreen
# Andreas Sturmlechner (2022-01-07) # Unmaintained, cmake warnings, QA notices, weird build error, no revdeps. # Removal on 2022-02-06. Bug #830727 net-libs/jreen signature.asc Description: This is a digitally signed message part.
Re: [gentoo-dev] Printer drivers and net-print
On Montag, 20. Februar 2017 22:47:17 CET Andreas K. Huettel wrote: > Hey all, > > 1) Putting printer drivers into "net-print" is silly. > > Something that converts format a to device-specific format b has absolutely > nothing to do with network. > So, a new category "sys-print", emphasizing that it's hardware drivers, (or > "cups-drv"?) (or maybe "media-print"?) might make sense. > > 2) After introducing that, however, "net-print" becomes nearly empty. > > On a quick glance, the only *network*-specific packages in there are cups > and lprng. Maybe one or two more which I dont recognize. > > So move cups and lprng to "net-misc" and drop "net-print"? > Or move them to new "sys-print" as well? > > What do you think? > > Cheers, > Andreas I would like to resume this discussion on the occasion of a new [shameless plug] package PAPPL that is to be packaged, see also [1], from the point before discussion went off on an X-Y categories tangent. Here's a list of suggestions made for a new category so far, ordered from (seemingly) best- to least-liked: media-print sys-print app-print(ing) I agree net-print should not remain after such a move. [1] https://bugs.gentoo.org/829351 signature.asc Description: This is a digitally signed message part.
[gentoo-dev] [PATCH 2/2] pam.eclass: Drop EAPI-5 support
No more consumers for some time. --- eclass/pam.eclass | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/eclass/pam.eclass b/eclass/pam.eclass index effd17ad55d..38326682b3f 100644 --- a/eclass/pam.eclass +++ b/eclass/pam.eclass @@ -6,14 +6,14 @@ # Mikle Kolyada # @AUTHOR: # Diego Pettenò -# @SUPPORTED_EAPIS: 5 6 7 8 +# @SUPPORTED_EAPIS: 6 7 8 # @BLURB: Handles pam related tasks # @DESCRIPTION: # This eclass contains functions to install pamd configuration files and # pam modules. case ${EAPI:-0} in - [5678]) ;; + [678]) ;; *) die "${ECLASS}: EAPI ${EAPI:-0} not supported" ;; esac -- 2.34.1 signature.asc Description: This is a digitally signed message part.
[gentoo-dev] [PATCH 1/2] pam.eclass: Support EAPI-8, add missing || die
Closes: https://bugs.gentoo.org/811363 --- eclass/pam.eclass | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/eclass/pam.eclass b/eclass/pam.eclass index 0b3421b5e7c..effd17ad55d 100644 --- a/eclass/pam.eclass +++ b/eclass/pam.eclass @@ -6,14 +6,14 @@ # Mikle Kolyada # @AUTHOR: # Diego Pettenò -# @SUPPORTED_EAPIS: 5 6 7 +# @SUPPORTED_EAPIS: 5 6 7 8 # @BLURB: Handles pam related tasks # @DESCRIPTION: # This eclass contains functions to install pamd configuration files and # pam modules. case ${EAPI:-0} in - [567]) ;; + [5678]) ;; *) die "${ECLASS}: EAPI ${EAPI:-0} not supported" ;; esac @@ -209,7 +209,7 @@ pamd_mimic() { cleanpamd() { while [[ -n $1 ]]; do if ! has_version sys-libs/pam; then - sed -i -e '/pam_shells\|pam_console/s:^:#:' "${D}/etc/ pam.d/$1" + sed -i -e '/pam_shells\|pam_console/s:^:#:' "${D}/etc/ pam.d/$1" || die fi shift -- 2.34.1 signature.asc Description: This is a digitally signed message part.
[gentoo-dev] Last-rites: dev-python/python-fcl
# Andreas Sturmlechner (2021-11-30) # Blocks cleanup of sci-libs/fcl-0.5.0, unmaintained in Gentoo. # Upstream master claims to target sci-libs/fcl-0.6.1, but that # requires someone adopting the package. # Bug #770589; masked for removal on 2021-12-30. dev-python/python-fcl signature.asc Description: This is a digitally signed message part.
[gentoo-dev] Last-rites: dev-libs/qrosscore
# Andreas Sturmlechner (2021-11-30) # No revdeps, bug #774498; masked for removal on 2021-12-30. dev-libs/qrosscore signature.asc Description: This is a digitally signed message part.
[gentoo-dev] Last-rites: kde-misc/kimtoy
# Andreas Sturmlechner (2021-11-22) # Unmaintained upstream, never made it to a KF5-based release and Gentoo # was the only distro ever packaging such a snapshot. Use kimpanel from # kde-plasma/plasma-desktop instead. # Removal on 2021-12-22. Bug #824822 kde-misc/kimtoy signature.asc Description: This is a digitally signed message part.
Re: [gentoo-dev] johu's packages up for grabs
On Sonntag, 10. Oktober 2021 09:23:40 CEST Joonas Niilola wrote: > dev-libs/qtkeychain Will be taken over by kde proj as a current (and more in the future) dependency. signature.asc Description: This is a digitally signed message part.
[gentoo-dev] Up for grabs: dev-cpp/rttr
Short-term dependency of kde-apps/kdenlive, now without revdeps. Last release in 2018, already takes 4 patches to build successfully. Low activity upstream, fails to build against GLIBC-2.34: https://bugs.gentoo.org/806508 This package is headed for treecleaning without a maintainer and fix. signature.asc Description: This is a digitally signed message part.
[gentoo-dev] Last-rites: net-libs/gsnmp and net-analyzer/scli
# Andreas Sturmlechner (2021-09-07) # EAPI-5, dead upstream, last (and only) version added in 2011 # Bug 644344; Removal on 2021-10-07. net-libs/gsnmp # Andreas Sturmlechner (2021-09-07) # EAPI-5, dead upstream, last bump in 2012 # Bug 644344; Removal on 2021-10-07. net-analyzer/scli signature.asc Description: This is a digitally signed message part.
[gentoo-dev] Last-rites: dev-qt/qtwebkit:5, mail-client/trojita, app-text/fb2edit
# Andreas Sturmlechner (2021-08-02) # Depends on Qt5WebKit with more holes in it than swiss cheese. Bug #685750 # Last release in 2016. Removal on 2021-10-04. mail-client/trojita # Andreas Sturmlechner (2021-08-02) # Depends on Qt5WebKit with more holes in it than swiss cheese. Bug #740416 # Removal on 2021-10-04. app-text/fb2edit # Andreas Sturmlechner (2021-08-02) # No commits to upstream repository for >9 months, latest available tarball # still "alpha" with warning about known unpatched vulnerabilities. Bug #684580 # Removal on 2021-10-04. dev-qt/qtwebkit:5 signature.asc Description: This is a digitally signed message part.
[gentoo-dev] Last-rites: x11-libs/mx
# Andreas Sturmlechner (2021-09-04) # EAPI-5, dead, unused, bug 808213; Removal on 2021-10-04. x11-libs/mx signature.asc Description: This is a digitally signed message part.
[gentoo-dev] [PATCH v2 4/4] cmake.eclass: Default CMAKE_BUILD_TYPE=RelWithDebInfo in EAPI 8
Signed-off-by: Michał Górny Signed-off-by: Andreas Sturmlechner --- eclass/cmake.eclass | 11 --- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/eclass/cmake.eclass b/eclass/cmake.eclass index 4203b9364cc..42a6f95201a 100644 --- a/eclass/cmake.eclass +++ b/eclass/cmake.eclass @@ -42,14 +42,19 @@ inherit flag-o-matic multiprocessing ninja-utils toolchain-funcs xdg-utils # Eclass can use different cmake binary than the one provided in by system. : ${CMAKE_BINARY:=cmake} +[[ ${EAPI} == 7 ]] && : ${CMAKE_BUILD_TYPE:=Gentoo} # @ECLASS-VARIABLE: CMAKE_BUILD_TYPE # @DESCRIPTION: # Set to override default CMAKE_BUILD_TYPE. Only useful for packages # known to make use of "if (CMAKE_BUILD_TYPE MATCHES xxx)". # If about to be set - needs to be set before invoking cmake_src_configure. -# You usually do *NOT* want nor need to set it as it pulls CMake default -# build-type specific compiler flags overriding make.conf. -: ${CMAKE_BUILD_TYPE:=Gentoo} +# +# The default is RelWithDebInfo as that is least likely to append undesirable +# flags. However, you may still need to sed CMake files or choose a different +# build type to achieve desirable results. +# +# In EAPI 7, the default was non-standard build type of Gentoo. +: ${CMAKE_BUILD_TYPE:=RelWithDebInfo} # @ECLASS-VARIABLE: CMAKE_IN_SOURCE_BUILD # @DEFAULT_UNSET -- 2.33.0 signature.asc Description: This is a digitally signed message part.
[gentoo-dev] [PATCH v2 3/4] cmake.eclass: Enable CMAKE_INSTALL_ALWAYS
Bug: https://bugs.gentoo.org/735820 Signed-off-by: Andreas Sturmlechner --- eclass/cmake.eclass | 5 + 1 file changed, 5 insertions(+) diff --git a/eclass/cmake.eclass b/eclass/cmake.eclass index 7a8059ba071..4203b9364cc 100644 --- a/eclass/cmake.eclass +++ b/eclass/cmake.eclass @@ -535,6 +535,11 @@ cmake_src_configure() { echo 'set(CMAKE_COLOR_MAKEFILE OFF CACHE BOOL "pretty colors during make" FORCE)' >> "${common_config}" || die fi + # See bug 735820 + if [[ ${EAPI} != 7 ]]; then + echo 'set(CMAKE_INSTALL_ALWAYS 1)' >> "${common_config}" || die + fi + # Wipe the default optimization flags out of CMake if [[ ${CMAKE_BUILD_TYPE} != Gentoo ]]; then cat >> ${common_config} <<- _EOF_ || die -- 2.33.0 signature.asc Description: This is a digitally signed message part.
[gentoo-dev] [PATCH v2 2/4] cmake.eclass: Enforce CMAKE_REMOVE_MODULES_LIST be an array
Signed-off-by: Andreas Sturmlechner --- eclass/cmake.eclass | 28 1 file changed, 20 insertions(+), 8 deletions(-) diff --git a/eclass/cmake.eclass b/eclass/cmake.eclass index 137dbc66017..7a8059ba071 100644 --- a/eclass/cmake.eclass +++ b/eclass/cmake.eclass @@ -66,11 +66,23 @@ inherit flag-o-matic multiprocessing ninja-utils toolchain-funcs xdg-utils : ${CMAKE_MAKEFILE_GENERATOR:=ninja} # @ECLASS-VARIABLE: CMAKE_REMOVE_MODULES_LIST +# @PRE_INHERIT +# @DEFAULT_UNSET # @DESCRIPTION: -# Array of CMake modules that will be removed in ${CMAKE_USE_DIR} -# (in EAPI-7: ${S}) during src_prepare, in order to force packages to use the -# system version. Set to empty to disable removing modules entirely. -: ${CMAKE_REMOVE_MODULES_LIST:=FindBLAS FindLAPACK} +# Array of .cmake modules to be removed in ${CMAKE_USE_DIR} (in EAPI-7: ${S}) +# during src_prepare, in order to force packages to use the system version. +# By default, contains "FindBLAS" and "FindLAPACK". +# Set to empty to disable removing modules entirely. +if [[ ${CMAKE_REMOVE_MODULES_LIST} ]]; then + if [[ ${EAPI} != 7 ]]; then + [[ ${CMAKE_REMOVE_MODULES_LIST@a} == *a* ]] || + die "CMAKE_REMOVE_MODULES_LIST must be an array" + fi +else + if ! [[ ${CMAKE_REMOVE_MODULES_LIST@a} == *a* && ${#CMAKE_REMOVE_MODULES_LIST[@]} -eq 0 ]]; then + CMAKE_REMOVE_MODULES_LIST=( FindBLAS FindLAPACK ) + fi +fi # @ECLASS-VARIABLE: CMAKE_USE_DIR # @DESCRIPTION: @@ -108,7 +120,7 @@ inherit flag-o-matic multiprocessing ninja-utils toolchain-funcs xdg-utils [[ ${CMAKE_MIN_VERSION} ]] && die "CMAKE_MIN_VERSION is banned; if necessary, set BDEPEND=\">=dev-util/cmake-${CMAKE_MIN_VERSION}\" directly" [[ ${CMAKE_BUILD_DIR} ]] && die "The ebuild must be migrated to BUILD_DIR" -[[ ${CMAKE_REMOVE_MODULES} ]] && die "CMAKE_REMOVE_MODULES is banned, set CMAKE_REMOVE_MODULES_LIST=\"\" instead" +[[ ${CMAKE_REMOVE_MODULES} ]] && die "CMAKE_REMOVE_MODULES is banned, set CMAKE_REMOVE_MODULES_LIST array instead" [[ ${CMAKE_UTILS_QA_SRC_DIR_READONLY} ]] && die "Use CMAKE_QA_SRC_DIR_READONLY instead" [[ ${WANT_CMAKE} ]] && die "WANT_CMAKE has been removed and is a no-op" [[ ${PREFIX} ]] && die "PREFIX has been removed and is a no-op" @@ -353,10 +365,10 @@ cmake_src_prepare() { fi local modules_list - if [[ $(declare -p CMAKE_REMOVE_MODULES_LIST) == "declare -a"* ]]; then - modules_list=( "${CMAKE_REMOVE_MODULES_LIST[@]}" ) - else + if [[ ${EAPI} == 7 && $(declare -p CMAKE_REMOVE_MODULES_LIST) != "declare -a"* ]]; then modules_list=( ${CMAKE_REMOVE_MODULES_LIST} ) + else + modules_list=( "${CMAKE_REMOVE_MODULES_LIST[@]}" ) fi local name -- 2.33.0 signature.asc Description: This is a digitally signed message part.
[gentoo-dev] [PATCH v2 1/4] cmake.eclass: Support EAPI-8
Move supported EAPI check on top, EXPORT_FUNCTIONS below guard. Switch to using current working directory instead of ${S} when initializing ${CMAKE_USE_DIR} and ${BUILD_DIR}. Sort inherits. Raise baseline cmake version to 3.20.5. Bug: https://bugs.gentoo.org/704524 Thanks-to: Arfrever Frehtes Taifersar Arahesis Signed-off-by: Andreas Sturmlechner --- eclass/cmake.eclass | 95 + 1 file changed, 62 insertions(+), 33 deletions(-) diff --git a/eclass/cmake.eclass b/eclass/cmake.eclass index 4bd09459ea6..137dbc66017 100644 --- a/eclass/cmake.eclass +++ b/eclass/cmake.eclass @@ -9,7 +9,7 @@ # Maciej Mrozowski # (undisclosed contributors) # Original author: Zephyrus (zephy...@mirach.it) -# @SUPPORTED_EAPIS: 7 +# @SUPPORTED_EAPIS: 7 8 # @BLURB: common ebuild functions for cmake-based packages # @DESCRIPTION: # The cmake eclass makes creating ebuilds for cmake-based packages much easier. @@ -17,16 +17,25 @@ # out-of-source builds (default), in-source builds and an implementation of the # well-known use_enable function for CMake. +case ${EAPI} in + 7|8) ;; + *) die "${ECLASS}: EAPI=${EAPI:-0} is not supported" ;; +esac + if [[ -z ${_CMAKE_ECLASS} ]]; then _CMAKE_ECLASS=1 +inherit flag-o-matic multiprocessing ninja-utils toolchain-funcs xdg-utils + # @ECLASS-VARIABLE: BUILD_DIR +# @DEFAULT_UNSET # @DESCRIPTION: # Build directory where all cmake processed files should be generated. # For in-source build it's fixed to ${CMAKE_USE_DIR}. # For out-of-source build it can be overridden, by default it uses -# ${WORKDIR}/${P}_build. -: ${BUILD_DIR:=${WORKDIR}/${P}_build} +# ${CMAKE_USE_DIR}_build (in EAPI-7: ${WORKDIR}/${P}_build). +[[ ${EAPI} == 7 ]] && : ${BUILD_DIR:=${WORKDIR}/${P}_build} +# EAPI-8: set inside _cmake_check_build_dir # @ECLASS-VARIABLE: CMAKE_BINARY # @DESCRIPTION: @@ -58,16 +67,16 @@ _CMAKE_ECLASS=1 # @ECLASS-VARIABLE: CMAKE_REMOVE_MODULES_LIST # @DESCRIPTION: -# Array of CMake modules that will be removed in $S during src_prepare, -# in order to force packages to use the system version. -# Set to "none" to disable removing modules entirely. +# Array of CMake modules that will be removed in ${CMAKE_USE_DIR} +# (in EAPI-7: ${S}) during src_prepare, in order to force packages to use the +# system version. Set to empty to disable removing modules entirely. : ${CMAKE_REMOVE_MODULES_LIST:=FindBLAS FindLAPACK} # @ECLASS-VARIABLE: CMAKE_USE_DIR # @DESCRIPTION: # Sets the directory where we are working with cmake, for example when # application uses autotools and only one plugin needs to be done by cmake. -# By default it uses ${S}. +# By default it uses current working directory (in EAPI-7: ${S}). # @ECLASS-VARIABLE: CMAKE_VERBOSE # @DESCRIPTION: @@ -93,18 +102,9 @@ _CMAKE_ECLASS=1 # @USER_VARIABLE # @DEFAULT_UNSET # @DESCRIPTION: -# After running cmake_src_prepare, sets ${S} to read-only. This is -# a user flag and should under _no circumstances_ be set in the ebuild. -# Helps in improving QA of build systems that write to source tree. - -case ${EAPI} in - 7) ;; - *) die "EAPI=${EAPI:-0} is not supported" ;; -esac - -inherit toolchain-funcs ninja-utils flag-o-matic multiprocessing xdg-utils - -EXPORT_FUNCTIONS src_prepare src_configure src_compile src_test src_install +# After running cmake_src_prepare, sets ${CMAKE_USE_DIR} (in EAPI-7: ${S}) to +# read-only. This is a user flag and should under _no circumstances_ be set in +# the ebuild. Helps in improving QA of build systems that write to source tree. [[ ${CMAKE_MIN_VERSION} ]] && die "CMAKE_MIN_VERSION is banned; if necessary, set BDEPEND=\">=dev-util/cmake-${CMAKE_MIN_VERSION}\" directly" [[ ${CMAKE_BUILD_DIR} ]] && die "The ebuild must be migrated to BUILD_DIR" @@ -127,7 +127,7 @@ case ${CMAKE_MAKEFILE_GENERATOR} in esac if [[ ${PN} != cmake ]]; then - BDEPEND+=" dev-util/cmake" + BDEPEND+=" >=dev-util/cmake-3.20.5" fi # @FUNCTION: cmake_run_in @@ -264,14 +264,22 @@ cmake-utils_useno() { _cmake_banned_func "" "$@" ; } # @DESCRIPTION: # Determine using IN or OUT source build _cmake_check_build_dir() { - : ${CMAKE_USE_DIR:=${S}} + if [[ ${EAPI} == 7 ]]; then + : ${CMAKE_USE_DIR:=${S}} + else + : ${CMAKE_USE_DIR:=${PWD}} + fi if [[ -n ${CMAKE_IN_SOURCE_BUILD} ]]; then # we build in source dir BUILD_DIR="${CMAKE_USE_DIR}" + else + : ${BUILD_DIR:=${CMAKE_USE_DIR}_build} fi + einfo "Source directory (CMAKE_USE_DIR): \"${CMAKE_USE_DIR}\"" + einfo "Build directory (BUILD_DIR): \"${BUILD_DIR}\"" + mkdir -p "${BUILD_DIR}" || die - einfo "Working in BUILD_DIR: \"$BUILD_DIR\&
[gentoo-dev] [PATCH] cmake-multilib.eclass: Support EAPI-8, add guard
Move EXPORT_FUNCTIONS below guard. Signed-off-by: Andreas Sturmlechner --- eclass/cmake-multilib.eclass | 27 +-- 1 file changed, 17 insertions(+), 10 deletions(-) diff --git a/eclass/cmake-multilib.eclass b/eclass/cmake-multilib.eclass index 6b38d260655..c848e3882f5 100644 --- a/eclass/cmake-multilib.eclass +++ b/eclass/cmake-multilib.eclass @@ -6,7 +6,7 @@ # Michał Górny # @AUTHOR: # Author: Michał Górny -# @SUPPORTED_EAPIS: 7 +# @SUPPORTED_EAPIS: 7 8 # @BLURB: cmake wrapper for multilib builds # @DESCRIPTION: # The cmake-multilib.eclass provides a glue between cmake.eclass(5) @@ -19,21 +19,23 @@ # in multilib-minimal, yet they ought to call appropriate cmake # phase rather than 'default'. +[[ ${EAPI} == 7 ]] && : ${CMAKE_ECLASS:=cmake-utils} # @ECLASS-VARIABLE: CMAKE_ECLASS # @PRE_INHERIT # @DESCRIPTION: -# Default is "cmake-utils" for compatibility in EAPI-7. Specify "cmake" for -# ebuilds that ported to cmake.eclass already. Future EAPI is "cmake" only. -: ${CMAKE_ECLASS:=cmake-utils} +# Only "cmake" is supported in EAPI-8 and later. +# In EAPI-7, default is "cmake-utils" for compatibility. Specify "cmake" for +# ebuilds that ported to cmake.eclass already. +: ${CMAKE_ECLASS:=cmake} # @ECLASS-VARIABLE: _CMAKE_ECLASS_IMPL # @INTERNAL # @DESCRIPTION: -# Default is "cmake" for future EAPI. Cleanup once EAPI-7 support is gone. +# TODO: Cleanup once EAPI-7 support is gone. _CMAKE_ECLASS_IMPL=cmake -case ${EAPI:-0} in - 7) +case ${EAPI} in + 7|8) case ${CMAKE_ECLASS} in cmake-utils|cmake) ;; *) @@ -43,16 +45,17 @@ case ${EAPI:-0} in esac _CMAKE_ECLASS_IMPL=${CMAKE_ECLASS} ;; - *) die "EAPI=${EAPI} is not supported" ;; + *) die "${ECLASS}: EAPI=${EAPI:-0} is not supported" ;; esac if [[ ${CMAKE_IN_SOURCE_BUILD} ]]; then die "${ECLASS}: multilib support requires out-of-source builds." fi -inherit ${_CMAKE_ECLASS_IMPL} multilib-minimal +if [[ -z ${_CMAKE_MULTILIB_ECLASS} ]]; then +_CMAKE_MULTILIB_ECLASS=1 -EXPORT_FUNCTIONS src_configure src_compile src_test src_install +inherit ${_CMAKE_ECLASS_IMPL} multilib-minimal cmake-multilib_src_configure() { local _cmake_args=( "${@}" ) @@ -93,3 +96,7 @@ cmake-multilib_src_install() { multilib_src_install() { ${_CMAKE_ECLASS_IMPL}_src_install "${_cmake_args[@]}" } + +fi + +EXPORT_FUNCTIONS src_configure src_compile src_test src_install -- 2.33.0 signature.asc Description: This is a digitally signed message part.
[gentoo-dev] [PATCH 2/2] ecm.eclass: Drop exec. bit from .desktop files in xdg standard dir
Bug: https://bugs.gentoo.org/621970 Signed-off-by: Andreas Sturmlechner --- eclass/ecm.eclass | 19 +-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/eclass/ecm.eclass b/eclass/ecm.eclass index 919c7514b5..1f62d7f7af 100644 --- a/eclass/ecm.eclass +++ b/eclass/ecm.eclass @@ -30,6 +30,7 @@ if [[ -v KDE_GCC_MINIMAL ]]; then fi EXPORT_FUNCTIONS pkg_setup src_prepare src_configure src_test pkg_preinst pkg_postinst pkg_postrm +[[ ${EAPI} != 7 ]] && EXPORT_FUNCTIONS src_install if [[ -z ${_ECM_ECLASS} ]]; then _ECM_ECLASS=1 @@ -535,12 +536,26 @@ ecm_src_test() { # @FUNCTION: ecm_src_install # @DESCRIPTION: -# Wrapper for cmake_src_install. Currently doesn't do anything extra, but -# is included as part of the API just in case it's needed in the future. +# Wrapper for cmake_src_install. Drops executable bit from .desktop files +# installed inside /usr/share/applications. This is set by cmake when install() +# is called in PROGRAM form, as seen in many kde.org projects. ecm_src_install() { debug-print-function ${FUNCNAME} "$@" cmake_src_install + + # bug 621970 + if [[ ${EAPI} != 7 ]]; then + if [[ -d "${ED}"/usr/share/applications ]]; then + local f + for f in "${ED}"/usr/share/applications/*.desktop; do + if [[ -x ${f} ]]; then + einfo "Removing executable bit from ${f#$ {ED}}" + fperms a-x "${f#${ED}}" + fi + done + fi + fi } # @FUNCTION: ecm_pkg_preinst -- 2.33.0 signature.asc Description: This is a digitally signed message part.
[gentoo-dev] [PATCH 1/2] ecm.eclass: Support EAPI-8
Raise baseline Frameworks version to 5.82.0. Signed-off-by: Andreas Sturmlechner --- eclass/ecm.eclass | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/eclass/ecm.eclass b/eclass/ecm.eclass index 5f10a7caf7..919c7514b5 100644 --- a/eclass/ecm.eclass +++ b/eclass/ecm.eclass @@ -4,7 +4,7 @@ # @ECLASS: ecm.eclass # @MAINTAINER: # k...@gentoo.org -# @SUPPORTED_EAPIS: 7 +# @SUPPORTED_EAPIS: 7 8 # @BLURB: Support eclass for packages that use KDE Frameworks with ECM. # @DESCRIPTION: # This eclass is intended to streamline the creation of ebuilds for packages @@ -21,7 +21,7 @@ # any phase functions are overridden the version here should also be called. case ${EAPI} in - 7) ;; + 7|8) ;; *) die "EAPI=${EAPI:-0} is not supported" ;; esac @@ -154,7 +154,7 @@ fi if [[ ${CATEGORY} = kde-frameworks ]]; then : ${KFMIN:=$(ver_cut 1-2)} fi -: ${KFMIN:=5.64.0} +: ${KFMIN:=5.82.0} # @ECLASS-VARIABLE: KFSLOT # @INTERNAL -- 2.33.0 signature.asc Description: This is a digitally signed message part.
[gentoo-dev] [PATCH 3/4] cmake.eclass: Enable CMAKE_INSTALL_ALWAYS
Bug: https://bugs.gentoo.org/735820 Signed-off-by: Andreas Sturmlechner --- eclass/cmake.eclass | 5 + 1 file changed, 5 insertions(+) diff --git a/eclass/cmake.eclass b/eclass/cmake.eclass index 3c611071821..8befd9e5a9f 100644 --- a/eclass/cmake.eclass +++ b/eclass/cmake.eclass @@ -537,6 +537,11 @@ cmake_src_configure() { echo 'set(CMAKE_COLOR_MAKEFILE OFF CACHE BOOL "pretty colors during make" FORCE)' >> "${common_config}" || die fi + # See bug 735820 + if [[ ${EAPI} != 7 ]]; then + echo 'set(CMAKE_INSTALL_ALWAYS 1)' >> "${common_config}" || die + fi + # Wipe the default optimization flags out of CMake if [[ ${CMAKE_BUILD_TYPE} != Gentoo ]]; then cat >> ${common_config} <<- _EOF_ || die -- 2.33.0 signature.asc Description: This is a digitally signed message part.
[gentoo-dev] [PATCH 4/4] cmake.eclass: Default CMAKE_BUILD_TYPE=RelWithDebInfo in EAPI 8
Signed-off-by: Michał Górny Signed-off-by: Andreas Sturmlechner --- eclass/cmake.eclass | 11 --- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/eclass/cmake.eclass b/eclass/cmake.eclass index 8befd9e5a9f..3021a3a2b1e 100644 --- a/eclass/cmake.eclass +++ b/eclass/cmake.eclass @@ -42,14 +42,19 @@ _CMAKE_ECLASS=1 # Eclass can use different cmake binary than the one provided in by system. : ${CMAKE_BINARY:=cmake} +[[ ${EAPI} == 7 ]] && : ${CMAKE_BUILD_TYPE:=Gentoo} # @ECLASS-VARIABLE: CMAKE_BUILD_TYPE # @DESCRIPTION: # Set to override default CMAKE_BUILD_TYPE. Only useful for packages # known to make use of "if (CMAKE_BUILD_TYPE MATCHES xxx)". # If about to be set - needs to be set before invoking cmake_src_configure. -# You usually do *NOT* want nor need to set it as it pulls CMake default -# build-type specific compiler flags overriding make.conf. -: ${CMAKE_BUILD_TYPE:=Gentoo} +# +# The default is RelWithDebInfo as that is least likely to append undesirable +# flags. However, you may still need to sed CMake files or choose a different +# build type to achieve desirable results. +# +# In EAPI 7, the default was non-standard build type of Gentoo. +: ${CMAKE_BUILD_TYPE:=RelWithDebInfo} # @ECLASS-VARIABLE: CMAKE_IN_SOURCE_BUILD # @DEFAULT_UNSET -- 2.33.0 signature.asc Description: This is a digitally signed message part.
Re: [gentoo-dev] [PATCH 2/4] cmake.eclass: Enforce CMAKE_REMOVE_MODULES_LIST be an array
[PATCH 3/4] cmake.eclass: Enable CMAKE_INSTALL_ALWAYS Bug: https://bugs.gentoo.org/735820 Signed-off-by: Andreas Sturmlechner --- eclass/cmake.eclass | 5 + 1 file changed, 5 insertions(+) diff --git a/eclass/cmake.eclass b/eclass/cmake.eclass index 3c611071821..8befd9e5a9f 100644 --- a/eclass/cmake.eclass +++ b/eclass/cmake.eclass @@ -537,6 +537,11 @@ cmake_src_configure() { echo 'set(CMAKE_COLOR_MAKEFILE OFF CACHE BOOL "pretty colors during make" FORCE)' >> "${common_config}" || die fi + # See bug 735820 + if [[ ${EAPI} != 7 ]]; then + echo 'set(CMAKE_INSTALL_ALWAYS 1)' >> "${common_config}" || die + fi + # Wipe the default optimization flags out of CMake if [[ ${CMAKE_BUILD_TYPE} != Gentoo ]]; then cat >> ${common_config} <<- _EOF_ || die -- 2.33.0 signature.asc Description: This is a digitally signed message part.
[gentoo-dev] [PATCH 2/4] cmake.eclass: Enforce CMAKE_REMOVE_MODULES_LIST be an array
Signed-off-by: Andreas Sturmlechner --- eclass/cmake.eclass | 26 +++--- 1 file changed, 19 insertions(+), 7 deletions(-) diff --git a/eclass/cmake.eclass b/eclass/cmake.eclass index 43635d0ddf7..3c611071821 100644 --- a/eclass/cmake.eclass +++ b/eclass/cmake.eclass @@ -66,11 +66,23 @@ _CMAKE_ECLASS=1 : ${CMAKE_MAKEFILE_GENERATOR:=ninja} # @ECLASS-VARIABLE: CMAKE_REMOVE_MODULES_LIST +# @PRE_INHERIT +# @DEFAULT_UNSET # @DESCRIPTION: -# Array of CMake modules that will be removed in ${CMAKE_USE_DIR} -# (in EAPI-7: ${S}) during src_prepare, in order to force packages to use the -# system version. Set to empty to disable removing modules entirely. -: ${CMAKE_REMOVE_MODULES_LIST:=FindBLAS FindLAPACK} +# Array of .cmake modules to be removed in ${CMAKE_USE_DIR} (in EAPI-7: ${S}) +# during src_prepare, in order to force packages to use the system version. +# By default, contains "FindBLAS" and "FindLAPACK". +# Set to empty to disable removing modules entirely. +if [[ ${CMAKE_REMOVE_MODULES_LIST} ]]; then + if [[ ${EAPI} != 7 ]]; then + [[ ${CMAKE_REMOVE_MODULES_LIST@a} == *a* ]] || + die "CMAKE_REMOVE_MODULES_LIST must be an array" + fi +else + if ! [[ ${CMAKE_REMOVE_MODULES_LIST@a} == *a* && ${#CMAKE_REMOVE_MODULES_LIST[@]} -eq 0 ]]; then + CMAKE_REMOVE_MODULES_LIST=( FindBLAS FindLAPACK ) + fi +fi # @ECLASS-VARIABLE: CMAKE_USE_DIR # @DESCRIPTION: @@ -355,10 +367,10 @@ cmake_src_prepare() { fi local modules_list - if [[ $(declare -p CMAKE_REMOVE_MODULES_LIST) == "declare -a"* ]]; then - modules_list=( "${CMAKE_REMOVE_MODULES_LIST[@]}" ) - else + if [[ ${EAPI} == 7 && $(declare -p CMAKE_REMOVE_MODULES_LIST) != "declare -a"* ]]; then modules_list=( ${CMAKE_REMOVE_MODULES_LIST} ) + else + modules_list=( "${CMAKE_REMOVE_MODULES_LIST[@]}" ) fi local name -- 2.33.0 signature.asc Description: This is a digitally signed message part.
[gentoo-dev] [PATCH 1/4] cmake.eclass: Support EAPI-8
Move supported EAPI check and EXPORT_FUNCTIONS on top. Switch to using current working directory instead of ${S} when initializing ${CMAKE_USE_DIR} and ${BUILD_DIR}. Raise baseline cmake version to 3.20. Bug: https://bugs.gentoo.org/704524 Thanks-to: Arfrever Frehtes Taifersar Arahesis Signed-off-by: Andreas Sturmlechner --- eclass/cmake.eclass | 91 ++--- 1 file changed, 60 insertions(+), 31 deletions(-) diff --git a/eclass/cmake.eclass b/eclass/cmake.eclass index 4bd09459ea6..43635d0ddf7 100644 --- a/eclass/cmake.eclass +++ b/eclass/cmake.eclass @@ -9,7 +9,7 @@ # Maciej Mrozowski # (undisclosed contributors) # Original author: Zephyrus (zephy...@mirach.it) -# @SUPPORTED_EAPIS: 7 +# @SUPPORTED_EAPIS: 7 8 # @BLURB: common ebuild functions for cmake-based packages # @DESCRIPTION: # The cmake eclass makes creating ebuilds for cmake-based packages much easier. @@ -17,16 +17,25 @@ # out-of-source builds (default), in-source builds and an implementation of the # well-known use_enable function for CMake. +case ${EAPI} in + 7|8) ;; + *) die "EAPI=${EAPI:-0} is not supported" ;; +esac + +EXPORT_FUNCTIONS src_prepare src_configure src_compile src_test src_install + if [[ -z ${_CMAKE_ECLASS} ]]; then _CMAKE_ECLASS=1 # @ECLASS-VARIABLE: BUILD_DIR +# @DEFAULT_UNSET # @DESCRIPTION: # Build directory where all cmake processed files should be generated. # For in-source build it's fixed to ${CMAKE_USE_DIR}. # For out-of-source build it can be overridden, by default it uses -# ${WORKDIR}/${P}_build. -: ${BUILD_DIR:=${WORKDIR}/${P}_build} +# ${CMAKE_USE_DIR}_build (in EAPI-7: ${WORKDIR}/${P}_build). +[[ ${EAPI} == 7 ]] && : ${BUILD_DIR:=${WORKDIR}/${P}_build} +# EAPI-8: set inside _cmake_check_build_dir # @ECLASS-VARIABLE: CMAKE_BINARY # @DESCRIPTION: @@ -58,16 +67,16 @@ _CMAKE_ECLASS=1 # @ECLASS-VARIABLE: CMAKE_REMOVE_MODULES_LIST # @DESCRIPTION: -# Array of CMake modules that will be removed in $S during src_prepare, -# in order to force packages to use the system version. -# Set to "none" to disable removing modules entirely. +# Array of CMake modules that will be removed in ${CMAKE_USE_DIR} +# (in EAPI-7: ${S}) during src_prepare, in order to force packages to use the +# system version. Set to empty to disable removing modules entirely. : ${CMAKE_REMOVE_MODULES_LIST:=FindBLAS FindLAPACK} # @ECLASS-VARIABLE: CMAKE_USE_DIR # @DESCRIPTION: # Sets the directory where we are working with cmake, for example when # application uses autotools and only one plugin needs to be done by cmake. -# By default it uses ${S}. +# By default it uses current working directory (in EAPI-7: ${S}). # @ECLASS-VARIABLE: CMAKE_VERBOSE # @DESCRIPTION: @@ -93,19 +102,12 @@ _CMAKE_ECLASS=1 # @USER_VARIABLE # @DEFAULT_UNSET # @DESCRIPTION: -# After running cmake_src_prepare, sets ${S} to read-only. This is -# a user flag and should under _no circumstances_ be set in the ebuild. -# Helps in improving QA of build systems that write to source tree. - -case ${EAPI} in - 7) ;; - *) die "EAPI=${EAPI:-0} is not supported" ;; -esac +# After running cmake_src_prepare, sets ${CMAKE_USE_DIR} (in EAPI-7: ${S}) to +# read-only. This is a user flag and should under _no circumstances_ be set in +# the ebuild. Helps in improving QA of build systems that write to source tree. inherit toolchain-funcs ninja-utils flag-o-matic multiprocessing xdg-utils -EXPORT_FUNCTIONS src_prepare src_configure src_compile src_test src_install - [[ ${CMAKE_MIN_VERSION} ]] && die "CMAKE_MIN_VERSION is banned; if necessary, set BDEPEND=\">=dev-util/cmake-${CMAKE_MIN_VERSION}\" directly" [[ ${CMAKE_BUILD_DIR} ]] && die "The ebuild must be migrated to BUILD_DIR" [[ ${CMAKE_REMOVE_MODULES} ]] && die "CMAKE_REMOVE_MODULES is banned, set CMAKE_REMOVE_MODULES_LIST=\"\" instead" @@ -127,7 +129,7 @@ case ${CMAKE_MAKEFILE_GENERATOR} in esac if [[ ${PN} != cmake ]]; then - BDEPEND+=" dev-util/cmake" + BDEPEND+=" >=dev-util/cmake-3.20" fi # @FUNCTION: cmake_run_in @@ -264,14 +266,22 @@ cmake-utils_useno() { _cmake_banned_func "" "$@" ; } # @DESCRIPTION: # Determine using IN or OUT source build _cmake_check_build_dir() { - : ${CMAKE_USE_DIR:=${S}} + if [[ ${EAPI} == 7 ]]; then + : ${CMAKE_USE_DIR:=${S}} + else + : ${CMAKE_USE_DIR:=${PWD}} + fi if [[ -n ${CMAKE_IN_SOURCE_BUILD} ]]; then # we build in source dir BUILD_DIR="${CMAKE_USE_DIR}" + else + : ${BUILD_DIR:=${CMAKE_USE_DIR}_build} fi + einfo "Source directory (CMAKE_USE_DIR): \"${CMAKE_USE_DIR}\"" + einfo "Build directory (BUILD_DIR): \"${BUILD_DIR}\""
Re: [gentoo-dev] [PATCH] cmake.eclass: support EAPI 8
On Montag, 16. August 2021 19:06:28 CEST Joonas Niilola wrote: > On 16.8.2021 19.53, Marek Szuba wrote: > > On 2021-08-16 17:49, Sam James wrote: > >> See https://bugs.gentoo.org/802786 and > >> https://github.com/gentoo/kde/pull/903. There's some work to be done > >> first. > > > > I see. Guess we'll have to stick with EAPI 7 for cmake revdeps in the > > foreseeable future, then. > > What's the rush with 8 anyway? We still have eclasses that don't even > support 7. And since 6 is now, sigh, deprecated, any bump to ebuilds > depending on those eclasses will add to the evergrowing CI issue list > right? I'd say it's more important to secure EAPI-7 support there first. > > -- juippis I daresay eclasses still missing EAPI-7 support at this point comprise of abandonware. We are at 81% >=EAPI-7 coverage among all ebuilds. cmake.eclass has zero signature.asc Description: This is a digitally signed message part.
Re: [gentoo-dev] [PATCH] cmake.eclass: support EAPI 8
On Montag, 16. August 2021 18:53:42 CEST Marek Szuba wrote: > On 2021-08-16 17:49, Sam James wrote: > > See https://bugs.gentoo.org/802786 and > > https://github.com/gentoo/kde/pull/903. There's some work to be done > > first. > I see. Guess we'll have to stick with EAPI 7 for cmake revdeps in the > foreseeable future, then. Feel free to pick up task no. 3 from the bug. Everything else is either done already or easy enough. Regards signature.asc Description: This is a digitally signed message part.
[gentoo-dev] [PATCH] kde.org.eclass: EAPI-8; allow KDE_BUILD_TYPE to hold "snapshot" value
This value is set in conjunction with KDE_ORG_COMMIT to distinguish between proper release tarballs and snapshots. Signed-off-by: Andreas Sturmlechner --- eclass/kde.org.eclass | 50 +++ 1 file changed, 31 insertions(+), 19 deletions(-) diff --git a/eclass/kde.org.eclass b/eclass/kde.org.eclass index 0503bcf6a2..18f198e522 100644 --- a/eclass/kde.org.eclass +++ b/eclass/kde.org.eclass @@ -4,7 +4,7 @@ # @ECLASS: kde.org.eclass # @MAINTAINER: # k...@gentoo.org -# @SUPPORTED_EAPIS: 7 +# @SUPPORTED_EAPIS: 7 8 # @BLURB: Support eclass for packages that are hosted on kde.org infrastructure. # @DESCRIPTION: # This eclass is mainly providing facilities for the three upstream release @@ -15,8 +15,8 @@ # It also contains default meta variables for settings not specific to any # particular build system. case ${EAPI} in - 7) ;; + 7|8) ;; *) die "EAPI=${EAPI:-0} is not supported" ;; esac @@ -25,20 +25,6 @@ EXPORT_FUNCTIONS pkg_nofetch src_unpack if [[ -z ${_KDE_ORG_ECLASS} ]]; then _KDE_ORG_ECLASS=1 -# @ECLASS-VARIABLE: KDE_BUILD_TYPE -# @DESCRIPTION: -# If PV matches "**", this is automatically set to "live". -# Otherwise, this is automatically set to "release". -KDE_BUILD_TYPE="release" -if [[ ${PV} == ** ]]; then - KDE_BUILD_TYPE="live" -fi -export KDE_BUILD_TYPE - -if [[ ${KDE_BUILD_TYPE} == live ]]; then - inherit git-r3 -fi - # @ECLASS-VARIABLE: KDE_ORG_CATEGORIES # @INTERNAL # @DESCRIPTION: @@ -105,6 +91,25 @@ readonly KDE_ORG_CATEGORIES # If set to "false", do nothing. # If set to "true", set SRC_URI accordingly and apply KDE_UNRELEASED. : ${KDE_GEAR:=false} + +# @ECLASS-VARIABLE: KDE_BUILD_TYPE +# @DESCRIPTION: +# By default, this is set to "release". +# If PV matches "**", this is automatically set to "live" and will cause +# git-r3.eclass to be inherited. +# In EAPI-8, if KDE_ORG_COMMIT is set, this is automatically set to "snapshot". +KDE_BUILD_TYPE="release" +if [[ ${PV} == ** ]]; then + KDE_BUILD_TYPE="live" +fi +if [[ ${EAPI} == 8 ]] && [[ -n ${KDE_ORG_COMMIT} ]]; then + KDE_BUILD_TYPE="snapshot" +fi +export KDE_BUILD_TYPE + +if [[ ${KDE_BUILD_TYPE} == live ]]; then + inherit git-r3 +fi # @ECLASS-VARIABLE: KDE_SELINUX_MODULE # @PRE_INHERIT @@ -147,7 +152,7 @@ case ${CATEGORY} in kde-frameworks) HOMEPAGE="https://kde.org/products/frameworks/; SLOT=5/${PV} - [[ ${KDE_BUILD_TYPE} == release ]] && SLOT=$(ver_cut 1)/$(ver_cut 1-2) + [[ ${KDE_BUILD_TYPE} != live ]] && SLOT=$(ver_cut 1)/$(ver_cut 1-2) ;; *) ;; esac @@ -284,6 +289,7 @@ case ${KDE_BUILD_TYPE} in *) _kde.org_calculate_src_uri debug-print "${LINENO} ${ECLASS} ${FUNCNAME}: SRC_URI is ${SRC_URI}" + # TODO: simplify after dropping support for EAPI-7 if [[ -n ${KDE_ORG_COMMIT} ]]; then S=${WORKDIR}/${KDE_ORG_NAME}-${KDE_ORG_COMMIT} [[ ${CATEGORY} == dev-qt ]] && QT5_BUILD_DIR="${S}_build" signature.asc Description: This is a digitally signed message part.
Re: [gentoo-dev] [PATCH v3 1/2] xdg.eclass: add EAPI 8 support
On Mittwoch, 11. August 2021 13:54:19 CEST Florian Schmaus wrote: > On 10/08/2021 10.31, Andreas Sturmlechner wrote: > > On Montag, 9. August 2021 20:32:07 CEST Florian Schmaus wrote: > >> +if ${_DEFINE_XDG_SRC_PREPARE}; then > > > > You don't need an extra variable for that: > > > > if [[ ${EAPI} == [567] ]]; then > > Thanks for the suggestion, but I prefer the current approach. > > It avoids that someone later drops support for EAPI 5 and forgets > adjusting all the cases where it is mentioned. I think your other > suggestion, that dropping EAPI 4 in xdg_src_prepare() when removing > support for EAPI 4 was forgotten, somehow reinforces my point. :) Not really. Having to search for EAPI in the code is obvious when cleaning up EAPI, and is standard across many eclasses. If you miss that, you could just as well have _DEFINE_XDG_SRC_PREPARE linger on below after cleaning up the initialisation. Regards signature.asc Description: This is a digitally signed message part.
Re: [gentoo-dev] [PATCH v3 2/2] xdg.eclass: drop support for EAPI 4
On Montag, 9. August 2021 20:32:08 CEST Florian Schmaus wrote: > --- a/eclass/xdg.eclass > +++ b/eclass/xdg.eclass > @@ -6,7 +6,7 @@ > # freedesktop-b...@gentoo.org > # @AUTHOR: > # Original author: Gilles Dartiguelongue > -# @SUPPORTED_EAPIS: 4 5 6 7 8 > +# @SUPPORTED_EAPIS: 5 6 7 8 Please also drop the occurrence in the EAPI check inside xdg_src_prepare(). Regards, Andreas signature.asc Description: This is a digitally signed message part.
[gentoo-dev] Last-rites: net-print/libgnomecups
# Andreas Sturmlechner (2021-08-10) # EAPI-5, dead, unused; last consumer dropped in bug #352952 # Removal on 2021-09-09. net-print/libgnomecups signature.asc Description: This is a digitally signed message part.
Re: [gentoo-dev] [PATCH v3 1/2] xdg.eclass: add EAPI 8 support
On Montag, 9. August 2021 20:32:07 CEST Florian Schmaus wrote: > +if ${_DEFINE_XDG_SRC_PREPARE}; then You don't need an extra variable for that: if [[ ${EAPI} == [567] ]]; then signature.asc Description: This is a digitally signed message part.
[gentoo-dev] Last-rites: dev-perl/Goo-Canvas and x11-libs/goocanvas:0
# Andreas Sturmlechner (2021-08-09) # EAPI-5, dead, unused; bug #776403. Removal on 2021-09-08. dev-perl/Goo-Canvas x11-libs/goocanvas:0 signature.asc Description: This is a digitally signed message part.
Re: [gentoo-dev] [PATCH v2 2/3] virtualx.eclass: Make VIRTUALX_DEPEND readonly in EAPI-8
On Mittwoch, 4. August 2021 12:29:40 CEST Ulrich Mueller wrote: > >>>>> On Wed, 04 Aug 2021, Andreas Sturmlechner wrote: > > +# Standard dependencies string that is automatically added to BDEPEND > > +# (in EAPI-6: DEPEND) unless VIRTUALX_REQUIRED is set to "manual". > > +# DEPRECATED: Pre-EAPI-8 you can specify the variable BEFORE inherit > > +# to add more dependencies. > > +[[ ${EAPI} == [67] ]] || VIRTUALX_DEPEND="" > > +VIRTUALX_DEPEND+=" > > > > x11-base/xorg-server[xvfb] > > x11-apps/xhost > > > > " > > > > +[[ ${EAPI} == [67] ]] || readonly VIRTUALX_DEPEND > > I wonder about this one, because the *DEPEND variables are automatically > accumulated across eclasses and ebuild. What is the advantage of the > ebuild specifying VIRTUALX_DEPEND, instead of specifying BDEPEND > directly? > The answer is in the updated description in this patch: ebuilds/eclasses specifying VIRTUALX_REQUIRED=manual have (so far) been relying on the content of VIRTUALX_DEPEND to add the standard dependencies from within the ebuild instead of having virtualx.eclass do it for them, for whatever complex dependency situation they might have. signature.asc Description: This is a digitally signed message part.
[gentoo-dev] [PATCH v2 3/3] virtualx.eclass: Remove leftover variable VIRTUALX_COMMAND
Follow-up to commit 11fb990. Signed-off-by: Andreas Sturmlechner --- eclass/virtualx.eclass | 6 +- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/eclass/virtualx.eclass b/eclass/virtualx.eclass index ad376c497ac..9e2e9f00b78 100644 --- a/eclass/virtualx.eclass +++ b/eclass/virtualx.eclass @@ -42,11 +42,7 @@ VIRTUALX_DEPEND+=" " [[ ${EAPI} == [67] ]] || readonly VIRTUALX_DEPEND -# @ECLASS-VARIABLE: VIRTUALX_COMMAND -# @DESCRIPTION: -# Command (or eclass function call) to be run in the X11 environment -# (within virtualmake function). -: ${VIRTUALX_COMMAND:="emake"} +[[ ${VIRTUALX_COMMAND} ]] && die "VIRTUALX_COMMAND has been removed and is a no-op" case ${VIRTUALX_REQUIRED} in manual) -- 2.32.0 signature.asc Description: This is a digitally signed message part.
[gentoo-dev] [PATCH v2 2/3] virtualx.eclass: Make VIRTUALX_DEPEND readonly in EAPI-8
Any additional dependencies shall be defined inside ebuilds instead. Signed-off-by: Andreas Sturmlechner --- eclass/virtualx.eclass | 12 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/eclass/virtualx.eclass b/eclass/virtualx.eclass index 155d611e66e..ad376c497ac 100644 --- a/eclass/virtualx.eclass +++ b/eclass/virtualx.eclass @@ -29,14 +29,18 @@ _VIRTUALX_ECLASS=1 : ${VIRTUALX_REQUIRED:=test} # @ECLASS-VARIABLE: VIRTUALX_DEPEND +# @DEFAULT_UNSET # @DESCRIPTION: -# Dep string available for use outside of eclass, in case a more -# complicated dep is needed. -# You can specify the variable BEFORE inherit to add more dependencies. -VIRTUALX_DEPEND="${VIRTUALX_DEPEND} +# Standard dependencies string that is automatically added to BDEPEND +# (in EAPI-6: DEPEND) unless VIRTUALX_REQUIRED is set to "manual". +# DEPRECATED: Pre-EAPI-8 you can specify the variable BEFORE inherit +# to add more dependencies. +[[ ${EAPI} == [67] ]] || VIRTUALX_DEPEND="" +VIRTUALX_DEPEND+=" x11-base/xorg-server[xvfb] x11-apps/xhost " +[[ ${EAPI} == [67] ]] || readonly VIRTUALX_DEPEND # @ECLASS-VARIABLE: VIRTUALX_COMMAND # @DESCRIPTION: -- 2.32.0 signature.asc Description: This is a digitally signed message part.
[gentoo-dev] [PATCH v2 1/3] virtualx.eclass: Support EAPI-8
Standardise include guard, fix minor typo. Signed-off-by: Andreas Sturmlechner --- eclass/virtualx.eclass | 15 +++ 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/eclass/virtualx.eclass b/eclass/virtualx.eclass index ca52e8d2815..155d611e66e 100644 --- a/eclass/virtualx.eclass +++ b/eclass/virtualx.eclass @@ -6,17 +6,16 @@ # x...@gentoo.org # @AUTHOR: # Original author: Martin Schlemmer -# @SUPPORTED_EAPIS: 6 7 -# @BLURB: This eclass can be used for packages that needs a working X environment to build. +# @SUPPORTED_EAPIS: 6 7 8 +# @BLURB: This eclass can be used for packages that need a working X environment to build. -case ${EAPI:-0} in - [0-5]) die "virtualx.eclass: EAPI ${EAPI} is too old." ;; - 6|7) ;; - *) die "virtualx.eclass: EAPI ${EAPI} is not supported yet." ;; +case ${EAPI} in + 6|7|8) ;; + *) die "${ECLASS}: EAPI ${EAPI:-0} is not supported." ;; esac -if [[ ! ${_VIRTUAL_X} ]]; then -_VIRTUAL_X=1 +if [[ ! ${_VIRTUALX_ECLASS} ]]; then +_VIRTUALX_ECLASS=1 # @ECLASS-VARIABLE: VIRTUALX_REQUIRED # @PRE_INHERIT -- 2.32.0 signature.asc Description: This is a digitally signed message part.
[gentoo-dev] [PATCH v3 5/5] check-reqs.eclass: Introduce CHECKREQS_DONOTHING
Replacement for I_KNOW_WHAT_I_AM_DOING with backwards compatibility. Signed-off-by: Andreas Sturmlechner --- eclass/check-reqs.eclass | 14 +++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/eclass/check-reqs.eclass b/eclass/check-reqs.eclass index 39e4bad1363..2130e2e3491 100644 --- a/eclass/check-reqs.eclass +++ b/eclass/check-reqs.eclass @@ -68,6 +68,14 @@ _CHECK_REQS_ECLASS=1 # @DESCRIPTION: # How much space is needed in /var? Eg.: CHECKREQS_DISK_VAR=3000M +# @ECLASS-VARIABLE: CHECKREQS_DONOTHING +# @USER_VARIABLE +# @DEFAULT_UNSET +# @DESCRIPTION: +# Do not error out in _check-reqs_output if requirements are not met. +# This is a user flag and should under _no circumstances_ be set in the ebuild. +[[ -n ${I_KNOW_WHAT_I_AM_DOING} ]] && CHECKREQS_DONOTHING=1 + # @FUNCTION: check-reqs_pkg_setup # @DESCRIPTION: # Exported function running the resources checks in pkg_setup phase. @@ -276,7 +284,7 @@ _check-reqs_output() { local msg="ewarn" - [[ ${EBUILD_PHASE} == "pretend" && -z ${I_KNOW_WHAT_I_AM_DOING} ]] && msg="eerror" + [[ ${EBUILD_PHASE} == "pretend" && -z ${CHECKREQS_DONOTHING} ]] && msg="eerror" if [[ -n ${CHECKREQS_FAILED} ]]; then ${msg} ${msg} "Space constraints set in the ebuild were not met!" @@ -284,7 +292,7 @@ _check-reqs_output() { ${msg} "as per failed tests." ${msg} - [[ ${EBUILD_PHASE} == "pretend" && -z ${I_KNOW_WHAT_I_AM_DOING} ]] && \ + [[ ${EBUILD_PHASE} == "pretend" && -z ${CHECKREQS_DONOTHING} ]] && \ die "Build requirements not met!" fi } @@ -446,7 +454,7 @@ _check-reqs_unsatisfied() { local location=${2} local sizeunit="$(_check-reqs_get_number ${size}) $(_check-reqs_get_unit ${size})" - [[ ${EBUILD_PHASE} == "pretend" && -z ${I_KNOW_WHAT_I_AM_DOING} ]] && msg="eerror" + [[ ${EBUILD_PHASE} == "pretend" && -z ${CHECKREQS_DONOTHING} ]] && msg="eerror" ${msg} "There is NOT at least ${sizeunit} ${location}" # @ECLASS-VARIABLE: CHECKREQS_FAILED -- 2.32.0 signature.asc Description: This is a digitally signed message part.
[gentoo-dev] [PATCH v2 5/5] check-reqs.eclass: Repl. I_KNOW_WHAT_I_AM_DOING w/ CHECKREQS_DONOTHING
Signed-off-by: Andreas Sturmlechner --- eclass/check-reqs.eclass | 13 ++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/eclass/check-reqs.eclass b/eclass/check-reqs.eclass index 39e4bad1363..836dd0d4a1f 100644 --- a/eclass/check-reqs.eclass +++ b/eclass/check-reqs.eclass @@ -68,6 +68,13 @@ _CHECK_REQS_ECLASS=1 # @DESCRIPTION: # How much space is needed in /var? Eg.: CHECKREQS_DISK_VAR=3000M +# @ECLASS-VARIABLE: CHECKREQS_DONOTHING +# @USER_VARIABLE +# @DEFAULT_UNSET +# @DESCRIPTION: +# Do not error out in _check-reqs_output if requirements are not met. +# This is a user flag and should under _no circumstances_ be set in the ebuild. + # @FUNCTION: check-reqs_pkg_setup # @DESCRIPTION: # Exported function running the resources checks in pkg_setup phase. @@ -276,7 +283,7 @@ _check-reqs_output() { local msg="ewarn" - [[ ${EBUILD_PHASE} == "pretend" && -z ${I_KNOW_WHAT_I_AM_DOING} ]] && msg="eerror" + [[ ${EBUILD_PHASE} == "pretend" && -z ${CHECKREQS_DONOTHING} ]] && msg="eerror" if [[ -n ${CHECKREQS_FAILED} ]]; then ${msg} ${msg} "Space constraints set in the ebuild were not met!" @@ -284,7 +291,7 @@ _check-reqs_output() { ${msg} "as per failed tests." ${msg} - [[ ${EBUILD_PHASE} == "pretend" && -z ${I_KNOW_WHAT_I_AM_DOING} ]] && \ + [[ ${EBUILD_PHASE} == "pretend" && -z ${CHECKREQS_DONOTHING} ]] && \ die "Build requirements not met!" fi } @@ -446,7 +453,7 @@ _check-reqs_unsatisfied() { local location=${2} local sizeunit="$(_check-reqs_get_number ${size}) $(_check-reqs_get_unit ${size})" - [[ ${EBUILD_PHASE} == "pretend" && -z ${I_KNOW_WHAT_I_AM_DOING} ]] && msg="eerror" + [[ ${EBUILD_PHASE} == "pretend" && -z ${CHECKREQS_DONOTHING} ]] && msg="eerror" ${msg} "There is NOT at least ${sizeunit} ${location}" # @ECLASS-VARIABLE: CHECKREQS_FAILED -- 2.32.0 signature.asc Description: This is a digitally signed message part.
[gentoo-dev] [PATCH v2 4/5] check-reqs.eclass: Prefix internal functions w/ underscore
Signed-off-by: Andreas Sturmlechner --- eclass/check-reqs.eclass | 140 ++- 1 file changed, 123 insertions(+), 17 deletions(-) diff --git a/eclass/check-reqs.eclass b/eclass/check-reqs.eclass index 6b11794fbb2..39e4bad1363 100644 --- a/eclass/check-reqs.eclass +++ b/eclass/check-reqs.eclass @@ -76,9 +76,9 @@ _CHECK_REQS_ECLASS=1 check-reqs_pkg_setup() { debug-print-function ${FUNCNAME} "$@" - check-reqs_prepare - check-reqs_run - check-reqs_output + _check-reqs_prepare + _check-reqs_run + _check-reqs_output } # @FUNCTION: check-reqs_pkg_pretend @@ -95,6 +95,16 @@ check-reqs_pkg_pretend() { # @DESCRIPTION: # Internal function that checks the variables that should be defined. check-reqs_prepare() { + [[ ${EAPI} == [67] ]] || + die "Internal function ${FUNCNAME} is not available in EAPI ${EAPI}." + _check-reqs_prepare "$@" +} + +# @FUNCTION: _check-reqs_prepare +# @INTERNAL +# @DESCRIPTION: +# Internal function that checks the variables that should be defined. +_check-reqs_prepare() { debug-print-function ${FUNCNAME} "$@" if [[ -z ${CHECKREQS_MEMORY} && @@ -112,6 +122,16 @@ check-reqs_prepare() { # @DESCRIPTION: # Internal function that runs the check based on variable settings. check-reqs_run() { + [[ ${EAPI} == [67] ]] || + die "Internal function ${FUNCNAME} is not available in EAPI ${EAPI}." + _check-reqs_run "$@" +} + +# @FUNCTION: _check-reqs_run +# @INTERNAL +# @DESCRIPTION: +# Internal function that runs the check based on variable settings. +_check-reqs_run() { debug-print-function ${FUNCNAME} "$@" # some people are *censored* @@ -119,23 +139,23 @@ check-reqs_run() { if [[ ${MERGE_TYPE} != binary ]]; then [[ -n ${CHECKREQS_MEMORY} ]] && \ - check-reqs_memory \ + _check-reqs_memory \ ${CHECKREQS_MEMORY} [[ -n ${CHECKREQS_DISK_BUILD} ]] && \ - check-reqs_disk \ + _check-reqs_disk \ "${T}" \ "${CHECKREQS_DISK_BUILD}" fi if [[ ${MERGE_TYPE} != buildonly ]]; then [[ -n ${CHECKREQS_DISK_USR} ]] && \ - check-reqs_disk \ + _check-reqs_disk \ "${EROOT%/}/usr" \ "${CHECKREQS_DISK_USR}" [[ -n ${CHECKREQS_DISK_VAR} ]] && \ - check-reqs_disk \ + _check-reqs_disk \ "${EROOT%/}/var" \ "${CHECKREQS_DISK_VAR}" fi @@ -147,6 +167,17 @@ check-reqs_run() { # Internal function that returns number in KiB. # Returns 1024**2 for 1G or 1024**3 for 1T. check-reqs_get_kibibytes() { + [[ ${EAPI} == [67] ]] || + die "Internal function ${FUNCNAME} is not available in EAPI ${EAPI}." + _check-reqs_get_kibibytes "$@" +} + +# @FUNCTION: _check-reqs_get_kibibytes +# @INTERNAL +# @DESCRIPTION: +# Internal function that returns number in KiB. +# Returns 1024**2 for 1G or 1024**3 for 1T. +_check-reqs_get_kibibytes() { debug-print-function ${FUNCNAME} "$@" [[ -z ${1} ]] && die "Usage: ${FUNCNAME} [size]" @@ -170,6 +201,17 @@ check-reqs_get_kibibytes() { # Internal function that returns the numerical value without the unit. # Returns "1" for "1G" or "150" for "150T". check-reqs_get_number() { + [[ ${EAPI} == [67] ]] || + die "Internal function ${FUNCNAME} is not available in EAPI ${EAPI}." + _check-reqs_get_number "$@" +} + +# @FUNCTION: _check-reqs_get_number +# @INTERNAL +# @DESCRIPTION: +# Internal function that returns the numerical value without the unit. +# Returns "1" for "1G" or "150" for "150T". +_check-reqs_get_number() { debug-print-function ${FUNCNAME} "$@" [[ -z ${1} ]] && die "Usage: ${FUNCNAME} [size]" @@ -186,6 +228,17 @@ check-reqs_get_number() { # Internal function that returns the unit without the numerical value. # Returns "GiB" for "1G" or "TiB" for "150T". check-reqs_get_unit() { + [[ ${EAPI} == [67] ]] || + die "Internal function ${FUNCNAME} is not available in EAPI ${EAPI}." + _check-reqs_get_unit "$@" +} + +# @FUN
[gentoo-dev] [PATCH v2 3/5] check-reqs.eclass: Drop obsolete check_reqs(), errored out for >3yrs
Signed-off-by: Andreas Sturmlechner --- eclass/check-reqs.eclass | 7 --- 1 file changed, 7 deletions(-) diff --git a/eclass/check-reqs.eclass b/eclass/check-reqs.eclass index c95ee0192c5..6b11794fbb2 100644 --- a/eclass/check-reqs.eclass +++ b/eclass/check-reqs.eclass @@ -68,13 +68,6 @@ _CHECK_REQS_ECLASS=1 # @DESCRIPTION: # How much space is needed in /var? Eg.: CHECKREQS_DISK_VAR=3000M -# Obsolete function executing all the checks and printing out results -check_reqs() { - eerror "Package calling old ${FUNCNAME} function." - eerror "It should call check-reqs_pkg_pretend and check-reqs_pkg_setup." - die "${FUNCNAME} is banned" -} - # @FUNCTION: check-reqs_pkg_setup # @DESCRIPTION: # Exported function running the resources checks in pkg_setup phase. -- 2.32.0 signature.asc Description: This is a digitally signed message part.
[gentoo-dev] [PATCH v2 2/5] check-reqs.eclass: Drop EAPI-4 and EAPI-5 support
Signed-off-by: Andreas Sturmlechner --- eclass/check-reqs.eclass | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/eclass/check-reqs.eclass b/eclass/check-reqs.eclass index 27ab1513aab..c95ee0192c5 100644 --- a/eclass/check-reqs.eclass +++ b/eclass/check-reqs.eclass @@ -7,7 +7,7 @@ # @AUTHOR: # Bo Ørsted Andresen # Original Author: Ciaran McCreesh -# @SUPPORTED_EAPIS: 4 5 6 7 8 +# @SUPPORTED_EAPIS: 6 7 8 # @BLURB: Provides a uniform way of handling ebuilds with very high build requirements # @DESCRIPTION: # This eclass provides a uniform way of handling ebuilds which have very high @@ -39,7 +39,7 @@ # probably degrade gracefully if they don't. Probably. case ${EAPI} in - 4|5|6|7|8) ;; + 6|7|8) ;; *) die "${ECLASS}: EAPI=${EAPI:-0} is not supported" ;; esac -- 2.32.0 signature.asc Description: This is a digitally signed message part.
[gentoo-dev] [PATCH v2 1/5] check-reqs.eclass: Support EAPI-8
Move EAPI check and EXPORT_FUNCTIONS on top, before include guard. Standardise include guard. Signed-off-by: Andreas Sturmlechner --- eclass/check-reqs.eclass | 24 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/eclass/check-reqs.eclass b/eclass/check-reqs.eclass index 5c4a420ee06..27ab1513aab 100644 --- a/eclass/check-reqs.eclass +++ b/eclass/check-reqs.eclass @@ -7,8 +7,8 @@ # @AUTHOR: # Bo Ørsted Andresen # Original Author: Ciaran McCreesh -# @SUPPORTED_EAPIS: 4 5 6 7 -# @BLURB: Provides a uniform way of handling ebuild which have very high build requirements +# @SUPPORTED_EAPIS: 4 5 6 7 8 +# @BLURB: Provides a uniform way of handling ebuilds with very high build requirements # @DESCRIPTION: # This eclass provides a uniform way of handling ebuilds which have very high # build requirements in terms of memory or disk space. It provides a function @@ -38,14 +38,22 @@ # These checks should probably mostly work on non-Linux, and they should # probably degrade gracefully if they don't. Probably. -if [[ ! ${_CHECK_REQS_ECLASS_} ]]; then +case ${EAPI} in + 4|5|6|7|8) ;; + *) die "${ECLASS}: EAPI=${EAPI:-0} is not supported" ;; +esac + +EXPORT_FUNCTIONS pkg_pretend pkg_setup + +if [[ ! ${_CHECK_REQS_ECLASS} ]]; then +_CHECK_REQS_ECLASS=1 # @ECLASS-VARIABLE: CHECKREQS_MEMORY # @DEFAULT_UNSET # @DESCRIPTION: # How much RAM is needed? Eg.: CHECKREQS_MEMORY=15M -# @ECLASS-VARIABLE: CHECKREQS_DISK_BUILD +# @ECLASS-VARIABLE: CHECKREQS_DISK_BUILD # @DEFAULT_UNSET # @DESCRIPTION: # How much diskspace is needed to build the package? Eg.: CHECKREQS_DISK_BUILD=2T @@ -60,13 +68,6 @@ if [[ ! ${_CHECK_REQS_ECLASS_} ]]; then # @DESCRIPTION: # How much space is needed in /var? Eg.: CHECKREQS_DISK_VAR=3000M -case ${EAPI:-0} in - 4|5|6|7) ;; - *) die "${ECLASS}: EAPI=${EAPI:-0} is not supported" ;; -esac - -EXPORT_FUNCTIONS pkg_pretend pkg_setup - # Obsolete function executing all the checks and printing out results check_reqs() { eerror "Package calling old ${FUNCNAME} function." @@ -357,5 +358,4 @@ check-reqs_unsatisfied() { CHECKREQS_FAILED="true" } -_CHECK_REQS_ECLASS_=1 fi -- 2.32.0 signature.asc Description: This is a digitally signed message part.
[gentoo-dev] [PATCH] optfeature.eclass: Drop support for EAPIs 0,1,2,3,4,5
Signed-off-by: Andreas Sturmlechner --- eclass/optfeature.eclass | 8 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/eclass/optfeature.eclass b/eclass/optfeature.eclass index b853f61be32..f9870e04732 100644 --- a/eclass/optfeature.eclass +++ b/eclass/optfeature.eclass @@ -4,12 +4,12 @@ # @ECLASS: optfeature.eclass # @MAINTAINER: # base-sys...@gentoo.org -# @SUPPORTED_EAPIS: 0 1 2 3 4 5 6 7 8 +# @SUPPORTED_EAPIS: 6 7 8 # @BLURB: Advertise optional functionality that might be useful to users -case ${EAPI:-0} in - [0-8]) ;; - *) die "Unsupported EAPI=${EAPI} (unknown) for ${ECLASS}" ;; +case ${EAPI} in + 6|7|8) ;; + *) die "${ECLASS}: EAPI=${EAPI:-0} is not supported" ;; esac if [[ -z ${_OPTFEATURE_ECLASS} ]]; then -- 2.32.0 signature.asc Description: This is a digitally signed message part.
[gentoo-dev] [PATCH 2/2] check-reqs.eclass: Drop obsolete check_reqs(), errored out for >3yrs
Signed-off-by: Andreas Sturmlechner --- eclass/check-reqs.eclass | 7 --- 1 file changed, 7 deletions(-) diff --git a/eclass/check-reqs.eclass b/eclass/check-reqs.eclass index 70c740d0363..d606e1a8749 100644 --- a/eclass/check-reqs.eclass +++ b/eclass/check-reqs.eclass @@ -68,13 +68,6 @@ _CHECK_REQS_ECLASS=1 # @DESCRIPTION: # How much space is needed in /var? Eg.: CHECKREQS_DISK_VAR=3000M -# Obsolete function executing all the checks and printing out results -check_reqs() { - eerror "Package calling old ${FUNCNAME} function." - eerror "It should call check-reqs_pkg_pretend and check-reqs_pkg_setup." - die "${FUNCNAME} is banned" -} - # @FUNCTION: check-reqs_pkg_setup # @DESCRIPTION: # Exported function running the resources checks in pkg_setup phase. -- 2.32.0 signature.asc Description: This is a digitally signed message part.
[gentoo-dev] [PATCH 1/2] check-reqs.eclass: Support EAPI-8
Move EAPI check and EXPORT_FUNCTIONS on top, before include guard. Standardise include guard. Signed-off-by: Andreas Sturmlechner --- eclass/check-reqs.eclass | 20 ++-- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/eclass/check-reqs.eclass b/eclass/check-reqs.eclass index 5c4a420ee06..70c740d0363 100644 --- a/eclass/check-reqs.eclass +++ b/eclass/check-reqs.eclass @@ -7,7 +7,7 @@ # @AUTHOR: # Bo Ørsted Andresen # Original Author: Ciaran McCreesh -# @SUPPORTED_EAPIS: 4 5 6 7 +# @SUPPORTED_EAPIS: 4 5 6 7 8 # @BLURB: Provides a uniform way of handling ebuild which have very high build requirements # @DESCRIPTION: # This eclass provides a uniform way of handling ebuilds which have very high @@ -38,7 +38,15 @@ # These checks should probably mostly work on non-Linux, and they should # probably degrade gracefully if they don't. Probably. -if [[ ! ${_CHECK_REQS_ECLASS_} ]]; then +case ${EAPI:-0} in + 4|5|6|7|8) ;; + *) die "${ECLASS}: EAPI=${EAPI:-0} is not supported" ;; +esac + +EXPORT_FUNCTIONS pkg_pretend pkg_setup + +if [[ ! ${_CHECK_REQS_ECLASS} ]]; then +_CHECK_REQS_ECLASS=1 # @ECLASS-VARIABLE: CHECKREQS_MEMORY # @DEFAULT_UNSET @@ -60,13 +68,6 @@ if [[ ! ${_CHECK_REQS_ECLASS_} ]]; then # @DESCRIPTION: # How much space is needed in /var? Eg.: CHECKREQS_DISK_VAR=3000M -case ${EAPI:-0} in - 4|5|6|7) ;; - *) die "${ECLASS}: EAPI=${EAPI:-0} is not supported" ;; -esac - -EXPORT_FUNCTIONS pkg_pretend pkg_setup - # Obsolete function executing all the checks and printing out results check_reqs() { eerror "Package calling old ${FUNCNAME} function." @@ -357,5 +358,4 @@ check-reqs_unsatisfied() { CHECKREQS_FAILED="true" } -_CHECK_REQS_ECLASS_=1 fi -- 2.32.0 signature.asc Description: This is a digitally signed message part.
[gentoo-dev] [PATCH] virtualx.eclass: Support EAPI-8
Standardise include guard, fix minor typo. Signed-off-by: Andreas Sturmlechner --- eclass/virtualx.eclass | 13 ++--- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/eclass/virtualx.eclass b/eclass/virtualx.eclass index ca52e8d2815..f362327cf77 100644 --- a/eclass/virtualx.eclass +++ b/eclass/virtualx.eclass @@ -6,17 +6,16 @@ # x...@gentoo.org # @AUTHOR: # Original author: Martin Schlemmer -# @SUPPORTED_EAPIS: 6 7 -# @BLURB: This eclass can be used for packages that needs a working X environment to build. +# @SUPPORTED_EAPIS: 6 7 8 +# @BLURB: This eclass can be used for packages that need a working X environment to build. case ${EAPI:-0} in - [0-5]) die "virtualx.eclass: EAPI ${EAPI} is too old." ;; - 6|7) ;; - *) die "virtualx.eclass: EAPI ${EAPI} is not supported yet." ;; + 6|7|8) ;; + *) die "virtualx.eclass: EAPI ${EAPI:-0} is not supported." ;; esac -if [[ ! ${_VIRTUAL_X} ]]; then -_VIRTUAL_X=1 +if [[ ! ${_VIRTUAL_X_ECLASS} ]]; then +_VIRTUAL_X_ECLASS=1 # @ECLASS-VARIABLE: VIRTUALX_REQUIRED # @PRE_INHERIT -- 2.32.0 signature.asc Description: This is a digitally signed message part.
[gentoo-dev] [PATCH] optfeature.eclass: Support EAPI-8
Signed-off-by: Andreas Sturmlechner --- eclass/optfeature.eclass | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/eclass/optfeature.eclass b/eclass/optfeature.eclass index 8fc346c3ac6..b853f61be32 100644 --- a/eclass/optfeature.eclass +++ b/eclass/optfeature.eclass @@ -4,11 +4,11 @@ # @ECLASS: optfeature.eclass # @MAINTAINER: # base-sys...@gentoo.org -# @SUPPORTED_EAPIS: 0 1 2 3 4 5 6 7 +# @SUPPORTED_EAPIS: 0 1 2 3 4 5 6 7 8 # @BLURB: Advertise optional functionality that might be useful to users case ${EAPI:-0} in - [0-7]) ;; + [0-8]) ;; *) die "Unsupported EAPI=${EAPI} (unknown) for ${ECLASS}" ;; esac -- 2.32.0 signature.asc Description: This is a digitally signed message part.
[gentoo-dev] Last-rites: app-editors/amyedit
# Andreas Sturmlechner (2021-05-15) # Dead upstream, dead downstream, GTK+2 based. Bug #770898 # Removal on 2021-06-14. app-editors/amyedit signature.asc Description: This is a digitally signed message part.
[gentoo-dev] Last-rites: app-mobilephone/gnocky
# Andreas Sturmlechner (2021-05-15) # Unmaintained, GTK+2-based, dubiously duplicating app-mobilephone/gnokii[X] # Removal on 2021-06-14. Bug #769032 app-mobilephone/gnocky signature.asc Description: This is a digitally signed message part.
[gentoo-dev] Last-rites: media-gfx/gtkam and media-libs/libexif-gtk
# Andreas Sturmlechner (2021-05-15) # Long-standing bugs, GTK+2-based, last revdep of media-libs/libexif-gtk. # Alternative: media-gfx/shotwell # Removal on 2021-06-14. Bugs #560032, #740020, #769095 media-gfx/gtkam # Andreas Sturmlechner (2021-05-15) # Unmaintained, pending version bump request since 2014, no revdeps. # Removal on 2021-06-14. Bug #507760 media-libs/libexif-gtk signature.asc Description: This is a digitally signed message part.
[gentoo-dev] Last-rites: media-gfx/gimageview
# Andreas Sturmlechner (2021-05-15) # Unmaintained, dead upstream since 2004, no hope to port away from GTK+2. # Removal on 2021-06-14. Bug #769110 media-gfx/gimageview signature.asc Description: This is a digitally signed message part.
[gentoo-dev] Last-rites: app-misc/gcstar and dev-perl/gtk2-spell
# Andreas Sturmlechner (2021-05-09) # Unmaintained, last revdep of dev-perl/gtk2-spell, bugs #724796, #769296 # Removal on 2021-06-08 app-misc/gcstar dev-perl/gtk2-spell signature.asc Description: This is a digitally signed message part.
[gentoo-dev] Last-rites: nsplugins.eclass
nsplugins.eclass: Mark as DEAD - All remaining consumers PMASKED Gentoo ebuild repository - Removal on 2021-05-31 signature.asc Description: This is a digitally signed message part.
[gentoo-dev] Last-rites: www-plugins/google-talkplugin
# Andreas Sturmlechner (2021-05-01) # nsplugin is dead, bug #771801 # Removal on 2021-05-31 www-plugins/google-talkplugin signature.asc Description: This is a digitally signed message part.
[gentoo-dev] Last-rites: media-gfx/freewrl
# Andreas Sturmlechner (2021-05-01) # Unmaintained, java depends on deprecated JDK-7, nsplugin is dead. # Multiple bugs: #446508, #678776, #682600, #787407 # Removal on 2021-05-31 media-gfx/freewrl signature.asc Description: This is a digitally signed message part.
[gentoo-dev] Last-rites: app-misc/mediacrush-cli
# Andreas Sturmlechner (2021-04-27) # Unmaintained, dead service, EAPI-5. # Removal on 2021-05-14 app-misc/mediacrush-cli signature.asc Description: This is a digitally signed message part.
[gentoo-dev] Last-rites: dev-dotnet/gtk-sharp, app-misc/gnutu and dev-util/bless
# Andreas Sturmlechner (2021-04-24) # dev-dotnet/gtk-sharp is effectively unmaintained. Last upstream release # in 2016, version packaged in Gentoo from 2013. gtk-sharp-3 never made it # out of beta state. An actively developed fork that targets GTK3 exists: # https://github.com/GtkSharp/GtkSharp # Removal on 2021-05-24. Tracker bug #769041 dev-dotnet/gtk-sharp # Andreas Sturmlechner (2021-04-24) # Depends on deprecated dev-dotnet/gtk-sharp, bug #769077 # Removal on 2021-05-24 app-misc/gnutu # Andreas Sturmlechner (2021-04-24) # Depends on deprecated dev-dotnet/gtk-sharp, bug #769083 # Alternatives (all in app-editors category): curses-hexedit, dhex, ghex, # hexcurse, okteta, qhexedit2, shed, wxhexeditor # Removal on 2021-05-24 dev-util/bless signature.asc Description: This is a digitally signed message part.
[gentoo-dev] Last-rites: dev-dotnet/gkeyfile-sharp and dev-dotnet/notify-sharp
# Andreas Sturmlechner (2021-04-24) # Unmaintained, depends on dev-dotnet/gtk-sharp which is dead upstream. # Removal on 2021-05-24; bugs #769050, #769059 dev-dotnet/gkeyfile-sharp dev-dotnet/notify-sharp signature.asc Description: This is a digitally signed message part.
[gentoo-dev] Last-rites: app-admin/elektra, media-gfx/icc-examin, media-libs/libXcm, media-libs/openicc and media-libs/oyranos
# Andreas Sturmlechner (2021-04-16) # Unmaintained and chronically broken libraries with many open bugs. # media-gfx/icc-examin: Bug #740010 # media-libs/libXcm: Bugs #525326, #724808 # media-libs/oyranos: Bugs #702158, #705364, #780057 # app-admin/elektra: Bugs #601992, #656168 # Removal on 2021-05-16 app-admin/elektra media-gfx/icc-examin media-libs/libXcm media-libs/openicc media-libs/oyranos signature.asc Description: This is a digitally signed message part.
[gentoo-dev] Last-rites: kde-misc/kolor-manager and media-gfx/synnefo
# Andreas Sturmlechner (2021-04-16) # Dubious usefulness in current Plasma 5, unmaintained upstream, depends on # even less maintained and chronically broken libraries with many open bugs. # Removal on 2021-05-16 kde-misc/kolor-manager media-gfx/synnefo signature.asc Description: This is a digitally signed message part.
[gentoo-dev] Last-rites: readme.gentoo.eclass
readme.gentoo.eclass: Mark as DEAD - All remaining consumers PMASKED Gentoo ebuild repository - Removal on 2021-05-16 signature.asc Description: This is a digitally signed message part.
[gentoo-dev] [PATCH] toolchain.eclass: Drop eutils in >=EAPI-8, add some missing || die
Just some cheap fixes while flag-o-matic.eclass causes cache-regen anyway. See also: https://github.com/gentoo/gentoo/pull/20207 - Add inherit guard. - Fix eclassdoc a bit. --- eclass/toolchain.eclass | 51 +++-- 1 file changed, 34 insertions(+), 17 deletions(-) diff --git a/eclass/toolchain.eclass b/eclass/toolchain.eclass index f41ce22c591..e7fae3aad5a 100644 --- a/eclass/toolchain.eclass +++ b/eclass/toolchain.eclass @@ -1,14 +1,37 @@ -# Copyright 1999-2020 Gentoo Authors +# Copyright 1999-2021 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -# Maintainer: Toolchain Ninjas +# @ECLASS: toolchain.eclass +# @MAINTAINER: +# Toolchain Ninjas # @SUPPORTED_EAPIS: 5 6 7 +# @BLURB: Functions to build sys-devel/gcc +# @DESCRIPTION: +# Comprehensive helper and phase functions to build sys-devel/gcc and +# adjacent packages, support for release and live ebuilds. +# +# This eclass unconditionally inherits toolchain-funcs.eclass and all its public +# variables and helper functions may be considered as part of this eclass's API. +# +# This eclass's phase functions are not intended to be mixed and matched, so if +# any phase functions are overridden, the toolchain.eclass version should also +# be called. + +case ${EAPI:-0} in + 0|1|2|3|4*) die "Need to upgrade to at least EAPI=5" ;; + 5*|6) inherit eapi7-ver eutils ;; + 7) inherit eutils ;; + *) die "I don't speak EAPI ${EAPI}." ;; +esac + +if [[ -z ${_TOOLCHAIN_ECLASS} ]]; then +_TOOLCHAIN_ECLASS=1 + +inherit flag-o-matic gnuconfig libtool multilib pax-utils toolchain-funcs prefix DESCRIPTION="The GNU Compiler Collection" HOMEPAGE="https://gcc.gnu.org/; -inherit eutils flag-o-matic gnuconfig libtool multilib pax-utils toolchain-funcs prefix - tc_is_live() { [[ ${PV} == ** ]] } @@ -27,13 +50,6 @@ fi FEATURES=${FEATURES/multilib-strict/} -case ${EAPI:-0} in - 0|1|2|3|4*) die "Need to upgrade to at least EAPI=5" ;; - 5*|6) inherit eapi7-ver ;; - 7) ;; - *) die "I don't speak EAPI ${EAPI}." ;; -esac - EXPORT_FUNCTIONS pkg_pretend pkg_setup src_unpack src_prepare src_configure \ src_compile src_test src_install pkg_postinst pkg_postrm @@ -525,7 +541,7 @@ toolchain_src_prepare() { || eerror "Please file a bug about this" eend $? done - sed -i 's|A-Za-z0-9|[:alnum:]|g' "${S}"/gcc/*.awk #215828 + sed -i 's|A-Za-z0-9|[:alnum:]|g' "${S}"/gcc/*.awk || die #215828 # Prevent new texinfo from breaking old versions (see #198182, #464008) if tc_version_is_at_least 4.1; then @@ -639,17 +655,16 @@ make_gcc_hard() { # than ALL_CFLAGS... sed -e '/^ALL_CFLAGS/iHARD_CFLAGS = ' \ -e 's|^ALL_CFLAGS = |ALL_CFLAGS = $(HARD_CFLAGS) |' \ - -i "${S}"/gcc/Makefile.in + -i "${S}"/gcc/Makefile.in || die # Need to add HARD_CFLAGS to ALL_CXXFLAGS on >= 4.7 if tc_version_is_at_least 4.7 ; then sed -e '/^ALL_CXXFLAGS/iHARD_CFLAGS = ' \ -e 's|^ALL_CXXFLAGS = |ALL_CXXFLAGS = $(HARD_CFLAGS) |' \ - -i "${S}"/gcc/Makefile.in + -i "${S}"/gcc/Makefile.in || die fi - sed -i \ - -e "/^HARD_CFLAGS = /s|=|= ${gcc_hard_flags} |" \ - "${S}"/gcc/Makefile.in || die + sed -e "/^HARD_CFLAGS = /s|=|= ${gcc_hard_flags} |" \ + -i "${S}"/gcc/Makefile.in || die } @@ -2434,3 +2449,5 @@ toolchain_death_notice() { # Thus safer way to enable/disable the feature is to rely on implicit # enabled-by-default state: #econf $(usex foo '' --disable-foo) + +fi -- 2.31.1 signature.asc Description: This is a digitally signed message part.
[gentoo-dev] [PATCH] gnustep-base.eclass: Limit SUPPORTED_EAPIS to [5-7], drop eutils
Just some cheap fixes while flag-o-matic.eclass causes cache-regen anyway. See also: https://github.com/gentoo/gentoo/pull/20207 - Add inherit guard - Fix some eclassdoc - Minor cleanup --- eclass/gnustep-base.eclass | 65 -- 1 file changed, 34 insertions(+), 31 deletions(-) diff --git a/eclass/gnustep-base.eclass b/eclass/gnustep-base.eclass index 6cd9f532a55..c343dbb5c6b 100644 --- a/eclass/gnustep-base.eclass +++ b/eclass/gnustep-base.eclass @@ -1,16 +1,27 @@ -# Copyright 1999-2018 Gentoo Foundation +# Copyright 1999-2021 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 # @ECLASS: gnustep-base.eclass # @MAINTAINER: # GNUstep Herd -# @SUPPORTED_EAPIS: 0 1 2 3 4 5 6 7 +# @SUPPORTED_EAPIS: 5 6 7 # @BLURB: Internal handling of GNUstep pacakges # @DESCRIPTION: # Inner gnustep eclass, should only be inherited directly by gnustep-base # packages -inherit eutils flag-o-matic +if [[ -z ${_GNUSTEP_BASE_ECLASS} ]]; then +_GNUSTEP_BASE_ECLASS=1 + +inherit flag-o-matic + +EXPORT_FUNCTIONS pkg_setup src_prepare src_configure src_compile src_install pkg_postinst + +case ${EAPI:-0} in + [0-4]) die "gnustep-base.eclass: EAPI ${EAPI} is too old." ;; + [5-7]) inherit eutils ;; + *) die "EAPI ${EAPI} is not supported by gnustep-base.eclass." ;; +esac # IUSE variables across all GNUstep packages # "debug": enable code for debugging @@ -40,13 +51,6 @@ gnustep-base_pkg_setup() { filter-flags -fomit-frame-pointer } -gnustep-base_src_unpack() { - unpack ${A} - cd "${S}" - - gnustep-base_src_prepare -} - gnustep-base_src_prepare() { if [[ -f ./GNUmakefile ]] ; then # Kill stupid includes that are simply overdone or useless on normal @@ -63,22 +67,18 @@ gnustep-base_src_prepare() { eend $? fi - ! has ${EAPI:-0} 0 1 2 3 4 5 && default + ! has ${EAPI:-0} 5 && default } gnustep-base_src_configure() { egnustep_env if [[ -x ./configure ]] ; then - econf || die "configure failed" + econf fi } gnustep-base_src_compile() { egnustep_env - case ${EAPI:-0} in - 0|1) gnustep-base_src_configure ;; - esac - egnustep_make } @@ -105,6 +105,8 @@ gnustep-base_pkg_postinst() { elog " ${SCRIPT_PATH}/config-${PN}.sh" } +# @FUNCTION: egnustep_env +# @DESCRIPTION: # Clean/reset an ebuild to the installed GNUstep environment egnustep_env() { # Get additional variables @@ -113,9 +115,9 @@ egnustep_env() { # Makefiles path local GS_MAKEFILES if [[ -d ${EPREFIX}/usr/share/GNUstep/Makefiles ]]; then - GS_MAKEFILES=${EPREFIX}/usr/share/GNUstep/Makefiles + GS_MAKEFILES="${EPREFIX}"/usr/share/GNUstep/Makefiles else - GS_MAKEFILES=${GNUSTEP_PREFIX}/System/Library/Makefiles + GS_MAKEFILES="${GNUSTEP_PREFIX}"/System/Library/Makefiles fi if [[ -f ${GS_MAKEFILES}/GNUstep.sh ]] ; then # Reset GNUstep variables @@ -130,7 +132,6 @@ egnustep_env() { -i "${WORKDIR}"/GNUstep.conf || die "GNUstep.conf sed failed" fi - if [[ ! -d ${EPREFIX}/usr/share/GNUstep/Makefiles ]]; then # Set rpath in ldflags when available case ${CHOST} in @@ -159,8 +160,7 @@ egnustep_env() { && GS_ENV=( "${GS_ENV[@]}" "debug=yes" ) \ || GS_ENV=( "${GS_ENV[@]}" "debug=no" ) - if has_version "gnustep-base/gnustep-make[libobjc2]"; - then + if has_version "gnustep-base/gnustep-make[libobjc2]"; then # Set clang for packages that do not respect gnustep-make # settings (gnustep-base's configure for example) export CC=clang CXX=clang CPP="clang -E" LD="clang" @@ -171,36 +171,42 @@ egnustep_env() { die "gnustep-make not installed!" } +# @FUNCTION: egnustep_make +# @DESCRIPTION: # Make utilizing GNUstep Makefiles egnustep_make() { if [[ -f ./Makefile || -f ./makefile || -f ./GNUmakefile ]] ; then - emake ${*} "${GS_ENV[@]}" all || die "package make failed" + emake ${*} "${GS_ENV[@]}" all return 0 fi die "no Makefile found" } +# @FUNCTION: egnustep_install +# @DESCRIPTION: # Make-install utilizing GNUstep Makefiles egnustep_install() { if [[ ! -d ${EPREFIX}/usr/share/GNUstep/Makefiles ]]; then # avoid problems due to our "weird" prefix, make sure it exists - mkdir -p "${D}"${GNUSTEP_SYSTEM_TOOLS} + mkdir -p "${D}"${GNUSTEP_SYSTEM_TOOLS} || die fi if [[ -f ./[mM]akefile || -f ./GNUmakefile ]] ; then - emake ${*} "${GS_ENV[@]}"
[gentoo-dev] [PATCH] cuda.eclass: Drop EAPI-5 support, move some things around
Just some cheap changes while flag-o-matic.eclass causes cache-regen anyway. See also: https://github.com/gentoo/gentoo/pull/20207 - Assign inherit guard right on top. - Consolidate the EAPI switch with inherit --- eclass/cuda.eclass | 29 - 1 file changed, 12 insertions(+), 17 deletions(-) diff --git a/eclass/cuda.eclass b/eclass/cuda.eclass index b1da77c69dd..b23d9f71a8b 100644 --- a/eclass/cuda.eclass +++ b/eclass/cuda.eclass @@ -1,21 +1,10 @@ -# Copyright 1999-2020 Gentoo Authors +# Copyright 1999-2021 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -case "${EAPI:-0}" in - 0|1|2|3|4) - die "Unsupported EAPI=${EAPI:-0} (too old) for ${ECLASS}" - ;; - 5|6|7) - ;; - *) - die "Unsupported EAPI=${EAPI} (unknown) for ${ECLASS}" - ;; -esac - # @ECLASS: cuda.eclass # @MAINTAINER: # Gentoo Science Project -# @SUPPORTED_EAPIS: 5 6 7 +# @SUPPORTED_EAPIS: 6 7 # @BLURB: Common functions for cuda packages # @DESCRIPTION: # This eclass contains functions to be used with cuda package. Currently it is @@ -25,10 +14,19 @@ esac # @EXAMPLE: # inherit cuda +case "${EAPI:-0}" in + [0-5]) die "Unsupported EAPI=${EAPI:-0} (too old) for ${ECLASS}" ;; + 6) inherit eapi7-ver ;; + 7) ;; + *) die "Unsupported EAPI=${EAPI} (unknown) for ${ECLASS}" ;; +esac + if [[ -z ${_CUDA_ECLASS} ]]; then +_CUDA_ECLASS=1 + +EXPORT_FUNCTIONS src_prepare inherit flag-o-matic toolchain-funcs -[[ ${EAPI} == [56] ]] && inherit eapi7-ver # @ECLASS-VARIABLE: NVCCFLAGS # @DESCRIPTION: @@ -195,7 +193,4 @@ cuda_src_prepare() { cuda_sanitize } -EXPORT_FUNCTIONS src_prepare - -_CUDA_ECLASS=1 fi -- 2.31.1 signature.asc Description: This is a digitally signed message part.
[gentoo-dev] Last-rites: www-apache/mod_jk
# Andreas Sturmlechner (2021-04-04) # Package needs a real maintainer to fix broken IUSE=java and version bump. # Bug #778758 contains a version bump with java removed. Do pick it up. # Removal on 2021-05-04. www-apache/mod_jk signature.asc Description: This is a digitally signed message part.
[gentoo-dev] [PATCH v2] optfeature.eclass: Introduce optfeature header
Before this change, optfeature() would print a list of optional dependencies, or nothing if deps are installed. Ebuilds commonly print their own elog ahead of optfeature, which then may not be followed up by any list at all. This change adds a default header text, which may be changed by the ebuild, that is only printed if optfeature is about to list at least one dependency. v2: Introduce optfeature_header() function Set a custom header for follow-up optfeature calls, or reset to default header by calling it without argument. This can not only be used to customize the header but also to distinguish optfeature "groups", e.g. to list a number of different possible database backends, and then a number of optional regular runtime features. Signed-off-by: Andreas Sturmlechner --- a/eclass/optfeature.eclass +++ b/eclass/optfeature.eclass @@ -1,4 +1,4 @@ -# Copyright 1999-2020 Gentoo Authors +# Copyright 1999-2021 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 # @ECLASS: optfeature.eclass @@ -14,6 +14,56 @@ esac if [[ -z ${_OPTFEATURE_ECLASS} ]]; then _OPTFEATURE_ECLASS=1 +# @ECLASS-VARIABLE: _OPTFEATURE_DEFAULT_HEADER +# @INTERNAL +# @DESCRIPTION: +# Default header printed ahead of optfeature output. Can be overridden +# by calling optfeature_header function. Will not be displayed if all optional +# dependencies are present. +_OPTFEATURE_DEFAULT_HEADER="Install additional packages for optional runtime features:" + +readonly _OPTFEATURE_DEFAULT_HEADER + +# @ECLASS-VARIABLE: _OPTFEATURE_HEADER +# @INTERNAL +# @DESCRIPTION: +# Default empty. Custom header printed ahead of optfeature output. +# Set by calling optfeature_header function with the desired output, or reset +# by optfeature_header without argument. Will not be displayed if all optional +# dependencies are present. +_OPTFEATURE_HEADER= + +# @ECLASS-VARIABLE: _OPTFEATURE_DOHEADER +# @INTERNAL +# @DESCRIPTION: +# If true, print header ahead of the first optfeature output. +_OPTFEATURE_DOHEADER=true + +# @FUNCTION: optfeature_header +# @USAGE: [custom header for follow-up optfeature calls] +# @DESCRIPTION: +# Set a custom header for follow-up optfeature calls, or reset to default +# header by calling it without argument. This can not only be used to customize +# the header but also to distinguish optfeature "groups", e.g. to list a number +# of different possible database backends, and then a number of optional +# regular runtime features. +# +# The following snippet will leave the default header untouched for the first +# two optfeature calls. Then a custom header is set that is going to be +# displayed in case dev-db/a or dev-db/b are not installed. +# @CODE +# optfeature "foo support" app-misc/foo +# optfeature "bar support" app-misc/bar +# optfeature_header "Install optional database backends:" +# optfeature "a DB backend" dev-db/a +# optfeature "b DB backend" dev-db/b +# @CODE +optfeature_header() { + debug-print-function ${FUNCNAME} "$@" + _OPTFEATURE_HEADER="${1}" + _OPTFEATURE_DOHEADER=true +} + # @FUNCTION: optfeature # @USAGE: [other atoms] # @DESCRIPTION: @@ -51,6 +101,10 @@ optfeature() { fi done if [[ ${flag} -eq 0 ]]; then + if [[ ${_OPTFEATURE_DOHEADER} == true ]]; then + elog ${_OPTFEATURE_HEADER:-${_OPTFEATURE_DEFAULT_HEADER}} + _OPTFEATURE_DOHEADER=false + fi for i; do read -r -d '' -a arr <<<"${i}" msg=" " signature.asc Description: This is a digitally signed message part.
[gentoo-dev] [PATCH] optfeature.eclass: Introduce optfeature header
Before this change, optfeature() will print a list of optional dependencies, or nothing if deps are installed. Ebuilds commonly print their own elog ahead of optfeature, which then may not be followed up by any list at all. This change adds a default header text, which may be changed by the ebuild, that is only printed if optfeature is about to list at least one dependency. Signed-off-by: Andreas Sturmlechner --- eclass/optfeature.eclass | 18 +- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/eclass/optfeature.eclass b/eclass/optfeature.eclass index e13fc3eba81..46f8012b2c3 100644 --- a/eclass/optfeature.eclass +++ b/eclass/optfeature.eclass @@ -1,4 +1,4 @@ -# Copyright 1999-2020 Gentoo Authors +# Copyright 1999-2021 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 # @ECLASS: optfeature.eclass @@ -14,6 +14,18 @@ esac if [[ -z ${_OPTFEATURE_ECLASS} ]]; then _OPTFEATURE_ECLASS=1 +# @ECLASS-VARIABLE: OPTFEATURE_HEADER +# @DESCRIPTION: +# Overridable default header printed ahead of the first optfeature output. +# Will remain silent if all optional dependencies are present. +: ${OPTFEATURE_HEADER:="Install additional packages for optional runtime features:"} + +# @ECLASS-VARIABLE: _OPTFEATURE_DOHEADER +# @INTERNAL +# @DESCRIPTION: +# If true, print header ahead of the first optfeature output. +_OPTFEATURE_DOHEADER=true + # @FUNCTION: optfeature # @USAGE: [other atoms] # @DESCRIPTION: @@ -51,6 +63,10 @@ optfeature() { fi done if [[ ${flag} -eq 0 ]]; then + if [[ ${_OPTFEATURE_DOHEADER} == true ]]; then + elog ${OPTFEATURE_HEADER} + _OPTFEATURE_DOHEADER=false + fi for i; do read -r -d '' -a arr <<<"${i}" msg=" " -- 2.31.1 signature.asc Description: This is a digitally signed message part.
Re: [gentoo-dev] [PATCH v2 3/5] flag-o-matic.eclass: get rid of eutils in
On Donnerstag, 1. April 2021 23:42:10 CEST you wrote: > >>>>> On Thu, 01 Apr 2021, Andreas Sturmlechner wrote: > > > > + [[ ${EAPI} == [5-7] ]] || > > + die "Internal function ${FUNCNAME} is not available in >=EAPI-8." > > + _test-flag-PROG > > +} > > Any reason why this cannot say "... in EAPI ${EAPI}." as I had suggested > earlier? > None at all, I just forgot about it in v2. This is fixed and ready to view in the PR now. Regards signature.asc Description: This is a digitally signed message part.
Re: [gentoo-dev] [PATCH] flag-o-matic.eclass: get rid of eutils in
On Mittwoch, 31. März 2021 12:03:33 CEST Wolfgang E. Sanyer wrote: > I'm curious - why the split e.g. test-flag-PROG() and _test-flag-PROG()? Is > this stylistic, or does it serve a functional purpose? (Hah, "functional", > get it? Because they're functions?!? We prepend `_` to signify internal API. The existing function name needs to stay until <=EAPI-7 support is gone in order not to break potential consumers even outside of genoo.git. Regards signature.asc Description: This is a digitally signed message part.
Re: [gentoo-dev] [PATCH v2 5/5] flag-o-matic.eclass: get rid of eutils in
>From af002023d6b8f9a9e51fc31c8c25d48012e35ddf Mon Sep 17 00:00:00 2001 From: Andreas Sturmlechner Date: Sun, 28 Mar 2021 15:04:50 +0200 Subject: [PATCH 5/5] flag-o-matic.eclass: Fix eclassdoc Signed-off-by: Andreas Sturmlechner --- eclass/flag-o-matic.eclass | 15 ++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/eclass/flag-o-matic.eclass b/eclass/flag-o-matic.eclass index a35f0bef269..6e7582c4643 100644 --- a/eclass/flag-o-matic.eclass +++ b/eclass/flag-o-matic.eclass @@ -21,6 +21,8 @@ case ${EAPI} in *) die "EAPI ${EAPI} is not supported by flag-o-matic.eclass." ;; esac +# @FUNCTION: all-flag-vars +# @DESCRIPTION: # Return all the flag variables that our high level funcs operate on. all-flag-vars() { echo {ADA,C,CPP,CXX,CCAS,F,FC,LD}FLAGS @@ -108,7 +110,10 @@ _setup-allowed-flags() { ) } -# inverted filters for hardened compiler. This is trying to unpick +# @FUNCTION: _filter-hardened +# @INTERNAL +# @DESCRIPTION: +# Inverted filters for hardened compiler. This is trying to unpick # the hardened compiler defaults. _filter-hardened() { local f @@ -142,6 +147,9 @@ _filter-hardened() { done } +# @FUNCTION: _filter-var +# @INTERNAL +# @DESCRIPTION: # Remove occurrences of strings from variable given in $1 # Strings removed are matched as globs, so for example # '-O*' would remove -O1, -O2 etc. @@ -334,6 +342,11 @@ replace-cpu-flags() { return 0 } +# @FUNCTION: _is_flagq +# @USAGE: +# @INTERNAL +# @DESCRIPTION: +# Returns shell true if is in a given , else returns shell false. _is_flagq() { local x var="$1[*]" for x in ${!var} ; do -- 2.31.0 signature.asc Description: This is a digitally signed message part.
Re: [gentoo-dev] [PATCH v2 4/5] flag-o-matic.eclass: get rid of eutils in
>From 797d26ad9fe861c9c332f54a0f856a17af32ee53 Mon Sep 17 00:00:00 2001 From: Andreas Sturmlechner Date: Wed, 31 Mar 2021 00:29:55 +0200 Subject: [PATCH 4/5] flag-o-matic.eclass: Make test-flags-PROG() internal Signed-off-by: Andreas Sturmlechner --- eclass/flag-o-matic.eclass | 28 +++- 1 file changed, 23 insertions(+), 5 deletions(-) diff --git a/eclass/flag-o-matic.eclass b/eclass/flag-o-matic.eclass index e4fdfd0b62d..a35f0bef269 100644 --- a/eclass/flag-o-matic.eclass +++ b/eclass/flag-o-matic.eclass @@ -598,7 +598,25 @@ test-flag-FC() { _test-flag-PROG "FC" f95 "$@"; } # Returns shell true if is supported by the C compiler and linker, else returns shell false. test-flag-CCLD() { _test-flag-PROG "CC" c+ld "$@"; } +# @FUNCTION: test-flags-PROG +# @USAGE: [more flags...] +# @INTERNAL +# @DESCRIPTION: +# Returns shell true if are supported by given , +# else returns shell false. test-flags-PROG() { + [[ ${EAPI} == [5-7] ]] || + die "Internal function ${FUNCNAME} is not available in >=EAPI-8." + _test-flags-PROG +} + +# @FUNCTION: _test-flags-PROG +# @USAGE: [more flags...] +# @INTERNAL +# @DESCRIPTION: +# Returns shell true if are supported by given , +# else returns shell false. +_test-flags-PROG() { local comp=$1 local flags=() local x @@ -635,31 +653,31 @@ test-flags-PROG() { # @USAGE: # @DESCRIPTION: # Returns shell true if are supported by the C compiler, else returns shell false. -test-flags-CC() { test-flags-PROG "CC" "$@"; } +test-flags-CC() { _test-flags-PROG "CC" "$@"; } # @FUNCTION: test-flags-CXX # @USAGE: # @DESCRIPTION: # Returns shell true if are supported by the C++ compiler, else returns shell false. -test-flags-CXX() { test-flags-PROG "CXX" "$@"; } +test-flags-CXX() { _test-flags-PROG "CXX" "$@"; } # @FUNCTION: test-flags-F77 # @USAGE: # @DESCRIPTION: # Returns shell true if are supported by the Fortran 77 compiler, else returns shell false. -test-flags-F77() { test-flags-PROG "F77" "$@"; } +test-flags-F77() { _test-flags-PROG "F77" "$@"; } # @FUNCTION: test-flags-FC # @USAGE: # @DESCRIPTION: # Returns shell true if are supported by the Fortran 90 compiler, else returns shell false. -test-flags-FC() { test-flags-PROG "FC" "$@"; } +test-flags-FC() { _test-flags-PROG "FC" "$@"; } # @FUNCTION: test-flags-CCLD # @USAGE: # @DESCRIPTION: # Returns shell true if are supported by the C compiler and default linker, else returns shell false. -test-flags-CCLD() { test-flags-PROG "CCLD" "$@"; } +test-flags-CCLD() { _test-flags-PROG "CCLD" "$@"; } # @FUNCTION: test-flags # @USAGE: -- 2.31.0 signature.asc Description: This is a digitally signed message part.
Re: [gentoo-dev] [PATCH v2 3/5] flag-o-matic.eclass: get rid of eutils in
>From 7b063ec3f4e2a76c43cd5de8a81a0a30c0f87a6d Mon Sep 17 00:00:00 2001 From: Andreas Sturmlechner Date: Wed, 31 Mar 2021 00:27:27 +0200 Subject: [PATCH 3/5] flag-o-matic.eclass: Make test-flag-PROG() internal Signed-off-by: Andreas Sturmlechner --- eclass/flag-o-matic.eclass | 28 +++- 1 file changed, 23 insertions(+), 5 deletions(-) diff --git a/eclass/flag-o-matic.eclass b/eclass/flag-o-matic.eclass index d511a140592..e4fdfd0b62d 100644 --- a/eclass/flag-o-matic.eclass +++ b/eclass/flag-o-matic.eclass @@ -459,7 +459,25 @@ strip-flags() { return 0 } +# @FUNCTION: test-flag-PROG +# @USAGE: +# @INTERNAL +# @DESCRIPTION: +# Returns shell true if is supported by given , +# else returns shell false. test-flag-PROG() { + [[ ${EAPI} == [5-7] ]] || + die "Internal function ${FUNCNAME} is not available in >=EAPI-8." + _test-flag-PROG +} + +# @FUNCTION: _test-flag-PROG +# @USAGE: +# @INTERNAL +# @DESCRIPTION: +# Returns shell true if is supported by given , +# else returns shell false. +_test-flag-PROG() { local comp=$1 local lang=$2 shift 2 @@ -554,31 +572,31 @@ test-flag-PROG() { # @USAGE: # @DESCRIPTION: # Returns shell true if is supported by the C compiler, else returns shell false. -test-flag-CC() { test-flag-PROG "CC" c "$@"; } +test-flag-CC() { _test-flag-PROG "CC" c "$@"; } # @FUNCTION: test-flag-CXX # @USAGE: # @DESCRIPTION: # Returns shell true if is supported by the C++ compiler, else returns shell false. -test-flag-CXX() { test-flag-PROG "CXX" c++ "$@"; } +test-flag-CXX() { _test-flag-PROG "CXX" c++ "$@"; } # @FUNCTION: test-flag-F77 # @USAGE: # @DESCRIPTION: # Returns shell true if is supported by the Fortran 77 compiler, else returns shell false. -test-flag-F77() { test-flag-PROG "F77" f77 "$@"; } +test-flag-F77() { _test-flag-PROG "F77" f77 "$@"; } # @FUNCTION: test-flag-FC # @USAGE: # @DESCRIPTION: # Returns shell true if is supported by the Fortran 90 compiler, else returns shell false. -test-flag-FC() { test-flag-PROG "FC" f95 "$@"; } +test-flag-FC() { _test-flag-PROG "FC" f95 "$@"; } # @FUNCTION: test-flag-CCLD # @USAGE: # @DESCRIPTION: # Returns shell true if is supported by the C compiler and linker, else returns shell false. -test-flag-CCLD() { test-flag-PROG "CC" c+ld "$@"; } +test-flag-CCLD() { _test-flag-PROG "CC" c+ld "$@"; } test-flags-PROG() { local comp=$1 -- 2.31.0 signature.asc Description: This is a digitally signed message part.
Re: [gentoo-dev] [PATCH v2 2/5] flag-o-matic.eclass: get rid of eutils in
>From 6d1c665d06186dde5361905d5fb2057e044b040e Mon Sep 17 00:00:00 2001 From: Andreas Sturmlechner Date: Wed, 31 Mar 2021 00:22:12 +0200 Subject: [PATCH 2/5] flag-o-matic.eclass: Make setup-allowed-flags() internal Signed-off-by: Andreas Sturmlechner --- eclass/flag-o-matic.eclass | 16 +++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/eclass/flag-o-matic.eclass b/eclass/flag-o-matic.eclass index ab79f70392d..d511a140592 100644 --- a/eclass/flag-o-matic.eclass +++ b/eclass/flag-o-matic.eclass @@ -26,9 +26,23 @@ all-flag-vars() { echo {ADA,C,CPP,CXX,CCAS,F,FC,LD}FLAGS } +# @FUNCTION: setup-allowed-flags +# @INTERNAL +# @DESCRIPTION: # {C,CPP,CXX,CCAS,F,FC,LD}FLAGS that we allow in strip-flags # Note: shell globs and character lists are allowed setup-allowed-flags() { + [[ ${EAPI} == [5-7] ]] || + die "Internal function ${FUNCNAME} is not available in >=EAPI-8." + _setup-allowed-flags +} + +# @FUNCTION: _setup-allowed-flags +# @INTERNAL +# @DESCRIPTION: +# {C,CPP,CXX,CCAS,F,FC,LD}FLAGS that we allow in strip-flags +# Note: shell globs and character lists are allowed +_setup-allowed-flags() { ALLOWED_FLAGS=( -pipe -O '-O[12sg]' -mcpu -march -mtune '-fstack-protector*' '-fsanitize*' '-fstack-check*' -fno-stack-check @@ -412,7 +426,7 @@ strip-flags() { local x y var local ALLOWED_FLAGS - setup-allowed-flags + _setup-allowed-flags set -f # disable pathname expansion -- 2.31.0 signature.asc Description: This is a digitally signed message part.
Re: [gentoo-dev] [PATCH v2 1/5] flag-o-matic.eclass: get rid of eutils in
>From 0bdac63ac30fdbe2d1293d0ecbdbc2a5ea673112 Mon Sep 17 00:00:00 2001 From: Andreas Sturmlechner Date: Sun, 28 Mar 2021 11:41:32 +0200 Subject: [PATCH 1/5] flag-o-matic.eclass: SUPPORTED_EAPIS: 5,6,7; drop eutils, multilib - eutils was only used for eqawarn in old EAPI - multilib usage unknown, but is inherited by toolchain-funcs anyway Signed-off-by: Andreas Sturmlechner --- eclass/flag-o-matic.eclass | 11 +-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/eclass/flag-o-matic.eclass b/eclass/flag-o-matic.eclass index 20ee39d98ba..ab79f70392d 100644 --- a/eclass/flag-o-matic.eclass +++ b/eclass/flag-o-matic.eclass @@ -1,9 +1,10 @@ -# Copyright 1999-2020 Gentoo Authors +# Copyright 1999-2021 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 # @ECLASS: flag-o-matic.eclass # @MAINTAINER: # toolch...@gentoo.org +# @SUPPORTED_EAPIS: 5 6 7 # @BLURB: common functions to manipulate and query toolchain flags # @DESCRIPTION: # This eclass contains a suite of functions to help developers sanely @@ -12,7 +13,13 @@ if [[ -z ${_FLAG_O_MATIC_ECLASS} ]]; then _FLAG_O_MATIC_ECLASS=1 -inherit eutils toolchain-funcs multilib +inherit toolchain-funcs + +case ${EAPI} in + [0-4]) die "flag-o-matic.eclass: EAPI ${EAPI} is too old." ;; + [5-7]) inherit eutils ;; + *) die "EAPI ${EAPI} is not supported by flag-o-matic.eclass." ;; +esac # Return all the flag variables that our high level funcs operate on. all-flag-vars() { -- 2.31.0 signature.asc Description: This is a digitally signed message part.
Re: [gentoo-dev] [PATCH] flag-o-matic.eclass: get rid of eutils in
On Mittwoch, 31. März 2021 09:33:21 CEST Sergei Trofimovich wrote: > On Wed, 31 Mar 2021 08:39:27 +0200 > > > > See also: > > https://qa-reports.gentoo.org/output/eapi-per-eclass/eutils.eclass/ > > https://github.com/gentoo/gentoo/pull/20207 > > Please post series as separate patches. > They are separate in the linked PR, if you need to check that they are a proper series. Regards signature.asc Description: This is a digitally signed message part.
[gentoo-dev] [PATCH] flag-o-matic.eclass: get rid of eutils in
qa-reports showing >7300 ebuilds with EAPI-7 using eutils.eclass, that can't be right. - Restrict inherit eutils to https://qa-reports.gentoo.org/output/eapi-per-eclass/eutils.eclass/ https://github.com/gentoo/gentoo/pull/20207 diff --git a/eclass/flag-o-matic.eclass b/eclass/flag-o-matic.eclass index 20ee39d98ba..35dc09f94de 100644 --- a/eclass/flag-o-matic.eclass +++ b/eclass/flag-o-matic.eclass @@ -1,4 +1,4 @@ -# Copyright 1999-2020 Gentoo Authors +# Copyright 1999-2021 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 # @ECLASS: flag-o-matic.eclass @@ -12,16 +12,37 @@ if [[ -z ${_FLAG_O_MATIC_ECLASS} ]]; then _FLAG_O_MATIC_ECLASS=1 -inherit eutils toolchain-funcs multilib +inherit toolchain-funcs +case ${EAPI} in + [0-7]) inherit eutils ;; + *) ;; +esac + +# @FUNCTION: all-flag-vars +# @DESCRIPTION: # Return all the flag variables that our high level funcs operate on. all-flag-vars() { echo {ADA,C,CPP,CXX,CCAS,F,FC,LD}FLAGS } +# @FUNCTION: setup-allowed-flags +# @INTERNAL +# @DESCRIPTION: # {C,CPP,CXX,CCAS,F,FC,LD}FLAGS that we allow in strip-flags # Note: shell globs and character lists are allowed setup-allowed-flags() { + [[ ${EAPI} == [0-7] ]] || + die "Internal function ${FUNCNAME} is not available in >=EAPI-8." + _setup-allowed-flags +} + +# @FUNCTION: _setup-allowed-flags +# @INTERNAL +# @DESCRIPTION: +# {C,CPP,CXX,CCAS,F,FC,LD}FLAGS that we allow in strip-flags +# Note: shell globs and character lists are allowed +_setup-allowed-flags() { ALLOWED_FLAGS=( -pipe -O '-O[12sg]' -mcpu -march -mtune '-fstack-protector*' '-fsanitize*' '-fstack-check*' -fno-stack-check @@ -87,7 +108,10 @@ setup-allowed-flags() { ) } -# inverted filters for hardened compiler. This is trying to unpick +# @FUNCTION: _filter-hardened +# @INTERNAL +# @DESCRIPTION: +# Inverted filters for hardened compiler. This is trying to unpick # the hardened compiler defaults. _filter-hardened() { local f @@ -121,6 +145,9 @@ _filter-hardened() { done } +# @FUNCTION: _filter-var +# @INTERNAL +# @DESCRIPTION: # Remove occurrences of strings from variable given in $1 # Strings removed are matched as globs, so for example # '-O*' would remove -O1, -O2 etc. @@ -313,6 +340,11 @@ replace-cpu-flags() { return 0 } +# @FUNCTION: _is_flagq +# @USAGE: +# @INTERNAL +# @DESCRIPTION: +# Returns shell true if is in a given , else returns shell false. _is_flagq() { local x var="$1[*]" for x in ${!var} ; do @@ -405,7 +437,7 @@ strip-flags() { local x y var local ALLOWED_FLAGS - setup-allowed-flags + _setup-allowed-flags set -f # disable pathname expansion @@ -438,7 +470,23 @@ strip-flags() { return 0 } +# @FUNCTION: test-flag-PROG +# @USAGE: +# @INTERNAL +# @DESCRIPTION: +# Returns shell true if is supported by given , else returns shell false. test-flag-PROG() { + [[ ${EAPI} == [0-7] ]] || + die "Internal function ${FUNCNAME} is not available in >=EAPI-8." + _test-flag-PROG +} + +# @FUNCTION: _test-flag-PROG +# @USAGE: +# @INTERNAL +# @DESCRIPTION: +# Returns shell true if is supported by given , else returns shell false. +_test-flag-PROG() { local comp=$1 local lang=$2 shift 2 @@ -533,33 +581,49 @@ test-flag-PROG() { # @USAGE: # @DESCRIPTION: # Returns shell true if is supported by the C compiler, else returns shell false. -test-flag-CC() { test-flag-PROG "CC" c "$@"; } +test-flag-CC() { _test-flag-PROG "CC" c "$@"; } # @FUNCTION: test-flag-CXX # @USAGE: # @DESCRIPTION: # Returns shell true if is supported by the C++ compiler, else returns shell false. -test-flag-CXX() { test-flag-PROG "CXX" c++ "$@"; } +test-flag-CXX() { _test-flag-PROG "CXX" c++ "$@"; } # @FUNCTION: test-flag-F77 # @USAGE: # @DESCRIPTION: # Returns shell true if is supported by the Fortran 77 compiler, else returns shell false. -test-flag-F77() { test-flag-PROG "F77" f77 "$@"; } +test-flag-F77() { _test-flag-PROG "F77" f77 "$@"; } # @FUNCTION: test-flag-FC # @USAGE: # @DESCRIPTION: # Returns shell true if is supported by the Fortran 90 compiler, else returns shell false. -test-flag-FC() { test-flag-PROG "FC" f95 "$@"; } +test-flag-FC() { _test-flag-PROG "FC" f95 "$@"; } # @FUNCTION: test-flag-CCLD # @USAGE: # @DESCRIPTION: # Returns shell true if is supported by the C compiler and linker, else returns shell false. -test-flag-CCLD() { test-flag-PROG "CC" c+ld "$@"; } +test-flag-CCLD() { _test-flag-PROG "CC" c+ld "$@"; } +# @FUNCTION: test-flags-PROG +# @USAGE: [more flags...] +# @INTERNAL +# @DESCRIPTION: +# Returns shell true if are supported by given , else returns shell false. test-flags-PROG() { + [[ ${EAPI} == [0-7] ]] || + die "Internal function ${FUNCNAME} is not available in >=EAPI-8." +
[gentoo-dev] [PATCH] virtualx.eclass: Drop EAPI-4 and EAPI-5 support and cleanup
Almost all revdeps are >=EAPI-6 now. - Drop EAPI-4 and EAPI-5 support, cleanup legacy code - Drop deprecated functions virtualmake, Xmake, Xemake, Xeconf There are still >0 ebuild results grep'ing for Xemake and virtualmake but all are hidden behind RESTRICT=test (would already fail otherwise). See also: https://qa-reports.gentoo.org/output/eapi-per-eclass/virtualx.eclass/5.txt https://github.com/gentoo/gentoo/pull/20201 --- eclass/virtualx.eclass | 102 +++-- 1 file changed, 7 insertions(+), 95 deletions(-) diff --git a/eclass/virtualx.eclass b/eclass/virtualx.eclass index a95f8a7e1c1..b1e51bdcaee 100644 --- a/eclass/virtualx.eclass +++ b/eclass/virtualx.eclass @@ -6,24 +6,23 @@ # x...@gentoo.org # @AUTHOR: # Original author: Martin Schlemmer -# @SUPPORTED_EAPIS: 4 5 6 7 +# @SUPPORTED_EAPIS: 6 7 # @BLURB: This eclass can be used for packages that needs a working X environment to build. if [[ ! ${_VIRTUAL_X} ]]; then +_VIRTUAL_X=1 case "${EAPI:-0}" in - 0|1|2|3) + 0|1|2|3|4|5) die "virtualx.eclass: EAPI ${EAPI} is too old." ;; - 4|5|6|7) + 6|7) ;; *) die "virtualx.eclass: EAPI ${EAPI} is not supported yet." ;; esac -[[ ${EAPI} == [45] ]] && inherit eutils - # @ECLASS-VARIABLE: VIRTUALX_REQUIRED # @PRE_INHERIT # @DESCRIPTION: @@ -55,39 +54,11 @@ case ${VIRTUALX_REQUIRED} in manual) ;; always) - if [[ ${EAPI:-0} != [0123456] ]]; then - BDEPEND="${VIRTUALX_DEPEND}" - else - DEPEND="${VIRTUALX_DEPEND}" - fi + BDEPEND="${VIRTUALX_DEPEND}" RDEPEND="" ;; - optional|tests) - [[ ${EAPI} == [45] ]] \ - || die 'Values "optional" and "tests" for VIRTUALX_REQUIRED are banned in EAPI > 5' - # deprecated section YAY. - eqawarn "VIRTUALX_REQUIRED=optional and VIRTUALX_REQUIRED=tests are deprecated." - eqawarn "You can drop the variable definition completely from ebuild," - eqawarn "because it is default behaviour." - - if [[ -n ${VIRTUALX_USE} ]]; then - # so they like to specify the useflag - eqawarn "VIRTUALX_USE variable is deprecated." - eqawarn "Please read eclass manpage to find out how to use VIRTUALX_REQUIRED" - eqawarn "to achieve the same behaviour." - fi - - [[ -z ${VIRTUALX_USE} ]] && VIRTUALX_USE="test" - DEPEND="${VIRTUALX_USE}? ( ${VIRTUALX_DEPEND} )" - RDEPEND="" - IUSE="${VIRTUALX_USE}" - ;; *) - if [[ ${EAPI:-0} != [0123456] ]]; then - BDEPEND="${VIRTUALX_REQUIRED}? ( ${VIRTUALX_DEPEND} )" - else - DEPEND="${VIRTUALX_REQUIRED}? ( ${VIRTUALX_DEPEND} )" - fi + BDEPEND="${VIRTUALX_REQUIRED}? ( ${VIRTUALX_DEPEND} )" RDEPEND="" IUSE="${VIRTUALX_REQUIRED}" [[ ${VIRTUALX_REQUIRED} == test ]] && @@ -95,26 +66,7 @@ case ${VIRTUALX_REQUIRED} in ;; esac -# @FUNCTION: virtualmake -# @DESCRIPTION: -# Function which start new Xvfb session -# where the VIRTUALX_COMMAND variable content gets executed. -virtualmake() { - debug-print-function ${FUNCNAME} "$@" - - [[ ${EAPI} == [45] ]] \ - || die "${FUNCNAME} is unsupported in EAPI > 5, please use virtx" - - # backcompat for maketype - if [[ -n ${maketype} ]]; then - [[ ${EAPI} == [45] ]] || die "maketype is banned in EAPI > 5" - eqawarn "ebuild is exporting \$maketype=${maketype}" - eqawarn "Ebuild should be migrated to use 'virtx command' instead." - VIRTUALX_COMMAND=${maketype} - fi - - virtx "${VIRTUALX_COMMAND}" "${@}" -} +[[ ${EAPI} == 6 ]] && DEPEND="${BDEPEND}" # @FUNCTION: virtx @@ -232,44 +184,4 @@ virtx() { return 0 # always return 0, it can be altered by failed kill for Xvfb } -# @FUNCTION: Xmake -# @DESCRIPTION: -# Same as "make", but set up the Xvfb hack if needed. -# Deprecated call. -Xmake() { - debug-print-function ${FUNCNAME} "$@" - - [[ ${EAPI} == [45] ]] \ - || die "${FUNCNAME} is unsupported in EAPI > 5, please use 'virtx emake -j1 '" - - eqawarn "you should not execute make directly" - eqawarn "rather execute Xemake -j1 if you have issues with parallel make" - VIRTUALX_COMMAND="emake -j1" virtualmake "$@" -} - -# @FUNCTION: Xemake -# @DESCRIPTION: -# Same as "emake", but set up the Xvfb hack if needed. -Xemake() { - debug-print-function ${FUNCNAME} "$@" - - [[ ${EAPI} == [45] ]] \ -
[gentoo-dev] Last-rites: app-office/ical
# Andreas Sturmlechner (2021-03-30) # Completely broken since profile 17.1, package needs a real maintainer, # bugfix and 3.0.4 version bump. Bugs #677374, #692928 # Removal on 2021-04-29 app-office/ical signature.asc Description: This is a digitally signed message part.
[gentoo-dev] Last-rites: app-eselect/eselect-infinality, app-eselect/eselect-lcdfilter, media-fonts/infinality-ultimate-meta, media-libs/fontconfig-ultimate, media-libs/fontconfig-infinality
# Andreas Sturmlechner (2021-03-27) # Dead upstream. Bugs #437056, #453964, #550592, #768303 # Removal on 2021-04-26. app-eselect/eselect-infinality app-eselect/eselect-lcdfilter media-fonts/infinality-ultimate-meta media-libs/fontconfig-ultimate media-libs/fontconfig-infinality signature.asc Description: This is a digitally signed message part.
[gentoo-dev] Last-rites: dev-ml/cairo-ocaml
# Andreas Sturmlechner (2021-03-28) # No release since 2012, depends on deprecated dev-ml/lablgtk:2, no more # revdeps in Gentoo ebuild repository. # Removal on 2021-04-07, bug #769326 dev-ml/cairo-ocaml signature.asc Description: This is a digitally signed message part.
[gentoo-dev] Last-rites: app-admin/system-tools-backends
# Jimi Huotari (2021-03-26) # No consumers since 2020-09-05 (dev-libs/liboobs), and no known # stand-alone use. # Removal on 2021-04-25. app-admin/system-tools-backends signature.asc Description: This is a digitally signed message part.
[gentoo-dev] font.eclass: Drop EAPI-5 and EAPI-6 support
diff --git a/eclass/font.eclass b/eclass/font.eclass index e9e448a8155..ec1b6ca9358 100644 --- a/eclass/font.eclass +++ b/eclass/font.eclass @@ -1,19 +1,19 @@ -# Copyright 1999-2020 Gentoo Authors +# Copyright 1999-2021 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 # @ECLASS: font.eclass # @MAINTAINER: # fo...@gentoo.org -# @SUPPORTED_EAPIS: 5 6 7 +# @SUPPORTED_EAPIS: 7 # @BLURB: Eclass to make font installation uniform case ${EAPI:-0} in - [56]) inherit eutils ;; 7) ;; *) die "EAPI ${EAPI} is not supported by font.eclass." ;; esac if [[ ! ${_FONT_ECLASS} ]]; then +_FONT_ECLASS=1 EXPORT_FUNCTIONS pkg_setup src_install pkg_postinst pkg_postrm @@ -46,21 +46,12 @@ FONTDIR=${FONTDIR:-/usr/share/fonts/${FONT_PN}} # Array containing fontconfig conf files to install. FONT_CONF=( "" ) -# @ECLASS-VARIABLE: DOCS -# @DEFAULT_UNSET -# @DESCRIPTION: -# Space delimited list of docs to install. -# We always install these: -# COPYRIGHT README{,.txt} NEWS AUTHORS BUGS ChangeLog FONTLOG.txt -DOCS=${DOCS:-} - if [[ ${CATEGORY}/${PN} != media-fonts/encodings ]]; then IUSE="X" - DEPEND="X? ( + BDEPEND="X? ( >=x11-apps/mkfontscale-1.2.0 media-fonts/encodings )" - RDEPEND="" fi # @FUNCTION: font_xfont_config @@ -70,14 +61,14 @@ font_xfont_config() { local dir_name if in_iuse X && use X ; then dir_name="${1:-${FONT_PN}}" - rm -f "${ED%/}/${FONTDIR}/${1//${S}/}"/{fonts.{dir,scale},encodings.dir} \ + rm -f "${ED}${FONTDIR}/${1//${S}/}"/{fonts.{dir,scale},encodings.dir} \ || die "failed to prepare ${FONTDIR}/${1//${S}/}" einfo "Creating fonts.scale & fonts.dir in ${dir_name##*/}" - mkfontscale "${ED%/}/${FONTDIR}/${1//${S}/}" || eerror "failed to create fonts.scale" + mkfontscale "${ED}${FONTDIR}/${1//${S}/}" || eerror "failed to create fonts.scale" mkfontdir \ - -e ${EPREFIX}/usr/share/fonts/encodings \ - -e ${EPREFIX}/usr/share/fonts/encodings/large \ - "${ED%/}/${FONTDIR}/${1//${S}/}" || eerror "failed to create fonts.dir" + -e "${EPREFIX}"/usr/share/fonts/encodings \ + -e "${EPREFIX}"/usr/share/fonts/encodings/large \ + "${ED}${FONTDIR}/${1//${S}/}" || eerror "failed to create fonts.dir" [[ -e fonts.alias ]] && doins fonts.alias fi } @@ -137,7 +128,7 @@ font_cleanup_dirs() { # if there's nothing left remove the directory find "${d}" -maxdepth 0 -type d -empty -delete || eerror "failed to purge ${d}" fi - done < <(find -L "${EROOT%/}"/usr/share/fonts/ -type d -print0) + done < <(find -L "${EROOT}"/usr/share/fonts/ -type d -print0) eend 0 } @@ -148,8 +139,8 @@ font_cleanup_dirs() { font_pkg_setup() { # make sure we get no collisions # setup is not the nicest place, but preinst doesn't cut it - if [[ -e "${EROOT%/}/${FONTDIR}/fonts.cache-1" ]] ; then - rm "${EROOT%/}/${FONTDIR}/fonts.cache-1" || die "failed to remove fonts.cache-1" + if [[ -e "${EROOT}${FONTDIR}/fonts.cache-1" ]] ; then + rm "${EROOT}${FONTDIR}/fonts.cache-1" || die "failed to remove fonts.cache-1" fi } @@ -170,19 +161,6 @@ font_src_install() { font_xfont_config "${dir}" popd > /dev/null || die done - elif [[ ${FONT_S/[[:space:]]} != "${FONT_S}" ]]; then - # backwards compatibility code, can be removed after 2021-02-14 - eqawarn "Using a space-separated list for FONT_S is deprecated." - eqawarn "Use a bash array instead if there are multiple directories." - for dir in ${FONT_S}; do - pushd "${dir}" > /dev/null || die "pushd ${dir} failed" - insinto "${FONTDIR}/${dir//${S}/}" - for suffix in ${FONT_SUFFIX}; do - doins *.${suffix} - done - font_xfont_config "${dir}" - popd > /dev/null || die - done else pushd "${FONT_S:-${S}}" > /dev/null \ || die "pushd ${FONT_S:-${S}} failed" @@ -209,10 +187,10 @@ font_src_install() { # Updates fontcache if !prefix and media-libs/fontconfig installed _update_fontcache() { # unreadable font files = fontconfig segfaults - find "${EROOT%/}"/usr/share/fonts/ -type f '!' -perm 0644 \ + find "${EROOT}"/usr/share/fonts/ -type f '!' -perm 0644 \ -exec chmod -v 0644 2>/dev/null {} + || die "failed to fix font files perms" - if
Re: [gentoo-dev] timezone configuration - why copying, not symlinking /etc/localtime ?
On Monday, 22 March 2021 21:18:32 CET Lars Wendler wrote: > With enough motivation we can carry that revert for a very long time. I > know that because I still carry reverts in my udev packages from when > it was devoured by systemd. It is 11.2 KiB worth of patch that at least I know I won't take responsibility over. signature.asc Description: This is a digitally signed message part.