次のように、環境にスペースが埋め込まれた変数を提供するとします。
environment =
CPPFLAGS="-D_GNU_SOURCE -I${openssl:location}/include"
このエラーが発生します:
ValueError:ディクショナリ更新シーケンス要素#1の長さは1です。2が必要です
これはバグですか?回避策はありますか?
これはzc.recipe.cmmiの欠点です。スペースなしでは環境変数を処理できません。レシピのバグトラッカーで利用可能なパッチがあります。
現在、パッチを適用する以外の回避策については認識していません。レシピを使用して既存の卵にパッチを適用できます。collective.recipe.patch
この場合も機能するはずです(未試行)。
[buildout]
parts =
patch-z.r.cmmi
yourcmmipart
[patch-z.r.cmmi]
recipe = collective.recipe.patch
egg = zc.recipe.cmmi <= 1.3.4
patch = patches/environ_section_trunk_r101308.patch
これはpatches
、ダウンロードされたバグのパッチを含むsuddirectoryがあることを前提としています。cmmiパーツの前にパーツをリストして、そのパーツの前に実行する必要があります(または、依存関係を作成できます)。
別の解決策は、次のようにレシピの「configure-command」を悪用することです。
[buildthis]
recipe = zc.recipe.cmmi
...
configure-command =
export CPPFLAGS="-D_GNU_SOURCE -I${openssl:location}/include";
./configure