<div dir="ltr">On my branch now, everything "should" work: <a href="https://github.com/gbaz/Cabal/tree/https">https://github.com/gbaz/Cabal/tree/https</a><div><br></div><div>By "should" I mean the refactor is in place, and we have support for curl, wget, powershell, and insecure-http.</div><div><br></div><div>You can pass a global flag to set your preferred transport (and it will not try insecure-http unless you explictly request it). If you use any transport but insecure-http it will convert http to https urls automatically.</div><div><br></div><div>Things that remain outstanding</div><div><br></div><div>1) ETags are not enabled on the new transports -- this is just some tedious work to emit them from the programs and parse them out.</div><div><div>2) http-transport is a global option and can be passed, but it doesn't seem to wind up in the documentation correctly. Not sure how to configure the options properly.</div></div><div><br></div><div>3) Proxy support is not fully tested on curl/wget -- it _did_ work on my machine at one point, but it lives behind a particularly perverse proxy and ceased working in a way I can't diagnose and might just be due to a hopeless proxy.<br></div><div>4) I haven't properly tested upload support on wget, which is fiddly since it needs to do its own multipart encoding just like insecure-http.<br></div><div><br></div><div><div>5) Proxies are not enabled on powershell -- this is some tedious work to automate parsing out the proxy settings better, since the "correct powershell" way to handle proxies with user/passwords doesn't seem to actually work.</div></div><div>6) Powershell also needs real escaping, in case package names/urls perversely have quotation marks in them.</div><div><br></div><div>Anyway, this touched a bunch of stuff in small ways and could use some review and _especially_ some testers across various platforms and transports to see what's still missing,</div><div><br></div><div>If any brave souls want to try out the various transports, or pick up some of the remaining work, please do! This was a nice exercise, but I could really use another set or two of eyes/hands to take it to 100%.</div><div><br></div><div>(note that even though I branched before the digest fix, I ported it over to this branch, so that the insecure-http transport _should_ be using digest auth properly already).</div><div><br></div><div>--Gershom</div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, May 7, 2015 at 5:02 AM, Mikhail Glushenkov <span dir="ltr"><<a href="mailto:the.dead.shall.rise@gmail.com" target="_blank">the.dead.shall.rise@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi,<br>
<span class=""><br>
On 6 May 2015 at 20:08, Thomas Tuegel <<a href="mailto:ttuegel@gmail.com">ttuegel@gmail.com</a>> wrote:<br>
> The saved program configuration is not serialized in<br>
> `dist/setup-config`, [1] so it must be regenerated at runtime every<br>
> time, anyway.<br>
<br>
</span>We don't want to configure all known built-in programs on each 'cabal<br>
upload', though, so we should introduce a 'configTransport' function<br>
to be used in 'uploadAction' instead of 'configCompiler'.<br>
</blockquote></div><br></div>