git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH 2/2] perl/Makefile: install Git::I18N under NO_PERL_MAKEMAKER

From
Junio C Hamano <gitster@pobox.com>
Date
Mar 10, 2012, 21:38 UTC
Message-ID
<7vfwdg16i8.fsf@alter.siamese.dyndns.org>
In-Reply-To
<1331382575-16936-3-git-send-email-avarab@gmail.com>
Ævar Arnfjörð Bjarmason <avarab@gmail.com> writes:
Show 25 quoted lines
> When I added the i18n infrastructure in v1.7.8-rc2-1-g5e9637c I forgot
> to install Git::I18N also when NO_PERL_MAKEMAKER=YesPlease was
> set. Change the generation of the fallback perl.mak file to do that.
>
> Now Git/I18N.pm is installed alongside Git.pm in such a way that
> anything that uses GITPERLLIB will find it.
>
> Reported-by: Tom G. Christensen <tgc@statsbiblioteket.dk>
> Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
> ---
>  perl/Makefile |    7 ++++++-
>  1 files changed, 6 insertions(+), 1 deletions(-)
>
> diff --git a/perl/Makefile b/perl/Makefile
> index b2977cd..9af9025 100644
> --- a/perl/Makefile
> +++ b/perl/Makefile
> @@ -23,20 +23,25 @@ clean:
>  ifdef NO_PERL_MAKEMAKER
>  instdir_SQ = $(subst ','\'',$(prefix)/lib)
>  $(makfile): ../GIT-CFLAGS Makefile
> -	echo all: private-Error.pm Git.pm > $@
> +	echo all: private-Error.pm Git.pm Git/I18N.pm > $@
>  	echo '	mkdir -p blib/lib' >> $@
> +	echo '	mkdir -p blib/lib/Git' >> $@
micronit; the previous line can be removed.
Show 16 quoted lines
>  	echo '	$(RM) blib/lib/Git.pm; cp Git.pm blib/lib/' >> $@
> +	echo '	$(RM) blib/lib/Git/I18N.pm; cp Git/I18N.pm blib/lib/Git/' >> $@
>  	echo '	$(RM) blib/lib/Error.pm' >> $@
>  	'$(PERL_PATH_SQ)' -MError -e 'exit($$Error::VERSION < 0.15009)' || \
>  	echo '	cp private-Error.pm blib/lib/Error.pm' >> $@
>  	echo install: >> $@
>  	echo '	mkdir -p "$$(DESTDIR)$(instdir_SQ)"' >> $@
> +	echo '	mkdir -p "$$(DESTDIR)$(instdir_SQ)/Git"' >> $@
>  	echo '	$(RM) "$$(DESTDIR)$(instdir_SQ)/Git.pm"; cp Git.pm "$$(DESTDIR)$(instdir_SQ)"' >> $@
> +	echo '	$(RM) "$$(DESTDIR)$(instdir_SQ)/Git/I18N.pm"; cp Git/I18N.pm "$$(DESTDIR)$(instdir_SQ)/Git"' >> $@
>  	echo '	$(RM) "$$(DESTDIR)$(instdir_SQ)/Error.pm"' >> $@
>  	'$(PERL_PATH_SQ)' -MError -e 'exit($$Error::VERSION < 0.15009)' || \
>  	echo '	cp private-Error.pm "$$(DESTDIR)$(instdir_SQ)/Error.pm"' >> $@
>  	echo instlibdir: >> $@
>  	echo '	echo $(instdir_SQ)' >> $@
> +	echo '	echo $(instdir_SQ)/Git' >> $@

This break "make NO_PERL_MAKEMAKER=Nah git-add--interactive", or anything that is a perl script, it appears.

The resulting perl/perl.mak ends with
	instlibdir:
                echo foo
                echo foo/Git
but the top-level Makefile wants to see output from
	make instlibdir
in this directory as a single line in this rule:
$(patsubst %.perl,%,$(SCRIPT_PERL)): % : %.perl
	$(QUIET_GEN)$(RM) $@ $@+ && \
	INSTLIBDIR=`MAKEFLAGS= $(MAKE) -C perl -s --no-print-directory instlibdir` && \
	echo "<$$INSTLIBDIR>" && \
	sed -e '1{' \
	    -e '	s|#!.*perl|#!$(PERL_PATH_SQ)|' \
	    -e '	h' \
	    -e '	s=.*=use lib (split(/$(pathsep)/, $$ENV{GITPERLLIB} || "'"$$INSTLIBDIR"'"));=' \
	    -e '	H' \
	    -e '	x' \
	    -e '}' \
	    -e 's/@@GIT_VERSION@@/$(GIT_VERSION)/g' \
	    $@.perl >$@+ && \
Previous: Ævar Arnfjörð BjarmasonNext: Ævar Arnfjörð Bjarmason
Message 9 of 11 in “I18N.pm is incompatible with perl < 5.8.3”
  1. Tom G. ChristensenFeb 2, 2012
  2. Ævar Arnfjörð BjarmasonFeb 2, 2012
  3. Tom G. ChristensenFeb 2, 2012
  4. Tom G. ChristensenMar 7, 2012
  5. Ævar Arnfjörð BjarmasonMar 7, 2012
  6. 0/2 Minor fixes for Perl + Git::I18NÆvar Arnfjörð Bjarmason, Mar 10, 2012
  7. 1/2 Git::I18N: compatibility with perl <5.8.3Ævar Arnfjörð Bjarmason, Mar 10, 2012
  8. 2/2 perl/Makefile: install Git::I18N under NO_PERL_MAKEMAKERÆvar Arnfjörð Bjarmason, Mar 10, 2012
  9. Junio C HamanoMar 10, 2012
  10. Ævar Arnfjörð BjarmasonMar 11, 2012
  11. Junio C HamanoMar 16, 2012

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.