Re: HP-UX (git-2.14.0) Depot File / Source Code Build throws SHA1 Error
- From
Jeff King <peff@peff.net>
- Date
- Sep 1, 2017, 21:26 UTC
- Message-ID
- <20170901212620.w4ml5umoydbtuspw@sigill.intra.peff.net>
- In-Reply-To
- <CAC-YKd1sTQLMUZ6k+-4K09=NOa_HaOf1gp8H51VNZjziUrxOfA@mail.gmail.com>
On Fri, Sep 01, 2017 at 03:04:36PM +0100, josephpattara . wrote:
Show 8 quoted lines
> Dear HP-UX Git Maintainers, > > Sending this email as I was trying to use the HP-UX depot file which > was recently committed to the > http://hpux.connectinternetsolutions.com/hppd/hpux/Development/Tools/git-2.14.0/. > I tried to use the depot file and also attempted to build the code > from the adapted source code (using native HP-UX compiler as mentioned > in Installation Note) from the website.
I don't know anything about HP-UX, but I can tell you a few things from the Git side...
Show 9 quoted lines
> But unfortunately both of them failed with an error: > > Cloning into xxxx... > remote: Counting objects: 19813, done. > remote: Compressing objects: 100% (9124/9124), done. > remote: Total 19813 (delta 10340), reused 16358 (delta 8293) > Receiving objects: 100% (19813/19813), 6.07 MiB | 9.72 MiB/s, done. > fatal: pack is corrupted (SHA1 mismatch) > fatal: index-pack failed
Assuming there's no corruption happening on the network, it looks like there's a bug in the SHA-1 routines of your build. One very basic check would be to run:
echo foo | git hash-object --stdin
which should produce:
257cc5642cb1a054f08cc83f2d943e56fd3ebe99
(If it does that's not a guarantee that there aren't problems with more complex inputs, but if it produces a different sha1 that's a clear sign of a sha1 issue).
Show 13 quoted lines
> Looking at the dynamic link I can see the below: > > _HP_DLDOPTS="-ldd" /usr/bin/git > /usr/lib/hpux32/libpthread.so => /usr/lib/hpux32/libpthread.so > libpthread.so.1 => /usr/lib/hpux32/libpthread.so.1 > libz.so => /usr/local/lib/hpux32/libz.so > libiconv.so => /usr/local/lib/hpux32/libiconv.so > libintl.so => /usr/local/lib/hpux32/libintl.so > libc.so.1 => /usr/lib/hpux32/libc.so.1 > libdl.so.1 => /usr/lib/hpux32/libdl.so.1 > > Until recently we were using the older GIT version for HP-UX 1.8.5.3 > and I can see the older GIT had a dynamic link for libcrypto.so.
Git can build against several SHA-1 implementations. In v2.13 and up, the default is the collision-detecting version publicized as part of the SHAttered attacks earlier this year. We have had a few problems with it misbehaving on uncommon platforms or compilers, so it seems a likely candidate here.
You can try building with "make OPENSSL_SHA1=Yes" to use openssl instead of the collision-detecting version. You can also try "make BLK_SHA1=Yes" if you have trouble building against openssl for whatever reason.
> The clarification I have is > 1. Is the version 2.14.0 from HPUX connect is it really usable (depot > file and also the source code)
That I don't know. I took a peek at the diff between their source and a pristine v2.14.0 tarball, and I don't see anything too exotic. So you could try the upstream code from:
https://www.kernel.org/pub/software/scm/git/git-2.14.1.tar.gz
but I suspect the problem would still exist.
> 2. Was it deliberate to remove the openssl linkage from the new GIT or > am I really missing any special configure or build flags to enable the > libcrypto.so linkage.
Yes, the default flipped but you can still change it. See above.
> 3. Is the SHA1 error which I get is it really to do with the missing > libcrypto.so or I am on a wrong inference track?
I think it's likely that you're on the right track.
-Peff