From mboxrd@z Thu Jan 1 00:00:00 1970 From: Michael Subject: Error.pm: add configuration variable in Makefile Date: Fri, 16 Feb 2007 22:00:15 +0100 Message-ID: <200702162200.15241.barra_cuda@katamail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: git@vger.kernel.org X-From: git-owner@vger.kernel.org Fri Feb 16 21:54:12 2007 Return-path: Envelope-to: gcvg-git@gmane.org Received: from vger.kernel.org ([209.132.176.167]) by lo.gmane.org with esmtp (Exim 4.50) id 1HIA5r-0002NB-ED for gcvg-git@gmane.org; Fri, 16 Feb 2007 21:54:11 +0100 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1946163AbXBPUyH (ORCPT ); Fri, 16 Feb 2007 15:54:07 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1946164AbXBPUyH (ORCPT ); Fri, 16 Feb 2007 15:54:07 -0500 Received: from slim-3a.inet.it ([213.92.5.124]:60479 "EHLO slim-3a.inet.it" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1946163AbXBPUyG (ORCPT ); Fri, 16 Feb 2007 15:54:06 -0500 Received: from dial-up-mi-344.lombardiacom.it ([::ffff:212.34.226.90]) by slim-3a.inet.it via I-SMTP-5.4.4-547 id ::ffff:212.34.226.90+i5xRj7YrCyl; Fri, 16 Feb 2007 21:54:01 +0100 User-Agent: KMail/1.9.4 Content-Disposition: inline Sender: git-owner@vger.kernel.org Precedence: bulk X-Mailing-List: git@vger.kernel.org Archived-At: When compiling, we check in perl/Makefile.PL if Error.pm is available. If not, we use our Error.pm instead. So, after a "make install" the system does have an Error.pm. This is fine, unless we are used to create an rpm/deb/whatever-it-is by ourselves and install it with the system's package manager: in this case, in fact, the git package we are building will have an Error.pm only if the package currently installed does not. Of course, once we install the new package, the next one won't ship Error.pm because perl/Makefile.PL thinks it doesn't need to; but that's obviously wrong, since the package manager will delete the old Error.pm when installing the new git package. I guess we should use at least a configuration variable (USE_PRIVATE_ERROR_PERL?) to let the user decide what to do: either force the use of Error.pm shipped with git or just go on as we do today. Something like the following, but less ugly... --- diff --git a/Makefile b/Makefile index 40bdcff..ff886df 100644 --- a/Makefile +++ b/Makefile @@ -101,6 +101,9 @@ all:: # Define NO_PERL_MAKEMAKER if you cannot use Makefiles generated by perl's # MakeMaker (e.g. using ActiveState under Cygwin). # +# Define USE_PRIVATE_ERROR_PERL if you want to force the use of +# perl/private-Error.pm (e.g. for packaging purposes). +# GIT-VERSION-FILE: .FORCE-GIT-VERSION-FILE @$(SHELL_PATH) ./GIT-VERSION-GEN @@ -580,6 +583,9 @@ endif ifdef NO_PERL_MAKEMAKER export NO_PERL_MAKEMAKER endif +ifdef USE_PRIVATE_ERROR_PERL + export USE_PRIVATE_ERROR_PERL +endif # Shell quote (do not use $(call) to accommodate ancient setups); diff --git a/perl/Makefile b/perl/Makefile index 099beda..84b16f9 100644 --- a/perl/Makefile +++ b/perl/Makefile @@ -27,6 +27,9 @@ $(makfile): ../GIT-CFLAGS Makefile cp private-Error.pm $(instdir_SQ)/Error.pm' >> $@ echo instlibdir: >> $@ echo ' echo $(instdir_SQ)' >> $@ +else ifdef USE_PRIVATE_ERROR_PERL +$(makfile): Makefile.PL ../GIT-CFLAGS + '$(PERL_PATH_SQ)' $< useerror PREFIX='$(prefix_SQ)' else $(makfile): Makefile.PL ../GIT-CFLAGS '$(PERL_PATH_SQ)' $< PREFIX='$(prefix_SQ)' diff --git a/perl/Makefile.PL b/perl/Makefile.PL index 9b117fd..f11affc 100644 --- a/perl/Makefile.PL +++ b/perl/Makefile.PL @@ -13,7 +13,7 @@ my %pm = ('Git.pm' => '$(INST_LIBDIR)/Git.pm'); # We come with our own bundled Error.pm. It's not in the set of default # Perl modules so install it if it's not available on the system yet. eval { require Error }; -if ($@) { +if ($@ || $ARGV[0] eq 'useerror') { $pm{'private-Error.pm'} = '$(INST_LIBDIR)/Error.pm'; }