[PATCH v8 5/5] mingw/msvc: use the new-style RUNTIME_PREFIX helper

2018-04-10 Thread Dan Jacques
From: Johannes Schindelin This change also allows us to stop overriding argv[0] with the absolute path of the executable, allowing us to preserve e.g. the case of the executable's file name. This fixes https://github.com/git-for-windows/git/issues/1496 partially.

[PATCH v8 1/5] Makefile: generate Perl header from template file

2018-04-10 Thread Dan Jacques
by processing a template file and move the header content into the "perl/" subdirectory. The generated header content will now be stored in the "GIT-PERL-HEADER" file. This allows the content of the Perl header to be controlled by changing the path of the template in the Makefile.

[PATCH v8 3/5] exec_cmd: RUNTIME_PREFIX on some POSIX systems

2018-04-10 Thread Dan Jacques
n. Small incidental formatting cleanup of "exec_cmd.c". Signed-off-by: Dan Jacques <d...@google.com> Thanks-to: Robbie Iannucci <iannu...@google.com> Thanks-to: Junio C Hamano <gits...@pobox.com> --- Makefile | 28 +- cache.h| 1 + c

[PATCH v8 4/5] exec_cmd: provide a new-style RUNTIME_PREFIX helper for Windows

2018-04-10 Thread Dan Jacques
From: Johannes Schindelin The RUNTIME_PREFIX feature comes from Git for Windows, but it was enhanced to allow support for other platforms. While changing the original idea, the concept was also improved by not forcing argv[0] to be adjusted. Let's allow the same for

[PATCH v8 2/5] Makefile: add Perl runtime prefix support

2018-04-10 Thread Dan Jacques
is relocated or moved to another system, even when they are not in a virtual filesystem environment. Signed-off-by: Dan Jacques <d...@google.com> Thanks-to: Ævar Arnfjörð Bjarmason <ava...@gmail.com> Thanks-to: Johannes Schindelin <johannes.schinde...@gmx.de

[PATCH v8 0/5] RUNTIME_PREFIX relocatable Git

2018-04-10 Thread Dan Jacques
- Updated Perl script resolution strategy: rather than having Git export the relative executable path to the Perl scripts, they now resolve it independently when RUNTIME_PREFIX_PERL is enabled. - Updated resolution strategy for "gettext()": use system_path() instead of special environment

[PATCH v7 3/3] exec_cmd: RUNTIME_PREFIX on some POSIX systems

2018-03-25 Thread Dan Jacques
n. Small incidental formatting cleanup of "exec_cmd.c". Signed-off-by: Dan Jacques <d...@google.com> Thanks-to: Robbie Iannucci <iannu...@google.com> Thanks-to: Junio C Hamano <gits...@pobox.com> --- Makefile | 30 ++- cache.h| 1 + c

[PATCH v7 1/3] Makefile: generate Perl header from template file

2018-03-25 Thread Dan Jacques
by processing a template file and move the header content into the "perl/" subdirectory. The generated header content will now be stored in the "GIT-PERL-HEADER" file. This allows the content of the Perl header to be controlled by changing the path of the template in the Makefile.

[PATCH v7 2/3] Makefile: add Perl runtime prefix support

2018-03-25 Thread Dan Jacques
is relocated or moved to another system, even when they are not in a virtual filesystem environment. Signed-off-by: Dan Jacques <d...@google.com> Thanks-to: Ævar Arnfjörð Bjarmason <ava...@gmail.com> Thanks-to: Johannes Schindelin <johannes.schinde...@gmx.de

[PATCH v7 0/3] RUNTIME_PREFIX relocatable Git

2018-03-25 Thread Dan Jacques
RUNTIME_PREFIX_PERL is enabled. - Updated resolution strategy for "gettext()": use system_path() instead of special environment variable. - Added `sysctl` executable resolution support for BSDs that don't mount "procfs" by default (most of them). Dan Jacques (3): Makef

[PATCH v6 2/3] Makefile: add Perl runtime prefix support

2018-03-18 Thread Dan Jacques
or moved to another system. Signed-off-by: Dan Jacques <d...@google.com> Thanks-to: Ævar Arnfjörð Bjarmason <ava...@gmail.com> Thanks-to: Johannes Schindelin <johannes.schinde...@gmx.de> --- Makefile | 67 +++-

[PATCH v6 1/3] Makefile: generate Perl header from template file

2018-03-18 Thread Dan Jacques
by processing a template file and move the header content into the "perl/" subdirectory. The processed generated will now be stored in the "GIT-PERL-HEADER" file. This allows the content of the Perl header to be controlled by changing the path of the template in the Makefile. Signed

[PATCH v6 3/3] exec_cmd: RUNTIME_PREFIX on some POSIX systems

2018-03-18 Thread Dan Jacques
n. Small incidental formatting cleanup of "exec_cmd.c". Signed-off-by: Dan Jacques <d...@google.com> Thanks-to: Robbie Iannucci <iannu...@google.com> Thanks-to: Junio C Hamano <gits...@pobox.com> --- Makefile | 26 +- cache.h| 1 + c

[PATCH v6 0/3] RUNTIME_PREFIX relocatable Git

2018-03-18 Thread Dan Jacques
Git export the relative executable path to the Perl scripts, they now resolve it independently when RUNTIME_PREFIX_PERL is enabled. - Updated resolution strategy for "gettext()": use system_path() instead of special environment variable. - Added `sysctl` executable resolution

Re: [PATCH v5 2/3] Makefile: add Perl runtime prefix support

2018-01-08 Thread Dan Jacques
On Mon, 08 Jan 2018, Ævar Arnfjörð Bjarmason wrote: > > I'll add a "NO_RUNTIME_PREFIX_PERL" flag as per avarab@'s suggestion as a > > potential mitigation if a problem does end up arising in Windows builds, > > with a note that NO_RUNTIME_PREFIX_PERL can be deleted if everything seems > > to be

Re: [PATCH v5 2/3] Makefile: add Perl runtime prefix support

2018-01-08 Thread Dan Jacques
On 2018-01-08 20:27, Johannes Schindelin wrote: > > Maybe we covered this in previous submissions, but refresh my memory, > > why is the *_PERL define still needed? Reading this explanation doesn't > > make sense to me, but I'm probably missing something. > > If the reason is to accommodate

Re: [PATCH v5 2/3] Makefile: add Perl runtime prefix support

2018-01-08 Thread Dan Jacques
On Mon, 08 Jan 2018, Ævar Arnfjörð Bjarmason replied: > Thanks, applied this on top of next and it works for me, i.e. install to > /tmp/git and move to /tmp/git2 = works for me. Comments below. Good to hear! I've run this through a few machines at my disposal, but the more hands on the better.

[PATCH v5 3/3] exec_cmd: RUNTIME_PREFIX on some POSIX systems

2018-01-07 Thread Dan Jacques
n. Small incidental formatting cleanup of "exec_cmd.c". Signed-off-by: Dan Jacques <d...@google.com> Thanks-to: Robbie Iannucci <iannu...@google.com> Thanks-to: Junio C Hamano <gits...@pobox.com> --- Makefile | 36 - cache.h | 1 + common-main.c

[PATCH v5 0/3] RUNTIME_PREFIX relocatable Git

2018-01-07 Thread Dan Jacques
script resolution strategy: rather than having Git export the relative executable path to the Perl scripts, they now resolve it independently when RUNTIME_PREFIX_PERL is enabled. - Updated resolution strategy for "gettext()": use system_path() instead of special environment variable

[PATCH v5 1/3] Makefile: generate Perl header from template file

2018-01-07 Thread Dan Jacques
by processing a template file and move the header content into the "perl/" subdirectory. The processed generated will now be stored in the "GIT-PERL-HEADER" file. This allows the content of the Perl header to be controlled by changing the path of the template in the Makefile. Signed

[PATCH v5 2/3] Makefile: add Perl runtime prefix support

2018-01-07 Thread Dan Jacques
Perl script installation path generated by MakeMaker to force installation into a platform-neutral location, "/share/perl5". This change enables Git's Perl scripts to work when their Git installation is relocated or moved to another system. Signed-off-by: Dan Jacques <d...@googl

[PATCH v5 0/3] RUNTIME_PREFIX relocatable Git

2018-01-07 Thread Dan Jacques
the relative executable path to the Perl scripts, they now resolve it independently when RUNTIME_PREFIX_PERL is enabled. - Updated resolution strategy for "gettext()": use system_path() instead of special environment variable. - Added `sysctl` executable resolution support for BSDs that

Need to add test artifacts to .gitignore

2017-12-12 Thread Dan Jacques
FYI, I've noticed when building from "pu" that neither the "t/helper/test-print-values" or "t/helper/test-print-larger-than-ssize" testing artifacts added to Makefile in this patch series are not added to "t/helper/.gitignore" like other helpers, resulting in the testing artifact being recognized

Re: [PATCH v4 1/4] Makefile: generate Perl header from template file

2017-12-05 Thread Dan Jacques
Johannes Sixt wrote: > I don't know what I tested last week; most likely not the version of the > patch I quoted above. > > Today's version, with the tip at 5d7f59c391ce, is definitely bogus > with its quoting. It needs the patch below, otherwise an unquoted > semicolon may be expanded from

Re: [PATCH v2] Makefile: replace perl/Makefile.PL with simple make rules

2017-12-04 Thread Dan Jacques
Junio C Hamano writes: > Well the thing is that I cannot queue this and Dan's at the same > time, while both of these topics are expected to be in flux. For > today's pushout, I tentatively kicked out Dan's relative path series > and queued this one to see how well it works with the rest of the

Re: [PATCH v4 3/4] RUNTIME_PREFIX relocatable Git

2017-12-02 Thread Dan Jacques
My initial set of replies are inline here: https://public-inbox.org/git/20171129223807.91343-1-...@google.com/T/#m1ff5cda787eaea4a4015a8f00a8be5966122c73a I put together this solution for the I18N module. It exports "localedir" to the Perl header and injects the correct value into Git::I18N. It

Re: [PATCH v4 1/4] Makefile: generate Perl header from template file

2017-12-01 Thread Dan Jacques
On Fri, 1 Dec 2017, Johannes Sixt wrote: >>> This doesn't work, unfortunately. When $(pathsep) is ';', we get an >>> incomplete sed expression because ';' is also a command separator in the >>> sed language. >> >> Funny, I tried this also with ';' as pathsep, and it worked in the Git for >>

Re: [PATCH v4 0/4] RUNTIME_PREFIX relocatable Git

2017-11-29 Thread Dan Jacques
> In general this whole thing structurally looks good to me with the > caveats noted in other review E-Mails. > > I haven't done anything but skim the details of the "where's my > executable" C code though, just looked at what it's doing structurally. > > I think it makes sense for this to land

[PATCH v4 2/4] Makefile: add support for "perllibdir"

2017-11-29 Thread Dan Jacques
dd some incidental documentation to perl/Makefile. Explicitly specifying an installation path is necessary for Perl runtime prefix support, as runtime prefix resolution code must know in advance where the Perl support modules are installed. Signed-off-by: Dan Jacques <d...@google.com> --- Makefi

[PATCH v4 0/4] RUNTIME_PREFIX relocatable Git

2017-11-29 Thread Dan Jacques
ecial environment variable. - Added `sysctl` executable resolution support for BSDs that don't mount "procfs" by default (most of them). Dan Jacques (4): Makefile: generate Perl header from template file Makefile: add support for "perllibdir" Makefile: add Per

[PATCH v4 1/4] Makefile: generate Perl header from template file

2017-11-29 Thread Dan Jacques
by processing a template file and move the header content into the "perl/" subdirectory. The processed generated will now be stored in the "GIT-PERL-HEADER" file. This allows the content of the Perl header to be controlled by changing the path of the template in the Makefile. Signed

[PATCH v4 4/4] exec_cmd: RUNTIME_PREFIX on some POSIX systems

2017-11-29 Thread Dan Jacques
n. Small incidental formatting cleanup of "exec_cmd.c". Signed-off-by: Dan Jacques <d...@google.com> Thanks-to: Robbie Iannucci <iannu...@google.com> Thanks-to: Junio C Hamano <gits...@pobox.com> --- Makefile | 35 +++- cache.h | 1 + common-main.c

[PATCH v4 3/4] Makefile: add Perl runtime prefix support

2017-11-29 Thread Dan Jacques
Perl script installation path generated by MakeMaker to force installation into a platform-neutral location, "/share/perl5". This change enables Git's Perl scripts to work when their Git installation is relocated or moved to another system. Signed-off-by: Dan Jacques <d...@googl

Question regarding "next" merge

2017-11-28 Thread Dan Jacques
Junio, I read the "what's cooking in Git" notes and saw that you were intending to introduce this patch set into "next". Johannes pointed out some quoting errors that break Windows builds, and I have incorporated fixes in my working copy. I was going to hold off on publishing v4 in case some of

Re: [PATCH v3 4/4] exec_cmd: RUNTIME_PREFIX on some POSIX systems

2017-11-27 Thread Dan Jacques
> In Git for Windows, we have an almost identical patch: > > https://github.com/git-for-windows/git/commit/bdd739bb2b0b > > We just guard the call to system_path() behind a test whether podir is > already absolute, but these days, system_path() does that itself. > > I am too little of a Perl

[PATCH v3 1/4] Makefile: generate Perl header from template file

2017-11-27 Thread Dan Jacques
by processing a template file and move the header content into the "perl/" subdirectory. The processed generated will now be stored in the "GIT-PERL-HEADER" file. This allows the content of the Perl header to be controlled by changing the path of the template in the Makefile. Signed

[PATCH v3 4/4] exec_cmd: RUNTIME_PREFIX on some POSIX systems

2017-11-27 Thread Dan Jacques
n. Small incidental formatting cleanup of "exec_cmd.c". Signed-off-by: Dan Jacques <d...@google.com> --- Makefile | 35 +++- cache.h | 1 + common-main.c| 4 +- config.mak.uname | 7 ++ exec_cmd.c | 239 +++

[PATCH v3 2/4] Makefile: add support for "perllibdir"

2017-11-27 Thread Dan Jacques
dd some incidental documentation to perl/Makefile. Explicitly specifying an installation path is necessary for Perl runtime prefix support, as runtime prefix resolution code must know in advance where the Perl support modules are installed. Signed-off-by: Dan Jacques <d...@google.com> --- Makefi

[PATCH v3 3/4] Makefile: add Perl runtime prefix support

2017-11-27 Thread Dan Jacques
Perl script installation path generated by MakeMaker to force installation into a platform-neutral location, "/share/perl5". This change enables Git's Perl scripts to work when their Git installation is relocated or moved to another system. Signed-off-by: Dan Jacques <d...@google.com&g

[PATCH v3 0/4] RUNTIME_PREFIX relocatable Git

2017-11-27 Thread Dan Jacques
solution strategy for "gettext()": use system_path() instead of special environment variable. - Added `sysctl` executable resolution support for BSDs that don't mount "procfs" by default (most of them). Dan Jacques (4): Makefile: generate Perl header from template file Make

Re [PATCH 1/1] exec_cmd: RUNTIME_PREFIX on some POSIX systems

2017-11-22 Thread Dan Jacques
On Wed, 22 Nov 2017, Ævar Arnfjörð Bjarmason wrote: > > The latter case concerns me here. If the "Config" module is loading local > > system paths, then the relative pathing between "$Config{installsitelib}" > > and "$Config{siteprefixexp}" may not be consistent between systems, so an > > archive

Re [PATCH 1/1] exec_cmd: RUNTIME_PREFIX on some POSIX systems

2017-11-20 Thread Dan Jacques
Ævar Arnfjörð Bjarmason @ 2017-11-20 21:50 UTC suggested: > So LeonT over at #p5p helped me with this. He believes this'll work > (unless MakeMaker INSTALL_BASE is set, but that should break the Git > install anyway): I think that the problem with this approach is that it uses the local "Config"

Re(2): [PATCH 1/1] exec_cmd: RUNTIME_PREFIX on some POSIX systems

2017-11-20 Thread Dan Jacques
On Mon, 20 Nov 2017 22:00:10, Ævar Arnfjörð Bjarmason replied: > [...] Thanks for responding. I'll readily confess that PERL and the PERL ecosystem are not areas I'm very familiar with, so I'm really grateful for your feedback here. > You need to bust the perl/PM.stamp cache as a function of

[PATCH v2 0/1] exec_cmd: RUNTIME_PREFIX on some POSIX systems

2017-11-19 Thread Dan Jacques
d PERL script resolution strategy: rather than having Git export the relative executable path to the PERL scripts, they now resolve it independently when RUNTIME_PREFIX_PERL is enabled. - Updated resolution strategy for "gettext()": use system_path() instead of special enviro

[PATCH 1/1] exec_cmd: RUNTIME_PREFIX on some POSIX systems

2017-11-19 Thread Dan Jacques
l formatting cleanup of "exec_cmd.c". Signed-off-by: Dan Jacques <d...@google.com> --- .gitignore | 1 + Makefile | 88 +--- cache.h | 1 + common-main.c| 4 +- config.mak.un

[PATCH 1/1] exec_cmd: RUNTIME_PREFIX on some POSIX systems

2017-11-16 Thread Dan Jacques
rectory. This path is resolved and exported to Git's delegate PERL invocations using the GITPERLLIB environment variable. This enables Git's delegate PERL scripts to import Git's own PERL libraries from a path relative to the executable. Small incidental formatting cleanup of "exec_cmd

[PATCH 0/1] RUNTIME_PREFIX on POSIX systems.

2017-11-16 Thread Dan Jacques
MENT is preferred by tools instead of re-resolving argv[0]. Chromium uses the stock redistributable Windows Git package, so I haven't had an opportunity to test this patch on that platform. Please take a look and let me know what you think. Thanks! -Dan Dan Jacques (1): exec_cmd: RUNTIME_PREFIX on