threads / discuss / 30317

Build without BUILT_INS

Subject: Build without BUILT_INS

## tl;dr

5 messages between Apr 24, 2012 and Apr 25, 2012.

replies: 4people: 3as markdown or json

Steven Penny· Apr 24, 2012, 02:19 UTC · lore
I would like to build Git for Windows without the hard links in libexec/git-core
I tried doing
make install prefix=/c/git BUILT_INS=
and I get this error

install git.exe git-upload-pack.exe git-receive-pack.exe git-upload-archive.exe git-shell.exe git-cvsserver '/c/git/bin' install: cannot stat `git-receive-pack.exe': No such file or directory install: cannot stat `git-upload-archive.exe': No such file or directory make: *** [install] Error 1

Is there a way to build Git without the built-ins?
Some discussion here
http://github.com/msysgit/git/pull/4
Junio C Hamano· Apr 24, 2012, 02:42 UTC · re: Steven Penny · lore

Re: Build without BUILT_INS

Steven Penny <svnpenn@gmail.com> writes:
Show 7 quoted lines
> I would like to build Git for Windows without the hard links in libexec/git-core
>
> I tried doing
>
> make install prefix=/c/git BUILT_INS=
>
> and I get this error
Unsurprising.

What are you trying to do? Are you trying to build a git that does not know any of the built-in commands like "checkout", "commit", etc? Or do you still want a full-featured git, but because you know the code to perform "git foo" for any builtin command "foo" is contained in git executable itself, you want to "rm -f git-foo" from the filesystem?

The latter is a bad idea to begin with, as it will break older scripts that trust the promise that by having git --exec-path early on the $PATH older forms "git-foo" will always work.

If you really want to do so, the right way is not by mucking BUILT_INS to empty. I do not know how GfW is built, but if it uses our usual Makefile, find the place where it installs the git-foo forms of links after it installs the main git executable, and comment it out.

And no, it will *not* be a compilation option, as the resulting installation will break the age-old promise we made to script writers.

Good luck, and have fun.
Andreas Ericsson· Apr 24, 2012, 08:32 UTC · re: Junio C Hamano · lore

Re: Build without BUILT_INS

On 04/24/2012 04:42 AM, Junio C Hamano wrote:
Show 30 quoted lines
> Steven Penny<svnpenn@gmail.com>  writes:
> 
>> I would like to build Git for Windows without the hard links in libexec/git-core
>>
>> I tried doing
>>
>> make install prefix=/c/git BUILT_INS=
>>
>> and I get this error
> 
> Unsurprising.
> 
> What are you trying to do?  Are you trying to build a git that does not
> know any of the built-in commands like "checkout", "commit", etc?  Or do
> you still want a full-featured git, but because you know the code to
> perform "git foo" for any builtin command "foo" is contained in git
> executable itself, you want to "rm -f git-foo" from the filesystem?
> 
> The latter is a bad idea to begin with, as it will break older scripts
> that trust the promise that by having git --exec-path early on the $PATH
> older forms "git-foo" will always work.
> 
> If you really want to do so, the right way is not by mucking BUILT_INS
> to empty.  I do not know how GfW is built, but if it uses our usual
> Makefile, find the place where it installs the git-foo forms of links
> after it installs the main git executable, and comment it out.
> 
> And no, it will *not* be a compilation option, as the resulting
> installation will break the age-old promise we made to script writers.
> 

Otoh, we did warn that we were going to deprecate the 'git-foo' form back in 2005 when the git wrapper was rewritten in C, so perhaps we should consider marking it as deprecated now so we can get rid of them altogether altogether in another seven years. ;)

-- 
Andreas Ericsson                   andreas.ericsson@op5.se
OP5 AB                             www.op5.se
Tel: +46 8-230225                  Fax: +46 8-230231

Considering the successes of the wars on alcohol, poverty, drugs and
terror, I think we should give some serious thought to declaring war
on peace.
Junio C Hamano· Apr 24, 2012, 19:41 UTC · re: Andreas Ericsson · lore

Re: Build without BUILT_INS

Andreas Ericsson <ae@op5.se> writes:
Show 8 quoted lines
> On 04/24/2012 04:42 AM, Junio C Hamano wrote:
>>  ...
>> And no, it will *not* be a compilation option, as the resulting
>> installation will break the age-old promise we made to script writers.
>
> Otoh, we did warn that we were going to deprecate the 'git-foo' form back
> in 2005 when the git wrapper was rewritten in C, so perhaps we should
> consider...
We already discussed it and shot it down soon after 1.6.0 fiasco.
    http://thread.gmane.org/gmane.comp.version-control.git/93511
Please do not drag me into that mess again.
Steven Penny· Apr 25, 2012, 03:11 UTC · re: Junio C Hamano · lore

Re: Build without BUILT_INS

Junio C Hamano wrote:
> And no, it will *not* be a compilation option, as the resulting
> installation will break the age-old promise we made to script writers.
A compilation option, does not break any promise to script writers.
The default build still has hard links.

A compilation option, such as "make NO_BUILTINS=1" would merely give users the choice to build without the hard links; an option they do _not_ have currently.

Seeing how there already is

NO_GETTEXT NO_OPENSSL NO_TCLTK

and so on, I dont see this as being a big issue to add.

← back to recent threads