Profile cover photo
Profile photo
Zygmunt Krynicki
Free software hacker. Professional Go, Python and C developer. Amateur hardware engineer.
Free software hacker. Professional Go, Python and C developer. Amateur hardware engineer.

Zygmunt's posts

Post has attachment
New post: snap store issues

Post has attachment

Post has attachment

Post has attachment

So having a bad flu day and blowing my nose every other minute I was thinking about working on something lighter.

I'm going to focus on documenting topics on the snapd wiki. If there's something that you'd like to see there, please give me shout, I'll gladly do it.

My plan is to refresh my old blog post about the snap execution environment and document it thoroughly (and keep it up-to-date on the wiki). After that I'm open to suggestions.

I'm working on polishing the Python 3.4 snap.

The last remaining part before I'll be publishing it is support for pip. The read-only nature of snappy makes it interesting to model something like python. While the run-time and the "compiler" part of python fits snaps perfectly, the pip-package-manager part needs some integration.

Ideally python would understand the snap file-system hierarchy and do the right thing. With some hand-holding (no patches yet) I can get to the point where pip works but I'm still struggling with packages that need to add new executable scripts.

I have a few ideas and I'll keep you in the loop. At the very worst I'll release an alpha version for evaluation that has pip disabled (I'd rather not).

Oh, after some more cleanups the size of the entire working Python installation (download and run-time size, thanks to how snaps are engineered) is just around 7MB.

I'm open for questions if you have any.

In case you were wondering. I'm re-building all the python, ruby, lua snaps with snapcraft. Doing this as a background tasks but I expect at least some of them to be ready by my evening.

I'm heading to bed now but I have working Python 2.7.13, Python 3.4.6, Python 3.6.0, Ruby 2.4.0 and Lua 5.3.3, all as snaps.

Before those can be published we should have a discussion with upstream developers but I think this shows the power of "confinement: classic" snaps as a way to deliver binary software.

There are going to be plenty of details to polish (e.g. have pip install stuff to $SNAP_DATA or $SNAP_USER_DATA) but I think it's all achievable. I'm looking forward to the future where application publishing on Linux is just as easy as it is on other platforms (and I'm not talking about source taballs).

EDIT: Just to tease how fantastic and small those snaps are:

zyga@xenial-server:~$ ls lha *.snap
-rw-r--r- 1 zyga zyga 176K Jan 30 00:28 lua_5.3.3_amd64.snap
rw-r--r- 1 zyga zyga 7.4M Jan 30 00:28 python2_2.7.13_amd64.snap
rw-r--r- 1 zyga zyga 9.9M Jan 29 23:30 python3_3.4.6_amd64.snap
rw-r--r- 1 zyga zyga 11M Jan 30 00:30 python3_3.6.0_amd64.snap
rw-r--r- 1 zyga zyga 9.6M Jan 30 00:21 ruby_2.4.0_amd64.snap

I'm building Ruby 2.4.0 as a confinement: classic snap.
Wait while more posts are being loaded