Lock in $30 Savings on PRO—Offer Ends Soon! ⏳
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
370
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
190
Jak postavit slovník z jedniček a nul
encukou
0
520
Python in Fedora
encukou
0
83
Essential Testing Concepts
encukou
0
90
Import Deep Dive
encukou
0
54
Dynamic Time Warping & Synchronizace videí
encukou
0
73
Python 3.4
encukou
0
91
Extending FreeIPA
encukou
0
330
import asyncio
encukou
0
500
Other Decks in Technology
See All in Technology
スパイクアクセス対策としての pitchfork 導入
riseshia
0
200
2024 眼科AIコンテスト手法解説スライド 第5回日本眼科AI学会総会
minamikoyasuganka
0
120
ファインディの4年にわたる技術的負債の返済 / Repaying 4 Years of Technical Debt at Findy
ma3tk
7
3.8k
セキュリティ系アップデート全体像と AWS Organizations 新ポリシー「宣言型ポリシー」を紹介 / reGrowth 2024 Security
masahirokawahara
0
270
Amazon Bedrock Multi-Agent Collaboration Workshop の紹介 - ワークショップでAIエージェントを学ぼう
nasuvitz
3
350
Advancing the 3D Geospatial Ecosystem in Japan via Global Collaborations
osgeojp
0
190
Empowering Customer Decisions with Elasticsearch: From Search to Answer Generation
hinatades
PRO
0
300
ミスが許されない領域にAIを溶け込ませる プロダクトマネジメントの裏側
t01062sy
8
8.6k
ABEMA スマートテレビアプリケーションのパフォーマンス改善 〜業界トップクラスを目指して〜 / Performance Improvements on ABEMA Smart TV App
nodaguti
0
160
EthernetベースのGPUクラスタ導入による学びと展望
lycorptech_jp
PRO
0
600
2024/12/05 AITuber本著者によるAIキャラクター入門 - AITuberの基礎からソフトウェア設計、失敗談まで
sr2mg4
2
590
B10-ひと目でわかる(といいなぁ)Microsoft Purview
seafay
PRO
0
540
Featured
See All Featured
Agile that works and the tools we love
rasmusluckow
328
21k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
191
16k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
365
25k
Testing 201, or: Great Expectations
jmmastey
40
7.1k
The Invisible Side of Design
smashingmag
298
50k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
47
5.1k
Put a Button on it: Removing Barriers to Going Fast.
kastner
59
3.6k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
280
13k
Optimising Largest Contentful Paint
csswizardry
33
3k
jQuery: Nuts, Bolts and Bling
dougneiner
61
7.5k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
229
52k
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”?