[gentoo-dev] [PATCH] cmake-multilib.eclass: Drop cmake-utils support

2022-08-14 Thread Andreas Sturmlechner
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

2022-07-25 Thread Andreas Sturmlechner
# 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

2022-07-19 Thread Andreas Sturmlechner
# 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

2022-06-01 Thread Andreas Sturmlechner
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

2022-03-28 Thread Andreas Sturmlechner
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

2022-03-27 Thread Andreas Sturmlechner
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

2022-03-21 Thread Andreas Sturmlechner
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

2022-03-21 Thread Andreas Sturmlechner
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

2022-03-07 Thread Andreas Sturmlechner
# 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

2022-03-07 Thread Andreas Sturmlechner
# 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

2022-03-01 Thread Andreas Sturmlechner
# 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

2022-03-01 Thread Andreas Sturmlechner
# 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

2022-02-27 Thread Andreas Sturmlechner
# 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

2022-02-26 Thread Andreas Sturmlechner
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

2022-02-24 Thread Andreas Sturmlechner
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

2022-02-16 Thread Andreas Sturmlechner
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

2022-01-09 Thread Andreas Sturmlechner
# 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

2022-01-07 Thread Andreas Sturmlechner
# 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

2021-12-17 Thread Andreas Sturmlechner
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

2021-11-30 Thread Andreas Sturmlechner
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

2021-11-30 Thread Andreas Sturmlechner
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

2021-11-30 Thread Andreas Sturmlechner
# 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

2021-11-30 Thread Andreas Sturmlechner
# 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

2021-11-22 Thread Andreas Sturmlechner
# 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

2021-10-11 Thread Andreas Sturmlechner
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

2021-09-22 Thread Andreas Sturmlechner
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

2021-09-07 Thread Andreas Sturmlechner
# 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

2021-09-04 Thread Andreas Sturmlechner
# 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

2021-09-04 Thread Andreas Sturmlechner
# 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

2021-09-01 Thread Andreas Sturmlechner
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

2021-09-01 Thread Andreas Sturmlechner
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

2021-09-01 Thread Andreas Sturmlechner
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

2021-09-01 Thread Andreas Sturmlechner
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

2021-09-01 Thread Andreas Sturmlechner
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

2021-08-19 Thread Andreas Sturmlechner
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

2021-08-19 Thread Andreas Sturmlechner
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

2021-08-19 Thread Andreas Sturmlechner
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

2021-08-19 Thread Andreas Sturmlechner
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

2021-08-19 Thread Andreas Sturmlechner
[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

2021-08-19 Thread Andreas Sturmlechner
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

2021-08-19 Thread Andreas Sturmlechner
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

2021-08-16 Thread Andreas Sturmlechner
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

2021-08-16 Thread Andreas Sturmlechner
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

2021-08-15 Thread Andreas Sturmlechner
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

2021-08-11 Thread Andreas Sturmlechner
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

2021-08-10 Thread Andreas Sturmlechner
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

2021-08-10 Thread Andreas Sturmlechner
# 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

2021-08-10 Thread Andreas Sturmlechner
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

2021-08-09 Thread Andreas Sturmlechner
# 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

2021-08-04 Thread Andreas Sturmlechner
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

2021-08-04 Thread Andreas Sturmlechner
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

2021-08-04 Thread Andreas Sturmlechner
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

2021-08-04 Thread Andreas Sturmlechner
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

2021-07-26 Thread Andreas Sturmlechner
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

2021-07-23 Thread Andreas Sturmlechner
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

2021-07-23 Thread Andreas Sturmlechner
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

2021-07-23 Thread Andreas Sturmlechner
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

2021-07-23 Thread Andreas Sturmlechner
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

2021-07-23 Thread Andreas Sturmlechner
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

2021-07-23 Thread Andreas Sturmlechner
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

2021-07-18 Thread Andreas Sturmlechner
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

2021-07-18 Thread Andreas Sturmlechner
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

2021-07-18 Thread Andreas Sturmlechner
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

2021-07-18 Thread Andreas Sturmlechner
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

2021-05-15 Thread Andreas Sturmlechner
# 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

2021-05-15 Thread Andreas Sturmlechner
# 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

2021-05-15 Thread Andreas Sturmlechner
# 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

2021-05-15 Thread Andreas Sturmlechner
# 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

2021-05-09 Thread Andreas Sturmlechner
# 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

2021-05-01 Thread Andreas Sturmlechner
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

2021-05-01 Thread Andreas Sturmlechner
# 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

2021-05-01 Thread Andreas Sturmlechner
# 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

2021-04-27 Thread Andreas Sturmlechner
# 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

2021-04-24 Thread Andreas Sturmlechner
# 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

2021-04-24 Thread Andreas Sturmlechner
# 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

2021-04-16 Thread Andreas Sturmlechner
# 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

2021-04-16 Thread Andreas Sturmlechner
# 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

2021-04-16 Thread Andreas Sturmlechner
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

2021-04-06 Thread Andreas Sturmlechner
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

2021-04-06 Thread Andreas Sturmlechner
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

2021-04-06 Thread Andreas Sturmlechner
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

2021-04-04 Thread Andreas Sturmlechner
# 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

2021-04-03 Thread Andreas Sturmlechner
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

2021-04-03 Thread Andreas Sturmlechner
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

2021-04-02 Thread Andreas Sturmlechner
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

2021-04-01 Thread Andreas Sturmlechner
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

2021-04-01 Thread Andreas Sturmlechner
>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

2021-04-01 Thread Andreas Sturmlechner
>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

2021-04-01 Thread Andreas Sturmlechner
>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

2021-04-01 Thread Andreas Sturmlechner
>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

2021-04-01 Thread Andreas Sturmlechner
>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

2021-03-31 Thread Andreas Sturmlechner
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

2021-03-31 Thread Andreas Sturmlechner
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

2021-03-31 Thread Andreas Sturmlechner
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

2021-03-30 Thread Andreas Sturmlechner
# 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

2021-03-29 Thread Andreas Sturmlechner
# 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

2021-03-27 Thread Andreas Sturmlechner
# 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

2021-03-26 Thread Andreas Sturmlechner
# 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

2021-03-26 Thread Andreas Sturmlechner
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 ?

2021-03-22 Thread Andreas Sturmlechner
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.


  1   2   3   4   5   >