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

Re: [PATCH] Fix git-svn in non-MakeMaker builds

From
Junio C Hamano <gitster@pobox.com>
Date
Jun 15, 2012, 21:25 UTC
Message-ID
<7vwr388dyp.fsf@alter.siamese.dyndns.org>
In-Reply-To
<20120615180505.GH10752@burratino>
Jonathan Nieder <jrnieder@gmail.com> writes:
Show 28 quoted lines
> Adam Roben wrote:
>
>> c102f4cf729a65b3520dbb17b52aa0c4fe4d4b29 and
>> a6180325e885e2226d68144000e8bb18a906a2a6 split some git-svn code into
>> separate modules, but forgot to inform the non-MakeMaker build about
>> those new modules.
>
> Good catch.  How about this patch against master (untested)?
>
> -- >8 --
> Subject: perl/Makefile: install Git::SVN::* when NO_PERL_MAKEMAKER=yes, too
>
> v1.7.11-rc1~12^2~2 (2012-05-27) and friends split some git-svn code
> into separate modules but did not update the fallback rules to install
> them when NO_PERL_MAKEMAKER is set.  Add the appropriate rules so
> users without MakeMaker can use git-svn again.
>
> Affected modules: Git::SVN::Prompt, Git::SVN::Fetcher,
> Git::SVN::Editor, Git::SVN::Ra, Git::SVN::Memoize::YAML.
>
> Reported-by: Adam Roben <adam@roben.org>
> Signed-off-by: Jonathan Nieder <jrnieder@gmali.com>
> ---
> Sensible?
>
> In principle this should be two patches --- one to introduce the loop,
> another to add Git::SVN::* to that loop.  Let me know if you think
> this would be easier to read that way and I can try it.
Show 34 quoted lines
>  perl/Makefile |   31 ++++++++++++++++++++++++-------
>  1 file changed, 24 insertions(+), 7 deletions(-)
>
> diff --git a/perl/Makefile b/perl/Makefile
> index 3e21766d..fe7a4864 100644
> --- a/perl/Makefile
> +++ b/perl/Makefile
> @@ -2,6 +2,7 @@
>  # Makefile for perl support modules and routine
>  #
>  makfile:=perl.mak
> +modules =
>  
>  PERL_PATH_SQ = $(subst ','\'',$(PERL_PATH))
>  prefix_SQ = $(subst ','\'',$(prefix))
> @@ -22,19 +23,35 @@ clean:
>  
>  ifdef NO_PERL_MAKEMAKER
>  instdir_SQ = $(subst ','\'',$(prefix)/lib)
> +
> +modules += Git
> +modules += Git/I18N
> +modules += Git/SVN/Memoize/YAML
> +modules += Git/SVN/Fetcher
> +modules += Git/SVN/Editor
> +modules += Git/SVN/Prompt
> +modules += Git/SVN/Ra
> +
>  $(makfile): ../GIT-CFLAGS Makefile
>  	echo all: private-Error.pm Git.pm Git/I18N.pm > $@
> -	echo '	mkdir -p blib/lib/Git' >> $@
> -	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 '	mkdir -p blib/lib/Git/SVN/Memoize' >> $@

Wouldn't it be much less error prone to maintain if you did not hardcode the "blib/lib/Git/SVN/Memoize is the deepest level" here, and run the "mkdir -p blib/lib/$$(basename $$i)" or something in the loop instead?

Show 15 quoted lines
> +	set -e; \
> +	for i in $(modules); \
> +	do \
> +		echo '	$(RM) blib/lib/'$$i'.pm' >> $@; \
> +		echo '	cp '$$i'.pm blib/lib/'$$i'.pm' >> $@; \
> +	done
>  	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 '	mkdir -p "$$(DESTDIR)$(instdir_SQ)/Git/SVN/Memoize"' >> $@
Likewise.
Show 9 quoted lines
> +	set -e; \
> +	for i in $(modules); \
> +	do \
> +		echo '	$(RM) "$$(DESTDIR)$(instdir_SQ)/'$$i'.pm"' >> $@; \
> +		echo '	cp '$$i'.pm "$$(DESTDIR)$(instdir_SQ)/'$$i'.pm"' >> $@; \
> +	done
>  	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"' >> $@
Previous: Junio C HamanoNext: Jonathan Nieder
Message 4 of 8 in “Re: [PATCH] Fix git-svn in non-MakeMaker builds”
  1. Jonathan NiederJun 15, 2012
  2. 2/1 perl/Makefile.PL: warn about duplicate module list in perl/MakefileJonathan Nieder, Jun 15, 2012
  3. Junio C HamanoJun 15, 2012
  4. Junio C HamanoJun 15, 2012
  5. perl/Makefile: move "mkdir -p" to module installation loop for maintainabilityJonathan Nieder, Jun 15, 2012
  6. Junio C HamanoJun 15, 2012
  7. perl/Makefile: Fix a missing double-quoteJohannes Sixt, Jun 29, 2012
  8. Jonathan NiederJun 29, 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.