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