From: Dan Jacques <dnj@google.com>
To: git@vger.kernel.org
Cc: Johannes.Schindelin@gmx.de, avarab@gmail.com, dnj@google.com,
gitster@pobox.com
Subject: [PATCH v3 0/4] RUNTIME_PREFIX relocatable Git
Date: Mon, 27 Nov 2017 11:40:51 -0500 [thread overview]
Message-ID: <20171127164055.93283-1-dnj@google.com> (raw)
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
next 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:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: http://vger.kernel.org/majordomo-info.html
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20171127164055.93283-1-dnj@google.com \
--to=dnj@google.com \
--cc=Johannes.Schindelin@gmx.de \
--cc=avarab@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
/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.
Code repositories for project(s) associated with this public inbox
https://80x24.org/mirrors/git.git
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).