<div dir="ltr">On Sat, May 16, 2015 at 4:13 AM, Paul Moore <span dir="ltr"><<a href="mailto:p.f.moore@gmail.com" target="_blank">p.f.moore@gmail.com</a>></span> wrote:<br><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><span class="">> Though it's a lot harder to provide a build environment than just the lib to<br>
> link too .. I"m going to have to think more about that...<br>
<br>
</span>It seems to me that the end user doesn't really have a problem here<br>
("pip install matplotlib" works fine for me using the existing wheel).<br></blockquote><div><br></div><div>Sure -- but that's because Matthew Brett has done a lot of work to make that happen. <br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
It's the package maintainers (who have to build the binaries) that<br>
have the issue because everyone ends up doing the same work over and<br>
over, building dependencies.</blockquote><div><br></div><div>Exactly -- It would be nice if the ecosystem made that easier.<br><div> </div></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"> So rather than trying to address the hard<br>
problem of dynamic linking, maybe a simpler solution is to set up a<br>
PyPI-like hosting solution for static libraries of C dependencies?<br>
<br>
It could be as simple as a github project that contained a directory<br>
for each dependency, </blockquote><div><br></div><div>I started that here:<br><br><a href="https://github.com/PythonCHB/mac-builds">https://github.com/PythonCHB/mac-builds</a><br><br></div><div>but haven't kept it up. And Matthew Brett has done most of the work here:<br><br><a href="https://github.com/MacPython">https://github.com/MacPython</a><br><br></div><div>not sure how he's sharing the static libs -- but it could be done.<br></div><div><br></div><blockquote style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex" class="gmail_quote"> With a setuptools build plugin you could even just<br></blockquote><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
specify your libraries in setup.py, and have the plugin download the<br>
lib files automatically at build time. </blockquote><div><br></div><div>actually, that's a pretty cool idea! you'd need  place to host them -- gitHbu is no longer hosting "downloads" are they? though you could probably use github-pages.. (or somethign else)<br></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">People add libraries to the<br>
archive simply by posting pull requests. Maybe the project maintainer<br>
maintains the actual binaries by running the builds separately and<br>
publishing them separately, or maybe PRs include binaries</blockquote><div><br></div><div>or you use a CI system to build them. Something like this is being done by a bunch of folks for conda/binstar:<br><br><a href="https://github.com/ioos/conda-recipes">https://github.com/ioos/conda-recipes</a><br><br></div><div>is just one example.<br></div><br><blockquote style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex" class="gmail_quote">PS The above is described as if it's single-platform, mostly because I<br></blockquote><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
only tend to think about these issues from a Windows POV, but it<br>
shouldn't be hard to extend it to multi-platform.<br></blockquote><div><br></div><div>Indeed -- the MacWheels projects are, of course single platform, but could be extended. though at the end of the day, there isn't much to share between building libs on different platforms (unless you are using a cross-platfrom build tool -- why I was trying out gattai for my stuff)<br><br></div><div>The conda stuff is multi-platform, though, in fact, you have to write a separate build script for each platform -- it doesn't really provide anything to help with that part.<br><br></div>But while these efforts are moving towards removing the need for every pacakge maintainer to build the deps -- we are now duplicating the effort of trying to remove duplication of effort :-) -- but maybe just waiting for something to gain momentum and rise to the top is the answer.<br><br></div><div class="gmail_quote">-Chris<br></div><br>-- <br><div class="gmail_signature"><br>Christopher Barker, Ph.D.<br>Oceanographer<br><br>Emergency Response Division<br>NOAA/NOS/OR&R            (206) 526-6959   voice<br>7600 Sand Point Way NE   (206) 526-6329   fax<br>Seattle, WA  98115       (206) 526-6317   main reception<br><br><a href="mailto:Chris.Barker@noaa.gov" target="_blank">Chris.Barker@noaa.gov</a></div>
</div></div>