logo       

invalid sed usage wrt. POSIX: msg#00039

sysutils.automake.bugs

Subject: invalid sed usage wrt. POSIX

Hi,

I just encountered, that automake uses non-POSIX conform sed syntax wrt.
to the expected results in lispdir.m4 . For example, it uses something like:

echo '/usr/share/emacs/' | \
sed -e '/.*\/share\/\(x\?emacs\)/ {s,,foobar/\1,;p;q;}'

expected result is: foobar/emacs/

However, if one has set the env var POSIXLY_CORRECT, GNU sed > 3.02.0
produces: foobar//usr/share/emacs/

Implications: configure scripts produces garbage.

One example: configure for autoconf 2.57 (cause lispdir.m4)
with POSIXLY_CORRECT set:
checking where .elc files should go...
${datadir}//usr/local/share/emacs/site-lisp
with POSIXLY_CORRECT not set:
checking where .elc files should go... ${datadir}/emacs/site-lisp

So I suggest the following patch:

--- automake-1.7.2/m4/lispdir.m4.orig Fri Jul 19 22:17:58 2002
+++ automake-1.7.2/m4/lispdir.m4 Thu May 29 03:08:58 2003
@@ -48,8 +48,8 @@
AC_RUN_LOG([$EMACS -batch -q -eval '(while load-path (princ (concat (car
load-path) "\n")) (setq load-path (cdr load-path)))' </dev/null >conftest.out])
am_cv_lispdir=`sed -n \
-e 's,/$,,' \
- -e '/.*\/lib\/\(x\?emacs\/site-lisp\)$/{s,,${libdir}/\1,;p;q;}' \
- -e '/.*\/share\/\(x\?emacs\/site-lisp\)$/{s,,${datadir}/\1,;p;q;}' \
+ -e
'/.*\/lib\/x\?emacs\/site-lisp$/{s,.*\/lib\/\(x\?emacs\/site-lisp\),${libdir}/\1,;p;q;}'
\
+ -e
'/.*\/share\/x\?emacs\/site-lisp$/{s,.*\/share\/\(x\?emacs\/site-lisp\),${datadir}/\1,;p;q;}'
\
conftest.out`
rm conftest.out
if test -z "$am_cv_lispdir"; then



Regards,
jens.
--
+---[ Jens Elkner ]---------[ IMS GmbH, Abt. Server/Netzwerkmanagement ]--+
| Sandtorstr. 23 +49 391 54486 19230 |
| 39106 Magdeburg elkner@xxxxxxxxxxx |
| GERMANY http://www.imsgroup.de/ |
+-------------------------------------------------------------------------+





<Prev in Thread] Current Thread [Next in Thread>
Google Custom Search

News | FAQ | advertise