Re: [PATCH 1/3] git-gui: Adapt discovery of oguilib to execdir 'libexec/git-core'
- From
Steffen Prohaska <prohaska@zib.de>
- Date
- Jul 28, 2008, 05:01 UTC
- Message-ID
- <AF6C526A-57ED-4386-A4CF-5260D82026B7@zib.de>
- In-Reply-To
- <20080727212405.GA10075@spearce.org>
On Jul 27, 2008, at 11:24 PM, Shawn O. Pearce wrote:
Show 24 quoted lines
> Steffen Prohaska <prohaska@zib.de> wrote:
>> The new execdir has is two levels below the root directory, while
>> the old execdir 'bin' was only one level below. This commit
>> adapts the discovery of oguilib that uses relative paths
>> accordingly.
> ...
>> diff --git a/git-gui/git-gui.sh b/git-gui/git-gui.sh
>> index 940677c..baccd57 100755
>> --- a/git-gui/git-gui.sh
>> +++ b/git-gui/git-gui.sh
>> @@ -52,7 +52,9 @@ catch {rename send {}} ; # What an evil concept...
>> set oguilib {@@GITGUI_LIBDIR@@}
>> set oguirel {@@GITGUI_RELATIVE@@}
>> if {$oguirel eq {1}} {
>> - set oguilib [file dirname [file dirname [file normalize $argv0]]]
>> + set oguilib [file dirname \
>> + [file dirname \
>> + [file dirname [file normalize $argv0]]]]
>> set oguilib [file join $oguilib share git-gui lib]
>
> Hmmph. This actually comes up incorrectly on my system. The issue
> appears to be `git --exec-path` gives me $prefix/libexec/git-core,
> and git-gui installs its library into $prefix/libexec/share, which
> is wrong. It should have gone to $prefix/share.I am not seeing this problem because I am installing using the toplevel makefile, which sets and exports sharedir to $prefix/share.
Show 31 quoted lines
> I wonder if this is better. Your other two patches seem fine. > > --8<-- > [PATCH] git-gui: Correct installation of library to be $prefix/share > > We always wanted the library for git-gui to install into the > $prefix/share directory, not $prefix/libexec/share. All of > the files in our library are platform independent and may > be reused across systems, like any other content stored in > the share directory. > > Our computation of where our library should install to was broken > when git itself started installing to $prefix/libexec/git-core, > which was one level down from where we expected it to be. > > Signed-off-by: Shawn O. Pearce <spearce@spearce.org> > --- > Makefile | 3 +++ > 1 files changed, 3 insertions(+), 0 deletions(-) > > diff --git a/Makefile b/Makefile > index b19fb2d..f72ab6c 100644 > --- a/Makefile > +++ b/Makefile > @@ -32,6 +32,9 @@ endif > ifndef gitexecdir > gitexecdir := $(shell git --exec-path) > endif > +ifeq (git-core,$(notdir $(gitexecdir))) > + gitexecdir := $(patsubst %/,%,$(dir $(gitexecdir))) > +endif
But gitexecdir has the correct value, no? gitexecdir is used at several places in the makefile. It seems wrong to strip 'git-core' from gitexecdir. But I must admit that I do not understand all the details of git-gui's Makefile. So maybe you know better.
Isn't only the computation of sharedir based on gitexecdir wrong?
> ifndef sharedir > sharedir := $(dir $(gitexecdir))share
and could be replaced with this (instead of your patch):
ifndef sharedir
+ifeq (git-core,$(notdir $(gitexecdir)))
+ sharedir := $(dir $(patsubst %/,%,$(dir $(gitexecdir))))share
+else
sharedir := $(dir $(gitexecdir))share
endif
+endifSteffen