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:
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

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

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.5 (Darwin)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFF2DSlS0foIafBdlkRAtP+AJ0dnt6/BJVNuwMSVJ2MGCRb5tK2+gCgjtdy
iGPznL4QGhV5xNream6rRQs=
=mfqt
-----END PGP SIGNATURE-----


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
+ 
_______________________________________________
macports-users mailing list
[email protected]
http://lists.macosforge.org/mailman/listinfo/macports-users

Reply via email to