From: Steffen Prohaska Date: Mon, 28 Jul 2008 05:01:59 GMT Subject: Re: [PATCH 1/3] git-gui: Adapt discovery of oguilib to execdir 'libexec/git-core' Message-ID: In-Reply-To: <20080727212405.GA10075@spearce.org> On Jul 27, 2008, at 11:24 PM, Shawn O. Pearce wrote: > Steffen Prohaska 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. > 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 > --- > 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 +endif Steffen