Patchwork Allow use of dash as /bin/sh

login
register
mail settings
Submitter Richard Purdie
Date Nov. 8, 2011, 9:33 p.m.
Message ID <1320788033.10843.116.camel@ted>
Download mbox | patch
Permalink /patch/14577/
State New
Headers show

Comments

Richard Purdie - Nov. 8, 2011, 9:33 p.m.
We've had the check for dash as /bin/sh for a long time. Dash has been
around long enough now that most major issues have been identified and
fixed from  build perspective.

This patch fixes a bashism in the openjade-native recipe. It also
adjusts libtool so that the header at the script is used and not the
value of $SHELL. This is because many Makefiles change $SHELL so dash
can get used to execute what is otherwise configured as a bash shell
script. Since we don't need to execute scipts this way on any system I'm
aware of us building upon, the simplest fix is just to remove $SHELL.

With these two changes the dash check can be removed and we can allow
builds with dash as /bin/sh

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>

[Note: I know I need to add the description of the libtool change above
into the prefix.patch]
---
Paul Menzel - Nov. 8, 2011, 10:01 p.m.
Dear Richard,


Am Dienstag, den 08.11.2011, 21:33 +0000 schrieb Richard Purdie:
> We've had the check for dash as /bin/sh for a long time. Dash has been
> around long enough now that most major issues have been identified and
> fixed from  build perspective.
> 
> This patch fixes a bashism in the openjade-native recipe. It also
> adjusts libtool so that the header at the script is used and not the
> value of $SHELL. This is because many Makefiles change $SHELL so dash
> can get used to execute what is otherwise configured as a bash shell
> script. Since we don't need to execute scipts this way on any system I'm

sc*r*ipts

> aware of us building upon, the simplest fix is just to remove $SHELL.
> 
> With these two changes the dash check can be removed and we can allow
> builds with dash as /bin/sh

Could also have been separate changes. But does not matter much.

> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>

Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net>

> [Note: I know I need to add the description of the libtool change above
> into the prefix.patch]
> ---

[…]


Thanks,

Paul

Patch

diff --git a/meta/classes/sanity.bbclass b/meta/classes/sanity.bbclass
index 3f42b4f..838448f 100644
--- a/meta/classes/sanity.bbclass
+++ b/meta/classes/sanity.bbclass
@@ -331,9 +331,6 @@  def check_sanity(e):
     if not data.getVar( 'DISPLAY', e.data, True ) and data.getVar( 'IMAGETEST', e.data, True ) == 'qemu':
         messages = messages + 'qemuimagetest needs a X desktop to start qemu, please set DISPLAY correctly (e.g. DISPLAY=:1.0)\n'
 
-    if os.path.basename(os.readlink('/bin/sh')) == 'dash':
-        messages = messages + "Using dash as /bin/sh causes various subtle build problems, please use bash instead (e.g. 'dpkg-reconfigure dash' on an Ubuntu system.\n"
-
     omask = os.umask(022)
     if omask & 0755:
         messages = messages + "Please use a umask which allows a+rx and u+rwx\n"
diff --git a/meta/recipes-devtools/libtool/libtool/prefix.patch b/meta/recipes-devtools/libtool/libtool/prefix.patch
index 1b20324..7737990 100644
--- a/meta/recipes-devtools/libtool/libtool/prefix.patch
+++ b/meta/recipes-devtools/libtool/libtool/prefix.patch
@@ -18,7 +18,7 @@  Index: libtool-2.4/libltdl/m4/libtool.m4
  
  # Always use our own libtool.
 -LIBTOOL='$(SHELL) $(top_builddir)/libtool'
-+LIBTOOL='$(SHELL) $(top_builddir)'
++LIBTOOL='$(top_builddir)'
 +LIBTOOL="$LIBTOOL/${host_alias}-libtool"
  AC_SUBST(LIBTOOL)dnl
  
diff --git a/meta/recipes-devtools/openjade/openjade-native_1.3.2.bb b/meta/recipes-devtools/openjade/openjade-native_1.3.2.bb
index 6cc6bb5..0cce46e 100644
--- a/meta/recipes-devtools/openjade/openjade-native_1.3.2.bb
+++ b/meta/recipes-devtools/openjade/openjade-native_1.3.2.bb
@@ -53,7 +53,9 @@  do_install() {
 
 	install -d ${D}${datadir}/sgml/openjade-${PV}
 	install -m 644 dsssl/catalog ${D}${datadir}/sgml/openjade-${PV}
-	install -m 644 dsssl/*.{dtd,dsl,sgm} ${D}${datadir}/sgml/openjade-${PV}
+	install -m 644 dsssl/*.dtd ${D}${datadir}/sgml/openjade-${PV}
+	install -m 644 dsssl/*.dsl ${D}${datadir}/sgml/openjade-${PV}
+	install -m 644 dsssl/*.sgm ${D}${datadir}/sgml/openjade-${PV}
 
 	install -d ${datadir}/sgml/openjade-${PV}
 	install -m 644 dsssl/catalog ${datadir}/sgml/openjade-${PV}/catalog