bug-libtool
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

FYI: BUG: libtool-1.9f and libtool-1.5.18: "install: you must specify a


From: Ralf Wildenhues
Subject: FYI: BUG: libtool-1.9f and libtool-1.5.18: "install: you must specify a destination"
Date: Fri, 8 Jul 2005 15:48:31 +0200
User-agent: Mutt/1.4.1i

* Ralf Wildenhues wrote on Wed, Jul 06, 2005 at 07:05:01PM CEST:
> * Juergen Leising wrote on Wed, Jul 06, 2005 at 09:03:49AM CEST:
> > 
> > The following error message appears due to a bug in
> > func_mode_install ():
> > 
> > /bin/sh ../../../libtool --mode=install cp -f  'libeic.la'
> > '/usr/local/lib/bastard/libeic.la'
> > libtool: install: you must specify a destination
> > libtool: install: Try `libtool --help --mode=install' for more
> > information.

> Proposed patch (against HEAD, similar for backport):

I have installed this slightly simpler patch, which also allows
backslash as directory separator, to all branches.  I decided to ignore
the slight chance of misparse that may ensue with a group named `cp':
  install -g cp ...

Cheers,
Ralf

HEAD/branch-2-0:
 
        * config/ltmain.m4sh (func_mode_install): Do not assume `-f'
        needs an argument if the install program is `cp'.  Cleanup
        install mode somewhat.
        Reported by Juergen Leising <address@hidden>.

Index: config/ltmain.m4sh
===================================================================
RCS file: /cvsroot/libtool/libtool/config/ltmain.m4sh,v
retrieving revision 1.72
diff -u -r1.72 ltmain.m4sh
--- config/ltmain.m4sh  3 Jul 2005 16:55:50 -0000       1.72
+++ config/ltmain.m4sh  8 Jul 2005 13:41:32 -0000
@@ -1685,15 +1685,15 @@
     # install_prog (especially on Windows NT).
     if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh ||
        # Allow the use of GNU shtool's install command.
-       $ECHO "X$nonopt" | $Xsed | $GREP shtool > /dev/null; then
+       $ECHO "X$nonopt" | $GREP shtool >/dev/null; then
       # Aesthetically quote it.
       func_quote_for_eval "$nonopt"
       install_prog="$func_quote_for_eval_result "
-      arg="$1"
+      arg=$1
       shift
     else
       install_prog=
-      arg="$nonopt"
+      arg=$nonopt
     fi
 
     # The real first argument should be the name of the installation program.
@@ -1713,28 +1713,33 @@
     do
       if test -n "$dest"; then
        files="$files $dest"
-       dest="$arg"
+       dest=$arg
        continue
       fi
 
       case $arg in
       -d) isdir=yes ;;
-      -f) prev="-f" ;;
-      -g) prev="-g" ;;
-      -m) prev="-m" ;;
-      -o) prev="-o" ;;
+      -f)
+       case " $install_prog " in
+       *[[\\\ /]]cp\ *) ;;
+       *) prev=$arg ;;
+       esac
+       ;;
+      -g | -m | -o)
+       prev=$arg
+       ;;
       -s)
        stripme=" -s"
        continue
        ;;
-      -*) ;;
-
+      -*)
+       ;;
       *)
        # If the previous option needed an argument, then skip it.
        if test -n "$prev"; then
          prev=
        else
-         dest="$arg"
+         dest=$arg
          continue
        fi
        ;;



branch-1-5:

        * ltmain.in (install mode): Do not assume `-f' needs an argument if
        the install program is `cp'.  Cleanup install mode somewhat.
        Reported by Juergen Leising <address@hidden>.

Index: ltmain.in
===================================================================
RCS file: /cvsroot/libtool/libtool/Attic/ltmain.in,v
retrieving revision 1.334.2.76
diff -u -r1.334.2.76 ltmain.in
--- ltmain.in   3 Jul 2005 16:57:34 -0000       1.334.2.76
+++ ltmain.in   8 Jul 2005 13:42:26 -0000
@@ -5361,7 +5361,7 @@
     # install_prog (especially on Windows NT).
     if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh ||
        # Allow the use of GNU shtool's install command.
-       $echo "X$nonopt" | $Xsed | grep shtool > /dev/null; then
+       $echo "X$nonopt" | grep shtool > /dev/null; then
       # Aesthetically quote it.
       arg=`$echo "X$nonopt" | $Xsed -e "$sed_quote_subst"`
       case $arg in
@@ -5374,7 +5374,7 @@
       shift
     else
       install_prog=
-      arg="$nonopt"
+      arg=$nonopt
     fi
 
     # The real first argument should be the name of the installation program.
@@ -5399,28 +5399,31 @@
     do
       if test -n "$dest"; then
        files="$files $dest"
-       dest="$arg"
+       dest=$arg
        continue
       fi
 
       case $arg in
       -d) isdir=yes ;;
-      -f) prev="-f" ;;
-      -g) prev="-g" ;;
-      -m) prev="-m" ;;
-      -o) prev="-o" ;;
+      -f) 
+       case " $install_prog " in
+       *[\\\ /]cp\ *) ;;
+       *) prev=$arg ;;
+       esac
+       ;;
+      -g | -m | -o) prev=$arg ;;
       -s)
        stripme=" -s"
        continue
        ;;
-      -*) ;;
-
+      -*)
+       ;;
       *)
        # If the previous option needed an argument, then skip it.
        if test -n "$prev"; then
          prev=
        else
-         dest="$arg"
+         dest=$arg
          continue
        fi
        ;;




reply via email to

[Prev in Thread] Current Thread [Next in Thread]