<div dir="ltr">Ok, on my "https" branch here: <a href="https://github.com/gbaz/Cabal/tree/https">https://github.com/gbaz/Cabal/tree/https</a><div><br></div><div>We have some initial support for multibackend downloads and uploads both. Lots of bits are still missing, but the basic downloads work with curl and wget both, and the basic uploads with curl.</div><div><br></div><div>The code regarding uploading build reports (which isn't in use anyway) is now commented out temporarily.</div><div><br></div><div>Any work at adding other backends or further improving these (note the many TODO comments littering the code) can hopefully build on this. In particular, note there's an HttpTransportType, and a function `findHttpTransport`. In turn both `getHTTP` and `uploadToURI` now call this function, then case on the result to dispatch to different transports. All the transport specific logic should now be localized to those two places.</div><div><br></div><div>This code is still rather ugly and could use some cleanup. But it should provide an extension point for using other https layers as well.</div><div><br></div><div>On top of that, I haven't tackled the issue of making choice of transport configurable instead of just doing auto-discovery in a fixed order. It seems to me that this is something that could be added to the config file, or a command line flag, or both. So anyone that wants to fixate on that part of the problem, feel free to jump in :-)</div><div><br></div><div>For my part, I wanted to get this out there to help anyone else interested in adding a transport. At this point, I intend mainly to just clean up what exists, fill in the powershell (and possibly bitsadmin) transport for windows, and then reenable HTTP as a fallback layer in some fashion (with warnings or confirmation or something). (I had commented out the layer entirely to make sure I wasn't missing any uses of it).</div><div><br></div><div>Again, normally I wouldn't be sharing something in this halfway shape, but it seems useful to make it available for others interested in doing related work.</div><div><br></div><div>Cheers,</div><div>Gershom</div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, May 5, 2015 at 10:15 AM, Gershom B <span dir="ltr"><<a href="mailto:gershomb@gmail.com" target="_blank">gershomb@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Note that I’ve started some refactorings to support curl/wget/etc already. I’m not sure how best to keep these patches from stepping on one another’s toes. I’ll try to get my stuff to an unfinished, untested stopping point where nonetheless there is a clear extension point, and then perhaps a fork off of that branch would make sense?<br>
<span class="HOEnZb"><font color="#888888"><br>
—Gershom<br>
</font></span><span class="im HOEnZb"><br>
<br>
On May 5, 2015 at 7:29:21 AM, Mikhail Glushenkov (<a href="mailto:the.dead.shall.rise@gmail.com">the.dead.shall.rise@gmail.com</a>) wrote:<br>
> Hi,<br>
><br>
</span><div class="HOEnZb"><div class="h5">> On 4 May 2015 at 08:31, Michael Snoyman wrote:<br>
> > Just a little update on this. I pinged the author of publicsuffixlist<br>
> > (necessary for proper cookie domain handling) about removing the<br>
> > data-default dependency, and after discussion we decided to just merge the<br>
> > code into http-client instead. With that change, the full dependency list<br>
> > for http-client-openssl is in fact smaller that http-streams:<br>
><br>
> I think we would accept a patch making cabal-install depend on<br>
> http-client or http-streams if it was enabled with a flag.<br>
> Refactorings required to make this work would also make it simpler to<br>
> add support for curl/wget/whatever.<br>
> _______________________________________________<br>
> cabal-devel mailing list<br>
> <a href="mailto:cabal-devel@haskell.org">cabal-devel@haskell.org</a><br>
> <a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/cabal-devel" target="_blank">http://mail.haskell.org/cgi-bin/mailman/listinfo/cabal-devel</a><br>
><br>
<br>
</div></div></blockquote></div><br></div>