On Mon, Apr 13, 2015 at 09:51:05AM -0700, Marcel Holtmann wrote:
> Hi Zbyszek,
> 
> >>>>>> --- a/Makefile.am
> >>>>>> +++ b/Makefile.am
> >>>>>> @@ -5895,12 +5895,19 @@ rootlibexec_PROGRAMS += \
> >>>>>>       systemd-proxy-discoveryd
> >>>>>> 
> >>>>>> systemd_proxy_discoveryd_SOURCES = \
> >>>>>> +       src/proxy-discovery/duktape.h \
> >>>>>> +       src/proxy-discovery/duktape.c \
> >>>>> These files are not included in the patch, how do you intend to ship 
> >>>>> them?
> >>>> 
> >>>> I figured this could be included as a separate commit, when it will
> >>>> be time to commit proxy-discoveryd someday.
> >>>> Those 2 files represent more than 2 megabytes, so I did not want to
> >>>> flood the ml.
> >>> duktape should not be embedded in systemd. It's a separate project,
> >>> which gets updates and has a life of its own.
> >>> 
> >>> Preferably, duktape would be packaged by distributions and we would
> >>> use it like any other external library. If that is not possible, we'll
> >>> have to look for some other option, but only then. For example,
> >>> git submodule is still better than embedding of a snapshot.
> >> 
> >> that is not how this actually works with duktape. The release versions are 
> >> building a single duktape.[ch] that you can only find in the releases. 
> >> Otherwise you have to stitch that manually. It is pretty much designed to 
> >> be included into other project as a copy. That is why nobody has actually 
> >> packages this so far.
> >> 
> >> So while I get that including copies of other libraries is generally bad 
> >> for security update reasons, but this one would qualify as an exception. 
> >> It is just that we have to monitor duktape upstream releases and with that 
> >> also update the duktape version in systemd.
> >> 
> >> It is something that is not the greatest solution, but something that is 
> >> feasible. Keep in mind that embedding your JS engine right into your 
> >> application allows for optimizations that you really want. We have build 
> >> PACrunner against V8 and MozJS and these are two really painful 
> >> experiences. For anybody wanting to build a small system, dealing with 
> >> these two upstream packages is a nightmare. It sort of works in a large 
> >> distribution like Fedora, but anything small it is not an option.
> > 
> > I know that embedding is the way that upstream suggests. But it is a
> > bad fit for the way that systemd is distributed. Our primary consumers
> > are distributions, and the first thing most distributions will do is
> > to rip out the embedded copy in order to use a shared one. Something
> > as big as a javascript engine is bound to have security updates and by
> > embedding it systemd we would be forced to a) follow upstream changes,
> > b) release systemd updates based on duktape releases. Not something that
> > we want to do or would do very well.
> > 
> > We really should try to base this on a javascript engine which
> > provides a shared library.
> 
> so do you know of a small Javascript engine with a proper license then? And 
> that also has no additional dependencies.

No, but I don't think this can be the guiding principle here. We
already have dependencies on a large number of things: gnutls,
docbook, unifont, libmicrohttpd, python, and a bunch of smaller
libraries. I know that another dependency might be difficult for
embedded systems, but a "small" library might actually be more work to
maintain the long run than bigger library which is easier to integrate.

> I was not kidding when I said the V8 and MozJS are a nightmare when you want 
> to build a small system. So these two are pretty much out of the question for 
> the PAC service.

I certainly can believe that ;)

Zbyszek
_______________________________________________
systemd-devel mailing list
systemd-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/systemd-devel

Reply via email to