All of lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH] package/spidermonkey: do not build the JavaScript shell, by default
@ 2020-03-08  3:21 unixmania at gmail.com
  2020-03-08 13:52 ` Thomas Petazzoni
  0 siblings, 1 reply; 4+ messages in thread
From: unixmania at gmail.com @ 2020-03-08  3:21 UTC (permalink / raw)
  To: buildroot

From: Carlos Santos <unixmania@gmail.com>

Add a configuration to enable the JavaScript shell (default off). So
far only libmozjs is required (by polkit) and the shell takes around
24MiB.

Signed-off-by: Carlos Santos <unixmania@gmail.com>
---
 ....in-install-shell-only-if-it-s-built.patch | 28 +++++++++++++++++++
 package/spidermonkey/Config.in                | 11 ++++++++
 package/spidermonkey/spidermonkey.mk          |  1 +
 3 files changed, 40 insertions(+)
 create mode 100644 package/spidermonkey/0001-js-src-Makefile.in-install-shell-only-if-it-s-built.patch

diff --git a/package/spidermonkey/0001-js-src-Makefile.in-install-shell-only-if-it-s-built.patch b/package/spidermonkey/0001-js-src-Makefile.in-install-shell-only-if-it-s-built.patch
new file mode 100644
index 0000000000..f6092af7ef
--- /dev/null
+++ b/package/spidermonkey/0001-js-src-Makefile.in-install-shell-only-if-it-s-built.patch
@@ -0,0 +1,28 @@
+From b5e4a9926cf50d12e9c5c05c6d1b161e5b662d62 Mon Sep 17 00:00:00 2001
+From: Carlos Santos <unixmania@gmail.com>
+Date: Sat, 7 Mar 2020 23:42:02 -0300
+Subject: [PATCH] js/src/Makefile.in: install shell only if it's built
+
+Prevents an installation error if we configure with --disable-js-shell.
+
+Signed-off-by: Carlos Santos <unixmania@gmail.com>
+---
+ js/src/Makefile.in | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/js/src/Makefile.in b/js/src/Makefile.in
+index 4ac9f48..9c8fb64 100644
+--- a/js/src/Makefile.in
++++ b/js/src/Makefile.in
+@@ -136,7 +136,7 @@ endif
+ 
+ install::
+ 	$(MAKE) -C build install
+-	$(MAKE) -C shell install
++	if [ -d shell ]; then $(MAKE) -C shell install; fi
+ 
+ ifdef HAVE_DTRACE
+ javascript-trace.h: $(srcdir)/devtools/javascript-trace.d
+-- 
+2.18.2
+
diff --git a/package/spidermonkey/Config.in b/package/spidermonkey/Config.in
index 5f12110626..e015e84ad2 100644
--- a/package/spidermonkey/Config.in
+++ b/package/spidermonkey/Config.in
@@ -37,6 +37,17 @@ config BR2_PACKAGE_SPIDERMONKEY
 
 	  https://developer.mozilla.org/en-US/docs/Mozilla/Projects/SpiderMonkey
 
+if BR2_PACKAGE_SPIDERMONKEY
+
+config BR2_PACKAGE_SPIDERMONKEY_JS_SHELL
+	bool "JS shell"
+	help
+	  Build the JavaScript shell.
+
+	  WARNING: increases target image size by around 24 MiB.
+
+endif
+
 comment "spidermonkey needs a glibc or musl toolchain with C++, wchar, dynamic library, NPTL, gcc >= 4.9"
 	depends on BR2_USE_MMU
 	depends on BR2_PACKAGE_SPIDERMONKEY_ARCH_SUPPORTS
diff --git a/package/spidermonkey/spidermonkey.mk b/package/spidermonkey/spidermonkey.mk
index 579dc7b864..9bd19b01d1 100644
--- a/package/spidermonkey/spidermonkey.mk
+++ b/package/spidermonkey/spidermonkey.mk
@@ -30,6 +30,7 @@ SPIDERMONKEY_CONF_OPTS = \
 	--host=$(GNU_HOST_NAME) \
 	--target=$(GNU_TARGET_NAME) \
 	--disable-jemalloc \
+	--$(if $(BR2_PACKAGE_SPIDERMONKEY_JS_SHELL),en,dis)able-js-shell \
 	--enable-shared-js \
 	--with-system-zlib \
 	--with-system-nspr \
-- 
2.18.2

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [Buildroot] [PATCH] package/spidermonkey: do not build the JavaScript shell, by default
  2020-03-08  3:21 [Buildroot] [PATCH] package/spidermonkey: do not build the JavaScript shell, by default unixmania at gmail.com
@ 2020-03-08 13:52 ` Thomas Petazzoni
  2020-03-08 15:11   ` Carlos Santos
  0 siblings, 1 reply; 4+ messages in thread
From: Thomas Petazzoni @ 2020-03-08 13:52 UTC (permalink / raw)
  To: buildroot

Hello Carlos,

On Sun,  8 Mar 2020 00:21:28 -0300
unixmania at gmail.com wrote:

> From: Carlos Santos <unixmania@gmail.com>
> 
> Add a configuration to enable the JavaScript shell (default off). So
> far only libmozjs is required (by polkit) and the shell takes around
> 24MiB.
> 
> Signed-off-by: Carlos Santos <unixmania@gmail.com>
> ---
>  ....in-install-shell-only-if-it-s-built.patch | 28 +++++++++++++++++++
>  package/spidermonkey/Config.in                | 11 ++++++++
>  package/spidermonkey/spidermonkey.mk          |  1 +
>  3 files changed, 40 insertions(+)
>  create mode 100644 package/spidermonkey/0001-js-src-Makefile.in-install-shell-only-if-it-s-built.patch
> 
> diff --git a/package/spidermonkey/0001-js-src-Makefile.in-install-shell-only-if-it-s-built.patch b/package/spidermonkey/0001-js-src-Makefile.in-install-shell-only-if-it-s-built.patch
> new file mode 100644
> index 0000000000..f6092af7ef
> --- /dev/null
> +++ b/package/spidermonkey/0001-js-src-Makefile.in-install-shell-only-if-it-s-built.patch

We already had a 0001 patch, we actually have 10 patches on
spidermonkey, so I renamed this one 0011.

Has this patch been submitted upstream ?

> diff --git a/package/spidermonkey/spidermonkey.mk b/package/spidermonkey/spidermonkey.mk
> index 579dc7b864..9bd19b01d1 100644
> --- a/package/spidermonkey/spidermonkey.mk
> +++ b/package/spidermonkey/spidermonkey.mk
> @@ -30,6 +30,7 @@ SPIDERMONKEY_CONF_OPTS = \
>  	--host=$(GNU_HOST_NAME) \
>  	--target=$(GNU_TARGET_NAME) \
>  	--disable-jemalloc \
> +	--$(if $(BR2_PACKAGE_SPIDERMONKEY_JS_SHELL),en,dis)able-js-shell \

That's really not the typical/conventional way of writing that in
Buildroot, so I've expanded that into our more verbose, but more
standard ifeq .. else .. endif conditional.

Then I've applied to master, because I really consider a 24 MB space
saving to be a fix :-)

Thanks!

Thomas
-- 
Thomas Petazzoni, CTO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [Buildroot] [PATCH] package/spidermonkey: do not build the JavaScript shell, by default
  2020-03-08 13:52 ` Thomas Petazzoni
@ 2020-03-08 15:11   ` Carlos Santos
  2020-03-08 21:26     ` Thomas Petazzoni
  0 siblings, 1 reply; 4+ messages in thread
From: Carlos Santos @ 2020-03-08 15:11 UTC (permalink / raw)
  To: buildroot

On Sun, Mar 8, 2020 at 10:53 AM Thomas Petazzoni
<thomas.petazzoni@bootlin.com> wrote:
>
> Hello Carlos,
>
> On Sun,  8 Mar 2020 00:21:28 -0300
> unixmania at gmail.com wrote:
>
> > From: Carlos Santos <unixmania@gmail.com>
> >
> > Add a configuration to enable the JavaScript shell (default off). So
> > far only libmozjs is required (by polkit) and the shell takes around
> > 24MiB.
> >
> > Signed-off-by: Carlos Santos <unixmania@gmail.com>
> > ---
> >  ....in-install-shell-only-if-it-s-built.patch | 28 +++++++++++++++++++
> >  package/spidermonkey/Config.in                | 11 ++++++++
> >  package/spidermonkey/spidermonkey.mk          |  1 +
> >  3 files changed, 40 insertions(+)
> >  create mode 100644 package/spidermonkey/0001-js-src-Makefile.in-install-shell-only-if-it-s-built.patch
> >
> > diff --git a/package/spidermonkey/0001-js-src-Makefile.in-install-shell-only-if-it-s-built.patch b/package/spidermonkey/0001-js-src-Makefile.in-install-shell-only-if-it-s-built.patch
> > new file mode 100644
> > index 0000000000..f6092af7ef
> > --- /dev/null
> > +++ b/package/spidermonkey/0001-js-src-Makefile.in-install-shell-only-if-it-s-built.patch
>
> We already had a 0001 patch, we actually have 10 patches on
> spidermonkey, so I renamed this one 0011.

Hum, that's the price passing "1" instead of "11" to --start-number. :-(

> Has this patch been submitted upstream ?

Well, "upstream" is Firefox and I don't believe they would care about
an installation error when we compile a code sub-tree taken from a
tarball made for Gentoo with an extra patch to force in-tree builds.
;-)

If the patch annoys you we can just use a post-install-target hook to
remove js60. I didn't follow this approach because I was afraid that
not passing --disable-js-shell would lead to the inclusion of code
that could cause problem at run time.

-- 
Carlos Santos <unixmania@gmail.com>

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [Buildroot] [PATCH] package/spidermonkey: do not build the JavaScript shell, by default
  2020-03-08 15:11   ` Carlos Santos
@ 2020-03-08 21:26     ` Thomas Petazzoni
  0 siblings, 0 replies; 4+ messages in thread
From: Thomas Petazzoni @ 2020-03-08 21:26 UTC (permalink / raw)
  To: buildroot

Hello Carlos,

On Sun, 8 Mar 2020 12:11:41 -0300
Carlos Santos <unixmania@gmail.com> wrote:

> > We already had a 0001 patch, we actually have 10 patches on
> > spidermonkey, so I renamed this one 0011.  
> 
> Hum, that's the price passing "1" instead of "11" to --start-number. :-(

Hehe :-)

> 
> > Has this patch been submitted upstream ?  
> 
> Well, "upstream" is Firefox and I don't believe they would care about
> an installation error when we compile a code sub-tree taken from a
> tarball made for Gentoo with an extra patch to force in-tree builds.
> ;-)

Indeed, there is not really a regular upstream for spidermonkey.
Fortunately, there are some patches submitting to polkit to make it use
the duktape JS engine instead of spidermonkey, hopefully they will be
merged in the near future.

> If the patch annoys you we can just use a post-install-target hook to
> remove js60. I didn't follow this approach because I was afraid that
> not passing --disable-js-shell would lead to the inclusion of code
> that could cause problem at run time.

Nah, the patch is fine, let's keep it this way.

Thanks!

Thomas
-- 
Thomas Petazzoni, CTO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2020-03-08 21:26 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-03-08  3:21 [Buildroot] [PATCH] package/spidermonkey: do not build the JavaScript shell, by default unixmania at gmail.com
2020-03-08 13:52 ` Thomas Petazzoni
2020-03-08 15:11   ` Carlos Santos
2020-03-08 21:26     ` Thomas Petazzoni

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.