threads / discuss / 7152

Re: Git building is borked

Subject: Re: Git building is borked

## tl;dr

7 messages between Mar 8, 2007 and Mar 8, 2007.

replies: 6people: 2as markdown or json

Anton Altaparmakov· Mar 8, 2007, 10:21 UTC · lore

Git building is borked

Hi,

I am trying to build git on my Mac Book Pro running OSX Tiger 10.4.8 and I have run into a problem...

[snip lots of successful output]
make -C git-gui all
GITGUI_VERSION = 0.6.GITGUI
     GEN CREDITS-FILE
error: Cannot locate authorship information.
make[1]: *** [CREDITS-FILE] Error 1
make: *** [all] Error 2

Looking at the CREDITS-GEN script it runs git for all sorts of evil purposes thus it appears that in order to build and install git one has to already got installed git!

That seems terminally flawed/broken to me...
So how do I get git installed in the first place on my OSX box?!?
Best regards,
	Anton
-- 
Anton Altaparmakov <aia21 at cam.ac.uk> (replace at with @)
Unix Support, Computing Service, University of Cambridge, CB2 3QH, UK
Linux NTFS maintainer, http://www.linux-ntfs.org/
Anton Altaparmakov· Mar 8, 2007, 10:29 UTC · re: Anton Altaparmakov · lore
It is even worse...

Having commented out all mentions of "git-gui" from the main git Makefile, I was able to run make and "sudo make install" succesfully and now I appear to have a working git. (-:

But now I put the git-gui mentions back into the Makefile and tried again it still fails. Looking at it closer it actually requires me to compile within a checked out git tree, i.e. including the .git directory and all its contents! That seems even weirder than requiring git to be installed in the first place...

Best regards,
	Anton
On 8 Mar 2007, at 10:21, Anton Altaparmakov wrote:
Show 24 quoted lines
> Hi,
>
> I am trying to build git on my Mac Book Pro running OSX Tiger  
> 10.4.8 and I have run into a problem...
>
> [snip lots of successful output]
> make -C git-gui all
> GITGUI_VERSION = 0.6.GITGUI
>     GEN CREDITS-FILE
> error: Cannot locate authorship information.
> make[1]: *** [CREDITS-FILE] Error 1
> make: *** [all] Error 2
>
> Looking at the CREDITS-GEN script it runs git for all sorts of evil  
> purposes thus it appears that in order to build and install git one  
> has to already got installed git!
>
> That seems terminally flawed/broken to me...
>
> So how do I get git installed in the first place on my OSX box?!?
>
> Best regards,
>
> 	Anton
-- 
Anton Altaparmakov <aia21 at cam.ac.uk> (replace at with @)
Unix Support, Computing Service, University of Cambridge, CB2 3QH, UK
Linux NTFS maintainer, http://www.linux-ntfs.org/
Shawn O. Pearce· Mar 8, 2007, 14:55 UTC · re: Anton Altaparmakov · lore
Anton Altaparmakov <aia21@cam.ac.uk> wrote:
Show 5 quoted lines
> But now I put the git-gui mentions back into the Makefile and tried  
> again it still fails.  Looking at it closer it actually requires me  
> to compile within a checked out git tree, i.e. including the .git  
> directory and all its contents!  That seems even weirder than  
> requiring git to be installed in the first place...

What version of Git specifically are you building with? How did you obtain these source files?

Release tarballs of Git contain a git-gui/credits file that makes CREDITS-GEN avoid invoking the not-yet-existing Git. Building git-gui without this file does require not only a working Git installation, but also the git-gui object database. Both of these are readily available on a Git hacker's system, and on any system that is attempting to create a release tarball.

There are other files included in the release tarballs (version, git-gui/version) that are also required to get a correct build when you don't have Git installed, or are missing its object database. Having these missing does not stop the build process, but it does make the output of `git version` and `git gui version` relatively useless.

So you need to be bootstrapping from a released *.tar.{gz,bz2}, which can be found here:

  http://www.kernel.org/pub/software/scm/git/

Sadly, simply downloading the source files from a random gitweb doesn't work anymore. Yes, I know, my fault. ;-)

-- 
Shawn.
Anton Altaparmakov· Mar 8, 2007, 15:07 UTC · re: Shawn O. Pearce · lore
On 8 Mar 2007, at 14:55, Shawn O. Pearce wrote:
Show 9 quoted lines
> Anton Altaparmakov <aia21@cam.ac.uk> wrote:
>> But now I put the git-gui mentions back into the Makefile and tried
>> again it still fails.  Looking at it closer it actually requires me
>> to compile within a checked out git tree, i.e. including the .git
>> directory and all its contents!  That seems even weirder than
>> requiring git to be installed in the first place...
>
> What version of Git specifically are you building with?  How did
> you obtain these source files?

On my old workstation (Linux) which has the git git tree on it I tarred up the files in the git directory (not including the .git directory), then scp-ed the tar ball to my new workstation (OSX), untarred it there and tried to build git to boot strap...

Show 21 quoted lines
> Release tarballs of Git contain a git-gui/credits file that makes
> CREDITS-GEN avoid invoking the not-yet-existing Git.  Building
> git-gui without this file does require not only a working Git
> installation, but also the git-gui object database.  Both of these
> are readily available on a Git hacker's system, and on any system
> that is attempting to create a release tarball.
>
> There are other files included in the release tarballs (version,
> git-gui/version) that are also required to get a correct build when
> you don't have Git installed, or are missing its object database.
> Having these missing does not stop the build process, but it does
> make the output of `git version` and `git gui version` relatively
> useless.
>
> So you need to be bootstrapping from a released *.tar.{gz,bz2},
> which can be found here:
>
>   http://www.kernel.org/pub/software/scm/git/
>
> Sadly, simply downloading the source files from a random gitweb
> doesn't work anymore.  Yes, I know, my fault.  ;-)

Ah, ok. I did not realize that released tar balls would be different to just tarring up the files...

That is fair enough. In the end I manage to boot strap myself by removing the git-gui stuff out of the main Makefile which allowed me to do make and sudo make install. Then I used the newly installed git to do a "git clone" of the git repository on kernel.org, then build and installed that which gave me git-gui as well.

I then deleted the old git directory I used for boot strapping.
Thanks for the quick response.
Best regards,
	Anton
-- 
Anton Altaparmakov <aia21 at cam.ac.uk> (replace at with @)
Unix Support, Computing Service, University of Cambridge, CB2 3QH, UK
Linux NTFS maintainer, http://www.linux-ntfs.org/
Shawn O. Pearce· Mar 8, 2007, 15:13 UTC · re: Anton Altaparmakov · lore
Anton Altaparmakov <aia21@cam.ac.uk> wrote:
Show 8 quoted lines
> On 8 Mar 2007, at 14:55, Shawn O. Pearce wrote:
> >What version of Git specifically are you building with?  How did
> >you obtain these source files?
> 
> On my old workstation (Linux) which has the git git tree on it I  
> tarred up the files in the git directory (not including the .git  
> directory), then scp-ed the tar ball to my new workstation (OSX),  
> untarred it there and tried to build git to boot strap...

Since you solved your problem, this is more for the list archives than anything:

Use `make dist` instead.  It uses your currently installed Git
to generate a tarball from the revision in HEAD, then appends in
the 4 critical files.  I use this all of the time (almost daily,
or close to it) to do builds of Git on Cygwin and Solaris 9.
In both cases I am building without `git` (or .git) available,
and am relying on just the output of `make dist`.
 
-- 
Shawn.
Anton Altaparmakov· Mar 8, 2007, 15:19 UTC · re: Shawn O. Pearce · lore
On 8 Mar 2007, at 15:13, Shawn O. Pearce wrote:
Show 19 quoted lines
> Anton Altaparmakov <aia21@cam.ac.uk> wrote:
>> On 8 Mar 2007, at 14:55, Shawn O. Pearce wrote:
>>> What version of Git specifically are you building with?  How did
>>> you obtain these source files?
>>
>> On my old workstation (Linux) which has the git git tree on it I
>> tarred up the files in the git directory (not including the .git
>> directory), then scp-ed the tar ball to my new workstation (OSX),
>> untarred it there and tried to build git to boot strap...
>
> Since you solved your problem, this is more for the list archives
> than anything:
>
> Use `make dist` instead.  It uses your currently installed Git
> to generate a tarball from the revision in HEAD, then appends in
> the 4 critical files.  I use this all of the time (almost daily,
> or close to it) to do builds of Git on Cygwin and Solaris 9.
> In both cases I am building without `git` (or .git) available,
> and am relying on just the output of `make dist`.
Ah, that is cool.  Thanks.  I will use that next time.  (-:
Best regards,
	Anton
-- 
Anton Altaparmakov <aia21 at cam.ac.uk> (replace at with @)
Unix Support, Computing Service, University of Cambridge, CB2 3QH, UK
Linux NTFS maintainer, http://www.linux-ntfs.org/
Anton Altaparmakov· Mar 8, 2007, 15:10 UTC · re: Shawn O. Pearce · lore

btw. Would it be an idea to maybe make building/installing git-gui optional?

I actually did "make configure" and then the configure script... It should not be too hard to make that detect whether it is running in the git repository and if not and the files are not there either automatically disable git-gui. Or at least allow a "--disable-git- gui" switch to ./configure or something.

Would make the lives of weird people like me easier.  (-:
Best regards,
	Anton
On 8 Mar 2007, at 14:55, Shawn O. Pearce wrote:
Show 33 quoted lines
> Anton Altaparmakov <aia21@cam.ac.uk> wrote:
>> But now I put the git-gui mentions back into the Makefile and tried
>> again it still fails.  Looking at it closer it actually requires me
>> to compile within a checked out git tree, i.e. including the .git
>> directory and all its contents!  That seems even weirder than
>> requiring git to be installed in the first place...
>
> What version of Git specifically are you building with?  How did
> you obtain these source files?
>
> Release tarballs of Git contain a git-gui/credits file that makes
> CREDITS-GEN avoid invoking the not-yet-existing Git.  Building
> git-gui without this file does require not only a working Git
> installation, but also the git-gui object database.  Both of these
> are readily available on a Git hacker's system, and on any system
> that is attempting to create a release tarball.
>
> There are other files included in the release tarballs (version,
> git-gui/version) that are also required to get a correct build when
> you don't have Git installed, or are missing its object database.
> Having these missing does not stop the build process, but it does
> make the output of `git version` and `git gui version` relatively
> useless.
>
>
> So you need to be bootstrapping from a released *.tar.{gz,bz2},
> which can be found here:
>
>   http://www.kernel.org/pub/software/scm/git/
>
>
> Sadly, simply downloading the source files from a random gitweb
> doesn't work anymore.  Yes, I know, my fault.  ;-)
-- 
Anton Altaparmakov <aia21 at cam.ac.uk> (replace at with @)
Unix Support, Computing Service, University of Cambridge, CB2 3QH, UK
Linux NTFS maintainer, http://www.linux-ntfs.org/

← back to recent threads