All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v3 0/4] RUNTIME_PREFIX relocatable Git
@ 2017-11-27 16:40 Dan Jacques
  2017-11-27 16:40 ` [PATCH v3 1/4] Makefile: generate Perl header from template file Dan Jacques
                   ` (3 more replies)
  0 siblings, 4 replies; 12+ messages in thread
From: Dan Jacques @ 2017-11-27 16:40 UTC (permalink / raw)
  To: git; +Cc: Johannes.Schindelin, avarab, dnj, gitster

Previous threads:
v1: https://public-inbox.org/git/20171116170523.28696-1-dnj@google.com/
v2: https://public-inbox.org/git/20171119173141.4896-1-dnj@google.com/

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 ===

RUNTIME_PREFIX = YesPlease
RUNTIME_PREFIX_PERL = YesPlease
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
  RUNTIME_PREFIX_PERL flag.

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

  - Moved Perl header body content from Makefile into external template
    file(s).

  - Added generic "perllibdir" variable to override Perl installation
    path.

  - 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
  `git_get_exec_path`.

- 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/header_fixed_prefix.pl.template   |   1 +
 perl/header_runtime_prefix.pl.template |  24 ++++
 12 files changed, 395 insertions(+), 58 deletions(-)
 create mode 100644 perl/header_fixed_prefix.pl.template
 create mode 100644 perl/header_runtime_prefix.pl.template

-- 
2.15.0.chromium12


^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2017-11-29  2:19 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-11-27 16:40 [PATCH v3 0/4] RUNTIME_PREFIX relocatable Git Dan Jacques
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

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.