2011-06-29 9 views
2

次のように私は、環境中に埋め込まれたスペースで変数を提供する場合:zc.recipe.cmmiのバグ?

environment = 
    CPPFLAGS="-D_GNU_SOURCE -I${openssl:location}/include" 

私はこのエラーを取得する:

とValueError:辞書更新シーケンス要素#1は、長さ1を持っています。 2が必要です

これはバグですか?回避策はありますか?

+0

https://bugs.launchpad.net/zc.buildout/+bug/393333 – SteveM

答えて

3

これはzc.recipe.cmmiの欠点です。スペースなしで環境変数を処理することはできません。 bugtracker for the recipeにはパッチがあります。

現在のところ、このパッチの適用以外の回避策はありません。あなたも(未試行)このケースで動作するはず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パーツがそのパーツの前に実行される前に、パーツをリストする必要があります(あるいは、依存関係を作ることもできます)。

+0

感謝。代わりにplone.recipe.commandを使うことにしました。そしてconfigure、make、makeを手作業でインストールしました。うまくいった!私は再びzc.recipe.cmmiを使用するとは思わない。 – sureshvv

+0

zc.recipe.cmmiは、plone.recipe.commandで再現するのが難しいいくつかの素晴らしい共有ビルド管理を行います。 –

1

代替ソリューションは、ちょうどそのようにレシピの「のconfigureコマンド」を乱用することです:

[buildthis] 
recipe = zc.recipe.cmmi 
... 
configure-command = 
    export CPPFLAGS="-D_GNU_SOURCE -I${openssl:location}/include"; 
    ./configure