All of lore.kernel.org
 help / color / mirror / Atom feed
From: Johannes Sixt <johannes.sixt@telecom.at>
To: Steffen Prohaska <prohaska@zib.de>,
	"Shawn O. Pearce" <spearce@spearce.org>
Cc: git@vger.kernel.org
Subject: Re: [PATCH 1/3] git-gui: Adapt discovery of oguilib to execdir 'libexec/git-core'
Date: Sun,  3 Aug 2008 11:35:03 +0200	[thread overview]
Message-ID: <1217756103.48957bc76eda2@webmail.nextra.at> (raw)
In-Reply-To: <AF6C526A-57ED-4386-A4CF-5260D82026B7@zib.de>

Zitat von Steffen Prohaska <prohaska@zib.de>:
>
> On Jul 27, 2008, at 11:24 PM, Shawn O. Pearce wrote:
>
> > 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.
>
>
> > 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
> +endif

This is not good enough in my environment. I run git-gui effectivly with

   wish $prefix/libexec/git-core/git-gui

(and I have $PATH set up to contain $bindir, but not $gitexecdir), and this
needs the original hunk with the three [file dirname ... ], because $argv0
points to $prefix/libexec/git-core/git-gui.

I thought I understood what's going on, but I don't anymore.

Mybe the relative discovery of oguilib must be conditional on the "git-core"
part as well, just like you discover sharedir?

-- Hannes

  parent reply	other threads:[~2008-08-03  9:36 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-07-27 16:49 [PATCH 0/3] git-gui (Windows): Adapt to new execdir 'libexec/git-core' Steffen Prohaska
2008-07-27 16:49 ` [PATCH 1/3] git-gui: Adapt discovery of oguilib to " Steffen Prohaska
2008-07-27 16:49   ` [PATCH 2/3] git-gui (Windows): Switch to relative discovery of oguilib Steffen Prohaska
2008-07-27 16:49     ` [PATCH 3/3] git-gui (Windows): Change wrapper to execdir 'libexec/git-core' Steffen Prohaska
2008-07-27 21:24   ` [PATCH 1/3] git-gui: Adapt discovery of oguilib " Shawn O. Pearce
2008-07-28  5:01     ` Steffen Prohaska
2008-07-30  5:25       ` Shawn O. Pearce
2008-07-30  5:39         ` Steffen Prohaska
2008-08-03  9:35       ` Johannes Sixt [this message]
2008-08-03 10:09         ` Steffen Prohaska
2008-08-04 19:58           ` [PATCH] " Johannes Sixt
2008-08-04 20:00             ` Shawn O. Pearce
2008-08-04 20:09               ` [PATCH v2] " Johannes Sixt

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1217756103.48957bc76eda2@webmail.nextra.at \
    --to=johannes.sixt@telecom.at \
    --cc=git@vger.kernel.org \
    --cc=prohaska@zib.de \
    --cc=spearce@spearce.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.