Previous threads:
v1: https://public-inbox.org/git/[email protected]/
v2: https://public-inbox.org/git/[email protected]/
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