Re: Proposed Mass Bug Filing: Renaming "python-" binary packages to "python2-"

2017-06-28 Thread Nick Coghlan
On 29 June 2017 at 11:39, Adam Williamson  wrote:
> On Wed, 2017-06-28 at 16:21 +0200, Iryna Shcherbina wrote:
>> 2) Using `python-` instead of `python2-` in the dependencies for the
>> Python 2 binary RPM [2].
>
> I'm not sure this list is terribly useful, because of the above. There
> are thousands of packages that do this, because the 'python2-' provide
> is not available on some older Fedora release, or on EPEL (and the
> package is maintained for EPEL as well as Fedora). Sprinkling "if (some
> release number condition) then Requires: python2-foo else Requires:
> python-foo" all over your spec is a giant PITA and I for one am not
> very interested in doing it.
>
> IMHO, if there is going to be some kind of requirement that all Python
> requires be explicitly versioned, there needs to be a co-ordinated
> effort to make sure the versioned Provides are available across at
> least EL6, EL7, and all supported Fedora releases *first*.

This was the key concern I raised in response to the initial email,
and our conclusion at the time was:

1. This case does need to be addressed
2. Adding an opaque dependency on buildroot configuration settings
wouldn't be a particularly nice way to handle it, since it forces
every package to switch concurrently, rather than each maintainer
getting to decide when to move from the Python 2 stack to the Python 3
stack for themselves (and that unilateral shift is already going to
happen for unqualified dependency declarations when the virtual
%python_provides macro moves from the Python 2 stack to the Python 3
stack)
3. Ideally, the recommended approach would work for arbitrary RHEL &
CentOS based buildroots, not just those with the EPEL RPM macros
available

The most straightforward solution we came up with was for affected
packages to define their own "%py_prefix" macro that selects the stack
they want to use based on the Python version:

```
# The block below would become the conventional
# "Python stack compatibility" dance for
# EL6, EL7, and Fedora
# Each package can decide for itself which version of
# Fedora had a sufficiently complete Py3 stack for
# them to be able to switch over

# Current EL releases & older Fedora use "python-*"
%if 0%{?el6} || 0%{?el7} || 0%{?fedora} < 25
%define py_prefix python
%if 0%{?el6} || 0%{?el7}
BuildRequires: python-devel
%else
BuildRequires: python2-devel
%endif
%else
# Newer Fedora releases use "pythonX-*"
# A Py2-only project would use "python2" here
%define py_prefix python3
BuildRequires: python3-devel
%endif


# Dependency declarations use stack selected above
BuildRequires: %{py_prefix}-builddep1
BuildRequires: %{py_prefix}-builddep2
Requires: %{py_prefix}-runtimedep1
Requires: %{py_prefix}-runtimedep2
```

For dual stack libraries, the appropriate prefixes to define would be
separate ones for each stack (%py2_prefix and %py3_prefix), and either
leave the latter undefined for systems with no native Py3 stack, or
else set it to rely on EPEL, IUS, or a suitable software collection.

Cheers,
Nick.

-- 
Nick Coghlan   |   ncogh...@gmail.com   |   Brisbane, Australia
___
python-devel mailing list -- python-devel@lists.fedoraproject.org
To unsubscribe send an email to python-devel-le...@lists.fedoraproject.org


Re: Proposed Mass Bug Filing: Renaming "python-" binary packages to "python2-"

2017-06-28 Thread Iryna Shcherbina
Here are lists of packages that don't conform to the current Python 
package naming policy, and their maintainers:


* Maintainers by Package [4]
* Packages by Maintainer [5]

The bad naming is blocking work to switch to Python 3. For more context, 
see [0].


If you are on the list, please check if your packages violate the policy by:

1) Using `python-` instead of `python2-` in the binary RPM name, or 
missing a `python2-` prefix altogether [1].
In case it is, rename the binary RPMs to use `python2-` prefix. Detailed 
steps on how to do this are documented in [3]. (Note that only the 
Python 2 *subpackage* needs renaming; Fedora's "Package Renaming 
Process" doesn't apply here.)


2) Using `python-` instead of `python2-` in the dependencies for the 
Python 2 binary RPM [2].
Check Requires and BuildRequires of the package, and correct those which 
use `python-` prefixed names instead of `python2-`.


Note: the list is generated, so if you see a package that should not be 
on the list, please let me know.


[0] https://fedoraproject.org/wiki/FinalizingFedoraSwitchtoPython3
[1] 
https://fedoraproject.org/wiki/Packaging:Naming?rd=Packaging:NamingGuidelines#Python2_binary_package_naming

[2] https://fedoraproject.org/wiki/Packaging:Python#Dependencies
[3] 
https://python-rpm-porting.readthedocs.io/en/latest/naming-scheme.html#what-needs-to-be-changed


[4] Maintainers by Package
2ping - cicku, fale
ATpy - sergiopr
BEDTools - verdurin
CheMPS2 - talcite
LogService - hguemar
NFStest - steved
NLopt - besser82
OpenColorIO - hobbes1069
OpenIPMI - branto, jridky, pknirsch
OpenImageIO - hobbes1069
ProDy - sagitter
PyGreSQL - praiskup
PyMunin - mrunge
PyPAM - msuchy, tmraz
PyQt4 - rdieter, than
PyQuante - jussilehtola
PyRTF - jamatos
PySBIG - mmahut
PyXB - marcusk
PyYAML - jeckersb
Pyrex - marcusk
PythonCard - mmahut
R2spec - pingou
Spawning - kevin
VMDKstream - clalance, imcleod
WALinuxAgent - cottsay
abiword - herrold, uwog
abrt - abrt-team, jfilak, mhabrnal
adapt - pbrobinson
afflib - kwizart
ahkab - sophiekovalevsky
ambari - coolsvap, moceap, pmackinn
ansible - kevin
antlr - gil, mjakubicek
apiextractor - jreznik, rdieter, than
apt - athimm, moceap
aqsis - kwizart
arandr - humaton, mzatko
arm-none-eabi-gdb - mzatko
asymptote - spot
atomic-reactor - bkabrda, maxamillion, ttomecek, twaugh
audit - sgrubb
automake - praiskup
autotest-framework - cleber, dzickus, mkrizek
autowrap - sagitter
avahi - lennart
aws - landgraf, rombobeorn
b43-tools - linville, peter
bacula2 - limb
beakerlib - afri, sopos
beecrypt - robert
belier - louizatakk
bibus - alexlan, ankursinha
bitfrost - cjb, dsd, pbrobinson
bitten - timn
blosc - tnorth, zbyszek
blueproximity - jsteffan
bmpanel2 - mmoeller
boost - denisarnaud, jwakely, pmachata
brial - pcpa
brltty - limb
bro - fab, jtaylor, mildew
bugzilla - eseyman, itamarjp, lbazan
bzr - hno, vvitek
bzr-fastimport - dcallagh
capstone - drago01
carbonate - piotrp
cashe - james
castxml - ellert
catfish - mtasaka
ceph - branto, kkeithle, ktdreyer, siddharths
certmaster - alikins, ssalevan
chameleon - jortel
cjdns - sdgathman
clang - airlied, jvcelak, tstellar
claws-mail - awjb
clearsilver - limb
cloud-utils - juergh, larsks
cloudtoserver - kushal
clufter - jpokorny
clusterPy - volter
cmusphinx3 - jjames
comedilib - mmahut
comix - mtasaka
condor - bcotton, matt
congruity - adamwill
cracklib - tmraz
createrepo_c - tmlcoch
criu - adrian, avagin
crossfire - limb
crudini - apevec, jruzicka, pbrady
cryptominisat4 - jjames
cryptsetup - agk, mbroz
csmock - kdudka
csound - pbrobinson
cups - jpopelka, twaugh, zdohnal
cups-filters - jpopelka, twaugh, zdohnal
cwiid - bogado
cycle - limb
cyphesis - bruno, mpreisle
darkclient - kushal
davix - aalvarez, adev
dbus-python - besser82, rdieter
denyhosts - tibbs
dex-autostart - thofmann
distcc - limb
dmlite - aalvarez, adev, rocha
dnf-plugins-core - ignatenkobrain, jsilhan
dnsperf - pwouters
docco - jamielinux, patches
dogtail - cmeadors, jreznik, vhumpa
dot2tex - radford
dpdk - linville, nhorman
dracut-modules-olpc - cjb, dsd, pbrobinson
dreampie - cicku, williamjmorenor
driconf - kevin
drobo-utils - grover, imntreal
dwgrep - mjw, pmachata
dynafed - andreamanzi
ecryptfs-utils - mhlavink, sandeen
edk2 - bonzini, crobinso
emacs-pymacs - sochotni
eog - kalev
epson-inkjet-printer-escpr - jussilehtola
epydoc - athmane, thias
espresso - junghans, tomspur
etckeeper - thm
fabric - athmane
farstream02 - bpepple, uraeus
fastd - heffer
fedfs-utils - iankent, jlayton, mrchuck, steved
fedora-motd - rtnpro
fedrepos - mdbooth
fedwatch - sochotni
fetchmail - vcrhonek
file - jkaluza, kdudka
firewalld - twoerner
firmware-tools - mebrown, praveenp
fityk - nonamedotc, wojdyr
flexiport - rmattes
freeradius - jdennis, nkondras
fts-rest - aalvarez, simonm
func - alikins, robert, ssalevan
fuse-python - peter
fusionforge - beuc
future - sagitter
gadget - erikos
galternatives - deji, jcapik
gamin - pbrobinson
gammaray - dvratil
ganglia - georgiou, ggillies, noodles, terjeros
garmin-sync -