[Top][All Lists]
[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