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
470
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Python Packaging in Fedora
For Flock (Fedora contributors' conference) in Krakow
Petr Viktorin
August 02, 2016
More Decks by Petr Viktorin
See All by Petr Viktorin
Komunitní kurzy
encukou
0
250
Jak postavit slovník z jedniček a nul
encukou
0
740
Python in Fedora
encukou
0
120
Essential Testing Concepts
encukou
0
130
Import Deep Dive
encukou
0
98
Dynamic Time Warping & Synchronizace videí
encukou
0
130
Python 3.4
encukou
0
120
Extending FreeIPA
encukou
0
440
import asyncio
encukou
0
600
Other Decks in Technology
See All in Technology
医療の現場を変革に挑戦した半年間の軌跡 - PythonとAIで現場を変える / From Code to Care
soudai
PRO
1
580
作って理解するCoding Agent 〜フレームワークに頼らないピュア Python での実装〜
takapy
3
1.1k
AI・HPC開発を支えるGPU環境の新しい選択肢 液冷GPUシステム「AquSys」の取り組み
gpuunite_official
0
230
AIに狂うスタートアップが、あえて「人との協働」に全振りした新卒エンジニア研修 / New Graduate Engineer Training at a Startup Accelerating AI Adoption
ohnoeight
0
190
AWS Blocks が楽しい #ゆるWeb札幌
tacck
PRO
0
120
ハッカソンで入賞した話 @ Findy LT
asari194617
0
1.5k
Kiro WebとCloud Sessions
nagisa53
2
160
コーチングの奥義 何もしないテクニック
jinwatanabe
0
150
AI時代のデータ基盤を考える問い
pacocat
0
210
同じWAFが、攻撃の“形”は弾く── 正当な“形”の不正は通す
kuroneko13
0
270
Adding Right-to-Left support to your web application with CSS logical properties — Lessons from Redmine
vividtone
0
170
AI for Science時代を切り開く、政府の次世代HPC戦略の展望
gpuunite_official
0
230
Featured
See All Featured
Done Done
chrislema
186
16k
It's Worth the Effort
3n
188
29k
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
280
HDC tutorial
michielstock
2
810
Unlocking the hidden potential of vector embeddings in international SEO
frankvandijk
0
900
Context Engineering - Making Every Token Count
addyosmani
9
1.1k
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
1
1.8k
Designing for humans not robots
tammielis
254
26k
The Invisible Side of Design
smashingmag
301
52k
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
550
Color Theory Basics | Prateek | Gurzu
gurzu
0
430
SEO for Brand Visibility & Recognition
aleyda
0
4.7k
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”?