F29 System Wide Change: Move /usr/bin/python into a separate package
by Jan Kurik
= Proposed System Wide Change: Move /usr/bin/python into a separate package =
https://fedoraproject.org/wiki/Changes/Move_usr_bin_python_into_separate_...
Owner(s):
* Petr Viktorin <python-devel at lists dot fedoraproject dot org>
* Miro Hrončok <churchyard at fedoraproject dot org>
Reflecting the recent changes of
https://www.python.org/dev/peps/pep-0394/ PEP 394 -- ''The "python"
Command on Unix-Like Systems'', we are moving /usr/bin/python from the
python2 package into a separate package called
python-unversioned-command.
python2 will recommend this package.
This means Fedora users will get it automatically with python2, but
they might opt-out and remove it. In Fedora's build system, only
packages explicitly buildrequiring /usr/bin/python will get it.
This change obsoletes "Avoid /usr/bin/python in RPM build" change.
== Detailed description ==
=== Motivation ===
The meaning of the python command is ambiguous: it might mean either
Python 2 or Python 3, depending on context. The upstream
recommendation (PEP 394), which we try to follow in Fedora, is that
users -- not distros, and not sysadmins -- should be in control of the
python command.
Specifically, this means distro-packaged software should use python2
or python3 explicitly. Fedora's Python packaging guidelines have
suggested this since February 2015, and demand it since August 2017.
However, enforcing this guideline (which we will need to actually
allow users to safely change their python command) is problematic.
"Avoid /usr/bin/python in RPM_Build" change didn't work: most of the
packagers didn't change anything and too many packages still use the
python command.
Instead of developing custom hacks, we are now utilizing a more
systematic solution: If your package still needs /usr/bin/python to
build, explicitly BuildRequire it. If your package needs
/usr/bin/python to run, explicitly Require it. (In both cases, try to
use /usr/bin/python2 or /usr/bin/python3 instead if possible.)
We are also expecting some buildsystems (autools, cmake, etc.) to
automatically use /usr/bin/python2 if /usr/bin/python is unavailable,
so the problem might go away more naturally.
=== PEP 394 and how it is mapped to this change ===
Upstream PEP 394 -- The "python" Command on Unix-Like Systems
describes how the python command should behave. In Fedora, that's
/usr/bin/python. The PEP was recently updated to reflect upstream's
evolving views on the situation. Notable new information from the PEP
is:
In controlled environments aimed at expert users, where being explicit
is valued over user experience (for example, in test environments and
package build systems), distributions may choose to not provide the
python command even if python2 is available. (All software in such a
controlled environment must use python3 or python2 rather than python,
which means scripts that deliberately use python need to be modified
for such environments.)
We consider Fedora's build machinery a controlled environments aimed
at expert users.
=== What's changing ===
"Avoid /usr/bin/python in RPM_Build" change is reverted. Packages that
follow its Quick Opt-Out section (i.e. set
PYTHON_DISALLOW_AMBIGUOUS_VERSION) will be fixed by the owners of this
change.
/usr/bin/python remains a symbolic link to /usr/bin/python2. However,
it is moved to a new python-unversioned-command package (technically a
subpackage of python2). python2 package will only recommend
/usr/bin/python.
Packages that need /usr/bin/python to build will need to BuildRequire
it. Packages that need /usr/bin/python to be used by users will need
to Require it. In both cases, the packager should avoid the need and
only fallback to (Build)Requiring /usr/bin/python as a temporary
workaround.
The new package will virtually provide python, ensuring that dnf
install python will make the python command available.
=== Effect on automatic bytecompilation ===
When "No more automagic Python bytecompilation" change is done,
packages that byte-compile files outside of Python directories should
switch to the new behavior described in that change, and should not be
impacted by this change. However, if that change is delayed or
reverted, packagers that rely on the old behavior when byte compiling
files will need to set %__python to python2 or python3 explicitly.
=== Effect on %__python and other ambiguous RPM macros ===
Using ambiguous Python macros (%{__python}, %{python_sitelib}...) is
forbidden and your package will fail to build if you still use those
without redefining %__python. Either switch to explicitly versioned
macros (%{__python2}, %{python2_sitelib}, %{__python3}...) or set
__python to an explicit Python version.
== Scope ==
* Proposal owners:
** Split the packages as described in ''Detailed Description''.
** Fix packages that use PYTHON_DISALLOW_AMBIGUOUS_VERSION to
BuildRequire /usr/bin/python instead.
* Other developers:
** Maintainers of packages that use /usr/bin/python need to switch to
using /usr/bin/python3 or /usr/bin/python2 explicitly (with help from
''Proposal owners'' if needed).
*** While doing that, consider switching your package to Python 3
only, if the Python 2 bits are unused in Fedora. (This is not
necessarily required for this change, however it will make your
packaging job easier.)
*** If that can't be done in a timely manner, fallback to
(Build)Requiring /usr/bin/python as a temporary workaround.
* Release engineering:
** https://pagure.io/releng/issue/7511 #7511
** List of deliverables: N/A (not needed for this Change)
* Policies and guidelines:
** Already existing: "packages in Fedora ... MUST call the proper
executable for the needed python major version directly, either
/usr/bin/python2 or /usr/bin/python3 as appropriate" from
Packaging:Python#Multiple_Python_Runtimes..
* Trademark approval:
N/A (not needed for this Change)
--
Jan Kuřík
JBoss EAP Program Manager
Red Hat Czech s.r.o., Purkynova 99/71, 612 45 Brno, Czech Republic
5 years, 11 months
F29 System Wide Change: The tzdata transition to 'vanguard' format
by Jan Kurik
= Proposed System Wide Change: The tzdata transition to 'vanguard' format =
https://fedoraproject.org/wiki/Changes/TZDATA-VANGUARD
Owner(s):
* Patsy Franklin <pfrankli at redhat dot com>
As of tzdata-2018e, the upstream will now default to using the
'vanguard' data format including negative DST offsets. As a
fall-back, the 'rearguard' data format is still available on F28, F27
and F26.
== Detailed description ==
tzdata-2018e defaults to the 'vanguard' data format. This format
includes the POSIX compliant implementations of negative DST offsets
which have been an issue for both Java and ICU parsers. We plan to
transition to this default format in F29.
== Scope ==
* Proposal owners:
Implement the proposal.
* Other developers:
Developers need to ensure that their packages are able to correctly
parse and/or build with the new tzdata 'vanguard' format.
* Release engineering:
The tzdata maintainer will ensure that the package builds and passes
all tests on F29.
RelEng ticket: https://pagure.io/releng/issue/7510 #7510
* Policies and guidelines:
The policies and guidelines do not need to be updated.
* Trademark approval:
Not needed for this change
--
Jan Kuřík
JBoss EAP Program Manager
Red Hat Czech s.r.o., Purkynova 99/71, 612 45 Brno, Czech Republic
5 years, 11 months
F29 System Wide Change: Perl 5.28
by Jan Kurik
= Proposed System Wide Change: Perl 5.28 =
https://fedoraproject.org/wiki/Changes/perl5.28
Owner(s):
* Jitka Plesníková <jplesnik at redhat dot com>
* Petr Písař <ppisar at redhat dot com>
A new ''perl 5.28'' version brings a lot of changes done over a year
of development. Perl 5.28 will be released 5/28/2018. See
http://search.cpan.org/dist/perl-5.28.0-RC1/pod/perldelta.pod 5.28.0
perldelta for more details about preparing release.
== Detailed description ==
New perl is released every year and updates containing mainly bug
fixes follow during the year. The 5.28.0 version is stable release
this year.
== Scope ==
Every Perl package will be rebuilt in a dedicated ''f29-perl''
build-root against perl 5.28.0 and then if no major problem emerges
the packages will be merged back to ''f29'' build-root.
* Proposal owners:
New perl and all packages requiring perl or a Perl module will be
rebuilt into f29-perl build-root.
* Other developers:
N/A (not a System Wide Change)Owners of packages that fail to rebuild,
mainly perl-sig users, will be asked using Bugzilla to fix or remove
their packages from the distribution.
* Release engineering:
https://pagure.io/releng/issue/7509 #7509
Release engineers will be asked for new f29-perl build-root inheriting
from f29 build-root. After successful finishing the rebuild, they will
be asked to merge f29-perl packages back to f29 build-root.
* Policies and guidelines:
No policies have to be modified to complete this change.
--
Jan Kuřík
JBoss EAP Program Manager
Red Hat Czech s.r.o., Purkynova 99/71, 612 45 Brno, Czech Republic
5 years, 11 months
F29 System Wide Change: Let's Label Our Variants!
by Jan Kurik
= Proposed System Wide Change: Let's Label Our Variants! =
https://fedoraproject.org/wiki/Changes/Label_Our_Variants
Owner(s):
* Matthew Miller <mattdm fedoraproject org>
* Mohan Boddu <mohanboddu fedoraproject org>
Start using the VARIANT and VARIANT_ID fields in /etc/os-release for
Spins, Labs and the base container image rather than just the main
Fedora Editions.
== Detailed description ==
Right now, we use the VARIANT field (and machine-readable VARIANT_ID)
in /etc/os-release) only for the main Fedora Editions (and Fedora
Cloud Base, because of its history as an edition previously). This
means we can't tell the difference between a KDE desktop spin, a
container image, or just a generic netinstall constructed into a
custom system unlike any of our various flavors. Let's start using it
widely.
== Scope ==
* Proposal owners:
Update the fedora-release package with subpackages for the various
non-edition outputs. The "convert-to-edition" script may also be
extended to handle non-editions, but this is not a required part of
this change proposal.
* Other developers:
Maintainers of spins and labs will need to add the appropriate
fedora-release-… subpackage to the appropriate kickstart file or comps
group.
* Release engineering:
Release Engineering owns the fedora-release package.
* List of deliverables:
Workstation and Server deliverables already contain this, and so are
not affected. The KDE Plasma Desktop Spin will be changed. There is no
overall change to the list of deliverables itself.
* Policies and guidelines:
There was a previous decision to only do this for Editions. This
change would update that. We would also update the Spins documentation
to add this as a new step in that pricess.
* Trademark approval:
not needed for this Change
--
Jan Kuřík
JBoss EAP Program Manager
Red Hat Czech s.r.o., Purkynova 99/71, 612 45 Brno, Czech Republic
5 years, 11 months
F29 Self Contained Change: MySQL 8
by Jan Kurik
= Proposed Self Contained Change: MySQL 8 =
https://fedoraproject.org/wiki/Changes/MySQL_8
Owner(s):
* Michal Schorm <mschorm at redhat dot com>
Update of MySQL ( community-mysql package) in Fedora from 5.7 to 8.0 version.
== Detailed description ==
Update of MySQL package in Fedora from 5.7 version to 8.0 version.
== Scope ==
* Proposal owners:
**Release MySQL 8.0.11 to Rawhide (done)
**Check software that requires community-mysql package (done, only
mysql-connector-odbc)
**Gather user input on the changes between mysql 5.7 and 8.0
* Other developers: N/A (not a System Wide Change)
* Release engineering:
https://pagure.io/releng/issue/7486
** List of deliverables: N/A (not a System Wide Change)
* Policies and guidelines: N/A (not a System Wide Change)
* Trademark approval: N/A (not needed for this Change)
--
Jan Kuřík
JBoss EAP Program Manager
Red Hat Czech s.r.o., Purkynova 99/71, 612 45 Brno, Czech Republic
5 years, 11 months