 Okay, it's something it's time for Alice to talk about package in KV Bradley KV because it's All right, okay, so well first of all let me introduce myself a little bit For those who just know that I am the guy who talks about the slim book. My name is Speak up Yeah, if you cannot hear me just wave like that. I will take it as a sign My name is Alice Paul. I come from Barcelona and I've been developing KV for for a while now actually this February It's ten years I work for Blue Systems where we do KD stuff and Well other things as well, but mostly KD KD software and Things around KD these trolls and so on and I'm also part of the KTV board if anybody has a question about KTV things we can discuss them later outside if you're interested and One of the things I've been working on on my free time because I also do KD on my free time like my life is about Katie nowadays is Flatback and snappy tooling and things and That's what I wanted to talk about today. So before getting into the Into the subject Head start I wanted to talk about a bit the motivation like why would KD be interested in These systems, maybe it's something obvious. Maybe it's not so before I say anything Who thinks here that it's obvious that Katie should be doing? what Container stuff Okay, so for the record, it's about 20% of the room We've been doing software in KD for 20 years now and In KD we have a vocation for The end user what we do in KD is we make software so that people will be using them on their laptops And we'll be using them or their phones on some occasions and and so on Um Historically we've done that through mostly through the distribution kind of system where we basically publish Turbo file with full of text files most of them well C++ source code but not exclusively of course and Images and a lot of the stuff and then there's other people who build it those That's only for Linux. In fact in KD we do other things as well in KD we have some of our software works on Windows some of our software works on OS X and on Android and In some occasions some even more marginal architectures and And we've done all of that work because or One of the important things for us is to make free software for people to use in their daily lives and to be able to to enjoy the tools and From my point of view, which is not a widely shared one We've had a problem there which has been that sometimes our users haven't had the The our latest developments and this has been a bad thing this has been a bad thing because Whenever we release a software we consider that stable right and if there's a problem with that software What we do is we fix it and we make another release if the users are not getting this new release They are these users are what handicapped on on on our software and It's really frustrating for for our developers to not be able to fix the issues and that's that that's something that This these systems try to solve so I was telling me now that he's not super sure About what these systems do so I will try to summarize it a little bit Both flatback and snappy are well essentially very similar They do have some differences, but in general what the opportunity they offer is to be able to distribute Applications like compiled applications that people will be able to use both of them offered the possibility to execute those applications in a sandbox environment which improves the the security and facilities for for the user to to adopt those systems and or those applications and Well, that's more or less the idea Is there somebody who still thinks he doesn't understand what they do I know my Definition was not great, but Well if there's doubts I can try harder Well The difference is that they're developed by different people at different moments in their lives, so well While they were trying to solve the same problem somehow. Well, they had different priorities at their moments and different things From a very high level point of view, I would say that flatback is far more focused to desktop applications that's Difference your difference is that the model of this distribution snappy has a centralized repository by like by Canonical or Ubuntu, it's called store dot Ubuntu dot com and you will fetch from there Flatback expects everyone to have their own repositories or at least it has been like that for a while They also have thoughts of centralizing it Another very interesting thing from us that we're looking at both is that they are kind of converging into doing the same things like one started from One end and the other started from the other and they were both very convinced But then you see how they start to Converts and go the similar Directions, I think it's it's important to understand when talking about this is that these technologies are not super mature They're ready to be used and and they do things like we will see hands-on how how it's it's working today already but that doesn't mean that in One two years, there will be exactly the same as they are right now already Flatback for example, they had an LTS release Some some weeks ago But I am confident that we will see still some development and improving on the on the platforms together But yeah, well, that's more or less What I wanted to say so in general for us is to have the possibility to like when we have a new release of the application to be able to Put it on on on our user hands one one example that that we use to explain this in K develop is that Many of our users for example Our own universities universities the systems over there are managed by system administrators and One thing I've always heard from these kind of people is that they tell us well We're using these these software from five to ten years ago, which I understand it's it makes sense for for Well these systems to use Very stable basis or well, I wouldn't call them stable, but well, it's the Common mind share nowadays that all software means table, right? but For us when we make a new release with new features We want to tell these people well use the new thing we are doing right because we actually make fixes And we actually work on new useful features, but if these people they cannot use this software then Well, we still have some slightly unhappy users that We won't be able to to make happy up until five years in the future when the sysad means decide to brawl new versions of everything and when they do they will do it on All software at that point and it makes sense like for kernels it makes sense for even desktop environments possibly maybe Actually, I don't really think so, but maybe But it doesn't make sense for K develop, right? It doesn't make sense for Kate. It doesn't make sense for LibreOffice I would say if the developers say this release is stable then this release is a stable one and If somebody disagrees we can have a conversation on the question rounds later, I think it will be interesting But ask us Katie. What have we done? So how does that materialize? I guess that if you asked a known person They will tell you well, we've developed most of flatback Together with breath hat so but that will be their answer. We haven't developed flatback. We haven't developed a snap Although some of our developers will have patches on either platform But what we have done is we start to be on both platforms because we also see that there's none of them That is 100% what we want or that we think that Well, we all will have users on both platforms right so we need to be on both in any case So it's still not up to us to decide what Where to be So we've mostly been packaging applications that doesn't mean it's been exclusively applications, but it's been mostly applications applications is so If you are on wound to normal unity, you will be able to install Kate on on it And it will make sense if you're using Fedora, you will be able to also use Kate on it and The one coming from us, which is the one we are Well on top of So now I will go through All aspects of both and with what we've done on it I will start with how would you install applications then I will go through how to build applications Katie applications on those platforms, and then I will show you how we are integrating those platforms into our software center I hope that's interesting for you. I think it's really cool, but then I've done most of the work. So I'm not really representative How do in to install a snap well, there's two things that you want to install And Katie with we have this thing which is our frameworks We also all of our applications rely on cute, which is a fairly big package. So we needed to At least share of one of those Many of the complaints that I hear whenever somebody talks to me about bundled applications is how Every application is is well packaging all of all of the libraries and Well, it's certainly something we didn't want We don't want every Katie maintainer to have to maintain the Compilations of all cute and of all Katie frameworks. That's definitely something crazy And of course every time somebody downloads an application We don't want them to download all of cute and all of Katie frameworks because that's well Tense to hundreds of megabytes. That's not acceptable But then for us we consider it's acceptable to have a big package Which would be the frameworks package which has all of cute it has all of the Katie frameworks and then have Tense to hundreds of smaller applications To that you can download and enjoy and then have them all sharing this this big framework's package so If you want to read more about that there's Harald's block which explains a bit how it's installed Do we want to install our application? And the same for like if you have a dependency on 5.8 Like it is a version or is it like Well general whenever there's a new version Yes, the question is Do we have to have installed many frameworks packages all the same time and I would say no no well in both in cute and Katie frameworks we We offer background ebi compatibility So any newer package would would work with an older one which shouldn't be a problem for us There's of course the possibility to do it. It's not something. We're very interested actually Our interest is that people only has this one and to have to maintain this one, right? so and We don't want to have to maintain different versions of of frameworks or anything like that like Have to review it when SSL changes or whatever So yeah, that's one thing And then to build those maps I will go through More or less what the manifest file looks like I will try to go very fast because I don't think it's super interesting but I still want to to look into it first I want to show you the repository or I've lost the mouse the repository we have for Manifest files so the idea is that while Not all of the applications are here because in KD. We have more than three those three we want Application maintainers to maintain their manifest file somehow So that they get to decide when they want a new dependency or they don't want it They get to modify it and have the application compile like that We are still beginning with we're first starting and actually what we're doing nowadays is Using the neon packaging for creating the snaps, which is basically Magic how I worked on and it allows us to have virtually any KD application available Like right now not in some months, but now which is something we welcome So that's more or less how it works So on the manifest file what we specify is Well names and how we want the application to be confined So the information we have on the manifest is more or less the information that Snap the snap system will have of our application when it once it's running, right? So there's name version summary is for because snap is also at the moment System snappy uses for for listing applications and showing them on a software center also We need to tell it what kind of things our snap will be doing to communicate with the external world, right? This is those plugs If I say something really wrong, tell me I am not an expert but the idea is that You request these plugs and then the system provides you with the other things. So it's a modular system, but there's snap Developers over here. So what you can find them and then ask them these questions Also, Harrell will be able to answer you these questions better, but more or less here. The idea is that Here for example, we're saying we need unity seven and it says here notifications Well, what Harrell meant when he brought that is that you need to have somebody listening to you on that end So when you things Well, these notifications happen on the on the system side, right? because if it's confined and Nobody gets to listen to your application then you can send notifications, but they don't want show on on the on the system, right? and then That's exposing the KD frameworks package on So when our application is compiled is using the the shared frameworks thing on the On the build time Well, no, we want distribute unity with every KD application It's just the name that they used for for naming some interfaces and Think about it as a permission system You're basically requesting permission to talk to unity seven. That's what this line is basically saying What it's really doing is opening up a debus interface So Harrell suggested for the microphone that it's you can think of it as a permission system genuine question I don't see that here So there's this part which Harrell can you explain it? You will do it better come here And to quickly answer the question the way you would do it right now is probably through a different package name so you You've seen how the Thing is called kitty frameworks dash five right so if you wanted a version it would be dash five point six Right now. I don't think you can actually look it on versions There is no way not right now anyway So you would have to do this way through through the separate package, but beyond that there's no way Well, essentially the idea would be that you will always have the latest frameworks version, right? What's the what's the point of compiling against an older version? Yeah, but if you see it failing then you will change your channel into a number one and then it should work There's another question I think you should really ask canonical people to give you a snappy presentation I Think it would be great Well for what's it worth. I'm not a flatback expert either so Maybe this will be a horrible presentation Anyways What we do on on flat back you will see it's it's fairly similar Like I said on on snappy the the repositories are centralized That's why you just install things here. We need to add the repositories with with things as well What we see here is that we are adding a KD remote then adding installing the platform file from it and then You add another remote which is the repository we have for applications And then we install an application which in this case is ocula Yeah, we have a wiki you can look at Wow and Well, you will see all of the information there so As as you can see here, we have more or less the same structure we had on on snap We have the the platform with all of cute and KD frameworks and some integration packages And then we have the application elsewhere with only the what the application itself and other libraries that will not be on the on the platform like Ocula in this case. It has poplar, which is the library. They used to render PDF files and so on so Also flatback has a technology to talk to the outside Beyond the similar system that Snap has with the with the plugs It also has the portals, which basically are standard interfaces that are present on flatback as a platform so that you can request things So for example, the normal Open file dialogue you will instead of implementing it inside of the application you and requests for full file system access what you do is you just make a flatback call to the flatback Portal and then product will do the file navigation with all of the Privileges available and then give you the file somehow and Well, we do have some implementation of it You can look at this blog later and you will see what's what and then Well, the common to build an application is this one in in in flatback You need to install the SDK, which is basically the header libraries that are required and while some compiler stuff and Then run this beautiful line that didn't fit on the screen This is what Manifest file looks like for flatback where you basically what you say, which is your runtime which are the things you need from the outside and then the libraries you might need and then the application and Then you compile it now. It might be a good moment to look at an application opened on those platforms Let's let's see if I can do it without Without messing up so much So we can So the Applications repository we have for flatback is actually quite new. I uploaded it for the first time on Thursday But we've been working on the applications for a while these are the applications we have packets nowadays We can install one what we need to tell it the Repository and now of course you need to install it over it's already installed. You can believe it works. I Didn't make flatback though and that's ocular being run in flatback This is not running the The the portals yet, it's just Requesting the access to the full file system, but then you can see if we go up here There is an app directory which is actually where the application is mounted So this is not the root file system of my system. It's just the mounted system on on on flatback On snappy Let's see what snaps I have installed because we don't have a lot of time We can run scumbium who doesn't love scumbium boom oops Nanos gonna work Oh, yeah, there it is Yeah, no, that's not super I should have a KD application which one K blocks K blocks Sudo, right? So the snap Insulkey blocks. This is another application single game and then I could can play here. It's awesome now we can Then We can look at the software center integration We look first that discover because it's the one I did. I will open it with just the snap back end because well It's a bit easier. I would could have installed the application now. Which one which application we have as well. We have ocula ocula Ocula We get to open it install And we wait We don't have progress. That's great Well, while it insults We can because we don't have a lot of time. We can look at the video Jan from Red Hat did with the integration for on flatback for discover for flatback You can see it works. It's on a on a brand and it's actually not compatible with master. So I don't really want to install it now but you can see listing works and You get to launch the application how's that and Well, let's see if I Killa where is installed or I still have console Accuracy to be recompiled. So that's that's it There you go. So I wanted to discuss a bit future things which is basically we would like to have it better integrated in K develop which Well should have her soon if we find somebody to do it. If you're interested, please say hi we would like to see if How hard it would be to have plasma on those systems as well. We have two approaches to it none of them work, but we're hopeful they might someday and You have maybe half a minute for a question What is operating system? Well, Katie is not software Katie is a community, right? Plasma though is usually bundled on with the system. It's something you might Still get with your distribution, but that's not necessarily what will happen in 20 years, right?