[ruby-dev:50103] [Ruby trunk Bug#13522][Open] Solaris10上で make update-rubyspec が bad substitution で失敗
From:
ngotogenome@...
Date:
2017-04-30 07:49:54 UTC
List:
ruby-dev #50103
Issue #13522 has been updated by ngoto (Naohisa Goto).
Status changed from Closed to Open
bad substitution でエラーになるのは変わらないため再オープンします。
Solaris の /bin/sh では、以下のように、`${branch+echo}` のようにスペースが入っていなければOK、`${branch+echo abc}` のようにスペースが入っていると bad substitution でアウト、になります。説明不足ですみませんでした。
つまり、r58507 では本質ではない場所が変更されていますが、肝心の「`${branch+git fetch "$@"}`」や「`${branch+--branch "$branch"}`」の部分が実質そのままでエラー解消には至らず、でした。
```
$ var=pqr
$ branch=xyz
$ ${branch+echo aaa}
bad substitution
$ ${branch+echo} aaa
aaa
$ echo ${branch+${var}}
pqr
$ echo ${branch-${var}}
xyz
$ unset branch
$ ${branch+echo aaa}
bad substitution
$ ${branch+echo} aaa
aaa: not found
$ echo ${branch+${var}}
$ echo ${branch-${var}}
pqr
```
----------------------------------------
Bug #13522: Solaris10上で make update-rubyspec が bad substitution で失敗
https://bugs.ruby-lang.org/issues/13522#change-64573
* Author: ngoto (Naohisa Goto)
* Status: Open
* Priority: Normal
* Assignee:
* Target version:
* ruby -v:
* Backport: 2.2: UNKNOWN, 2.3: UNKNOWN, 2.4: UNKNOWN
----------------------------------------
おそらく r58467 以降、またもやSolaris 10上にて make update-rubyspec が bad substitution で失敗します。
現象は [Bug #13424] と同一ですが、原因は r58467 の変更にあると思いますので新チケットにしました。
```
$ make update-rubyspec V=1
./tool/git-refresh -C ./spec \
git://github.com/ruby/mspec.git mspec
retrieving mspec ...
./tool/git-refresh: bad substitution
make: *** [update-mspec] Error 1
```
Solaris の /bin/sh では、`${branch:+git fetch "$@"}` がエラーになっているようです。
```
$ branch="aaa"
$ export branch
$ ${branch:+/bin/echo abc}
bad substitution
$ /bin/echo xyz ${branch:+checkout} "${branch:-pull}" tuv
xyz checkout aaa tuv
$
$ unset branch
$ ${branch:+/bin/echo abc}
bad substitution
$ /bin/echo xyz ${branch:+checkout} "${branch:-pull}" tuv
xyz pull tuv
```
--
https://bugs.ruby-lang.org/