0:00:09alright so
0:00:12i'll just get started and what people you felling in if you come so i'm
0:00:17gonna be talking about this project called know mostly it's sort of an awkward name
0:00:21but donna names not too important
0:00:26before i get started here though before talk about what i think it's really important
0:00:30to talk about why am here why i care about what i do and the
0:00:39most important thing that really drives me is free software very passionate about it and
0:00:46i just think it's
0:00:47it's always been important sense ever since
0:00:51which is a men road
0:00:53started the G P L and before that secondarily i just have a lot of
0:00:58fun working in this community and
0:01:00you know hang out with other people in interacting with before the world it's also
0:01:05but fourthly right having a prize linux is very important to me and know was
0:01:10a very important component of that had enterprise linux
0:01:14and so when i ship
0:01:17this product to our enterprise customers i wanna know that known is providing red hat
0:01:22enterprise linux with high quality software
0:01:24so all these things are important all these things drive me
0:01:31so secondarily though it's important is to like restate or assumptions briefly why assume here
0:01:36well this is all from the website obviously the free software the software freedom part
0:01:41is in common with michael's the other ones are important
0:01:46but i wanna dive into this connected aspect "'cause" i think that's really interesting part
0:01:53it's probably the most interesting to me so this is sort of the way i
0:01:57the way i think of it is gnome is in ecosystem and we have our
0:02:02centres of gravity i'll talk about those and then obviously we interact with all different
0:02:07kinds of other ecosystems so greater or lesser degree looking at this list
0:02:13you know obviously we share a lot with the canoe project tries in is there
0:02:19an use this on components right enterprise linux very important to me obviously uses a
0:02:25lot of know and there is there's
0:02:29the programming languages icons for roles monos
0:02:34and other ones like open in embedded which in turn are linked other ecosystems you
0:02:39know open about is going to wind river and all these other embedded devices and
0:02:43stuff like that
0:02:44so
0:02:46it's important is sort of just visualise
0:02:49there's all these ecosystems around the gnome is there around the centre grab these that's
0:02:54the way i think of it
0:02:57so
0:02:59with that background what a minute talk about is just to build system
0:03:03but i'm really excited about it which you guys made notice if you see it
0:03:09online
0:03:10because i just kind of always wanted to send it's the in so successful now
0:03:16so
0:03:18my goal with this bill system is to focus on owns core or centres of
0:03:23gravity and
0:03:26not exclude other things but just make sure that we're doing well what is important
0:03:33to us and all talk about that and the continuous aspect so it is building
0:03:40but it's also testing continuously and i'm i could talk for the rest of this
0:03:45whole session about continuous integration why it's so important but i'm just gonna gloss over
0:03:50that
0:03:51so
0:03:53it's testing
0:03:55a lot of get repositories a lot of the what makes up cornell so kind
0:04:00of when i started this project i start from this is sort of minimal system
0:04:04and build up
0:04:05from scratch and so i got to know him shell like i wanted to just
0:04:08minimise interactions with other things so we can again focus on our core aspects so
0:04:13striking a lot of get repositories for example all hundred and some X or get
0:04:19repositories most of which are basically just the protocols and never change but
0:04:25and of course all the know network the think that are important network manager system
0:04:29do i wanna make sure that known works well with the latest system so tracking
0:04:34system do you get master very important
0:04:37the basis done this is sort of stuff like that i just don't care about
0:04:41like for example an S P R and S open ssl those all come from
0:04:45of an embedded and basically are ran make some binaries popped out if you're to
0:04:48work that's about the level of Q A that i gave to the
0:04:54also crucial is that i have
0:04:57a sort of course focus with this minutes only targeting virtual eyes environments because
0:05:02there's many reasons for this one is that doing testing fertilisation is whole much easier
0:05:07than trying to have like a test lab wired to physical hardware that's a whole
0:05:11other level of management personalisation it's really easy i can script using you make it
0:05:17do a dance when i wanted to it's great and of course
0:05:22there's other aspects of this like there's no security updates because you basically need people
0:05:27there employed and obviously my employer does this
0:05:31i'm not trying to compete with them obviously so these are that's sort of high
0:05:37level summary of what this project is and kind of hopefully just is important what
0:05:42it is not
0:05:45so the core values of known as i see them obviously we have the G
0:05:49T K stacked you live is very important to me because i think it
0:05:55it's a fundamental pieces for writing modern applications it has the event do it has
0:06:01a file system abstraction a bunch of stuff that really is a core part of
0:06:07an operating system and i'd like to see it used more particular in red hat
0:06:11enterprise linux
0:06:13also in known we have accessibility internationalisation also part of our core values and he's
0:06:20the secondary list is kind of my list
0:06:24software engineering very important to me get the all the basics of doing continuous integration
0:06:30you know just are we leaking memory you know just
0:06:33again the basics and i'm trying to sort of push for
0:06:38split between the operating system applications and then always exceptions and i'll talk about this
0:06:43a bit more later but just to repeat again the goal the system is to
0:06:48focus on gnomes core values and feedback code continued a feedback as we have been
0:06:53doing for years back into these other you can systems
0:06:57so
0:06:58the non goals no enterprise features no packaging know enterprise features there's no you know
0:07:05if you want her breast for example that's not something that you know i'm gonna
0:07:08pass
0:07:09and a fast home again not something about it
0:07:13testing G T K G but
0:07:18so what has a system achieved well it's been online deployed in the known data
0:07:25centre since december ish and since then it's been building fairly reliably and very importantly
0:07:33without human intervention i'll talk a little bit about the details of how that works
0:07:37but a lot of times it's just building one off
0:07:41doing something else and it's just working fine
0:07:44but more importantly than the building it's been doing testing and all of talk a
0:07:48little bit about the details of that
0:07:52i have some numbers later so this is something that i'm most proud of is
0:07:56so but i'm from a get pushed or something like do you live in so
0:08:00when i'm booting a virtual machine is down to minutes now and
0:08:06it depending on the type of change
0:08:10like
0:08:13depending on the type of change i think i could get that down the second
0:08:16so that's always been michael
0:08:18it's totally possible the other thing that's really important to me and i talked about
0:08:24this last year a bit but
0:08:27the story for how upgrades works is just crucial for no and
0:08:33something i just find deeply embarrassing about the current red hat enterprise linux six which
0:08:38i run is that the upgrade system just doesn't know anything about the browser in
0:08:42just it's not safe to upgrade it like you know if you're if you lose
0:08:45power halfway so part of this project has actually been redesigning how it this work
0:08:50and so using it was three system upgrades actually fully atomic you can pull the
0:08:54power well they're running and it's just sort of crucial
0:08:59so even more interesting there's a lot of tests that right now so before developers
0:09:03kind of ran make check
0:09:05periodically manually now have automated test automated make checks of a lot of different models
0:09:12there's
0:09:14three hundred fifty test binaries which in turn because of G test are in turn
0:09:19out a lot depends how you measure but this takes a couple minutes all talk
0:09:23about that later another cool thing is that for a long time unknown would really
0:09:28test G D M that was kind of ray would run makes you will make
0:09:32install in his laptop but it's not something that fit the J job model right
0:09:36J scroll only affects your session and so sometimes G D M well it was
0:09:41kind of broken but now if G D M breaks all know in minutes ands
0:09:46that's been working like
0:09:48so i want talk a little bit about the always three system and how its
0:09:53kind of different from the packaging model because it's
0:09:57pretty it's pretty crucial to how the system works
0:10:01so i buster itself is just kind of like a user space filesystem enter and
0:10:06i like the term get for operating system binaries
0:10:11it's misleading in some ways but on the ways very accurate so what industry does
0:10:16is it manages to let you have let's you more parallel blue multiple operating so
0:10:21multiple versions of multiple operating systems
0:10:24without affecting the physical root directory of your operating system
0:10:29so
0:10:30it's like get in that it's a content address system so it naturally to duplicate
0:10:34so if you have multi same multiple versions of gnome installed they only use space
0:10:40a by proportion how many files are different
0:10:44so
0:10:46i'll talk a little bit more about that later to it's different though from a
0:10:50lot of image based appointed systems that happen prototype out there like red hat enterprise
0:10:55linux have this state was project for a while which was basically a kind of
0:11:00image of a system where you download new data to block level and you're at
0:11:06sea is N F S mounted or something like that all those trees different from
0:11:09that because it does operate at the same level as package mentors do but unlike
0:11:15package managers it just a done content replication system in this allows a lot of
0:11:19neat tricks i'm a show those the next slide but straight the way to think
0:11:24of is really am your image of packages are lots of little filesystems with some
0:11:30shell scripts that run as root attached in their upload in the internet and you
0:11:33assemble them on your client machine string model you replicate filesystems from a build server
0:11:38or you can generate them locally
0:11:40and it is filesystem independent so it does leverage some butterflies features mostly through G
0:11:47live you we automatically use the better fess i aukro for a copy and right
0:11:53type stuff but i think it's sort of important for general purpose system to work
0:11:58on top of plane yet see for and that's actually what i test on the
0:12:01most because fifty fours really fast
0:12:06so
0:12:07it does have a format for installing on your local system but it also has
0:12:11an archive format they can run on a web server and that's sort of how
0:12:14this the build system works as there is than almost resides the build system it
0:12:18commits to noticed repository and then you can download it directly from just a plain
0:12:24old apache
0:12:27so here's some tricks that i wanna make possible and i've been protecting this a
0:12:31little bit with laura is so i run redheaded present X six on this laptop
0:12:36because people favour subscriptions any bill fix it but it's obviously important from able need
0:12:42to be able to run known get master because i wanna be able to contribute
0:12:45to it and make sure that it still works for the next version so
0:12:50one the way i plan to have this work is all just have reading representing
0:12:54six am i root partition and all street just sort of installs inside that without
0:12:59disrupting it so i can have the know most re what's called build master just
0:13:03the thing is tracking to get repositories but you could also parallel install multiple versions
0:13:08of or a very easily
0:13:10the hard part about this is fixing or P M to not be the lowest
0:13:15level anymore so that's still in progress but i do have the point where you
0:13:21can have the base system and then to the newer one and test it working
0:13:24fine
0:13:25and when i say five hundred builds here that's really possible because it just comes
0:13:30down to how many files are different and between
0:13:36things just don't change that much and there aren't a lot of big binaries so
0:13:40you really can have five hundred builds installed in more interest a need or trick
0:13:45that you could do something like automated bisection which is where you know you have
0:13:50your starting point you say okay i get graphics corruption recently and sort of write
0:13:56a test binary that maybe just takes a screenshot what for the corruption and then
0:14:00just keep booting into all these bills and so you find the build it's broken
0:14:04and from there you can from the source code i really need poster trick in
0:14:08this is kind of part of how the cork you a system works as it
0:14:11can up update virtual machines while they're entirely offline
0:14:16and this works basically because it's a don filesystem replication and not like packages where
0:14:22you have these ritual scripts attached and what they do
0:14:25was she has none of that and so that's this is actually a very useful
0:14:31trick in general and like i mentioned before i'd like to see austria eventually slide
0:14:36underneath these package systems like D package in our P M and all that stuff
0:14:40where or she would give the parallel booting the atomic upgrades that sort of stuff
0:14:47to them
0:14:49so know much three is layered on top of austria and it's very simple there
0:14:55when i say there are no packages i mean i went through the entire system
0:14:58in eliminated the concept at every level as much as i could to try and
0:15:03gain reliability and sort of optimised for
0:15:08automation
0:15:09so than almost relay or has this thing called a manifest which is literally just
0:15:14a list of get repositories to build and work
0:15:17it's very simple and as a consequence of that simplicity it has turned out to
0:15:23be that has six months of and very reliable promote stories and so if we
0:15:30look at like example of what the manifest looks like well that's multi one that's
0:15:34the entirety of what would be a package in my model it's just it's just
0:15:39to get repository insert it'll to build in this order and that's it that just
0:15:43means track it master of lib X M L to
0:15:46and spend enough for quite a while
0:15:48the component about one i'll talk about this on the next slide but basically that
0:15:53means this is only for the developer image i can also choose any get revision
0:15:58to build it anytime unlikely package in our can none of this cares about version
0:16:03numbers at all so i can be tracking system to get master and say okay
0:16:07i can no longer log in and the current version which has happened so i
0:16:10say okay all just tag back to the previous revision builds done like within minutes
0:16:15it's completely on like the package systems because they have this deep obsession with version
0:16:20numbers that
0:16:21permeates every single layer so none of my system cares about version numbers all any
0:16:26get revision at anytime
0:16:29and is the spice example is just how configure options and patches work i originally
0:16:37was trying to only have get repositories and no patches just to force myself to
0:16:42feed changes back but i sort it's too impractical so i ended up having a
0:16:47couple patches
0:16:48so this is something i think really illustrates just how different it was tree model
0:16:54is from the package thing so on the build server now it's been doing continuous
0:16:58integration since december right there is over six thousand complete filesystem trees like i haven't
0:17:05lost any history right so
0:17:09in the only occupies sixty gigabytes and this is sort of the power T duplication
0:17:14so in theory again not only can you have five hundred bills locally you could
0:17:18download in entire history of all the bills from the build server and
0:17:25you know we'll get those all have links to their sources inside of them
0:17:30so
0:17:32i just give a lot of flexibility right you can have a sort of a
0:17:35system and then add remove stuff we're supposed trees all about the files so the
0:17:40way all history is sort of designed is that sort of having a bunch little
0:17:43packages you have full complete systems that share space and i would you have multiple
0:17:48versions of say what i call runtime tree but you have a basic runtime tree
0:17:53enough to run out and then i have an image div L with all the
0:17:56developer tools and these just naturally share storage so us three let's you switch between
0:18:02atomic so i can i normally run the developer imagine my D Ms but you
0:18:08know sometimes we've had boards where things because of obscure issues only work in the
0:18:13developer image like a they in package world they needed deborah develop package installed i
0:18:17can easily just switch back to the runtime tree which effectively hides all the developer
0:18:22tools so
0:18:23parallel installing multiple file systems and then besides all the for variance is actually three
0:18:28it's a the build system outputs a pipeline so is what i call build master
0:18:32which is all these get ready all these get repositories get bill integrating the build
0:18:36master all that happens there is there just build a just take the latest get
0:18:41run make install duster and it's in the tree you can download that that's very
0:18:44useful obviously but
0:18:46i don't expect many humans to want to run that directly so there's a secondary
0:18:50stage which does what i call smoke test and this just updated disk image puts
0:18:55it union does this appear to let you log if it does that gets attacked
0:18:59just like get repositories get tagged
0:19:02and there's a secondary stage which is integrated is that after all the make czech
0:19:07and stuff like that works but
0:19:09the way i sort of vision this is there's a like a long pipeline you
0:19:14can imagine of the very top we have build master and then something like red
0:19:17hat enterprise linux is like way a down there but it is a sort of
0:19:21long pipeline of extended increasingly extensive testing
0:19:26but it still really important to be able to run the build master because sometimes
0:19:31things a broken and i wanna be able to debug it locally so you can
0:19:34download develop about run gtd on the latest G D M and see what's going
0:19:38on
0:19:39and there's also at a task the generates disk images
0:19:43after something
0:19:45so on talk about the story of
0:19:48after you run get push to run in to get repositories that are tracked your
0:19:51what happens
0:19:52well as far as i know on the first person ever demand push notification from
0:19:56don't get so that happens and then we basically do a copy of the get
0:20:03repository under the build server
0:20:05so this bill task though important thing to understand is be in a feedback is
0:20:10really important to me versus correctness their different tradeoffs you can make your so the
0:20:15bill test only rebuild get repository that change because concretely i can't rebuild look at
0:20:19you take a every time G T K changes it would just massively slow down
0:20:24the cycle
0:20:26it does
0:20:27it assembles a build route which means it's a clean build in this is actually
0:20:32really important because some things just
0:20:36it just really increases reliability but this part actually really fast compared to the D
0:20:40package people there and the mocking those sort of tools it averages anywhere from five
0:20:49to twenty seconds and that's because it uses hard links stuff actually building the thing
0:20:55it starts from a clean get repository
0:20:57so this is also kind of important because it'll for example instantly catch a missing
0:21:01file that you forgot
0:21:04but for something like to live that's a couple minutes and that's the same with
0:21:07change builder can whatever and then the result of that install gets stored into repository
0:21:14and
0:21:15this is kind of like the package that is
0:21:19this us the string here than almost three components to of X eighty six sixty
0:21:23four that's kind of like a again branch big it's torn repository and then we
0:21:29assemble all of these it just takes a union of all the different components so
0:21:34i have to live i have lived to stored has their own little filesystem trees
0:21:39and i just layer them on top
0:21:41and that's very simple so there's no dependency resolution there's no packaging here and that
0:21:47takes a minute right now that's something i could speed up but there's different trade
0:21:51offs there and after this again this is just like
0:21:56for and i know change of for a very small module this is around two
0:22:00minutes from get pushed to when you can actually download it reliably
0:22:07there used to be the concept is yes is the short answer and i used
0:22:12to try and you triggers on the client side like the idea was that you
0:22:15download this tree and then afterwards we would run stuff like T update i can
0:22:19cache on the client
0:22:21but it's i moved away from that because
0:22:25then i couldn't do the offline updates on of the M and that was really
0:22:28crucial so i sort of took the hit of having each multiple versions of the
0:22:33cached icon caching each tree
0:22:36it's not that bad and it makes up it's a lot faster
0:22:40baseball for the client this is one of the things it does slow down the
0:22:43build process for example on for some things i have to rebuild in a drama
0:22:46fast whereas at least for their and i don't know about that the end rebuilding
0:22:51the trim F S on the client every time you crouching so in some cases
0:22:55i pay a price on the build server where is in the package will you
0:22:58pay and it's client
0:23:01that again sorry
0:23:05how many different triggers
0:23:06seven or something maybe like for hang go free type
0:23:11i don't know there's not that many L D config
0:23:14i mean i can look really but those are pretty fast execute
0:23:20so
0:23:21this i'm not excited about just building again i think the passing parts really important
0:23:27to me so use live guess the vast amounts the filesystems non root
0:23:33so the smoke test the way it works is we have a cash disk image
0:23:37representing the runtime tree you know without all the developer tools and then i make
0:23:41a little copy on write disk and i had some testing stuff for example there's
0:23:45this service that runs in the virtual guest export the system you journal back up
0:23:51to the host which then looks for stuff so system he has this nice concept
0:23:55of message ideas which are
0:23:57basically Q I Ds universal unique ideas that some event happened right
0:24:04so an example would be system D M it's a message with a particular message
0:24:08id want something court
0:24:10so if someone makes a commit to say network manager that "'cause" it just simply
0:24:15say for startup
0:24:16the smoke test will fail
0:24:18for them are patched gnome session timit a particular message id of one of the
0:24:23things get manages fails like so for example if gnome shell exits with an air
0:24:27or i know that pretty much instantly on the hose and i can terminate the
0:24:31V M and then if you see nair see the gnome hackers are see a
0:24:36red line for the smoke test that's what this
0:24:38so most often it happens when people commit syntax errors in the norm shell javascript
0:24:44files
0:24:45lately anyways and i detect that very quickly
0:24:49and the integration tasks this is something that i think is really need to which
0:24:54is before the gnome release process each operand make czech kind of periodically
0:25:00randomly
0:25:02and then theoretically you ran make just check before release so in the know most
0:25:05remodel i have all the tests almost all the tests that you run and make
0:25:10czech installed in the system so i go to virtual machine and then i have
0:25:14a little testing framework that runs all of the tests after nes change so it
0:25:19change translation update an am show i will rerun all that you a test i
0:25:24will remind all the clutter test because honestly have plenty of C P U power
0:25:29and
0:25:30why not i mean it actually i wanna have
0:25:33you know a more interesting test scheduling type system but
0:25:39the build server has thirty two cores sixty four gigs of ram in flies of
0:25:43the stuff
0:25:50so what that is occupied so my time for one hours race conditions on the
0:25:54tests
0:25:56do you live in particular has a lot of tests with race conditions and
0:26:00that's
0:26:02some of those a bit hard to track but fortunately most of them are just
0:26:04bought some the tests and not actual core code
0:26:07but i didn't i did find one conceptual issue and you live from tracking down
0:26:12these
0:26:13but for the most part most the test did work already because the developers we're
0:26:18running just not relied continuously
0:26:21so just very different
0:26:24so some things that i'd love to do with the system kinda have
0:26:30twenty minutes okay
0:26:32okay cool so
0:26:34open sousa has this really well they have a this thing called open here which
0:26:39has some really cool features and some kind of weaker features but they have a
0:26:43really nice but you and i love to have something like that another feature that
0:26:48i wanna add is mostly has try server so i wanna have does
0:26:53does this patch break known as a service basically where
0:26:59i mean there's no reason i couldn't just start building inbound patches and bugs a
0:27:02lot and testing on so you know one an optional developers can upload
0:27:06but
0:27:07bunch of patches and i just take those do a smoke test that sort of
0:27:11thing would honestly be pretty fast is just the tricky part is sharing stuff between
0:27:17the different builds like the get all the get repositories are out four gigabytes and
0:27:21i don't wanna read clone them for each bill but making sure like and linking
0:27:24currency is just what's kind of starting a little bit from this
0:27:29and i would love to get into like software engineering stuff and one thing that
0:27:33i've always wanted as you know just a graph of how much memory were using
0:27:37on the default login how much memory using one epiphany is and wikipedia i mean
0:27:41just
0:27:42also the data there's no reason i can gather this the virtual machine aspect does
0:27:47the limit kind of the type of performance metrics that i can get like i
0:27:51can really get approach are because there's all this P N I or activity in
0:27:55the build server and it would just be too noisy you really need a nice
0:27:59dedicated harbour lab
0:28:05probably
0:28:13that's true
0:28:15i think
0:28:18i mean there's so many different ways to do it i don't know if you
0:28:21knew has the hoax i would need for this i mean that would be a
0:28:24pretty reliable way to do it i installing agents in the guest is obviously one
0:28:29way together a lot of stuff but us
0:28:31then of course you have the heisenberg effect where you you're affecting what you're measuring
0:28:36right like your agent is using memory your agent
0:28:39so
0:28:42i would love to have automated bisection on the build server so you know right
0:28:46now is if the smoke test fails i basically just run get log and
0:28:52you know it's usually pretty obvious
0:28:54who broke it and why but a lot of times it's not actually and just
0:28:59like a try server there's no reason i couldn't just allocate a builder and say
0:29:02okay i have this regression range well the know most remodel it's of course over
0:29:07two hundred get repositories so
0:29:09handling the multi repository thing with bisection is an interesting problem but again there's no
0:29:14reason i couldn't do it just haven't gotten around to it
0:29:17another cool thing is a little bit more blues guys just a sort of live
0:29:20collaboration setup where the developers actually running get pushed to a branch and we instantly
0:29:25build it so you have a some work and am shell and it designer and
0:29:29that you know develop design i want to see the developers doing there's no reason
0:29:32i can just okay to server that just sort of tried to do that as
0:29:35fast as possible let them almost live collaborate
0:29:41so that's
0:29:42that is not shows the system but i have a lot to talk about where
0:29:47i see the high level future the system so
0:29:52obviously
0:29:54okay i guess i didn't mention this but there is no application installation mechanism in
0:29:59the system yet because it's a hard problem it's
0:30:03very hard problem and there's a lot of prior are in that sort of stuff
0:30:07there's like most all or have re pronounce it there's a bunch is click packaging
0:30:12is all package on the stuff around and they have different tradeoffs parts
0:30:17the thing that the thing that
0:30:20is very important in this discussion i think is to draw a very strong line
0:30:26it's very strong distinction between free software applications proprietary ones because i think that demand
0:30:33there's some commonality there but
0:30:36i don't understand why so many people in free software have this obsession with generating
0:30:41binaries in caching i mean the most important thing if you're talking about free software
0:30:46is the source right and who's committing to that and why and not this package
0:30:51stuff so for free software applications i'd really like to emphasise that sort of stuff
0:30:57like who's writing this out you know let you let you run the latest version
0:31:02help you contribute to it that sort of thing
0:31:08there is the aspect where
0:31:10it is important to say who built it because you do yes you obviously have
0:31:15to generate binaries to run it but it's still important to say who built it
0:31:20so for example if you know if we have a system for applications we're doing
0:31:24continuous innovation and fifteen outputting zip files or something who knows doesn't matter it's still
0:31:31important say build by know because you have to trust the builder
0:31:36and so i think i think the aspect of the intermediary is still important
0:31:42again i would love to do continuous integration for the applications i sort of paved
0:31:46and added some core apps to the manifest so you know obviously epiphany is in
0:31:52their gnome terminal the system would be completely useless without it
0:31:56and those are kind of
0:31:58those are available but the really tried you wanna get to is where you can
0:32:02remove the web browser from the operating system
0:32:04apparently that's important and just you know peer review i mean this is the same
0:32:10thing i'd like to see for more for the core operating system is just emphasising
0:32:13the peer aspect of free software
0:32:17you know again who who's doing this and why
0:32:22okay
0:32:25so obviously this is gonna kind of controversial topic throughout norman it really gets to
0:32:30the heart of the distinction between what an operating system is and what it distribution
0:32:35is and that sort of thing which is
0:32:38where do you draw the line for what lives where right what might applications have
0:32:44to bundle
0:32:45so stuff like the backchannel to i'm not a big fan of the back small
0:32:49to i really wish that it'd been but you will nice to a library before
0:32:54so i
0:32:56i you know do we except that is barbora base platform and it's ugly api
0:33:01i don't know stuff like hire O obviously we made the decision
0:33:06this is par the platform it's part of G T K spell checking is pretty
0:33:11much perfect example of something where well we have some libraries out there may not
0:33:17be great
0:33:18whether i could should with the base system or not i don't know
0:33:23and of course even if we're just talking about court know how long do we
0:33:26should you take a to do we encourage do we allow
0:33:31allows only should application developers still target in some circumstances and of course we're talking
0:33:37to do you for enterprise and how long would we should G T K three
0:33:42well so the way i define operating system is something your application will run on
0:33:46for ever
0:33:47and this
0:33:49if we remove stuff then we're not really an operating system anymore kind of moving
0:33:53back towards a distribution model so i don't have answers to these questions
0:34:00a sort of punch on it and said okay well i'm just going to
0:34:05to you know to make an operating system we need to have basic quality assurance
0:34:10and so that's what i've been working on for a while like just fixing race
0:34:14conditions and the G let us and make sure making sure that worshipping platform the
0:34:19can be used to build applications and how all that works
0:34:22so a lot of questions and so there this
0:34:26so i think proprietary out the needs a proprietary applications are totally different
0:34:33and
0:34:36i mean
0:34:37for one thing they
0:34:39their time to an architecture usually if we're talking about me to binaries and all
0:34:43of a sudden you're kind of in the windows world where you have
0:34:46applications that were targeting X eighty six and then if we wanna move to new
0:34:49hardware platform we can do it
0:34:53i think that sort of thing are few icgs can just sort of deal with
0:34:56it so i'm not too focused again on the proprietary applications basically what i want
0:35:03i think it's important to enable people to run proprietary software
0:35:07if but not encourage necessarily and so
0:35:10i'd i'm gonna focus my time and just the core free software gnome applications because
0:35:15that's again why i'm here from again that's all
0:35:20so this is something that i was actually hacking on the plane
0:35:24and which is basically just system D for the user session this is kind of
0:35:28just a for corporate system feature but
0:35:33using this we can actually this would be something that would help enable running proprietary
0:35:37applications because
0:35:39for that use we sort of to spend boxing take mechanism and how that would
0:35:43work
0:35:45is pretty interesting
0:35:47a long time ago i helps port S U X to daddy and so i
0:35:50have a fair amount of expertise in that and i think it makes sense to
0:35:54use the ceilings for part of it but the portals work is sort of essential
0:35:58for user interaction pieces so you have a sort of unchanging applications must never do
0:36:04this type layer and then sort of maybe more enjoyed or i was like dynamic
0:36:11application asks to do this type of model and that's portals
0:36:15but i want to do this we really need system the in the session because
0:36:19it enables grouping binaries for an application like right now one things this sort of
0:36:26core part of the known three model was it's application focus and the way we
0:36:30match
0:36:32the X window created by nap to the process is actually just really horrible and
0:36:38like to move away from it so getting applications inside to see group we just
0:36:42P a fundamental enabler for moving towards this
0:36:45O S application split
0:36:47i love to unify the idea operating system extensions of stuff like proprietary and video
0:36:52drivers what i think i was and always extension the package model socks for this
0:36:56because obviously what you really want is you want to have your system and then
0:37:00you say okay i'm gonna stalin be a driver and ineffectively rebates whereas right now
0:37:04the package manager will say okay well this package needs this and what you upgrade
0:37:08when with really important is to enable someone say upgrade the base toss up in
0:37:14video driver try nouveau does the new version working not have the package manager you
0:37:19know complaining over here so that's a know it's extension fonts that sort of stuff
0:37:23are you can plug ins or was extensions and unified those with than so extensions
0:37:31so in conclusion
0:37:33core qualities important free software is very important to me but
0:37:37quality is basically job one if we don't do that
0:37:42it's not really doing anything
0:37:46my provide same application framework and i there is the science just the
0:37:51the core how her they distributed just making it easy to
0:37:58getting exposed to the auto tools really rough for a lot of application developers and
0:38:02so i was still allow people a package thing so concretely applications just still have
0:38:07a make install type stage i think but it's
0:38:12the build systems really do need to of all to the point where
0:38:16it is possible and easy to read an application without being exposed to all those
0:38:22words
0:38:23and of course absolutely essential to this is just maintaining our links with the various
0:38:29downstream projects like that in reference links i mean all that stuff that was in
0:38:34the beginning but i have again tried to focus this is
0:38:39it's not i'm not trying to be daddy and so it's just focusing on a
0:38:43quality so making sure that's good
0:38:45and then feeding changes elsewhere
0:38:49and then if you wanna know more about the project these are some knowing less
0:38:54and i'm usually available on our see any colours should be a male
0:38:59so that's it
0:39:02i know i kind of blew through this but there any questions
0:39:16okay
0:39:19sure so the question was about don't reproduce ability so particularly like are the binaries
0:39:25identical that so
0:39:32okay so all the binary stolen use repository i didn't really answer this question is
0:39:37probably to talk about what this other project nix O S does this one ones
0:39:41i was looking at one as do research for this project so next does checksums
0:39:46to but they do they check some all the input to a bill so for
0:39:50example if an environment variable changes that outputs a different checksum obviously and they're obsessed
0:39:55at the stuff but there's a lot of things that sabotage that like python P
0:39:58Y C files have the timestamp of the file the referencing which is useful useless
0:40:03my system it hasn't been in important because i've money a disk space
0:40:09so
0:40:14so okay sorry i see we're more as you know story each generated tree is
0:40:21the manifest a actually what i call results manifest so if you remember back is
0:40:28this
0:40:29back here so the result manifest is like the hard but be part of buzz
0:40:34example word has the exactly provisions of the get repository that we used to build
0:40:39the street that doesn't necessarily make it reproduceable exactly because i'm not putting in the
0:40:46manifest what the host whole system uses open embedded is a cross compiler crossed environment
0:40:51so i start format having for enterprise linux for which is what spinner that number
0:40:55are runs and then across builds G C from that so if you want to
0:40:59fully reproducible build i'd probably have to put in the manifest built from whatever and
0:41:05that's something i can improve
0:41:07and back on
0:41:11okay
0:41:17i still i could be loud enough
0:41:21so you say you're not rebuilding like when you rebuild you decay you don't rebuild
0:41:25web
0:41:26right exact you have like a stuff throw weight might be considered of probably method
0:41:30of doing that of saying you know i'm not going to keep that will result
0:41:34from this but i would like now that i know that i changed you live
0:41:38and we run integration tests later but that only it says
0:41:42whether the binaries you produce this point i'm work against
0:41:45the current that you would you have installed not whether they will have and we
0:41:48build a that's right and i have had problems with that like a completely right
0:41:53now so name under a little annoying like when cargo bonsai name i have to
0:41:57force a rebuild of things and so the way that works is at the bottom
0:42:01i just have this thing i call bill that thought so if i updated version
0:42:04and i say nine type and say gee the G T K three here that
0:42:09will just force to rebuild of those things a build server will just to me
0:42:13it's catches
0:42:15and i do that well as you can see twenty times in the last six
0:42:19months which that's pretty reasonable to be perfectly honest it's worked well
0:42:24okay
0:42:29how do you put and it's also am doing maybe analysis of the point is
0:42:34to make sure that we're not we can maybe a
0:42:37for sure
0:42:40it's kind of helps a lot the integration test phase helps a lot so the
0:42:44in the i am to you will broke well right now we would need though
0:42:47we would run binaries that you live itself bill but if
0:42:52for example i would know if you live broke in the and weighted probe G
0:42:55T K
0:42:56as long as they didn't both get rebuild and but as far as more stack
0:43:01analysis type stuff like i do your thinking me like upstream tracker dot org or
0:43:05whatever it like they have some or and it this beta the less expose and
0:43:11you pick a tent it's a be a
0:43:14being able to not this
0:43:15okay
0:43:17i mean even if a test or something but we criminalise between editions actually idea
0:43:24of a big difference their previous symbol question two signatures like right well course
0:43:30the libraries themselves do have maybe i mean do you live has a list of
0:43:35export it simple so it's very difficult to break you pi thereby
0:43:40i mean it's a question of what we do with the data like i could
0:43:43generate that it but what do we do with that you know do i try
0:43:46to go back to you know daniel and say okay you about you probably decimal
0:43:49to maybe i don't probably be very useful for bias
0:43:53i don't know i just haven't
0:43:55i it hasn't come up i guess they
0:43:58so that when you know just them so just when this question and then you
0:44:02can go and that's your questions if you to quit here
0:44:06i can build a what's my question which is weeks scroll i will be break
0:44:11something
0:44:12so see you at the moment opinion of ceasing you bring can exploit so on
0:44:16a scale
0:44:18right
0:44:20i don't know i mean it can obviously big claw everything jasper watch is the
0:44:23output to and you know he looks at would make sense to say it sent
0:44:28me email
0:44:30i could well
0:44:32i think that was potentially come out of automated bisection because the thing is things
0:44:36can break for reasons that are not careful that happens pretty often like system he
0:44:41has a very complex build system and tool chain bugs sometimes just bite and
0:44:47you know is it a tool chain issue "'cause" they use some F function sections
0:44:52but it doesn't matter but basically it's not always there for the be like you
0:44:56need a human site actually a stipulation i mean
0:45:01but i certainly could harvest email addresses from the get repositories and
0:45:06i mean broken that it doesn't usually break that off one email that i maybe
0:45:12it's well it's funny like some days things just break left and right and other
0:45:16times it'll go three days and i just don't even touch it and just finally
0:45:23right i think that's it right thank you all for coming