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

Reply via email to