From: ngotogenome@... Date: 2017-04-30T07:49:54+00:00 Subject: [ruby-dev:50103] [Ruby trunk Bug#13522][Open] Solaris10上で make update-rubyspec が bad substitution で失敗 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/