Re: New gnome-sdk images with gnome-builder app bundle



Hey Alex,

On Tue, Jan 13, 2015 at 11:49 PM, Alexander Larsson <alexl redhat com> 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


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]