Hey Alex, On Tue, Jan 13, 2015 at 11:49 PM, Alexander Larsson <[email protected]> wrote:
> 2) You want the app to "come with" the platform, so that you don't have > to download it separately. I don't think we really need to "bundle" the > platform in the strict meaning (put the files in it), however we could > perhaps ship the platform in the same ostree repo, or somehow point to a > repo that has it. Then the runtime reference could be automatically > downloaded by the installer. > When apps are provided by the same source that also built the OS with all the runtimes, this comes natural to do. I think one of the greatest advantages of this system is that it allows third-party developers to easily ship their own version of platform libraries that would traditionally be exclusively provided by the OS. So yes, I think downloading an extra platform or parts of it will be a common operation. See more thoughts about this below. > - moreover, if org.wxwidgets.Platform depends on some GNOME platform > > libraries, do you specify that as a dependency between runtimes (e.g. > > requires org.gnome.Platform) or is it left to the OSTree layer to > > deduplicate the dependencies if org.wxwidgets.Platform and > > org.gnome.Platform have been built in the same repo/initial buildroot? > > We definately don't want to be in the business of re-inventing a package > system where runtime depends on each other with versioning and whatnot. > If someone wants to make a platform that has parts of org.gnome.Platform > that is up to them. They could chose to use all or parts of > org.gnome.Platform, which will automatically cause ostree to dedup the > two (but they'd have to do their own security updates, etc). > > In fact, we should perhaps even join forces with other orgs (kde, > freedesktop) to share the base of org.gnome.Platform. > I agree that a base all runtimes can assume is a good idea. I think one basic question is: can a platform require another platform, or is the only assumption possible for a runtime that the shared base will be there? Let's assume the answer is no, and take the WxWidgets as an example; surely WxWidgets will need things like GLib and GTK2 to build, with all of their dependencies. It might just be a matter of using the right tooling, but I believe anything that requires reproducible, automated builds will want these dependencies to be encoded somehow in a WxWidgets "recipe" of some sort. Whoever builds the library then should be able to pull those dependencies individually from the underlying OSTree storage to assemble the buildroot. Is this provided by the RPM layer in your implementation? If you assume the answer is yes, then e.g. WxWidgets could just require the GNOME platform to be built and implicitly get the dependencies; the application could just require the WxWidgets platform which is then provided in the repo. This is where things get a bit fuzzy for me; where do we draw the line between a platform - a set of libraries/versions that provide functionality the application can rely on and build against - and just a library that the application needs to bundle using a system similar to the above? Thanks, Cosimo
_______________________________________________ gnome-os-list mailing list [email protected] https://mail.gnome.org/mailman/listinfo/gnome-os-list
