mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
From: Dan Jacques <>
Subject: [PATCH v3 0/4] RUNTIME_PREFIX relocatable Git
Date: Mon, 27 Nov 2017 11:40:51 -0500	[thread overview]
Message-ID: <> (raw)

Previous threads:

After working with avarab@, I isolated the Perl changes into a separate
set of patches and adapted the code to be more correct and readable. I
opted to prescribe a relative Perl library path instead of letting
MakeMaker or the Config module choose one, since the latter both
incorporate build system parameters and a major purpose of this is to be
portable between ABI-compatible systems.

I've tested this via Travis and run full test suite with and without
RUNTIME_PREFIX/RUNTIME_PREFIX_PERL, and tested locally on Mac, Linux,
and FreeBSD systems. Please take a look!

Built using this "config.mak":

=== BEGIN config.mak ===

gitexecdir = libexec/git-core
template_dir = share/git-core/templates
sysconfdir = etc

=== END config.mak ===

Changes in v3 from v2:

- Broken into multiple patches now that Perl is isolated in its own

- Working with avarab@, several changes to Perl script runtime prefix

  - Moved Perl header body content from Makefile into external template

  - Added generic "perllibdir" variable to override Perl installation

  - RUNTIME_PREFIX_PERL generated script header is more descriptive and
    consistent with how the C version operates.

  - Fixed Generated Perl header Makefile dependency, should rebuild
    when dependent files and flags change.

- Changed some of the new RUNTIME_PREFIX trace strings to use consistent
  formatting and terminology.

Changes in v2 from v1:

- Added comments and formatting to improve readability of
  platform-sepecific executable path resolution sleds in

- Consolidated "cached_exec_path" and "argv_exec_path" globals
  into "exec_path_value".

- Use `strbuf_realpath` instead of `realpath` for procfs resolution.

- Removed new environment variable exports. Git with RUNTIME_PREFIX no
  longer exports or consumes any additional environment information.

- 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 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 Perl runtime prefix support
  exec_cmd: RUNTIME_PREFIX on some POSIX systems

 .gitignore                             |   1 +
 Makefile                               | 110 +++++++++++++--
 cache.h                                |   1 +
 common-main.c                          |   4 +-
 config.mak.uname                       |   7 +
 exec_cmd.c                             | 239 ++++++++++++++++++++++++++++-----
 exec_cmd.h                             |   4 +-
 gettext.c                              |   8 +-
 git.c                                  |   2 +-
 perl/Makefile                          |  52 ++++++-
 perl/   |   1 +
 perl/ |  24 ++++
 12 files changed, 395 insertions(+), 58 deletions(-)
 create mode 100644 perl/
 create mode 100644 perl/


             reply	other threads:[~2017-11-27 16:41 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-11-27 16:40 Dan Jacques [this message]
2017-11-27 16:40 ` [PATCH v3 1/4] Makefile: generate Perl header from template file Dan Jacques
2017-11-27 16:40 ` [PATCH v3 2/4] Makefile: add support for "perllibdir" Dan Jacques
2017-11-27 16:40 ` [PATCH v3 3/4] Makefile: add Perl runtime prefix support Dan Jacques
2017-11-27 16:40 ` [PATCH v3 4/4] exec_cmd: RUNTIME_PREFIX on some POSIX systems Dan Jacques
2017-11-27 23:42   ` Johannes Schindelin
2017-11-28  3:25     ` Dan Jacques
2017-11-28  3:47       ` Junio C Hamano
2017-11-28 11:36         ` Johannes Schindelin
2017-11-29  1:38         ` Question regarding "next" merge Dan Jacques
2017-11-29  2:18           ` Junio C Hamano
2017-11-28 14:08       ` [PATCH v3 4/4] exec_cmd: RUNTIME_PREFIX on some POSIX systems Johannes Schindelin

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:

  List information:

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

  git send-email \ \ \ \ \ \ \

* 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.
Code repositories for project(s) associated with this public inbox

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).