Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Python Packaging in Fedora
Search
Petr Viktorin
August 02, 2016
Technology
0
430
Python Packaging in Fedora
For Flock (Fedora contributors' conference) in Krakow
Petr Viktorin
August 02, 2016
Tweet
Share
More Decks by Petr Viktorin
See All by Petr Viktorin
Komunitní kurzy
encukou
0
220
Jak postavit slovník z jedniček a nul
encukou
0
660
Python in Fedora
encukou
0
100
Essential Testing Concepts
encukou
0
100
Import Deep Dive
encukou
0
78
Dynamic Time Warping & Synchronizace videí
encukou
0
90
Python 3.4
encukou
0
100
Extending FreeIPA
encukou
0
370
import asyncio
encukou
0
560
Other Decks in Technology
See All in Technology
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
2
120
20251027_findyさん_音声エージェントLT
almondo_event
2
490
CREが作る自己解決サイクルSlackワークフローに組み込んだAIによる社内ヘルプデスク改革 #cre_meetup
bengo4com
0
360
From Natural Language to K8s Operations: The MCP Architecture and Practice of kubectl-ai
appleboy
0
340
JAWS UG AI/ML #32 Amazon BedrockモデルのライフサイクルとEOL対応/How Amazon Bedrock Model Lifecycle Works
quiver
1
110
クラウドとリアルの融合により、製造業はどう変わるのか?〜クラスメソッドの製造業への取組と共に〜
hamadakoji
0
450
QA業務を変える(!?)AIを併用した不具合分析の実践
ma2ri
0
160
激動の時代を爆速リチーミングで乗り越えろ
sansantech
PRO
1
170
Zero Trust DNS でより安全なインターネット アクセス
murachiakira
0
110
知覚とデザイン
rinchoku
1
630
入院医療費算定業務をAIで支援する:包括医療費支払い制度とDPCコーディング (公開版)
hagino3000
0
120
Observability — Extending Into Incident Response
nari_ex
1
570
Featured
See All Featured
YesSQL, Process and Tooling at Scale
rocio
173
15k
For a Future-Friendly Web
brad_frost
180
10k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
132
19k
Context Engineering - Making Every Token Count
addyosmani
8
310
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
Typedesign – Prime Four
hannesfritz
42
2.8k
Designing for Performance
lara
610
69k
The Pragmatic Product Professional
lauravandoore
36
7k
The Cult of Friendly URLs
andyhume
79
6.6k
Bash Introduction
62gerente
615
210k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
10
620
Art, The Web, and Tiny UX
lynnandtonic
303
21k
Transcript
Python Packaging in Fedora Petr Viktorin
[email protected]
Flock, 2016-08-02
None
I. Python 3
Python 1991 Java 1995
Python 1991 Java 1995 Python 3.0 2008 Node.js 2009
Python 1991 Java 1995 Python 3.0 2008 Node.js 2009 Python
3.5 2015
Python 1991 Java 1995 Python 3.0 2008 Node.js 2009 Python
3.5 2015 Python 2 EOL 2020
Python 3 Porting Database http://fedora.portingdb.xyz
None
at least 49,9% of Python software packaged in Fedora supports
Python 3
at least 49,9% of Python software packaged in Fedora supports
Python 3 45,5% has the Py 3 version packaged
Help us port! 3 PYTHON3 PYTHON3 PYTHON http://fedora.portingdb.xyz
None
Fedora infra Desktop toolkits Big non-Python apps
I. Python 3 II. Automating Packaging
A packager should: 1. Make sure SW plays nice 2.
Integrate with rest of system 3. Check licenses, patents, etc.
A packager should: 1. Make sure SW plays nice 2.
Integrate with rest of system 3. Check licenses, patents, etc. 4. Read 50 pages of guidelines 5. Know a weird macro language
%global pypi_name mypkg Name: python -%{pypi_name} Version: 2.4.25.1 Release: 1%{?dist}
License: Python URL: https://github.com /%{pypi_name}/%{pypi_name} Source0: https://pypi.python .org/packages/source/p/%{ pypi_name}/%{pypi_name}-%{version }.tar.gz
%if 0%{?rhel} && 0%{?rhel} <= 6 %{!?__python2: %global \ __python2
/usr/bin/python2} %{!?python2_sitelib: %global \ python2_sitelib %(%{__python2} -c %endif %if 0%{?fedora} > 12 || 0%{?rhel} > %global with_python3 1 %global __python3 python3 %endif
from distutils.core import setup setup( name='mypkg ', version='2.4.25.1', author='Me', url='github.com/me/mypkg/',
packages=['mypkg '], install_requires=['six '], )
Enter pyp2rpm # dnf install /usr/bin/pyp2rpm $ pyp2rpm mypkg
Enter pyp2rpm # dnf install /usr/bin/pyp2rpm $ pyp2rpm mypkg It
might actually work!
We can use pyp2rpm to... Auto-build all of PyPI in
COPR!
We can use pyp2rpm to... Auto-build all of PyPI in
COPR! Why?
We can use pyp2rpm to... Auto-build all of PyPI in
COPR! Why? - Test pyp2rpm
We can use pyp2rpm to... Auto-build all of PyPI in
COPR! Why? - Test pyp2rpm - Run upstream tests
We can use pyp2rpm to... Auto-build all of PyPI in
COPR! Why? - Test pyp2rpm - Run upstream tests - Provide a repository
dnf pip install -r requirements.txt (hypothetical command)
“PyPI” name Fedora pkg pyopencl python3-pyopencl mypy-lang python3-mypy
“PyPI” name Fedora pkg pyopencl python3-pyopencl mypy-lang python3-mypy $ dnf
repoquery --provides python3 -pyopencl ... python3.5dist(pyopencl) = 2015.2 ...
“PyPI” name Fedora pkg pyopencl python3-pyopencl mypy-lang python3-mypy $ dnf
repoquery --provides python3 -pyopencl ... python3.5dist(pyopencl) = 2015.2 ... Live in Fedora 25!
I. Python 3 II. Automating Packaging III. System Python
System Python /usr/libexec/system-python An effort to minimize minimal installs (cloud
images)
Python stdlib by disk size test asyncio email tkinter encodings
distutils unittest pydoc_data ensurepip ctypes lib2to3 idlelib individual modules
System Python libs /usr/libexec/system-python /usr/lib/python3.5/ lib2to3 unittest venv ensurepip pydoc
encodings sqlite3 collections logging distutils html test tkinter turtledemo idlelib system-python-libs python3-libs python3-test python3-tkinter python3 system-python /usr/bin/python3
Possible users: DNF, cloud-init
Possible users: DNF, cloud-init Future: Isolation of system tools?
I. Python 3 II. Automating Packaging III. System Python IV.
Python 3.6
Python 3.6 * Format Strings * Large Speedups * Advanced
class creation tools
Python 3.6 Alpha 1 2016-05-17 Fedora 25 Alpha Freeze 2016-08-09
Python 3.6 Alpha 1 2016-05-17 Fedora 25 Alpha Freeze 2016-08-09
Python 3.6 Beta 1 2016-09-12 Fedora 25 Beta Freeze 2016-09-20
Python 3.6 Alpha 1 2016-05-17 Fedora 25 Alpha Freeze 2016-08-09
Python 3.6 Beta 1 2016-09-12 Fedora 25 Beta Freeze 2016-09-20 Python 3.6 RC 1 2016-12-05 Fedora 25 Final Freeze 2016-10-25
Python 3.6 Alpha 1 2016-05-17 Fedora 25 Alpha Freeze 2016-08-09
Python 3.6 Beta 1 2016-09-12 Fedora 25 Beta Freeze 2016-09-20 Python 3.6 RC 1 2016-12-05 Fedora 25 Final Freeze 2016-10-25 Python 3.6 Final 2016-12-16 Fedora 26 Branches 2016-12-???
I. Python 3 II. Automating Packaging III. System Python IV.
Python 3.6 V. Who's “we”?
python-maint @ Red Hat
python-maint @ Red Hat
python-maint @ Red Hat
python-maint @ Red Hat
python-maint @ Red Hat
python-maint @ Red Hat
Sorry! We'll do better!
We're Python SIG python-devel @lists.fedoraproject.org #fedora-python on Freenode fedora-python on
Github
I. Python 3 II. Automating Packaging III. System Python IV.
Python 3.6 V. Who's “we”?