[gentoo-dev] Last rites: dev-python/astropy & revdeps (incl. sci-astronomy/astrometry, sci-astronomy/kapteyn)

2019-11-29 Thread Michał Górny
# Michał Górny  (2019-11-29)
# Astronomy-related Python packages and their revdeps.  They are
# unmaintained.  Most of them are outdated.  None of them were tested
# on Python 3.7, some even on 3.6.  The leaf packages are 2.7-only.
# All of them depend on astropy which has an unconditional dependency
# on ipython, which in turn dropped py2 support.
# Bug #701454.  Removal in 30 days.
dev-python/aplpy
dev-python/asdf
dev-python/astlib
dev-python/astrodendro
dev-python/astroml-addons
dev-python/astroml
dev-python/astroplan
dev-python/astropy-helpers
dev-python/astropy
dev-python/astroquery
dev-python/astroscrappy
dev-python/atpy
dev-python/ccdproc
dev-python/gammapy
dev-python/ginga
dev-python/glue-vispy-viewers
dev-python/glueviz
dev-python/gwcs
dev-python/healpy
dev-python/imexam
dev-python/montage-wrapper
dev-python/naima
dev-python/photutils
dev-python/pyavm
dev-python/pydl
dev-python/pyfits
dev-python/pymoc
dev-python/pyregion
dev-python/regions
dev-python/reproject
dev-python/spectral-cube
dev-python/specutils
dev-python/stsci-distutils
dev-python/stsci-sphinxext
dev-python/sunpy
dev-python/wcsaxes
sci-astronomy/astrometry
sci-astronomy/kapteyn

-- 
Best regards,
Michał Górny



signature.asc
Description: This is a digitally signed message part


[gentoo-dev] Packages up for grabs: app-admin/ngxtop, media-gfx/opencsg

2019-11-29 Thread Michał Górny
Hello,

Due to the inactivity of their maintainer, the following packages are
now up for grabs:

app-admin/ngxtop
media-gfx/opencsg

The former has no bugs open, the latter has one bug and a potentially
interested proxied maintainer.

-- 
Best regards,
Michał Górny



signature.asc
Description: This is a digitally signed message part


[gentoo-dev] Packages up for grabs due to dev-zero's inactivity

2019-11-29 Thread Michał Górny
Hello,

The following packages are looking for a new maintainer due to dev-
zero's inactivity:

[ v] app-admin/authbind
[ v] app-backup/ccollect
[  ] app-emulation/libvirt-snmp
[  ] app-misc/scrub
[  ] dev-libs/faxpp
[  ] dev-libs/ossp-uuid
[s ] dev-python/restkit
[  ] dev-util/cflow
[bv] dev-util/source-highlight
[ v] dev-vcs/git-cola
[b ] net-dns/pdns-ldap-backend
[b ] net-fs/wdfs
[b ] sys-apps/edac-utils
[  ] sys-apps/renameutils
[ v] sys-devel/dwz
[ v] www-misc/nx_util
[  ] x11-misc/seetxt

Legend:
v - version bump pending
b - bugs open
s - security bugs open

-- 
Best regards,
Michał Górny



signature.asc
Description: This is a digitally signed message part


[gentoo-dev] Packages up for grabs due to alonbl's inactivity

2019-11-29 Thread Michał Górny
Hello,

The following packages are up for grabs now:

[ v] app-arch/deltarpm
[bv] app-laptop/laptop-mode-tools
[bv] net-dns/openresolv
[  ] net-firewall/firehol
[b ] net-misc/iprange
[b ] sys-apps/fakechroot
[b ] sys-apps/fakeroot-ng
[  ] sys-power/hibernate-script
[  ] virtual/resolvconf

Legend:
b - bugs open
v - version bump pending

-- 
Best regards,
Michał Górny



signature.asc
Description: This is a digitally signed message part


[gentoo-dev] [PATCH 1/3] distutils-r1.eclass: Depend on setuptools by default

2019-11-29 Thread Michał Górny
Add a new DISTUTILS_USE_SETUPTOOLS top variable, and make it default
to BDEPEND-ing on dev-python/setuptools (which should be correct
for the majority of packages).  Packages that either need RDEPEND
or no dependency at all can override it.

Also add a check for correct value in esetup.py.  This should make it
easy for developers to adjust the new variable in their packages.

Signed-off-by: Michał Górny 
---
 eclass/distutils-r1.eclass | 82 +++---
 1 file changed, 76 insertions(+), 6 deletions(-)

diff --git a/eclass/distutils-r1.eclass b/eclass/distutils-r1.eclass
index f44f0aee9c21..083a72bd0589 100644
--- a/eclass/distutils-r1.eclass
+++ b/eclass/distutils-r1.eclass
@@ -77,9 +77,23 @@ esac
 # to be exported. It must be run in order for the eclass functions
 # to function properly.
 
+# @ECLASS-VARIABLE: DISTUTILS_USE_SETUPTOOLS
+# @PRE_INHERIT
+# @DESCRIPTION:
+# Controls adding dev-python/setuptools dependency.  The allowed values
+# are:
+#
+# - no -- do not add the dependency (pure distutils package)
+# - bdepend -- add it to BDEPEND (the default)
+# - rdepend -- add it to BDEPEND+RDEPEND (when using entry_points)
+#
+# This variable is effective only if DISTUTILS_OPTIONAL is disabled.
+# It needs to be set before the inherit line.
+: ${DISTUTILS_USE_SETUPTOOLS:=bdepend}
+
 if [[ ! ${_DISTUTILS_R1} ]]; then
 
-[[ ${EAPI} == [45] ]] && inherit eutils
+[[ ${EAPI} == [456] ]] && inherit eutils
 [[ ${EAPI} == [56] ]] && inherit xdg-utils
 inherit multiprocessing toolchain-funcs
 
@@ -97,15 +111,35 @@ fi
 
 if [[ ! ${_DISTUTILS_R1} ]]; then
 
-if [[ ! ${DISTUTILS_OPTIONAL} ]]; then
-   RDEPEND=${PYTHON_DEPS}
+_distutils_set_globals() {
+   local rdep=${PYTHON_DEPS}
+   local bdep=${rdep}
+
+   case ${DISTUTILS_USE_SETUPTOOLS} in
+   no)
+   ;;
+   bdepend)
+   bdep+=" dev-python/setuptools[${PYTHON_USEDEP}]"
+   ;;
+   rdepend)
+   bdep+=" dev-python/setuptools[${PYTHON_USEDEP}]"
+   rdep+=" dev-python/setuptools[${PYTHON_USEDEP}]"
+   ;;
+   *)
+   die "Invalid 
DISTUTILS_USE_SETUPTOOLS=${DISTUTILS_USE_SETUPTOOLS}"
+   ;;
+   esac
+
+   RDEPEND=${rdep}
if [[ ${EAPI} != [56] ]]; then
-   BDEPEND=${PYTHON_DEPS}
+   BDEPEND=${bdep}
else
-   DEPEND=${PYTHON_DEPS}
+   DEPEND=${bdep}
fi
REQUIRED_USE=${PYTHON_REQUIRED_USE}
-fi
+}
+[[ ! ${DISTUTILS_OPTIONAL} ]] && _distutils_set_globals
+unset -f _distutils_set_globals
 
 # @ECLASS-VARIABLE: PATCHES
 # @DEFAULT_UNSET
@@ -395,6 +429,41 @@ distutils_enable_tests() {
return 0
 }
 
+# @FUNCTION: _distutils-r1_verify_use_setuptools
+# @INTERNAL
+# @DESCRIPTION:
+# Check setup.py for signs that DISTUTILS_USE_SETUPTOOLS have been set
+# incorrectly.
+_distutils_verify_use_setuptools() {
+   [[ ${DISTUTILS_OPTIONAL} ]] && return
+
+   # ok, those are cheap greps.  we can try toimprove them if we hit
+   # false positives.
+   local expected=no
+   if [[ ${CATEGORY}/${PN} == dev-python/setuptools ]]; then
+   # as a special case, setuptools provides itself ;-)
+   :
+   elif grep -E -q -s '(from|import)\s+setuptools' setup.py; then
+   if grep -E -q -s 'entry_points\s+=' setup.py; then
+   expected=rdepend
+   else
+   expected=bdepend
+   fi
+   fi
+
+   if [[ ${DISTUTILS_USE_SETUPTOOLS} != ${expected} ]]; then
+   if [[ ! ${_DISTUTILS_SETUPTOOLS_WARNED} ]]; then
+   _DISTUTILS_SETUPTOOLS_WARNED=1
+   local def=
+   [[ ${DISTUTILS_USE_SETUPTOOLS} == bdepend ]] && def=' 
(default?)'
+
+   eqawarn "DISTUTILS_USE_SETUPTOOLS value is probably 
incorrect"
+   eqawarn "  value:
DISTUTILS_USE_SETUPTOOLS=${DISTUTILS_USE_SETUPTOOLS}${def}"
+   eqawarn "  expected: 
DISTUTILS_USE_SETUPTOOLS=${expected}"
+   fi
+   fi
+}
+
 # @FUNCTION: esetup.py
 # @USAGE: [...]
 # @DESCRIPTION:
@@ -417,6 +486,7 @@ esetup.py() {
[[ ${EAPI} != [45] ]] && die_args+=( -n )
 
[[ ${BUILD_DIR} ]] && _distutils-r1_create_setup_cfg
+   _distutils_verify_use_setuptools
 
set -- "${EPYTHON:-python}" setup.py "${mydistutilsargs[@]}" "${@}"
 
-- 
2.24.0




[gentoo-dev] [PATCH 2/3] dev-python/setuptools: Disable setuptools self-dependency

2019-11-29 Thread Michał Górny
Signed-off-by: Michał Górny 
---
 dev-python/setuptools/setuptools-40.6.3.ebuild | 1 +
 dev-python/setuptools/setuptools-41.5.1.ebuild | 1 +
 dev-python/setuptools/setuptools-42.0.0.ebuild | 1 +
 dev-python/setuptools/setuptools-42.0.1.ebuild | 1 +
 dev-python/setuptools/setuptools-.ebuild   | 1 +
 5 files changed, 5 insertions(+)

diff --git a/dev-python/setuptools/setuptools-40.6.3.ebuild 
b/dev-python/setuptools/setuptools-40.6.3.ebuild
index d5d482efd58e..a21883a89f89 100644
--- a/dev-python/setuptools/setuptools-40.6.3.ebuild
+++ b/dev-python/setuptools/setuptools-40.6.3.ebuild
@@ -2,6 +2,7 @@
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI=6
+DISTUTILS_USE_SETUPTOOLS=no
 PYTHON_COMPAT=( python2_7 python3_{5,6,7} pypy{,3} )
 PYTHON_REQ_USE="xml(+)"
 
diff --git a/dev-python/setuptools/setuptools-41.5.1.ebuild 
b/dev-python/setuptools/setuptools-41.5.1.ebuild
index ff4a7aa54630..a7b9022b6a0c 100644
--- a/dev-python/setuptools/setuptools-41.5.1.ebuild
+++ b/dev-python/setuptools/setuptools-41.5.1.ebuild
@@ -2,6 +2,7 @@
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI=7
+DISTUTILS_USE_SETUPTOOLS=no
 PYTHON_COMPAT=( python2_7 python3_{5,6,7,8} pypy{,3} )
 PYTHON_REQ_USE="xml(+)"
 
diff --git a/dev-python/setuptools/setuptools-42.0.0.ebuild 
b/dev-python/setuptools/setuptools-42.0.0.ebuild
index e7aa7c945a85..8c33401e75bd 100644
--- a/dev-python/setuptools/setuptools-42.0.0.ebuild
+++ b/dev-python/setuptools/setuptools-42.0.0.ebuild
@@ -2,6 +2,7 @@
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI=7
+DISTUTILS_USE_SETUPTOOLS=no
 PYTHON_COMPAT=( python2_7 python3_{5,6,7,8} pypy{,3} )
 PYTHON_REQ_USE="xml(+)"
 
diff --git a/dev-python/setuptools/setuptools-42.0.1.ebuild 
b/dev-python/setuptools/setuptools-42.0.1.ebuild
index 0c293d1ea950..58369bab16cb 100644
--- a/dev-python/setuptools/setuptools-42.0.1.ebuild
+++ b/dev-python/setuptools/setuptools-42.0.1.ebuild
@@ -2,6 +2,7 @@
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI=7
+DISTUTILS_USE_SETUPTOOLS=no
 PYTHON_COMPAT=( python2_7 python3_{5,6,7,8} pypy{,3} )
 PYTHON_REQ_USE="xml(+)"
 
diff --git a/dev-python/setuptools/setuptools-.ebuild 
b/dev-python/setuptools/setuptools-.ebuild
index 8d522c4213f5..34b0627c0728 100644
--- a/dev-python/setuptools/setuptools-.ebuild
+++ b/dev-python/setuptools/setuptools-.ebuild
@@ -2,6 +2,7 @@
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI=7
+DISTUTILS_USE_SETUPTOOLS=no
 PYTHON_COMPAT=( python2_7 python3_{5,6,7,8} pypy{,3} )
 PYTHON_REQ_USE="xml(+)"
 
-- 
2.24.0




[gentoo-dev] Packages up for grabs due to creffett's inactivity

2019-11-29 Thread Michał Górny
Hi,

The following packages are looking for a new maintainer:

[b?] app-misc/xmind
[ v] app-office/projectlibre-bin
[  ] games-roguelike/dwarf-fortress
[bv] sci-misc/netlogo-bin
[ v] sys-apps/lnxhc

Also he's the sole member of theology project, so that one might need
help as well.

-- 
Best regards,
Michał Górny



signature.asc
Description: This is a digitally signed message part


[gentoo-dev] [PATCH 3/3] sys-apps/portage: Disable setuptools dependency

2019-11-29 Thread Michał Górny
Signed-off-by: Michał Górny 
---
 sys-apps/portage/portage-2.3.66-r1.ebuild | 1 +
 sys-apps/portage/portage-2.3.69.ebuild| 1 +
 sys-apps/portage/portage-2.3.76-r1.ebuild | 1 +
 sys-apps/portage/portage-2.3.79.ebuild| 1 +
 sys-apps/portage/portage-2.3.80-r1.ebuild | 1 +
 sys-apps/portage/portage-.ebuild  | 1 +
 6 files changed, 6 insertions(+)

diff --git a/sys-apps/portage/portage-2.3.66-r1.ebuild 
b/sys-apps/portage/portage-2.3.66-r1.ebuild
index b7031ec44e2f..7f5d996b6ab5 100644
--- a/sys-apps/portage/portage-2.3.66-r1.ebuild
+++ b/sys-apps/portage/portage-2.3.66-r1.ebuild
@@ -3,6 +3,7 @@
 
 EAPI=5
 
+DISTUTILS_USE_SETUPTOOLS=no
 PYTHON_COMPAT=(
pypy
python3_5 python3_6 python3_7
diff --git a/sys-apps/portage/portage-2.3.69.ebuild 
b/sys-apps/portage/portage-2.3.69.ebuild
index fbbb9c85705c..854c01cd6e53 100644
--- a/sys-apps/portage/portage-2.3.69.ebuild
+++ b/sys-apps/portage/portage-2.3.69.ebuild
@@ -3,6 +3,7 @@
 
 EAPI=5
 
+DISTUTILS_USE_SETUPTOOLS=no
 PYTHON_COMPAT=(
pypy
python3_5 python3_6 python3_7
diff --git a/sys-apps/portage/portage-2.3.76-r1.ebuild 
b/sys-apps/portage/portage-2.3.76-r1.ebuild
index ff8abf53e72d..28afff0ae724 100644
--- a/sys-apps/portage/portage-2.3.76-r1.ebuild
+++ b/sys-apps/portage/portage-2.3.76-r1.ebuild
@@ -3,6 +3,7 @@
 
 EAPI=5
 
+DISTUTILS_USE_SETUPTOOLS=no
 PYTHON_COMPAT=(
pypy
python3_5 python3_6 python3_7
diff --git a/sys-apps/portage/portage-2.3.79.ebuild 
b/sys-apps/portage/portage-2.3.79.ebuild
index 163dfbc60ec7..fef4b86a2498 100644
--- a/sys-apps/portage/portage-2.3.79.ebuild
+++ b/sys-apps/portage/portage-2.3.79.ebuild
@@ -3,6 +3,7 @@
 
 EAPI=5
 
+DISTUTILS_USE_SETUPTOOLS=no
 PYTHON_COMPAT=(
pypy
python3_5 python3_6 python3_7 python3_8
diff --git a/sys-apps/portage/portage-2.3.80-r1.ebuild 
b/sys-apps/portage/portage-2.3.80-r1.ebuild
index 6d384ab8fdd8..494eb2b43686 100644
--- a/sys-apps/portage/portage-2.3.80-r1.ebuild
+++ b/sys-apps/portage/portage-2.3.80-r1.ebuild
@@ -3,6 +3,7 @@
 
 EAPI=5
 
+DISTUTILS_USE_SETUPTOOLS=no
 PYTHON_COMPAT=(
pypy
python3_5 python3_6 python3_7 python3_8
diff --git a/sys-apps/portage/portage-.ebuild 
b/sys-apps/portage/portage-.ebuild
index 6401c40dee2a..04544afb66d4 100644
--- a/sys-apps/portage/portage-.ebuild
+++ b/sys-apps/portage/portage-.ebuild
@@ -3,6 +3,7 @@
 
 EAPI=6
 
+DISTUTILS_USE_SETUPTOOLS=no
 PYTHON_COMPAT=(
pypy
python3_5 python3_6 python3_7 python3_8
-- 
2.24.0




Re: [gentoo-dev] Migrate away from python-2 or not

2019-11-29 Thread Mathy Vanvoorden
> I tried removing python2 on a handful of test systems over the last week
> ... it's back everywhere.
>
>
I attempted the same over the last couple of days as I was thinking "It's
going anyway, why not get a head start?". I had to do the following:

* Remove metagen
* Remove rr
* Update kodi and related packages to  (I know they are working on
getting their 19.0 package out asap because of the 2.7 EOL)
* Update clang and related packages to 9.0.0
* Remove python dependency in libdbusmenu (it's not needed, PR here:
https://github.com/gentoo/gentoo/pull/13790)
* Port gnome-doc-utils to python3 (
https://github.com/gentoo/gentoo/pull/13791)
* Remove qt-creator as it depends on clang 8, changing USE to -clang would
also work but not really using it anyway atm
* Remove gconf dep from discord-bin (
https://github.com/gentoo/gentoo/pull/13793)
* Remove gconf dep from spotify (https://github.com/gentoo/gentoo/pull/13794
)
* Update gcr to 3.34.0 (https://github.com/gentoo/gentoo/pull/13798)
* Unmask a number of other packages that luckily did have updated versions
available: samba, talloc, javatoolkit, tdb, tevent, ldb, itstool,
dropbox-cli, nodejs
* Unmerge typing (now provided by python package)
* Reinstall m2crypto, python-typing, scons
* Reinstall crda with patch in https://bugs.gentoo.org/693728
* Manually fix some packages that were not being selected for emerge by -N:
m2crypto, virtual/python-typing, typing, scons

Unfortunately I was not able to completely purge python2.7 from my system.
The base package is still installed as it is required to build qtwebkit,
qtwebengine, zziplib, firefox and spidermonkey. At least however I am now
running with -python_targets_python2_7 so there's that.

br,
Mathy


Re: [gentoo-dev] Packages up for grabs due to dev-zero's inactivity

2019-11-29 Thread Michal Privoznik

On 11/29/19 10:12 AM, Michał Górny wrote:

Hello,

The following packages are looking for a new maintainer due to dev-
zero's inactivity:




[  ] app-emulation/libvirt-snmp


As an upstream maintainer of this package I'm also willing to maintain 
it in Gentoo. However, so far I'm not a maintainer of any Gentoo package 
although I have couple of patches merged in.


Michal




[gentoo-dev] [PATCH] python*-r1.eclass: Deprecate python_gen_usedep

2019-11-29 Thread Michał Górny
Deprecate python_gen_usedep() in favor of python_gen_cond_dep().
The latter is a newer API that generates full USE-conditional blocks
rather than pure USE-dependency strings.  As such, it can replace all
uses of the former, and is safer to use in general.  In particular:

  dev-python/foo[$(python_gen_usedep -2)]
  dev-python/bar[$(python_gen_usedep -2)]

installs the dependency (with no implementation match enforced) even
if there's no python2 implementation enabled, while:

  $(python_gen_cond_dep '
dev-python/foo[${PYTHON_USEDEP}]
dev-python/bar[${PYTHON_USEDEP}]
  ' -2)

installs it only if there's at least one implementation requiring it.

Since the functions are used in global scope only, a deprecation warning
is emitted only once, during the sourcing for pkg_setup phase.  This
avoids having it output during metadata cache regeneration.

Signed-off-by: Michał Górny 
---
 eclass/python-r1.eclass| 59 +-
 eclass/python-single-r1.eclass | 59 +-
 2 files changed, 88 insertions(+), 30 deletions(-)

diff --git a/eclass/python-r1.eclass b/eclass/python-r1.eclass
index 7665edbd87e3..1d23cfa9177c 100644
--- a/eclass/python-r1.eclass
+++ b/eclass/python-r1.eclass
@@ -276,9 +276,47 @@ _python_validate_useflags() {
die "No supported Python implementation in PYTHON_TARGETS."
 }
 
+# @FUNCTION: _python_gen_usedep
+# @INTERNAL
+# @USAGE:  [...]
+# @DESCRIPTION:
+# Output a USE dependency string for Python implementations which
+# are both in PYTHON_COMPAT and match any of the patterns passed
+# as parameters to the function.
+#
+# The patterns can be either fnmatch-style patterns (matched via bash
+# == operator against PYTHON_COMPAT values) or '-2' / '-3' to indicate
+# appropriately all enabled Python 2/3 implementations (alike
+# python_is_python3). Remember to escape or quote the fnmatch patterns
+# to prevent accidental shell filename expansion.
+#
+# This is an internal function used to implement python_gen_cond_dep
+# and deprecated python_gen_usedep.
+_python_gen_usedep() {
+   debug-print-function ${FUNCNAME} "${@}"
+
+   local impl matches=()
+
+   for impl in "${_PYTHON_SUPPORTED_IMPLS[@]}"; do
+   if _python_impl_matches "${impl}" "${@}"; then
+   matches+=(
+   "python_targets_${impl}(-)?"
+   "-python_single_target_${impl}(-)"
+   )
+   fi
+   done
+
+   [[ ${matches[@]} ]] || die "No supported implementations match 
python_gen_usedep patterns: ${@}"
+
+   local out=${matches[@]}
+   echo "${out// /,}"
+}
+
 # @FUNCTION: python_gen_usedep
 # @USAGE:  [...]
 # @DESCRIPTION:
+# DEPRECATED.  Please use python_gen_cond_dep instead.
+#
 # Output a USE dependency string for Python implementations which
 # are both in PYTHON_COMPAT and match any of the patterns passed
 # as parameters to the function.
@@ -306,21 +344,12 @@ _python_validate_useflags() {
 python_gen_usedep() {
debug-print-function ${FUNCNAME} "${@}"
 
-   local impl matches=()
-
-   for impl in "${_PYTHON_SUPPORTED_IMPLS[@]}"; do
-   if _python_impl_matches "${impl}" "${@}"; then
-   matches+=(
-   "python_targets_${impl}(-)?"
-   "-python_single_target_${impl}(-)"
-   )
-   fi
-   done
-
-   [[ ${matches[@]} ]] || die "No supported implementations match 
python_gen_usedep patterns: ${@}"
-
-   local out=${matches[@]}
-   echo "${out// /,}"
+   # output only once, during some reasonable phase
+   # (avoid spamming cache regen runs)
+   if [[ ${EBUILD_PHASE} == setup ]]; then
+   eqawarn "python_gen_usedep() is deprecated. Please use 
python_gen_cond_dep instead."
+   fi
+   _python_gen_usedep "${@}"
 }
 
 # @FUNCTION: python_gen_useflags
diff --git a/eclass/python-single-r1.eclass b/eclass/python-single-r1.eclass
index 8ac17b7815e2..6abaf1923d20 100644
--- a/eclass/python-single-r1.eclass
+++ b/eclass/python-single-r1.eclass
@@ -265,9 +265,47 @@ unset -f _python_single_set_globals
 
 if [[ ! ${_PYTHON_SINGLE_R1} ]]; then
 
+# @FUNCTION: _python_gen_usedep
+# @INTERNAL
+# @USAGE:  [...]
+# @DESCRIPTION:
+# Output a USE dependency string for Python implementations which
+# are both in PYTHON_COMPAT and match any of the patterns passed
+# as parameters to the function.
+#
+# The patterns can be either fnmatch-style patterns (matched via bash
+# == operator against PYTHON_COMPAT values) or '-2' / '-3' to indicate
+# appropriately all enabled Python 2/3 implementations (alike
+# python_is_python3). Remember to escape or quote the fnmatch patterns
+# to prevent accidental shell filename expansion.
+#
+# This is an internal function used to implement python_gen_cond_dep
+# and deprecated python_gen_usedep.
+_python_gen_usedep() {
+   

Re: [gentoo-dev] Migrate away from python-2 or not

2019-11-29 Thread Haelwenn (lanodan) Monnier
[2019-11-29 14:49:12+0100] Mathy Vanvoorden:
> > I tried removing python2 on a handful of test systems over the last week
> > ... it's back everywhere.
> >
> >
> I attempted the same over the last couple of days as I was thinking "It's
> going anyway, why not get a head start?". I had to do the following:
> 
> * Remove metagen
> * Remove rr
> * Update kodi and related packages to  (I know they are working on
> getting their 19.0 package out asap because of the 2.7 EOL)
> * Update clang and related packages to 9.0.0
> * Remove python dependency in libdbusmenu (it's not needed, PR here:
> https://github.com/gentoo/gentoo/pull/13790)
> * Port gnome-doc-utils to python3 (
> https://github.com/gentoo/gentoo/pull/13791)
> * Remove qt-creator as it depends on clang 8, changing USE to -clang would
> also work but not really using it anyway atm
> * Remove gconf dep from discord-bin (
> https://github.com/gentoo/gentoo/pull/13793)
> * Remove gconf dep from spotify (https://github.com/gentoo/gentoo/pull/13794
> )
> * Update gcr to 3.34.0 (https://github.com/gentoo/gentoo/pull/13798)
> * Unmask a number of other packages that luckily did have updated versions
> available: samba, talloc, javatoolkit, tdb, tevent, ldb, itstool,
> dropbox-cli, nodejs
> * Unmerge typing (now provided by python package)
> * Reinstall m2crypto, python-typing, scons
> * Reinstall crda with patch in https://bugs.gentoo.org/693728
> * Manually fix some packages that were not being selected for emerge by -N:
> m2crypto, virtual/python-typing, typing, scons
> 
> Unfortunately I was not able to completely purge python2.7 from my system.
> The base package is still installed as it is required to build qtwebkit,
> qtwebengine, zziplib, firefox and spidermonkey. At least however I am now
> running with -python_targets_python2_7 so there's that.

Been running my server without python2 since… 2019-11-16 I thought it 
was more than that but still quite a lot considering that I kept clang-8 
for a while before switching to clang-9 on it. (I use clang as main 
compiler, I'm also deprecating gcc so prefer to play it safe)

I still have a bunch of stuff on my desktop requiring python2,
like nodejs or renpy but it's getting quite better in the last months,
one I'm trully fearing about how it will go is dev-util/scons, I guess
a lot of patches will be required on the releases.

I think this kind of discussion might be better on the forums or
a user list btw.