The long discussions upstream regarding the default behaviour of Python's
os.urandom() API in Python 3.6 have come to an end, with Guido opting to
make os.urandom() block implicitly waiting for the system RNG to be ready,
even on Linux (where /dev/urandom doesn't do that).
While I can see his point from a cross-platform language runtime design
perspective, I'm still not sure it's the right answer for the Fedora system
Python, as it doesn't play nice with ABRT, and goes against Ted T'so's
decision to keep /dev/urandom non-blocking at the kernel level (risking
confusion for folks that are Linux developers & operators first, and
If "os.urandom() was called before system RNG is ready" throws an uncaught
BlockingIOError, then we'll get a nice ABRT-friendly Python stack trace for
people to debug (and perhaps figure out their VM entropy pool isn't being
seeded properly, or their ARM hardware design needs a better source of
entropy). By contrast, if it just blocks, then folks will be faced with a
system hang, which they'll need to trace back to CPython being blocked on a
kernel getrandom() call, and then infer from that that the system RNG isn't
ready (for whatever reason), and they should probably do something about
Patching this behaviour should be relatively straightforward - Python 3.5
currently makes this call in non-blocking mode and falls back to reading
/dev/urandom directly in that case, so we'd just be forward porting the
same logic to 3.6 and raising an exception instead of falling back to the
Accordingly, what I propose we do is as follows:
1. Raise the concern in the F26 system-wide change proposal for migrating
to Python 3.6
2. Apply the patch when the 3.6 beta releases are added to Fedora Rawhide
3. Decide whether or not to keep the patch based on ABRT results and other
feedback on the Rawhide builds.
Note that if the feedback on Rawhide shows that the change is helping
people to find and diagnose VMs and hardware with improperly seeded entropy
pools, that's a *good* thing: this proposed change is replacing Python
3.5's "/dev/urandom and os.urandom() may silently return statistically
less-than-fully-random random numbers if the kernel entropy pool isn't
seeded properly" with "os.urandom() will fail noisily in those cases, so
you can either switch to the random module, or fix your entropy pool
Nick Coghlan | ncoghlan(a)gmail.com | Brisbane, Australia
CommOps is currently working on the Python SIG On-Boarding ticket  and one of the tasks we have identified is re-writing the Python SIG wiki page to make it more beginner-friendly. I was assigned with this particular task which is now complete  . We received some feedback from mhroncok today during the CommOps meeting and following points were discussed:
1. Splitting Python SIG in two FAS groups:
1.1 *python-sig* for newcomers and interested members who hang out and help with Python on Fedora
1.2 *python-packagers* for proven members of the community / packagers who will also receive security-related bugs. Promising members from *python-sig* group can be promoted to *python-packagers* given that they have contributed to the package's git.
2. Python Features section on the wiki page needs some love.
3. Targeting specific information for newcomers to include in their self-introductions that would be helpful for SIG members to know where someone fits in the Python community and what their expertise is.
We would like to hear your feedback on the draft and also on the aforementioned points. Everyone is welcome to leave a comment on the ticket.
Dhanesh B. Sabane
I came across a need for python34 on epel6. I did not see any BZ for it.
Are there significant issues with packaging python34 for epel6? or just
nobody wanted to do it yet?
P.S Thank you for python34 on epel7. worked like a charm.
P.P.S. I realize rh-python34 is available on RHSCL, but it didn't seem to
support "python3" in scripts...
this is a heads-up about the pytest update to version 3.0.3 that just
A number of incompatible changes were made in 3.0.0 compared to 2.9.2.
See http://doc.pytest.org/en/latest/changelog.html for the full list of
changes and new features.
If you got this email directly, then your package (SRPM) depends on
pytest. Please check, whether it builds and works with the new pytest
release. This especially holds for the pytest plugins, some of which
definitively need to be updated to support pytest 3.0.
Here's the list of packages that (according to dnf repoquery)
build-depend on pytest:
-------- Forwarded Message --------
Subject: [fpc] #650: Suggested Change for Python Guidelines about
Alternate Python Interpreters
Date: Fri, 30 Sep 2016 10:47:07 -0000
From: fpc <trac(a)fedorahosted.org>
#650: Suggested Change for Python Guidelines about Alternate Python
Reporter: churchyard | Owner:
Status: new | Priority: normal
Component: Guideline Draft | Keywords:
Blocked By: | Blocking:
== Alternate Python versions ==
There are alternate Python versions packaged in Fedora, such as python26,
python33, python34, python35 and possibly more in the future.
No package shall ever ''BuildRequire'' or ''Require'' those packages (or
their ''Provides''), as those packages are only intended for developers
for testing purposes and may have security issues. Those packages may only
be ''Recommended'' or ''Suggested'' by tools intended for testing Python
code on various interpreters, such as python-tox.
Ticket URL: <https://fedorahosted.org/fpc/ticket/650>
Fedora Packages Collection Task Tracking
Hi everybody, I would need to make a review swap. My review request is
python-django-jsonfield - A reusable Django field that allows you to
store validated JSON in your model
Today I fixed all the problems and runned fedora-review to see if
there was any warning. It seemed that everything was fine.
Thank you and have a nice day
I just packaged and built hddfancontrol (
https://github.com/desbma/hddfancontrol) for Fedora, which is written in
I'd like to get this built for EPEL-- the machine that I want to run it on
is actually a CentOS 7 box. However, there's a problem: it depends on
python-daemon, which only gained python3 support in version 2.0 The EPEL
package provides version 1.6.
So, obviously I can build this in a Copr if I really want, alongside an
updated python-daemon package. However, there is a fork of python-daemon
1.x, python-daemon-3K (https://pypi.python.org/pypi/python-daemon-3K/1.5.8),
that supports Python 3. Upstream hddfancontrol actually depends on this
version of python-daemon, so for Fedora I had to patch it to use
python-daemon 2.0 instead.
So perhaps it would make sense to package python-daemon-3K just for EPEL
and have it provide python3*-daemon? Is that a reasonable course of action
here? Any other suggestions besides just using Copr?
Thanks in advance for any guidance,
Hi, I have a question about Python applications and web applications.
I remember (but I am not 100% sure) that I have been told that if the
application / web application runs on Fedora, the packager will just
have to make the Python3 version and call it python-foo. No Python 2
version has to be built.
On the opposite site, for EPEL <= 7, Python 2 is the only choice.
Am I right or not?
Have a nice day
I'm currently writing a PEP titled "Distributing a Subset of the
Standard Library" to standardize and hopefully improve the behavior of
Python without the its full standard library. This is relevant to
Fedora, as we exclude several standard library modules into separate
optional packages (e.g. python3-tkinter).
I have a draft of the first two sections: Motivation and Specification.
The source can be found here: https://github.com/fedora-python/pep-drafts
All the best,