bug-libtool
[Top][All Lists]
Advanced

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

bug#11029: bootstrap problems


From: Peter Rosin
Subject: bug#11029: bootstrap problems
Date: Mon, 19 Mar 2012 09:48:11 +0100
User-agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:10.0.2) Gecko/20120216 Thunderbird/10.0.2

Peter O'Gorman skrev 2012-03-17 04:53:
> On 03/16/2012 04:30 PM, Peter Rosin wrote:
>> 2. Automake didn't like that ChangeLog was missing ->  "touch ChangeLog"
>>
> 
> I had a look at this, bootstrap is supposed to add a dummy ChangeLog for 
> this, but does not, depending upon what bs_echo got set to.
> 
> func_ifcontains has this:
>     # The embedded echo is to squash whitespace before globbing.
>     _G_wslist=`$bs_echo " "$1" "`
>     _G_member=$2
>     _G_yes_cmd=$3
>     _G_no_cmd=${4-":"}
> 
>     case $_G_wslist in
>       *" $_G_member "*)
> 
> and is called like this:
> func_ifcontains '
>         announce-gen
>         do-release-commit-and-tag
>         gendocs
>         git-version-gen
>         gitlog-to-changelog
>         gnu-web-doc-update
>         gnupload
>         maintainer-makefile
>         readme-release
> ' gitlog-to-changelog func_ensure_changelog
> 
> If bs_echo is printf '%s\n' then the embedded newlines in $_G_wslist do not 
> get eliminated by the `$bs_echo " "$1" "` and " gitlog-to-changelog " (with 
> those spaces on both sides) is not in the string, so no ChangeLog is created.
> 
> This function doesn't appear to be part of gnulib yet, and I'm not sure how 
> best to fix it.
> 
> Changing $bs_echo to 'echo' should work, so should using set foo $1; shift 
> (after assigning $2,3 and 4) and then assigning _G_wslist=" $@ ".
> 
> I'll look to see how we eliminate spaces and newlines elsewhere in libtool 
> and use the same idiom.

Something like this also works:

diff --git a/bootstrap b/bootstrap
index 7b26d00..21d2268 100755
--- a/bootstrap
+++ b/bootstrap
@@ -1803,10 +1803,12 @@ func_ifcontains ()
     _G_member=$2
     _G_yes_cmd=$3
     _G_no_cmd=${4-":"}
+    nl='
+'
 
     case $_G_wslist in
-      *" $_G_member "*)
-        eval "$_G_yes_cmd"
+      *[\ $nl]$_G_member[\ $nl]*)
+       eval "$_G_yes_cmd"
        _G_status=$?
        ;;
       *)

It fixes the common case when bs_echo is printf '%s\n' at least.  But it doesn't
fix the real bug of course (feeding multiple args to bs_echo).

Cheers,
Peter





reply via email to

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