Re: [PATCH v6] Makefile: replace perl/Makefile.PL with simple make rules
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Dec 22, 2017, 19:07 UTC
- Message-ID
- <xmqqefnmshsm.fsf@gitster.mtv.corp.google.com>
- In-Reply-To
- <20171220182419.16865-1-avarab@gmail.com>
Ævar Arnfjörð Bjarmason <avarab@gmail.com> writes:
> Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com> > ---
Thanks, but I thought the patch was already in 'next' for a week or more and it's time to refine incrementally.
Here is the difference as I see between what we already have and this update, and a proposed summary.
-- >8 -- From: Ævar Arnfjörð Bjarmason <avarab@gmail.com> Subject: perl: avoid *.pmc and fix Error.pm further
The previous round tried to use *.pmc files but it confused RPM dependency analysis on some distros. Install them as plain vanilla *.pm files instead.
Also "local @_" construct did not properly work when goto &sub is used until recent versions of Perl. Avoid it (and we do not need to localize it here anyway).
---
diff --git a/Makefile b/Makefile index ba6607b7e7..5c73cd208a 100644 --- a/Makefile +++ b/Makefile @@ -2274,14 +2274,14 @@ endif po/build/locale/%/LC_MESSAGES/git.mo: po/%.po $(QUIET_MSGFMT)mkdir -p $(dir $@) && $(MSGFMT) -o $@ $< -PMFILES := $(wildcard perl/*.pm perl/*/*.pm perl/*/*/*.pm perl/*/*/*/*.pm) -PMCFILES := $(patsubst perl/%.pm,perl/build/lib/%.pmc,$(PMFILES)) +LIB_PERL := $(wildcard perl/Git.pm perl/Git/*.pm perl/Git/*/*.pm perl/Git/*/*/*.pm) +LIB_PERL_GEN := $(patsubst perl/%.pm,perl/build/lib/%.pm,$(LIB_PERL)) ifndef NO_PERL -all:: $(PMCFILES) +all:: $(LIB_PERL_GEN) endif -perl/build/lib/%.pmc: perl/%.pm +perl/build/lib/%.pm: perl/%.pm $(QUIET_GEN)mkdir -p $(dir $@) && \ sed -e 's|@@LOCALEDIR@@|$(localedir_SQ)|g' < $< > $@ diff --git a/perl/Git/Error.pm b/perl/Git/Error.pm index 5874672150..09bbc97390 100644 --- a/perl/Git/Error.pm +++ b/perl/Git/Error.pm @@ -39,7 +39,7 @@ sub import { require Error; }; - local @_ = ($caller, @_); + unshift @_, $caller; goto &Error::import; }