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
440
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
230
Jak postavit slovník z jedniček a nul
encukou
0
690
Python in Fedora
encukou
0
110
Essential Testing Concepts
encukou
0
110
Import Deep Dive
encukou
0
83
Dynamic Time Warping & Synchronizace videí
encukou
0
96
Python 3.4
encukou
0
110
Extending FreeIPA
encukou
0
410
import asyncio
encukou
0
560
Other Decks in Technology
See All in Technology
AWS Lambda durable functions を使って AWS Lambda の15分の壁を超えてみよう
matsuzawatakeshi
0
120
アラフォーおじさん、はじめてre:Inventに行く / A 40-Something Guy’s First re:Invent Adventure
kaminashi
0
210
AWSインフルエンサーへの道 / load of AWS Influencer
whisaiyo
0
250
Claude Codeを使った情報整理術
knishioka
17
11k
Next.js 16の新機能 Cache Components について
sutetotanuki
0
210
re:Invent2025 セッションレポ ~Spec-driven development with Kiro~
nrinetcom
PRO
2
160
Introduction to Sansan Meishi Maker Development Engineer
sansan33
PRO
0
330
「エッジ×分散生成AI」の技術と変わる産業、そしてITの未来
piacerex
0
110
研究開発部メンバーの働き⽅ / Sansan R&D Profile
sansan33
PRO
4
21k
AWS re:Invent 2025 を振り返る
kazzpapa3
2
110
マーケットプレイス版Oracle WebCenter Content For OCI
oracle4engineer
PRO
5
1.5k
Digitization部 紹介資料
sansan33
PRO
1
6.4k
Featured
See All Featured
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
120
ラッコキーワード サービス紹介資料
rakko
0
1.9M
The Curious Case for Waylosing
cassininazir
0
200
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
990
Joys of Absence: A Defence of Solitary Play
codingconduct
1
260
The SEO identity crisis: Don't let AI make you average
varn
0
43
Six Lessons from altMBA
skipperchong
29
4.1k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
4 Signs Your Business is Dying
shpigford
187
22k
Build your cross-platform service in a week with App Engine
jlugia
234
18k
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
27
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
16k
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”?