Git-Core Problem Getting HTTP: CURL_MULTI.
Altoine Barker
ndiscreet at gmail.com
Sun Feb 18 17:28:51 PST 2007
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Does this mean that the patch is already committed to macports or that
we have to manually add the patch for the time being?
- -Altoine
P.S. I am glad that I was able to help. I didn't want to be overly
"chatty" but I was aiming for a solution. I apologize if I was overly
"chatty".
Bryan Larsen wrote:
> I tracked the problem down.
>
> running "git-http-fetch -v -a -w remotes/origin/master heads/master
> http://familiar.handhelds.org/git/familiar-build.git/" from Altoine's
> very nice bug report yielded:
>
> snip...
>
> got 5512a1f94e101c0369170e03817383f17ceb8d35
>
> Program received signal EXC_BAD_ACCESS, Could not access memory.
> Reason: KERN_INVALID_ADDRESS at address: 0x000a4000
> 0x00491955 in multi_runsingle (multi=0x11082d0, easy=0x110bfd0) at
> multi.c:798
> 798 multi.c: No such file or directory.
> in multi.c
> (gdb) bt
> #0 0x00491955 in multi_runsingle (multi=0x11082d0, easy=0x110bfd0) at
> multi.c:798
> #1 0x004932b9 in curl_multi_perform (multi_handle=0x11082d0,
> running_handles=0xbffff3b4) at multi.c:1328
> #2 0x00004ab2 in fill_active_slots ()
> #3 0x00003aeb in step_active_slots ()
> #4 0x00003b35 in run_active_slot ()
> #5 0x00005fe6 in fetch_object ()
> #6 0x000061c7 in fetch ()
> #7 0x00002230 in loop ()
> #8 0x000027c9 in pull ()
> #9 0x000068a3 in main ()
> (gdb)
>
> I can work around the problem in git-core by disabling CURL_MULTI, and
> have done so in the attached patch. Yeled, if you manage to fix the
> underlying problem, please let me know and I'll reenable CURL_MULTI and
> its accompanying nice speedup.
>
> thanks,
> Bryan
>
>
> Altoine Barker wrote:
> My apologies for overlooking to add that bit of information. Yes, I have
> /opt/local/bin listed first in my PATH statement. Here is what I get
> when I type "echo $PATH":
>
> <snip>
> /Library/Frameworks/Python.framework/Versions/Current/bin:/opt/local/bin:/opt/local/sbin:/bin:/sbin:/usr/bin:/usr/local/bin:/usr/sbin
>
> </snip>
>
> I unpacked and tried the new git stable (1.5.0) and am able to execute a
> successful http git of git itself. But I fail with 2.6 linux kernel (The
> requested URL returned error: 404 error: Could not interpret
> tags/v2.6.11 as something to pull), familiar.git, and elinks.git (both
> familiar and elinks produced this error: git-clone: line 300: 3228
> Segmentation fault git-http-fetch -v -a -w "$tname" "$name" "$1/").
>
> I will break down the commands and their output. I will be brief where
> posssible. I will note where I am brief. I put git-1.5.0 into this
> directory; /Volumes/COZ/GIT_/bin.
>
> First:
>
> <snip>
> MOBILEHOUSE:$ echo $PATH
> /Library/Frameworks/Python.framework/Versions/Current/bin:/Volumes/COZ/GIT_/bin:/opt/local/bin:/opt/local/sbin:/bin:/sbin:/usr/bin:/usr/local/bin:/usr/sbin
>
> MOBILEHOUSE:$ which git
> /Volumes/COZ/GIT_/bin/git
> MOBILEHOUSE:$ git --version
> git version 1.5.0
> MOBILEHOUSE:$ which curl
> /opt/local/bin/curl
> MOBILEHOUSE:$ curl --version
> curl 7.16.0 (powerpc-apple-darwin8.8.0) libcurl/7.16.0 OpenSSL/0.9.8d
> zlib/1.2.3
> Protocols: tftp ftp telnet dict ldap http file https ftps
> Features: Largefile NTLM SSL libz
> </snip>
>
> Second (Two familiar (handheld distro) http based git repositories):
>
> <snip>
> sh -x git-clone http://familiar.handhelds.org/git/familiar-build.git
> </snip>
> Now for the output of that command:
>
> <snip>
> + unset CDPATH
> + '[' -n '' ']'
> + quiet=
> + local=no
> + use_local=no
> + local_shared=no
> + unset template
> + no_checkout=
> + upload_pack=
> + bare=
> + reference=
> + origin=
> + origin_override=
> + use_separate_remote=t
> + depth=
> + break
> + repo=http://familiar.handhelds.org/git/familiar-build.git
> + test -n http://familiar.handhelds.org/git/familiar-build.git
> + test yes = ''
> + test -z ''
> + origin=origin
> ++ get_repo_base http://familiar.handhelds.org/git/familiar-build.git
> + base=
> + dir=
> + '[' -z '' ']'
> ++ echo http://familiar.handhelds.org/git/familiar-build.git
> ++ sed -e 's|/$||' -e 's|:*/*\.git$||' -e 's|.*[/:]||g'
> + dir=familiar-build
> + '[' -e familiar-build ']'
> + mkdir -p familiar-build
> ++ cd familiar-build
> ++ pwd
> + D=/Volumes/COZ/familiar_/familiar-build
> + trap 'err=$?; cd ..; rm -rf "$D"; exit $err' 0
> + GIT_DIR=/Volumes/COZ/familiar_/familiar-build/.git
> + export GIT_DIR
> + git-init
> Initialized empty Git repository in
> /Volumes/COZ/familiar_/familiar-build/.git/
> + test -n ''
> + rm -f /Volumes/COZ/familiar_/familiar-build/.git/CLONE_HEAD
> + test -z ''
> + clone_dumb_http http://familiar.handhelds.org/git/familiar-build.git
> /Volumes/COZ/familiar_/familiar-build
> + cd /Volumes/COZ/familiar_/familiar-build
> + clone_tmp=/Volumes/COZ/familiar_/familiar-build/.git/clone-tmp
> + mkdir -p /Volumes/COZ/familiar_/familiar-build/.git/clone-tmp
> ++ git-config --bool http.noEPSV
> + '[' -n '' -o '' = true ']'
> + http_fetch
> http://familiar.handhelds.org/git/familiar-build.git/info/refs
> /Volumes/COZ/familiar_/familiar-build/.git/clone-tmp/refs
> + curl -nsfL
> http://familiar.handhelds.org/git/familiar-build.git/info/refs
> + read sha1 refname
> ++ expr zrefs/heads/master : 'zrefs/\(.*\)'
> + name=heads/master
> + test -n t
> ++ expr zheads/master : 'zheads/\(.*\)'
> + branch_name=master
> + tname=remotes/origin/master
> + git-http-fetch -v -a -w remotes/origin/master heads/master
> http://familiar.handhelds.org/git/familiar-build.git/
> got c0a02c4137d8b7c4975ae603c0120dd1a6f3df11
> walk c0a02c4137d8b7c4975ae603c0120dd1a6f3df11
> got a4199a1c0bee918424aec5216eb2540cf1ca0008
> got 01dada37607f23f60118475f17d1201023733e37
> walk 01dada37607f23f60118475f17d1201023733e37
> got cd27f64e64783e0fc871cc64a65badb178f00c29
> got 1c31342b9fe16fd0ef8420905a39a0a16ba0d478
> got c750ad605b32777239163b0236dea55f73cf1d80
> got e0fd39a56e2c4d6c7bfcaea1a0098b9babeab534
> got 90ec22bee124705a9164f46a994cad1890bd92b5
> got 4129e4c523922afe3b10323fad256cfb1ac09e0e
> got 48747b05409ddd791c0323e0bdc8430cd6a3b6f8
> walk 48747b05409ddd791c0323e0bdc8430cd6a3b6f8
> got f4b65ff8348e2a2760f290ba9cf75307e2e71da6
> got cf0aac99d9b73ec039fd19c5446dda20d89fa897
> got 511fae4a2562bdaa73ceff46a29b68e8e8abc8fb
> got 890710a55428f23ba55f34a06f177c95b1225949
> got 652ebcee6e424b3bfda2519f0cc193c7536cf6db
> got 48d417be5f6ae83ac35a816b543072ce76b54040
> got cb1b64317b1fa70d3b0171ecb7f9e7bedc9dad69
> got 5dc3f4723b5fec43e04d95ccd6f862fc0975331a
> got adb14a75532aeba460c62443b71db624e97a03a0
> got fe33e5613a38d917c37c85ed94e4712feac11850
> got fb950dc69feb8afa93493747f33d6e1c02659b55
> got b2a838d53670a2d4f300fd2e7c5a69d42ae0c5c6
> got 590c1ef0648a438acb98730698fd129a5c707e53
> got 103be97f189ad275cd519357bdcace99d6e643d6
> got dd06d15954ac0d7b7ec729856b1690d73a23efd6
> got 7684a0a6e79f0b68b0944d9bb917136a41e3885f
> got d5fdab45f0d4a814b9e4e12adebd691a3ede1f59
> got f48c983ab0686d1ea717db55573081e31637f896
> got 16bcddc4d023ec403d00de4d8eaaea7bfa6ac4d4
> got c9aeefb9466529eb812abe6172df4ee02a3946f9
> got df6caa28ed60273cb01f761d6eba6d44399ef2bb
> got 8df8e5ac5cb92ceda9d2838c21ab6f76a0ce8428
> got 1d75964f578d99748bbb8ae0a751259e79a7915c
> got 64d32945ba6e8eb798948f4b9dae987864ada88c
> got b060c4f38486e1c4ebb734b7b4d75081057aa112
> git-clone: line 300: 3426 Segmentation fault git-http-fetch -v -a
> -w "$tname" "$name" "$1/"
> + exit 1
> + err=1
> + cd ..
> + rm -rf /Volumes/COZ/familiar_/familiar-build
> + exit 1
> </snip>
>
>
>> snip....
>
>
> -Altoine
>
> P.S. Could anyone on the curl's mailing list forward this email to their
> list as I am quite full of the lists I have now to help me undertake a
> Mac OS X based familiar cross-compiler environment. TIA
>
> P.P.S. Bryan, I forward this to the familiar list and macports list
> since this directly effects what I am trying to do on both of these
> lists.
>
> Bryan Larsen wrote:
>>>> stabbing wildly in the blue here: does /opt/local/bin precede /usr/bin
>>>> in your path? On older version of curl is installed in OS X by default
>>>> and may be causing the problems.
>>>>
>>>> Bryan
>>>>
>>>>
>>>> Altoine Barker wrote:
>>>> I see you are listed as the maintainer of the git-core project. I would
>>>> like to let you know that any git site that is accessed by port 80 will
>>>> not work. After entering this command:
>>>>
>>>> <snip>
>>>> git clone http://git.kernel.org/pub/scm/git/git.git
>>>> </snip>
>>>>
>>>> I get the following error messages:
>>>>
>>>> <snip>
>>>> error: Unable to start request
>>>> error: Could not interpret heads/html as something to pull
>>>> </snip>
>>>>
>>>> Is git-core using curl at all to pull these files? I do not know how to
>>>> work macports but I am noob and I am learning. TIA for any information
>>>> and your time in reading this message. Before I go, let me give you the
>>>> specs:
>>>>
>>>> iBook G4
>>>> Mac OS X 10.4.8
>>>> MacPorts 1.320
>>>> git-core 1.4.4.4
>>>> curl 7.16.0
>>>> Apple Xcode gcc 4.0.1 build 5363 (The latest and greatest for a PowerPC)
>>>>
>>>> -Altoine
>
>>
> ------------------------------------------------------------------------
> diff -N --unified --recursive git-core-1.4.4.4/Portfile git-core/Portfile
> --- git-core-1.4.4.4/Portfile 2007-02-18 13:25:29.000000000 -0500
> +++ git-core/Portfile 2007-02-18 13:10:44.000000000 -0500
> @@ -2,7 +2,7 @@
> PortSystem 1.0
> name git-core
> -version 1.4.4.4
> +version 1.5.0
> description The stupid content tracker.
> long_description A stupid (but extremely fast) directory \
> content manager. It doesn't do a whole lot, \
> @@ -14,16 +14,16 @@
> homepage http://git.or.cz/
> use_bzip2 yes
> master_sites http://www.kernel.org/pub/software/scm/git/
> -checksums md5 970aceba959e7fe92f065d7509e6db51 \
> - sha1 b9243da9071d28f616b530eff94a46fb223cc368 \
> - rmd160 a507e7d636e771fb3ed03054d3d70e6758385c28
> +checksums md5 5c3e163ac201695c9bfd5a19d730303c \
> + sha1 2a42673745f8131173fa538adc609bc664258406 \
> + rmd160 2ff7a1d31a73e1a75ccd284d8e7c35e05268ec73
> distname git-${version}
> depends_run bin:curl:curl bin:diff:diffutils bin:merge:rcs bin:wish:tk \
> bin:ssh:openssh bin:python:python24 bin:rsync:rsync \
> bin:sed:gsed
> depends_lib port:curl port:zlib port:openssl port:expat port:libiconv
> -patchfiles patch-Makefiles
> +patchfiles patch-Makefiles patch-curl
> use_configure no
> diff -N --unified --recursive git-core-1.4.4.4/files/patch-Makefiles git-core/files/patch-Makefiles
> --- git-core-1.4.4.4/files/patch-Makefiles 2007-02-18 12:36:53.000000000 -0500
> +++ git-core/files/patch-Makefiles 2007-02-18 11:17:57.000000000 -0500
> @@ -1,5 +1,5 @@
> ---- Documentation/Makefile.orig 2006-11-22 21:38:07.000000000 -0500
> -+++ Documentation/Makefile 2006-11-28 15:42:24.000000000 -0500
> +--- Documentation/Makefile.orig 2007-02-15 13:39:32.000000000 +0100
> ++++ Documentation/Makefile 2007-02-15 13:39:47.000000000 +0100
> @@ -26,7 +26,7 @@
> prefix?=$(HOME)
> @@ -9,9 +9,9 @@
> man1dir=$(mandir)/man1
> man7dir=$(mandir)/man7
> # DESTDIR=
> ---- Makefile.orig 2006-11-22 21:38:07.000000000 -0500
> -+++ Makefile 2006-11-28 15:21:34.000000000 -0500
> -@@ -106,8 +106,6 @@
> +--- Makefile.orig 2007-02-15 13:36:57.000000000 +0100
> ++++ Makefile 2007-02-15 13:38:00.000000000 +0100
> +@@ -114,8 +114,6 @@
> # CFLAGS and LDFLAGS are for the users to override from the command line.
> @@ -20,30 +20,3 @@
> ALL_CFLAGS = $(CFLAGS)
> ALL_LDFLAGS = $(LDFLAGS)
> STRIP ?= strip
> -@@ -437,7 +435,7 @@
> - ifdef CURLDIR
> - # This is still problematic -- gcc does not always want -R.
> - BASIC_CFLAGS += -I$(CURLDIR)/include
> -- CURL_LIBCURL = -L$(CURLDIR)/lib -R$(CURLDIR)/lib -lcurl
> -+ CURL_LIBCURL = -L$(CURLDIR)/lib -lcurl
> - else
> - CURL_LIBCURL = -lcurl
> - endif
> -@@ -458,7 +456,7 @@
> - ifdef OPENSSLDIR
> - # Again this may be problematic -- gcc does not always want -R.
> - BASIC_CFLAGS += -I$(OPENSSLDIR)/include
> -- OPENSSL_LINK = -L$(OPENSSLDIR)/lib -R$(OPENSSLDIR)/lib
> -+ OPENSSL_LINK = -L$(OPENSSLDIR)/lib
> - else
> - OPENSSL_LINK =
> - endif
> -@@ -476,7 +474,7 @@
> - ifdef ICONVDIR
> - # Again this may be problematic -- gcc does not always want -R.
> - BASIC_CFLAGS += -I$(ICONVDIR)/include
> -- ICONV_LINK = -L$(ICONVDIR)/lib -R$(ICONVDIR)/lib
> -+ ICONV_LINK = -L$(ICONVDIR)/lib
> - else
> - ICONV_LINK =
> - endif
> diff -N --unified --recursive git-core-1.4.4.4/files/patch-curl git-core/files/patch-curl
> --- git-core-1.4.4.4/files/patch-curl 1969-12-31 19:00:00.000000000 -0500
> +++ git-core/files/patch-curl 2007-02-18 13:09:36.000000000 -0500
> @@ -0,0 +1,10 @@
> +--- http.h.orig 2007-02-18 13:08:46.000000000 -0500
> ++++ http.h 2007-02-18 13:08:54.000000000 -0500
> +@@ -7,7 +7,6 @@
> + #include <curl/easy.h>
> +
> + #if LIBCURL_VERSION_NUM >= 0x070908
> +-#define USE_CURL_MULTI
> + #define DEFAULT_MAX_REQUESTS 5
> + #endif
> +
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.5 (Darwin)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
iD8DBQFF2P1SS0foIafBdlkRAnQGAJ0dy1jYeiQ5/RZJ1GKPeEQBczZg1gCdE1Vi
uQWnygunWre4x9576Cx1MRk=
=etWq
-----END PGP SIGNATURE-----
More information about the macports-users
mailing list