<html><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><br><div><div>On Nov 3, 2008, at 2:35 PM, Ian Bicking wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div>Paul Everitt wrote:<br><blockquote type="cite"><blockquote type="cite">Ian Bicking wrote:<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">Stefan Behnel wrote:<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">but I'd like it to work without buildout, and there's also several<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">buildout recipes and configurations out there and not one clear<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">canonical way to build lxml.<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">I wouldn't mind to ship lxml with a buildout recipe. I think the current<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">problem is that if we wait to find one that works well for as many people as<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">possible, we'll wait forever. So I'm fine with adding any script that's<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">somewhat tested and in use. Even a set of scripts that you can try is better<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">than none if people can't manage to build lxml themselves.<br></blockquote></blockquote><blockquote type="cite">FWIW, we have a very lean buildout that only focuses on the problem of building lxml. I could contribute it if you'd like.<br></blockquote><br>How does this compare to plone.recipe.lxml (<a href="http://pypi.python.org/pypi/plone.recipe.lxml)?">http://pypi.python.org/pypi/plone.recipe.lxml)?</a> I notice that package just had a release. Is this the config you've been using? <a href="https://svn.plone.org/svn/plone/PloneOrg/sandbox/xdv/new.plone.org/osx.cfg">https://svn.plone.org/svn/plone/PloneOrg/sandbox/xdv/new.plone.org/osx.cfg</a> (if so, in your run-deliverance script, it'd be best to use exec to avoid the intermediate shell process and make it easier to kill the script)</div></blockquote><div><br></div><div>Here's the buildout.cfg that we've used:</div><div><br></div><div><div>[libxml2]</div><div>recipe = zc.recipe.cmmi</div><div>url = <a href="http://somecustomer.agendaless.com/indexes/karl/cmmi/libxml2-2.6.32.tar.gz">http://somecustomer.agendaless.com/indexes/karl/cmmi/libxml2-2.6.32.tar.gz</a></div><div>extra_options = --without-python</div><div><br></div><div>[libxslt]</div><div>recipe = zc.recipe.cmmi</div><div>url = <a href="http://somecustomer.agendaless.com/indexes/karl/cmmi/libxslt-1.1.24.tar.gz">http://somecustomer.agendaless.com/indexes/karl/cmmi/libxslt-1.1.24.tar.gz</a></div><div>extra_options = --with-libxml-prefix=${libxml2:location}</div><div> --without-python</div><div><br></div><div>[lxml-environment]</div><div>XSLT_CONFIG=${buildout:directory}/parts/libxslt/bin/xslt-config</div><div>XML2_CONFIG=${buildout:directory}/parts/libxml2/bin/xml2-config</div><div><br></div><div>[lxml]</div><div>recipe = zc.recipe.egg:custom</div><div>egg = lxml</div><div>include-dirs = ${libxml2:location}/include/libxml2</div><div> ${libxslt:location}/include</div><div>library-dirs = ${libxml2:location}/lib</div><div> ${libxslt:location}/lib</div><div>rpath = ${libxml2:location}/lib</div><div> ${libxslt:location}/lib</div><div>environment = lxml-environment</div></div><br><blockquote type="cite"><div>One problem with buildout recipes is that they aren't, AFAIK, very compatible with other systems. That is, they can build the egg, but the egg isn't on the path of any interpreter, so unless you use buildout entirely you'll have to do some further manipulation to make lxml available.</div></blockquote><div><br></div><div>Right. On one hand, I'm reluctant to put all lxml's eggs in the buildout basket [wink] for that reason. lxml is much bigger than the world of Zope. Being confronted with something you didn't know (buildout) just to get to the thing you wanted (lxml) is a pain.</div><div><br></div><div>OTOH, I wonder if the solution is to simply provide a number of options. We're really only talking about Mac users, so it isn't as big of a decision. And for them, perhaps the answer is to ensure there are a number of choices (MacPorts and fink kept up-to-date, easier to build by hand with Stefan's XML2_CONFIG support, etc.)</div><br><blockquote type="cite"><div>I think I've also seen some reports that even using the macports lxml build, DYLD_LIBRARY_PATH can matter. I don't remember where I saw that now... maybe actually as part of another recipe?</div></blockquote><div><br></div></div>I think I saw something in another recipe, perhaps Martin's Deliverance one. My guess is that some of these are false blips from the time before XML2_CONFIG.<div><br></div><div>--Paul</div></body></html>