09:00:16 #startmeeting Towards an Atomic Workstation 09:00:16 Meeting started Tue Aug 2 09:00:16 2016 UTC. The chair is jdieter. Information about MeetBot at http://wiki.debian.org/MeetBot. 09:00:16 Useful Commands: #action #agreed #halp #info #idea #link #topic. 09:00:16 The meeting name has been set to 'towards_an_atomic_workstation' 09:00:30 #meetingname flock2016 09:00:30 The meeting name has been set to 'flock2016' 09:00:56 So, what's the Fedora workstation? 09:01:00 Christian gave a talk an hour ago about it 09:01:09 Basically, it's a developer workstation 09:01:30 It's a traditional desktop, but slanted towards developers 09:01:40 We use lots of stuff from freedesktop.org 09:01:56 It's not just the graphical environment 09:02:03 Lots of other additional applications 09:02:06 Libreoffice is the big one 09:02:13 Mostly a pretty stock GNOME installation 09:02:18 With some other things 09:02:25 So what do we want to do next? 09:02:45 A lot of what we're doing right now is potentially changing how we distribute applications 09:03:08 You can think of it as a way to sandbox applications 09:03:15 Flatpak is a way of sandboxing and distributing applications 09:03:23 Sandboxing isn't quite there yet 09:03:32 A lot of the sandboxing features aren't finished. They depend on Wayland and cgroups features that are still being worked on 09:03:44 It has a concept of runtimes 09:04:02 A collection of libraries and dependencies which a application needs to run 09:04:15 A collection of libraries and features like Cairo, gstreamers etc. that an application might expect to have available is a runtime 09:04:30 There might be different layers: base, freedesktop, gnome, etc. 09:04:33 We don't anticipate that there will be too many runtimes available 09:04:47 You also have applications that may include some pieces that are traditionally part of the runtime 09:05:02 You can include a library with an applications 09:05:17 Graphical support is ready right now 09:05:19 Such as bundling different versions of software from the runtime or packages that would have reasons not to be in the runtime (such as legal) 09:05:50 Most of the stuff has been backported to F24, so it's pretty usable 09:06:11 Right now, any application has access to anything the user has access to 09:06:49 What FlatPak does is use user-namespaces, cgroups, etc and bind-mounts an empty system to give the application very limited acccess 09:06:53 Flatpak uses kernel namespaces to give applications access to very limited capabilities 09:07:26 We have special interfaces to dbus 09:07:40 Sandboxing isn't quite fully fledged yet 09:07:41 Sandbox isn't fully fleshed yet, but it's coming along. 09:07:51 Using gsettings is complicated and still being worked on 09:08:01 The code doesn't exist in usable form ye 09:08:02 *yet 09:08:21 We will take later about Portals which will give access to things that would normally be prevented. 09:08:23 I'll talk about portals, which is how users get access to the system 09:09:21 Questions about liability if patent-encumbered libraries in a Flatpak 09:09:33 Security updates haven't really been solved yet. 09:09:53 Person who ships the runtime is responsible for maintaining it (e.g. distribution vs the application) 09:10:18 This is a social problem 09:10:50 As an application developer, you can override anything on the system that you need to. It remains to be seen what an acceptable level of overlap is. 09:10:50 You can override system libraries by putting different versions of libraries in your Flatpak 09:11:09 This does somewhat lessen the impact of the distribution as a whole 09:12:06 Flatpak may be safer than a distribution package as they don't have access to everything 09:12:37 The reason for having the runtime as a single blob is to remove the situation where packages updated individually causes other packages to fail. Things will be tested and updated as a unit. 09:13:17 We're not sure what updates will look like. 09:13:23 We hope they'll be more stable 09:13:39 #topic An ostree Fedora 09:14:14 An ostree workstation uses ostree for filesystem versioning 09:14:16 An ostree workstation is going to use ostree for producing versioned, bootable filesystem trs 09:14:18 *trees 09:14:26 It's like git for a full filesystem 09:14:53 rpm-ostree takes RPMs and puts them into an ostree repository 09:14:59 Something that's useful from the Fedora side is rpm-ostree, which takes packages from the distribution and puts them into the repo 09:15:40 THis is done on the server 09:16:13 THe filesystem is mostly read-only 09:16:32 The RPM database is read-only 09:17:00 You can use package layering to inject whatever packages you want into your local system (but not on the server side) 09:17:00 There's package layering support to add things on top of rpm-ostree 09:17:11 Q: Why would you need the RPM database 09:17:13 Q: Why would you need an RPM database? 09:17:25 A: Lots of things in Fedora expect it 09:17:26 A: Many things in Fedora require the database. 09:17:40 Can get changelogs 09:17:49 Lots of enterprises use the RPM database for inventory 09:17:57 And it's a well-known API 09:18:38 Will be composed from ostree for base OS 09:18:47 We think that you're going to be using flatpaks for applications in the future 09:19:23 Users get to test applications without affecting rest of OS 09:19:53 This can be tested in Fedora 24 09:20:09 It *doesn't* work in Fedora 24 09:20:15 But we're planning to backport it 09:20:18 * from audience 09:20:55 #topics improvements over traditional package management 09:21:04 #topic #meetingname flock2016 09:21:26 #topic improvements over traditional package management 09:22:03 The first advantage is that the whole update is done at once 09:22:18 Compose is done on the server, the updates/rollback on the client 09:23:05 Updates only happen on reboot 09:23:47 From a developer's point of view, it's really good 09:24:09 Currently constrained by distributions for which version of application you use 09:24:39 With this, you can get a newer application into user's hands much easier 09:24:50 Or get users to try development version 09:25:35 If you ever want to use Flatpak to bundle an application, it's actually pretty easy 09:25:53 Some small changes, but it's not very difficult 09:26:06 There's a trust model as well 09:26:14 Flatpak uses GPG signatures in repositories 09:26:48 Not sure how it will scale 09:27:35 If you want to make sure users are using *your* version of the application, Flatpak allows you to do that 09:27:49 Helps with QA 09:28:20 #topic rpm-ostree basics 09:28:30 I'm going to throw some random commands on the screen 09:28:53 https://pagure.io/workstation-ostree-config 09:28:58 This is a configuration I've put up 09:29:11 It's basically the workstation package set 09:29:17 Mostly everything works 09:29:54 You can also convert an existing filesystem to use ostree 09:30:05 There's a list of commands 09:30:23 It's ugly at the moment, but we hope people will be using an installer in the future 09:30:37 There are quite a few ways to create an install image 09:31:06 rpm-ostree-toolbox is a set of scripts on top of rpm-ostree which is on top of ostree 09:31:31 Koji doesn't use rpm-ostree-toolbox. It uses lorax 09:32:17 It's not really clear which method we're going to actually use 09:32:37 We want to keep anaconda, but there might be some things we don't want in it 09:32:47 #topic Current weak points in flatpak 09:33:01 Some applications are available as Flatpak, most are not 09:33:10 It's only been available since F24 09:33:26 I think the number of bundles will continue to increase 09:33:41 GNOME is doing continuous integration for testing 09:34:06 A portal sits between the sandbox and the host system 09:34:15 And allows you to poke holes in the sandbox 09:34:28 For instance, get access to webcams, joysticks, etc. 09:34:53 There's a lot of development, but it's not ready yet 09:35:03 File choosers are ready now 09:35:13 I think an audio portal is ready, so you can output sounds 09:35:40 Luckily mobile platforms have already blazed the trail for sensible defaults 09:36:01 The kernel sandboxing features haven't been heavily tested 09:36:15 Only a month ago, a vulnerability was found there 09:36:39 Depends on systemd -user sessions, so it's not available in RHEL 7 09:37:56 #topic Problems with an ostree Workstation 09:38:16 Alternatives don't work 09:38:33 We'll need to come up with new ways of doing those things 09:38:51 Packaging layering doesn't run %post scripts 09:38:57 Other limitations 09:39:10 Some people won't like needing to reboot for a new system. 09:39:43 SELinux updates cause breakages on a regular basis 09:39:59 There will be plenty more surprises, so we need more users and testers 09:40:15 Patrick will give a talk tomorrow about using it on his home system. 09:40:32 #topic Problems with creating ostree artifacts in Fedora 09:40:45 Koji doesn't yet know how to produce flatpak bundles 09:40:57 There isn't yet an easy way to create an ostree installer 09:41:42 rpm-ostree doesn't use comps as input for the package manifest 09:41:55 #topic Further resources 09:42:15 ostree: https://github.com/ostreedev/ostree 09:42:23 flatpak: http://flatpak.org 09:42:42 IRC: #fedora-workstation on freenode, #gnome-os on irc.gnome.org 09:43:06 Mailing List: https://lists.fedoraproject.org/archives/list/desktop@lists.fedoraproject.org/ 09:43:25 #topic Questions 09:44:59 There are plans to create Flatpak bundles out of rpms. 09:45:41 The idea is to give Koji the ability to create a Flatpak out of a spec file 11:29:47 michalrud: Error: Can't start another meeting, one is in progress. 11:30:01 #endmeeting 11:30:09 michalrud: Error: Can't start another meeting, one is in progress. 11:32:01 #endmeeting 11:33:19 #topic 11:36:48 #endmeeting