Projects
New Ticket     Wiki     Browse Source     Timeline     Roadmap     Bug Reports     Search

Ticket #15100 (new defect)

Opened 6 months ago

Last modified 4 weeks ago

Define USE_CURL_MULTI for git-core

Reported by: svoop@… Owned by: bryan@…
Priority: Normal Milestone: Port Updates
Component: ports Version: 1.6.0
Keywords: git git-core curl Cc: wms@…, raimue@…
Port: git-core

Description

The git-core port configures http.h with "#undef USE_CURL_MULTI" which makes it impossible to use "git push" over HTTP(S). This was introduced about a year ago, see ticket #12008 for details.

I've overridden this and compiled git-core with "#define USE_CURL_MULTI". Config and compile worked fine and "git push" over HTTPS is possible without error. (Tested on a x86 MacBook Pro with OS X 10.5.x.)

Could you change the default of USE_CURL_MULTI in case there are no other blockers? Thanks!

Change History

Changed 6 months ago by jmr@…

  • cc bryan@… added

Cc maintainer.

Changed 6 months ago by wsiegrist@…

  • cc wms@… added

Changed 6 months ago by raimue@…

  • cc raimue@… added

There is patch-http.h.diff which explicitely removes the USE_CURL_MULTI option. I don't know if there is/was a valid reason to do so?

Changed 6 months ago by thierry.moisan@…

Removing patch-http.h.diff makes git-core works as expected. I tested it.

Changed 6 months ago by bryan@…

ticket 12008 did not introduce the patch: 12008 was simply a refactoring of previous patches to match the macports policy. The patches used to be arranged by function, now they are arranged by file.

USE_CURL_MULTI used to be horribly broken, causing severe data corruption.

Curl v7.16.0 was supposed to make USE_CURL_MULTI functional, but that caused severe data corruption, but on a much less frequent basis. Reproducing the bug required a very large checkout on a powerpc mac. By very large, I mean much larger than linux-kernel: I used an embedded linux distribution (which included 3 different linux kernel sources, 3 different libc's and hundreds of apps) for my testing. Intel macs appeared to work fine.

Curl v7.16.2 may have fixed the problem, but the decision was made not to trust it since nobody had the days of effort required to do an exhaustive test. At that time, disabling multi only slowed down checkouts.

We've had 8 releases of Curl since 7.16.0, most of which include some sort of patch to multi. So it's probably working fine now. Unfortunately, testing to make sure takes hours. Does somebody have the time to do so?

Changed 5 weeks ago by ryandesign@…

  • cc bryan@… removed
  • owner changed from macports-tickets@… to bryan@…
  • port set to git-core

Changed 4 weeks ago by bryan@…

Has anybody used large repositories with CURL_MULTI turned on over the last few months? Has anybody used PPC?

Note: See TracTickets for help on using tickets.