{"thread":{"id":"4687","subject":"Quick merge status updates.","startedAt":"2006-06-28T00:23:55Z","lastAt":"2006-07-08T07:36:08Z","messageCount":21,"participants":["Junio C Hamano","Pavel Roskin","Johannes Schindelin","Petr Baudis","Linus Torvalds"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"22697","messageId":"7vodwe5dr8.fsf@assigned-by-dhcp.cox.net","threadId":"4687","inReplyTo":null,"subject":"Quick merge status updates.","fromName":"Junio C Hamano","fromEmail":"junkio@cox.net","sentAt":"2006-06-28T00:23:55Z","receivedAt":"2006-06-28T00:23:55Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"I'm planning to do 1.4.1 soonish from what's currently in \"next\"\n(fixes already in \"master\" plus format-patch updates and some\nmore tests).  I am waiting for a confirmation that Johannes's\ncvsimport fix posted earlier on the list does work, or maybe\nMartin would come up with an alternative.  I think then we are\ngood for a release.\n\nImmediately after 1.4.1 happens, I would like to pull in\n\"Git.xs/Git.pm\" series by Pasky into \"next\".  After that settles\nI'd pull in the diff options rewrite by Timo.\n\nFor some time, \"pu\" was left in the state that does not to pass\nthe testsuite, but I've fixed what's minimally needed (the\nbreakage was mostly from the diff options rewrite).  People who\nregularly follow \"next\" on platforms other than i386 or x86-64\nLinux might want to try out tonight's \"pu\" to make sure\n\"Git.xs/Git.pm\" series works on their box before it hits \"next\".\nBreakage there would stop your \"git pull\" working, so this is\nsomewhat important.\n\nThanks.\n"},{"id":"22705","messageId":"1151471040.4940.17.camel@dv","threadId":"4687","inReplyTo":"7vodwe5dr8.fsf@assigned-by-dhcp.cox.net","subject":"Re: Quick merge status updates.","fromName":"Pavel Roskin","fromEmail":"proski@gnu.org","sentAt":"2006-06-28T05:04:00Z","receivedAt":"2006-06-28T05:04:00Z","isPatch":false,"sender":{"key":"proski@gnu.org","avatar":null},"body":"On Tue, 2006-06-27 at 17:23 -0700, Junio C Hamano wrote:\n> For some time, \"pu\" was left in the state that does not to pass\n> the testsuite, but I've fixed what's minimally needed (the\n> breakage was mostly from the diff options rewrite).  People who\n> regularly follow \"next\" on platforms other than i386 or x86-64\n> Linux might want to try out tonight's \"pu\" to make sure\n> \"Git.xs/Git.pm\" series works on their box before it hits \"next\".\n> Breakage there would stop your \"git pull\" working, so this is\n> somewhat important.\n\nPowerPC 32-bit, G3, Fedora Core 5, gcc 4.1.1, perl 5.8.8, pu branch\n(f5d33e0b4eaa4083b455118a7be473defb61f137)\n\nWarnings:\n\nquote.c: In function 'sq_quote_buf':\nquote.c:34: warning: value computed is not used\nquote.c:37: warning: value computed is not used\ncombine-diff.c: In function 'diff_tree_combined':\ncombine-diff.c:844: warning: assignment makes integer from pointer\nwithout a cast\nIn file included\nfrom /usr/lib/perl5/5.8.8/ppc-linux-thread-multi/CORE/perl.h:756,\n                 from Git.xs:15:\n/usr/lib/perl5/5.8.8/ppc-linux-thread-multi/CORE/embed.h:4195:1:\nwarning: \"die\" redefined\nGit.xs:11:1: warning: this is the location of the previous definition\n\nI'm very concerned about the combine-diff.c warning.  The warning seems\nto be legitimate and I don't see an obvious fix.  The offending line\ncomes from 3969cf7db1a13a78f3b7a36d8c1084bbe0a53459 (\"Fix some more diff\noptions changes\"):\n\nshow_log_first = rev->loginfo;\n\nThe testsuite passes, but \"git-pull\" is indeed broken:\n\n$ git-pull\nCan't locate Git.pm in @INC (@INC\ncontains: /usr/lib/perl5/site_perl/5.8.8/ppc-linux-thread-multi /usr/lib/perl5/site_perl/5.8.7/ppc-linux-thread-multi /usr/lib/perl5/site_perl/5.8.6/ppc-linux-thread-multi /usr/lib/perl5/site_perl/5.8.5/ppc-linux-thread-multi /usr/lib/perl5/site_perl/5.8.4/ppc-linux-thread-multi /usr/lib/perl5/site_perl/5.8.3/ppc-linux-thread-multi /usr/lib/perl5/site_perl/5.8.8 /usr/lib/perl5/site_perl/5.8.7 /usr/lib/perl5/site_perl/5.8.6 /usr/lib/perl5/site_perl/5.8.5 /usr/lib/perl5/site_perl/5.8.4 /usr/lib/perl5/site_perl/5.8.3 /usr/lib/perl5/site_perl /usr/lib/perl5/vendor_perl/5.8.8/ppc-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.7/ppc-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.6/ppc-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.5/ppc-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.4/ppc-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.3/ppc-linux-thread-multi /usr/lib/perl5/vend\n or_perl/5.8.8 /usr/lib/perl5/vendor_perl/5.8.7 /usr/lib/perl5/vendor_perl/5.8.6 /usr/lib/perl5/vendor_perl/5.8.5 /usr/lib/perl5/vendor_perl/5.8.4 /usr/lib/perl5/vendor_perl/5.8.3 /usr/lib/perl5/vendor_perl /usr/lib/perl5/5.8.8/ppc-linux-thread-multi /usr/lib/perl5/5.8.8 .) at /home/proski/bin/git-fmt-merge-msg line 10.\nBEGIN failed--compilation aborted at /home/proski/bin/git-fmt-merge-msg\nline 10.\n\nGit.pm is installed into\n/home/proski/lib/perl5/site_perl/5.8.8/ppc-linux-thread-multi/\n\nSpeaking of x86_64 (also Fedora Core 5, gcc 4.1.1, perl 5.8.8), git\ndoesn't even build:\n\nIn file included\nfrom /usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi/CORE/perl.h:756,\n                 from Git.xs:15:\n/usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi/CORE/embed.h:4195:1:\nwarning: \"die\" redefined\nGit.xs:11:1: warning: this is the location of the previous definition\nRunning Mkbootstrap for Git ()\nchmod 644 Git.bs\nrm -f blib/arch/auto/Git/Git.so\ngcc  -shared Git.o  -o blib/arch/auto/Git/Git.so ../libgit.a    \\\n   -lz -lcrypto         \\\n  \n/usr/bin/ld: ../libgit.a(exec_cmd.o): relocation R_X86_64_32 against `a\nlocal symbol' can not be used when making a shared object; recompile\nwith -fPIC\n../libgit.a: could not read symbols: Bad value\ncollect2: ld returned 1 exit status\nmake[1]: *** [blib/arch/auto/Git/Git.so] Error 1\nmake[1]: Leaving directory `/usr/local/src/git/perl'\nmake: *** [all] Error 2\n\nThe build succeeds if I use following:\nmake CFLAGS='-g -O2 -Wall -fPIC'\n\nThe testsuite passes.  git-pull is also broken with a similar error\nmessage.  Git.pm is installed into\n/home/proski/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/\n\n-- \nRegards,\nPavel Roskin\n"},{"id":"22708","messageId":"Pine.LNX.4.63.0606280928540.29667@wbgn013.biozentrum.uni-wuerzburg.de","threadId":"4687","inReplyTo":"7vodwe5dr8.fsf@assigned-by-dhcp.cox.net","subject":"Re: Quick merge status updates.","fromName":"Johannes Schindelin","fromEmail":"johannes.schindelin@gmx.de","sentAt":"2006-06-28T07:32:35Z","receivedAt":"2006-06-28T07:32:35Z","isPatch":false,"sender":{"key":"johannes.schindelin@gmx.de","avatar":"https://avatars.githubusercontent.com/u/127790?v=4"},"body":"Hi,\n\nOn Tue, 27 Jun 2006, Junio C Hamano wrote:\n\n> Immediately after 1.4.1 happens, I would like to pull in\n> \"Git.xs/Git.pm\" series by Pasky into \"next\".\n\nEarlier, you said that this is primarily for gitweb, not so much for the \ncore of git. But...\n\n> Breakage there would stop your \"git pull\" working, so this is somewhat \n> important.\n\nMay I respectfully offer my objection? This is the _heart_ of git. You do \nnot want to muck around with this.\n\nI am not opposed to a sane interface between Perl and git, but please \nplease PLEASE do not make such an important part of git dependent on \nGit.pm. (Somehow I have the impressions there are echoes here.)\n\nCiao,\nDscho\n"},{"id":"22711","messageId":"Pine.LNX.4.63.0606280938420.29667@wbgn013.biozentrum.uni-wuerzburg.de","threadId":"4687","inReplyTo":"Pine.LNX.4.63.0606280928540.29667@wbgn013.biozentrum.uni-wuerzburg.de","subject":"Re: Quick merge status updates.","fromName":"Johannes Schindelin","fromEmail":"johannes.schindelin@gmx.de","sentAt":"2006-06-28T07:39:46Z","receivedAt":"2006-06-28T07:39:46Z","isPatch":false,"sender":{"key":"johannes.schindelin@gmx.de","avatar":"https://avatars.githubusercontent.com/u/127790?v=4"},"body":"Hi,\n\non my iBook, make in pu outputs:\n\nGIT_VERSION = 1.4.1.rc1.gf5d3\n    * new build flags or prefix\n(cd perl && /usr/bin/perl Makefile.PL \\\n     PREFIX='/Users/gene099' \\\n     DEFINE=' -I/sw/include -DSHA1_HEADER='\\''<openssl/sha.h>'\\'' \n-DNO_STRCASESTR -DNO_STRLCPY -DGIT_VERSION='\\''\"1.4.1.rc1.gf5d3\"'\\''' \\\n     LIBS=' -L/sw/lib -lz  -liconv  -lcrypto -lssl')\nCan't locate Devel/PPPort.pm in @INC (@INC contains: \n/System/Library/Perl/darwin /System/Library/Perl /Library/Perl/darwin \n/Library/Perl /Library/Perl /Network/Library/Perl/darwin \n/Network/Library/Perl /Network/Library/Perl .) at Makefile.PL line 29.\nBEGIN failed--compilation aborted at Makefile.PL line 29.\nmake: *** [perl/Makefile] Error 2\n\nFWIW all Perl scripts in git, except git-send-email, work here.\n\nCiao,\nDscho\n"},{"id":"22713","messageId":"7v7j3164xd.fsf@assigned-by-dhcp.cox.net","threadId":"4687","inReplyTo":"1151471040.4940.17.camel@dv","subject":"Re: Quick merge status updates.","fromName":"Junio C Hamano","fromEmail":"junkio@cox.net","sentAt":"2006-06-28T08:49:18Z","receivedAt":"2006-06-28T08:49:18Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Pavel Roskin <proski@gnu.org> writes:\n\n> PowerPC 32-bit, G3, Fedora Core 5, gcc 4.1.1, perl 5.8.8, pu branch\n> (f5d33e0b4eaa4083b455118a7be473defb61f137)\n\nThanks.\n\n> Warnings:\n>\n> quote.c: In function 'sq_quote_buf':\n> quote.c:34: warning: value computed is not used\n> quote.c:37: warning: value computed is not used\n\nThanks.  I think these are dealt with Jeff King's patches.\n\n> combine-diff.c: In function 'diff_tree_combined':\n> combine-diff.c:844: warning: assignment makes integer from pointer\n> without a cast\n\nThanks.  The fix is actually simple (two paragraphs below).\n\n> In file included\n> from /usr/lib/perl5/5.8.8/ppc-linux-thread-multi/CORE/perl.h:756,\n>                  from Git.xs:15:\n> /usr/lib/perl5/5.8.8/ppc-linux-thread-multi/CORE/embed.h:4195:1:\n> warning: \"die\" redefined\n> Git.xs:11:1: warning: this is the location of the previous definition\n\nI've seen this but haven't looked into it.  Pasky?\n\n> I'm very concerned about the combine-diff.c warning.  The warning seems\n> to be legitimate and I don't see an obvious fix.  The offending line\n> comes from 3969cf7db1a13a78f3b7a36d8c1084bbe0a53459 (\"Fix some more diff\n> options changes\"):\n>\n> show_log_first = rev->loginfo;\n\nThis is saying \"If rev->loginfo is pointing at some string, we\nare going to show the log message first and then output from the\ndiff machinery (otherwise rev->loginfo has NULL)\".  I'll\nrephrase it to read as:\n\n\tshow_log_first = !!rev->loginfo;\n\n> The testsuite passes, but \"git-pull\" is indeed broken:\n>\n> $ git-pull\n> Can't locate Git.pm in @INC (@INC\n> contains: /usr/lib/perl5/site_perl/5.8.8/ppc-linux-thread-multi /usr/lib/perl5/site_perl/5.8.7/ppc-linux-thread-multi /usr/lib/perl5/site_perl/5.8.6/ppc-linux-thread-multi /usr/lib/perl5/site_perl/5.8.5/ppc-linux-thread-multi /usr/lib/perl5/site_perl/5.8.4/ppc-linux-thread-multi /usr/lib/perl5/site_perl/5.8.3/ppc-linux-thread-multi /usr/lib/perl5/site_perl/5.8.8 /usr/lib/perl5/site_perl/5.8.7 /usr/lib/perl5/site_perl/5.8.6 /usr/lib/perl5/site_perl/5.8.5 /usr/lib/perl5/site_perl/5.8.4 /usr/lib/perl5/site_perl/5.8.3 /usr/lib/perl5/site_perl /usr/lib/perl5/vendor_perl/5.8.8/ppc-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.7/ppc-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.6/ppc-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.5/ppc-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.4/ppc-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.3/ppc-linux-thread-multi /usr/lib/perl5/ve\n ndor_perl/5.8.8 /usr/lib/perl5/vendor_perl/5.8.7 /usr/lib/perl5/vendor_perl/5.8.6 /usr/lib/perl5/vendor_perl/5.8.5 /usr/lib/perl5/vendor_perl/5.8.4 /usr/lib/perl5/vendor_perl/5.8.3 /usr/lib/perl5/vendor_perl /usr/lib/perl5/5.8.8/ppc-linux-thread-multi /usr/lib/perl5/5.8.8 .) at /home/proski/bin/git-fmt-merge-msg line 10.\n> BEGIN failed--compilation aborted at /home/proski/bin/git-fmt-merge-msg\n> line 10.\n>\n> Git.pm is installed into\n> /home/proski/lib/perl5/site_perl/5.8.8/ppc-linux-thread-multi/\n\nThe same problem with the last paragraph.\n\n> Speaking of x86_64 (also Fedora Core 5, gcc 4.1.1, perl 5.8.8), git\n> doesn't even build:\n\n\t$ git grep -A1 -e 'Define USE_PIC\" pu:Makefile\n\nin other words:\n\n\tUSE_PIC=YesPlease make\n\n> The testsuite passes.  git-pull is also broken with a similar error\n> message.  Git.pm is installed into\n> /home/proski/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/\n\nI suspect this is either FC perl-dev package is broken (I doubt\nit) or your installation procedure is pecurilar (much more\nlikely).  I pass the same set of prefix, bindir and friends to\n\"make\" and \"make install\" and do not see the problem.\n"},{"id":"22714","messageId":"7vy7vh4q8w.fsf@assigned-by-dhcp.cox.net","threadId":"4687","inReplyTo":"Pine.LNX.4.63.0606280938420.29667@wbgn013.biozentrum.uni-wuerzburg.de","subject":"Re: Quick merge status updates.","fromName":"Junio C Hamano","fromEmail":"junkio@cox.net","sentAt":"2006-06-28T08:51:43Z","receivedAt":"2006-06-28T08:51:43Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Johannes Schindelin <Johannes.Schindelin@gmx.de> writes:\n\n> Hi,\n>\n> on my iBook, make in pu outputs:\n>\n> GIT_VERSION = 1.4.1.rc1.gf5d3\n>     * new build flags or prefix\n> (cd perl && /usr/bin/perl Makefile.PL \\\n>      PREFIX='/Users/gene099' \\\n>      DEFINE=' -I/sw/include -DSHA1_HEADER='\\''<openssl/sha.h>'\\'' \n> -DNO_STRCASESTR -DNO_STRLCPY -DGIT_VERSION='\\''\"1.4.1.rc1.gf5d3\"'\\''' \\\n>      LIBS=' -L/sw/lib -lz  -liconv  -lcrypto -lssl')\n> Can't locate Devel/PPPort.pm in @INC (@INC contains: \n> /System/Library/Perl/darwin /System/Library/Perl /Library/Perl/darwin \n> /Library/Perl /Library/Perl /Network/Library/Perl/darwin \n> /Network/Library/Perl /Network/Library/Perl .) at Makefile.PL line 29.\n> BEGIN failed--compilation aborted at Makefile.PL line 29.\n> make: *** [perl/Makefile] Error 2\n>\n> FWIW all Perl scripts in git, except git-send-email, work here.\n\nI suspect git-fmt-merge-msg doesn't, and perhaps git-mv.\n"},{"id":"22719","messageId":"Pine.LNX.4.63.0606281109010.29667@wbgn013.biozentrum.uni-wuerzburg.de","threadId":"4687","inReplyTo":"7vy7vh4q8w.fsf@assigned-by-dhcp.cox.net","subject":"Re: Quick merge status updates.","fromName":"Johannes Schindelin","fromEmail":"johannes.schindelin@gmx.de","sentAt":"2006-06-28T09:13:13Z","receivedAt":"2006-06-28T09:13:13Z","isPatch":false,"sender":{"key":"johannes.schindelin@gmx.de","avatar":"https://avatars.githubusercontent.com/u/127790?v=4"},"body":"Hi,\n\nOn Wed, 28 Jun 2006, Junio C Hamano wrote:\n\n> Johannes Schindelin <Johannes.Schindelin@gmx.de> writes:\n> \n> > Hi,\n> >\n> > on my iBook, make in pu outputs:\n> >\n> > GIT_VERSION = 1.4.1.rc1.gf5d3\n> >     * new build flags or prefix\n> > (cd perl && /usr/bin/perl Makefile.PL \\\n> >      PREFIX='/Users/gene099' \\\n> >      DEFINE=' -I/sw/include -DSHA1_HEADER='\\''<openssl/sha.h>'\\'' \n> > -DNO_STRCASESTR -DNO_STRLCPY -DGIT_VERSION='\\''\"1.4.1.rc1.gf5d3\"'\\''' \\\n> >      LIBS=' -L/sw/lib -lz  -liconv  -lcrypto -lssl')\n> > Can't locate Devel/PPPort.pm in @INC (@INC contains: \n> > /System/Library/Perl/darwin /System/Library/Perl /Library/Perl/darwin \n> > /Library/Perl /Library/Perl /Network/Library/Perl/darwin \n> > /Network/Library/Perl /Network/Library/Perl .) at Makefile.PL line 29.\n> > BEGIN failed--compilation aborted at Makefile.PL line 29.\n> > make: *** [perl/Makefile] Error 2\n> >\n> > FWIW all Perl scripts in git, except git-send-email, work here.\n> \n> I suspect git-fmt-merge-msg doesn't, and perhaps git-mv.\n\nLast time I checked, git-mv worked (couple of weeks ago). And if I am not \nmistaken, git-fmt-merge-msg is needed when git-pull does not fast forward? \nI definitely successfully merged on my iBook, IIRC last time was last \nweek.\n\nBTW: Devel/PPPort.pm is introduced by this line in perl/Git.xs:\n\n> #include \"ppport.h\"\n\nCiao,\nDscho\n"},{"id":"22730","messageId":"1151489103.28036.6.camel@dv","threadId":"4687","inReplyTo":"7v7j3164xd.fsf@assigned-by-dhcp.cox.net","subject":"Re: Quick merge status updates.","fromName":"Pavel Roskin","fromEmail":"proski@gnu.org","sentAt":"2006-06-28T10:05:03Z","receivedAt":"2006-06-28T10:05:03Z","isPatch":false,"sender":{"key":"proski@gnu.org","avatar":null},"body":"On Wed, 2006-06-28 at 01:49 -0700, Junio C Hamano wrote:\n\n> I suspect this is either FC perl-dev package is broken (I doubt\n> it) or your installation procedure is pecurilar (much more\n> likely).  I pass the same set of prefix, bindir and friends to\n> \"make\" and \"make install\" and do not see the problem.\n\nI think my Perl 5.8.8 is \"too new\".  \"man perlfunc\" says about \"use\":\n\n\"Imports some semantics into the current package from the named module,\ngenerally by aliasing certain subroutine or variable names into your\npackage.  It is exactly equivalent to\n\n      BEGIN { require Module; import Module LIST; }\n\nexcept that Module must be a bareword.\"\n\nI think the BEGIN block has priority over other statements.  My solution\nwas to put the @INC change in the BEGIN block as well.\n\nThis patch is working for me:\n\ndiff --git a/git-fmt-merge-msg.perl b/git-fmt-merge-msg.perl\nindex e8fad02..1b23fa1 100755\n--- a/git-fmt-merge-msg.perl\n+++ b/git-fmt-merge-msg.perl\n@@ -5,7 +5,7 @@ #\n # Read .git/FETCH_HEAD and make a human readable merge message\n # by grouping branches and tags together to form a single line.\n \n-unshift @INC, '@@INSTLIBDIR@@';\n+BEGIN { unshift @INC, '@@INSTLIBDIR@@'; }\n use strict;\n use Git;\n use Error qw(:try);\n\n\n-- \nRegards,\nPavel Roskin\n"},{"id":"22733","messageId":"7v4py537ui.fsf@assigned-by-dhcp.cox.net","threadId":"4687","inReplyTo":"1151489103.28036.6.camel@dv","subject":"Re: Quick merge status updates.","fromName":"Junio C Hamano","fromEmail":"junkio@cox.net","sentAt":"2006-06-28T10:14:29Z","receivedAt":"2006-06-28T10:14:29Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Pavel Roskin <proski@gnu.org> writes:\n\n> I think my Perl 5.8.8 is \"too new\".  \"man perlfunc\" says about \"use\":\n> ...\n> I think the BEGIN block has priority over other statements.  My solution\n> was to put the @INC change in the BEGIN block as well.\n\nActually I do use 5.8.8 and everything you quoted makes perfect\nsense, -- in fact now I do not know *why* it did _not_ break for\nme without the BEGIN {} block, especially I do not have any\nPERL* environment variable to point at anywhere under $HOME.\n\nThanks for the fix.\n"},{"id":"23012","messageId":"20060701234832.GD29115@pasky.or.cz","threadId":"4687","inReplyTo":"Pine.LNX.4.63.0606280938420.29667@wbgn013.biozentrum.uni-wuerzburg.de","subject":"[PATCH] Git.pm: Avoid ppport.h","fromName":"Petr Baudis","fromEmail":"pasky@suse.cz","sentAt":"2006-07-01T23:48:32Z","receivedAt":"2006-07-01T23:48:32Z","isPatch":true,"sender":{"key":"pasky@ucw.cz","avatar":"https://avatars.githubusercontent.com/u/18439?v=4"},"body":"  Hi,\n\nDear diary, on Wed, Jun 28, 2006 at 09:39:46AM CEST, I got a letter\nwhere Johannes Schindelin <Johannes.Schindelin@gmx.de> said that...\n> on my iBook, make in pu outputs:\n> \n> GIT_VERSION = 1.4.1.rc1.gf5d3\n>     * new build flags or prefix\n> (cd perl && /usr/bin/perl Makefile.PL \\\n>      PREFIX='/Users/gene099' \\\n>      DEFINE=' -I/sw/include -DSHA1_HEADER='\\''<openssl/sha.h>'\\'' \n> -DNO_STRCASESTR -DNO_STRLCPY -DGIT_VERSION='\\''\"1.4.1.rc1.gf5d3\"'\\''' \\\n>      LIBS=' -L/sw/lib -lz  -liconv  -lcrypto -lssl')\n> Can't locate Devel/PPPort.pm in @INC (@INC contains: \n> /System/Library/Perl/darwin /System/Library/Perl /Library/Perl/darwin \n> /Library/Perl /Library/Perl /Network/Library/Perl/darwin \n> /Network/Library/Perl /Network/Library/Perl .) at Makefile.PL line 29.\n> BEGIN failed--compilation aborted at Makefile.PL line 29.\n> make: *** [perl/Makefile] Error 2\n\n  ow, Devel::PPPort might not be around all the way back to 5.6.0. What\nis your Perl version, BTW?\n\n->8-\n\nThis makes us not include ppport.h which seems not to give us anything real\nanyway; it is useful for checking for portability warts but since Devel::PPPort\nis a portability wart itself, we shouldn't require it for build. You can check\nfor portability problems by calling make check in perl/.\n\nSigned-off-by: Petr Baudis <pasky@suse.cz>\n---\n\n perl/Git.xs      |    2 --\n perl/Makefile.PL |   10 +++++-----\n 2 files changed, 5 insertions(+), 7 deletions(-)\n\ndiff --git a/perl/Git.xs b/perl/Git.xs\nindex cb23261..51bfac3 100644\n--- a/perl/Git.xs\n+++ b/perl/Git.xs\n@@ -15,8 +15,6 @@ #include \"EXTERN.h\"\n #include \"perl.h\"\n #include \"XSUB.h\"\n \n-#include \"ppport.h\"\n-\n #undef die\n \n \ndiff --git a/perl/Makefile.PL b/perl/Makefile.PL\nindex 25ae54a..97ee9af 100644\n--- a/perl/Makefile.PL\n+++ b/perl/Makefile.PL\n@@ -5,6 +5,11 @@ sub MY::postamble {\n instlibdir:\n \t@echo '$(INSTALLSITEARCH)'\n \n+check:\n+\tperl -MDevel::PPPort -le 'Devel::PPPort::WriteFile(\".ppport.h\")' && \\\n+\tperl .ppport.h --compat-version=5.6.0 Git.xs && \\\n+\trm .ppport.h\n+\n MAKE_FRAG\n }\n \n@@ -24,8 +29,3 @@ WriteMakefile(\n \tMYEXTLIB        => '../libgit.a',\n \tINC             => '-I. -I..',\n );\n-\n-\n-use Devel::PPPort;\n-\n--s 'ppport.h' or Devel::PPPort::WriteFile();\n\n-- \n\t\t\t\tPetr \"Pasky\" Baudis\nStuff: http://pasky.or.cz/\nSnow falling on Perl. White noise covering line noise.\nHides all the bugs too. -- J. Putnam\n"},{"id":"23028","messageId":"Pine.LNX.4.63.0607021141260.29667@wbgn013.biozentrum.uni-wuerzburg.de","threadId":"4687","inReplyTo":"20060701234832.GD29115@pasky.or.cz","subject":"Re: [PATCH] Git.pm: Avoid ppport.h","fromName":"Johannes Schindelin","fromEmail":"johannes.schindelin@gmx.de","sentAt":"2006-07-02T09:52:17Z","receivedAt":"2006-07-02T09:52:17Z","isPatch":true,"sender":{"key":"johannes.schindelin@gmx.de","avatar":"https://avatars.githubusercontent.com/u/127790?v=4"},"body":"Hi,\n\nOn Sun, 2 Jul 2006, Petr Baudis wrote:\n\n>   ow, Devel::PPPort might not be around all the way back to 5.6.0. What\n> is your Perl version, BTW?\n\nThis is perl, v5.6.0 built for darwin\n\n> This makes us not include ppport.h which seems not to give us anything real\n> anyway; it is useful for checking for portability warts but since Devel::PPPort\n> is a portability wart itself, we shouldn't require it for build.\n\nWhy do people introduce a \"portability enhancer\" like that? This is soo \ndumb.\n\nWell, your patch helped. Now the error is somewhere else:\n\nmkdir blib\nmkdir blib/lib\nmkdir blib/arch\nmkdir blib/arch/auto\nmkdir blib/arch/auto/Git\nmkdir blib/lib/auto\nmkdir blib/lib/auto/Git\nmkdir blib/man3\ncp private-Error.pm blib/lib/Error.pm\ncp Git.pm blib/lib/Git.pm\n/usr/bin/perl -I/System/Library/Perl/darwin -I/System/Library/Perl \n/System/Library/Perl/ExtUtils/xsubpp  -typemap \n/System/Library/Perl/ExtUtils/typemap Git.xs > Git.xsc && mv Git.xsc Git.c\nError: 'const char *' not in typemap in Git.xs, line 69\nError: 'const char *' not in typemap in Git.xs, line 79\nmake: *** [Git.c] Error 1\n\nIt seems like my typemap starts like this:\n\n-- snip --\n# $Header: /cvs/Darwin/src/live/perl/perl/lib/ExtUtils/typemap,v 1.2 \n2002/03/14 \n08:58:22 zarzycki Exp $ \n# basic C types\nint                     T_IV\nunsigned                T_UV\nunsigned int            T_UV\nlong                    T_IV\nunsigned long           T_UV\nshort                   T_IV\nunsigned short          T_UV\nchar                    T_CHAR\nunsigned char           T_U_CHAR\nchar *                  T_PV\nunsigned char *         T_PV\ncaddr_t                 T_PV\nwchar_t *               T_PV\nwchar_t                 T_IV\nbool_t                  T_IV\nsize_t                  T_IV\nssize_t                 T_IV\ntime_t                  T_NV\n-- snap --\n\nSo, no \"const char *\". See next mail for a minimal patch. The warning \n(IIRC that was mentioned already on the list) still persists:\n\ncc -c -I. -I.. -g -pipe -pipe -fno-common -no-cpp-precomp -flat_namespace \n-DHAS_TELLDIR_PROTOTYPE -fno-strict-aliasing -Os     -DVERSION=\\\"0.01\\\" \n-DXS_VERSION=\\\"0.01\\\"  -I/System/Library/Perl/darwin/CORE -I/sw/include \n-DSHA1_HEADER='<openssl/sha.h>' -DNO_STRCASESTR -DNO_STRLCPY \n-DGIT_VERSION='\"1.4.1.g3b26\"' Git.c\nIn file included from /System/Library/Perl/darwin/CORE/perl.h:500,\n                 from Git.xs:15:\n/System/Library/Perl/darwin/CORE/embed.h:156:1: warning: \"die\" redefined\nGit.xs:11:1: warning: this is the location of the previous definition\n\nCiao,\nDscho\n"},{"id":"23043","messageId":"7v4pxz4yki.fsf@assigned-by-dhcp.cox.net","threadId":"4687","inReplyTo":"Pine.LNX.4.63.0607021141260.29667@wbgn013.biozentrum.uni-wuerzburg.de","subject":"Re: [PATCH] Git.pm: Avoid ppport.h","fromName":"Junio C Hamano","fromEmail":"junkio@cox.net","sentAt":"2006-07-02T19:05:33Z","receivedAt":"2006-07-02T19:05:33Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Johannes Schindelin <Johannes.Schindelin@gmx.de> writes:\n\n>> This makes us not include ppport.h which seems not to give us anything real\n>> anyway; it is useful for checking for portability warts but since Devel::PPPort\n>> is a portability wart itself, we shouldn't require it for build.\n>\n> Why do people introduce a \"portability enhancer\" like that? This is soo \n> dumb.\n\nI think that statement is a bit too harsh.\n\nMy understanding is that it's more for use by developers working\nwith later version to produce portability headers, so used that\nway it is very sane.  From its manual page:\n\n       How to use ppport.h\n\n       Don't direct the users of your module to download \"Devel::PPPort\".\n       They are most probably no XS writers. Also, don't make ppport.h\n       optional. Rather, just take the most recent copy of ppport.h that you\n       can find (e.g. by generating it with the latest \"Devel::PPPort\" release\n       from CPAN), copy it into your project, adjust your project to use it,\n       and distribute the header along with your module.\n\nBut in the case of source distribution, and if the source\ndistribution wants to be compatible with older versions, the\nabove advice does not apply.\n\n> Error: 'const char *' not in typemap in Git.xs, line 69\n> Error: 'const char *' not in typemap in Git.xs, line 79\n> make: *** [Git.c] Error 1\n>\n> It seems like my typemap starts like this:\n>...\n> So, no \"const char *\". See next mail for a minimal patch.\n\nAn alternative would be to carry our own typemap but I think\nyour fix is less intrusive and fine.  Pasky?\n\n> The warning \n> (IIRC that was mentioned already on the list) still persists:\n>\n> cc -c -I. -I.. -g -pipe -pipe -fno-common -no-cpp-precomp -flat_namespace \n> -DHAS_TELLDIR_PROTOTYPE -fno-strict-aliasing -Os     -DVERSION=\\\"0.01\\\" \n> -DXS_VERSION=\\\"0.01\\\"  -I/System/Library/Perl/darwin/CORE -I/sw/include \n> -DSHA1_HEADER='<openssl/sha.h>' -DNO_STRCASESTR -DNO_STRLCPY \n> -DGIT_VERSION='\"1.4.1.g3b26\"' Git.c\n> In file included from /System/Library/Perl/darwin/CORE/perl.h:500,\n>                  from Git.xs:15:\n> /System/Library/Perl/darwin/CORE/embed.h:156:1: warning: \"die\" redefined\n> Git.xs:11:1: warning: this is the location of the previous definition\n\nI see the same here.\n"},{"id":"23045","messageId":"20060702204906.GG29115@pasky.or.cz","threadId":"4687","inReplyTo":"1151489103.28036.6.camel@dv","subject":"Re: Quick merge status updates.","fromName":"Petr Baudis","fromEmail":"pasky@suse.cz","sentAt":"2006-07-02T20:49:06Z","receivedAt":"2006-07-02T20:49:06Z","isPatch":false,"sender":{"key":"pasky@ucw.cz","avatar":"https://avatars.githubusercontent.com/u/18439?v=4"},"body":"Dear diary, on Wed, Jun 28, 2006 at 12:05:03PM CEST, I got a letter\nwhere Pavel Roskin <proski@gnu.org> said that...\n> I think the BEGIN block has priority over other statements.  My solution\n> was to put the @INC change in the BEGIN block as well.\n> \n> This patch is working for me:\n> \n> diff --git a/git-fmt-merge-msg.perl b/git-fmt-merge-msg.perl\n> index e8fad02..1b23fa1 100755\n> --- a/git-fmt-merge-msg.perl\n> +++ b/git-fmt-merge-msg.perl\n> @@ -5,7 +5,7 @@ #\n>  # Read .git/FETCH_HEAD and make a human readable merge message\n>  # by grouping branches and tags together to form a single line.\n>  \n> -unshift @INC, '@@INSTLIBDIR@@';\n> +BEGIN { unshift @INC, '@@INSTLIBDIR@@'; }\n>  use strict;\n>  use Git;\n>  use Error qw(:try);\n\nI feel that it is time for another stupid question of mine - why can't\nyou just use lib?\n\n\tuse lib ('@@INSTLIBDIR@@');\n\nLooks a lot better than some @INC unshifting, and it should be\nequivalent.\n\nLet's pour in to the confusion:\n\nThe unshifting was introduced w/o BEGIN{} in\n\n\tFrom: Junio C Hamano <junkio@cox.net>\n\tSubject: Re: [PATCH 01/12] Introduce Git.pm (v4)\n\tDate:   Sat, 24 Jun 2006 04:57:31 -0700\n\nbut that patch is not in pu anymore while the description of the new\npatch implicitly refers to it, which made it all a bit confusing.\n\nSo the purpose of the original patch was to make it play nicely with\n$PERLLIB, but unshifting helps nothing, since:\n\n\tThere's default @INC\n\tPerl spots PERLLIB and unshifts @INC\n\tWe then unshift @INC too, taking precedence\n\nSo didn't the original patch rather want to do push?\n\n\t$ PERL5LIB=perl perl -le \"BEGIN { unshift @INC, '/home/xpasky/lib/perl5/site_perl/5.8.8/i686-linux'; } use Git; print Git::hash_object('blob','Makefile');\"\n\t17842a3657ae8e5b4fd3ddfeb69268a4b94cb97a\n\t$ PERL5LIB=perl perl -le \"use Git; print Git::hash_object('blob','Makefile');\"\n\tsyntax error at perl/Git.pm line 44, near \"h>\"\n\n(after inserting random junk to perl/Git.pm)\n\n-- \n\t\t\t\tPetr \"Pasky\" Baudis\nStuff: http://pasky.or.cz/\nSnow falling on Perl. White noise covering line noise.\nHides all the bugs too. -- J. Putnam\n"},{"id":"23046","messageId":"20060702205717.GH29115@pasky.or.cz","threadId":"4687","inReplyTo":"7v4pxz4yki.fsf@assigned-by-dhcp.cox.net","subject":"[PATCH] Git.pm: Don't #define around die","fromName":"Petr Baudis","fromEmail":"pasky@suse.cz","sentAt":"2006-07-02T20:57:17Z","receivedAt":"2006-07-02T20:57:17Z","isPatch":true,"sender":{"key":"pasky@ucw.cz","avatar":"https://avatars.githubusercontent.com/u/18439?v=4"},"body":"Dear diary, on Sun, Jul 02, 2006 at 09:05:33PM CEST, I got a letter\nwhere Junio C Hamano <junkio@cox.net> said that...\n> Johannes Schindelin <Johannes.Schindelin@gmx.de> writes:\n> > Error: 'const char *' not in typemap in Git.xs, line 69\n> > Error: 'const char *' not in typemap in Git.xs, line 79\n> > make: *** [Git.c] Error 1\n> >\n> > It seems like my typemap starts like this:\n> >...\n> > So, no \"const char *\". See next mail for a minimal patch.\n> \n> An alternative would be to carry our own typemap but I think\n> your fix is less intrusive and fine.  Pasky?\n\nYes, it should be fine.\n\n> > The warning \n> > (IIRC that was mentioned already on the list) still persists:\n> >\n> > cc -c -I. -I.. -g -pipe -pipe -fno-common -no-cpp-precomp -flat_namespace \n> > -DHAS_TELLDIR_PROTOTYPE -fno-strict-aliasing -Os     -DVERSION=\\\"0.01\\\" \n> > -DXS_VERSION=\\\"0.01\\\"  -I/System/Library/Perl/darwin/CORE -I/sw/include \n> > -DSHA1_HEADER='<openssl/sha.h>' -DNO_STRCASESTR -DNO_STRLCPY \n> > -DGIT_VERSION='\"1.4.1.g3b26\"' Git.c\n> > In file included from /System/Library/Perl/darwin/CORE/perl.h:500,\n> >                  from Git.xs:15:\n> > /System/Library/Perl/darwin/CORE/embed.h:156:1: warning: \"die\" redefined\n> > Git.xs:11:1: warning: this is the location of the previous definition\n> \n> I see the same here.\n\n-8<-\n\nBack in the old days, we called Git's die() from the .xs code, but we had to\nhijack Perl's die() for that. Now we don't call Git's die() so no need to do\nthe hijacking and it silences a compiler warning.\n\nSigned-off-by: Petr Baudis <pasky@suse.cz>\n---\n\n perl/Git.xs |    4 ----\n 1 files changed, 0 insertions(+), 4 deletions(-)\n\ndiff --git a/perl/Git.xs b/perl/Git.xs\nindex 51bfac3..1e6c1eb 100644\n--- a/perl/Git.xs\n+++ b/perl/Git.xs\n@@ -8,15 +8,11 @@ #include <ctype.h>\n #include \"../cache.h\"\n #include \"../exec_cmd.h\"\n \n-#define die perlyshadow_die__\n-\n /* XS and Perl interface */\n #include \"EXTERN.h\"\n #include \"perl.h\"\n #include \"XSUB.h\"\n \n-#undef die\n-\n \n static char *\n report_xs(const char *prefix, const char *err, va_list params)\n\n-- \n\t\t\t\tPetr \"Pasky\" Baudis\nStuff: http://pasky.or.cz/\nSnow falling on Perl. White noise covering line noise.\nHides all the bugs too. -- J. Putnam\n"},{"id":"23051","messageId":"7v64if3d50.fsf@assigned-by-dhcp.cox.net","threadId":"4687","inReplyTo":"20060702204906.GG29115@pasky.or.cz","subject":"Re: Quick merge status updates.","fromName":"Junio C Hamano","fromEmail":"junkio@cox.net","sentAt":"2006-07-02T21:33:47Z","receivedAt":"2006-07-02T21:33:47Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Petr Baudis <pasky@suse.cz> writes:\n\n> So the purpose of the original patch was to make it play nicely with\n> $PERLLIB, but unshifting helps nothing, since:\n>\n> \tThere's default @INC\n> \tPerl spots PERLLIB and unshifts @INC\n> \tWe then unshift @INC too, taking precedence\n\nI tried this:\n\n 0. check out the branch that has the Perly git (\"pu\").  build\n    and install normally to have a perfectly working version\n    accessible on your usual $PATH.\n\n 1. apply the patch [1] below to make it use \"use lib\" instead of\n    \"unshift\".\n\n 2. break perl/Git.pm being built to pretend we introduced a bug\n    in the work in progress by applying the patch [2] below.\n\n 3. without installing the broken Git.pm, run \"make test\", and\n    see a test that uses \"git pull\" and needs to create a true\n    merge succeed.  It tells me that everything including\n    perl/Git.pm is GOOD, and I'd find the breakage only after\n    installing and running the test again.\n\nIf you make the freshly built script to say \"use lib\" to use\nGit.pm and its friends from the installed location, it defeats\nthe attempt by test-lib.sh to override it to test what we\nfreshly built -- the use of \"unshift @INC\" is to work that\naround and is parallel to the way Python stuff works around the\nsame problem.\n\n[Footnotes]\n*1* \"use lib\" patch.\n\ndiff --git a/git-fmt-merge-msg.perl b/git-fmt-merge-msg.perl\nindex 1b23fa1..3a42950 100755\n--- a/git-fmt-merge-msg.perl\n+++ b/git-fmt-merge-msg.perl\n@@ -5,7 +5,7 @@ #\n # Read .git/FETCH_HEAD and make a human readable merge message\n # by grouping branches and tags together to form a single line.\n \n-BEGIN { unshift @INC, '@@INSTLIBDIR@@'; }\n+use lib '@@INSTLIBDIR@@';\n use strict;\n use Git;\n use Error qw(:try);\n\n*2* \"break Git.pm\" patch.\n\ndiff --git a/perl/Git.pm b/perl/Git.pm\nindex b4ee88b..34b4f12 100644\n--- a/perl/Git.pm\n+++ b/perl/Git.pm\n@@ -6,6 +6,7 @@ Git - Perl interface to the Git version \n \n \n package Git;\n+syntax error -- kill me\n \n use strict;\n \n"},{"id":"23056","messageId":"20060702214931.GJ29115@pasky.or.cz","threadId":"4687","inReplyTo":"7v64if3d50.fsf@assigned-by-dhcp.cox.net","subject":"Re: Quick merge status updates.","fromName":"Petr Baudis","fromEmail":"pasky@suse.cz","sentAt":"2006-07-02T21:49:31Z","receivedAt":"2006-07-02T21:49:31Z","isPatch":false,"sender":{"key":"pasky@ucw.cz","avatar":"https://avatars.githubusercontent.com/u/18439?v=4"},"body":"Dear diary, on Sun, Jul 02, 2006 at 11:33:47PM CEST, I got a letter\nwhere Junio C Hamano <junkio@cox.net> said that...\n> I tried this:\n> \n>  0. check out the branch that has the Perly git (\"pu\").  build\n>     and install normally to have a perfectly working version\n>     accessible on your usual $PATH.\n> \n>  1. apply the patch [1] below to make it use \"use lib\" instead of\n>     \"unshift\".\n> \n>  2. break perl/Git.pm being built to pretend we introduced a bug\n>     in the work in progress by applying the patch [2] below.\n> \n>  3. without installing the broken Git.pm, run \"make test\", and\n>     see a test that uses \"git pull\" and needs to create a true\n>     merge succeed.  It tells me that everything including\n>     perl/Git.pm is GOOD, and I'd find the breakage only after\n>     installing and running the test again.\n\nSo, just to clarify and make sure we understand each other perfectly,\nyou claim that when skipping (1), (3) _does_ FAIL for you? Because it\nreally doesn't for me and I can't see how could it ever fail without\ninstalling the broken version first.\n\n-- \n\t\t\t\tPetr \"Pasky\" Baudis\nStuff: http://pasky.or.cz/\nSnow falling on Perl. White noise covering line noise.\nHides all the bugs too. -- J. Putnam\n"},{"id":"23061","messageId":"7vveqf1v05.fsf@assigned-by-dhcp.cox.net","threadId":"4687","inReplyTo":"20060702214931.GJ29115@pasky.or.cz","subject":"Re: Quick merge status updates.","fromName":"Junio C Hamano","fromEmail":"junkio@cox.net","sentAt":"2006-07-02T22:50:50Z","receivedAt":"2006-07-02T22:50:50Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Petr Baudis <pasky@suse.cz> writes:\n\n> Dear diary, on Sun, Jul 02, 2006 at 11:33:47PM CEST, I got a letter\n> where Junio C Hamano <junkio@cox.net> said that...\n>> I tried this:\n>> \n>>  0. check out the branch that has the Perly git (\"pu\").  build\n>>     and install normally to have a perfectly working version\n>>     accessible on your usual $PATH.\n>> \n>>  1. apply the patch [1] below to make it use \"use lib\" instead of\n>>     \"unshift\".\n>> \n>>  2. break perl/Git.pm being built to pretend we introduced a bug\n>>     in the work in progress by applying the patch [2] below.\n>> \n>>  3. without installing the broken Git.pm, run \"make test\", and\n>>     see a test that uses \"git pull\" and needs to create a true\n>>     merge succeed.  It tells me that everything including\n>>     perl/Git.pm is GOOD, and I'd find the breakage only after\n>>     installing and running the test again.\n>\n> So, just to clarify and make sure we understand each other perfectly,\n> you claim that when skipping (1), (3) _does_ FAIL for you? Because it\n> really doesn't for me and I can't see how could it ever fail without\n> installing the broken version first.\n\nGaah.  You are right.\n\nPERL5LIB does not seem to just do a push (and that was I thought\nwhy unshift was a way to defeat it) but do something more evil.\n\nWith this:\n\ndiff --git a/git-fmt-merge-msg.perl b/git-fmt-merge-msg.perl\nindex 1b23fa1..5d1ae44 100755\n--- a/git-fmt-merge-msg.perl\n+++ b/git-fmt-merge-msg.perl\n@@ -6,9 +6,11 @@ # Read .git/FETCH_HEAD and make a human \n # by grouping branches and tags together to form a single line.\n \n BEGIN { unshift @INC, '@@INSTLIBDIR@@'; }\n+use lib '@@INSTLIBDIR@@';\n use strict;\n use Git;\n use Error qw(:try);\n+print STDERR \"\\@INC is @INC\\n\";\n \n my $repo = Git->repository();\n \nIt spits this out: \n\n@INC is /home/junio/git-pu/lib/perl/5.8.8 /opt/git/git.git/t/../perl/blib/lib /opt/git/git.git/t/../perl/blib/arch/auto/Git /etc/perl /usr/local/lib/perl/5.8.8 /usr/local/share/perl/5.8.8 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.8 /usr/share/perl/5.8 /usr/local/lib/site_perl .\n\nSo \"BEGIN { unshift }\" is JUST AS WRONG as \"use lib\".\n\nI thought we killed this showstopper and was hoping now the\nseries is mergeable to \"next\" but apparently not yet X-<.\n\nSigh....\n"},{"id":"23065","messageId":"7vejx31sav.fsf@assigned-by-dhcp.cox.net","threadId":"4687","inReplyTo":"7vveqf1v05.fsf@assigned-by-dhcp.cox.net","subject":"Re: Quick merge status updates.","fromName":"Junio C Hamano","fromEmail":"junkio@cox.net","sentAt":"2006-07-02T23:49:12Z","receivedAt":"2006-07-02T23:49:12Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Junio C Hamano <junkio@cox.net> writes:\n\n> Gaah.  You are right.\n>\n> PERL5LIB does not seem to just do a push (and that was I thought\n> why unshift was a way to defeat it) but do something more evil.\n> ...\n> I thought we killed this showstopper and was hoping now the\n> series is mergeable to \"next\" but apparently not yet X-<.\n>\n> Sigh....\n\nYuck; that means we would need to have something evil like this.\n\n-- >8 --\nPerly Git: make sure we do test the freshly built one.\n\nWe could BEGIN { push @INC, '@@INSTLIBDIR@@'; } but that is not\na good idea for normal execution.  The would prevent a\nworkaround for a user who is trying to override an old, faulty\nGit.pm installed on the system path with a newer version\ninstalled under $HOME/.\n\nSigned-off-by: Junio C Hamano <junkio@cox.net>\n\n---\ndiff --git a/git-fmt-merge-msg.perl b/git-fmt-merge-msg.perl\nindex 1b23fa1..a9805dd 100755\n--- a/git-fmt-merge-msg.perl\n+++ b/git-fmt-merge-msg.perl\n@@ -5,7 +5,11 @@ #\n # Read .git/FETCH_HEAD and make a human readable merge message\n # by grouping branches and tags together to form a single line.\n \n-BEGIN { unshift @INC, '@@INSTLIBDIR@@'; }\n+BEGIN {\n+\tunless (exists $ENV{'RUNNING_GIT_TESTS'}) {\n+\t\tunshift @INC, '@@INSTLIBDIR@@';\n+\t}\n+}\n use strict;\n use Git;\n use Error qw(:try);\ndiff --git a/git-mv.perl b/git-mv.perl\nindex a604896..5134b80 100755\n--- a/git-mv.perl\n+++ b/git-mv.perl\n@@ -6,7 +6,11 @@ #\n # This file is licensed under the GPL v2, or a later version\n # at the discretion of Linus Torvalds.\n \n-BEGIN { unshift @INC, '@@INSTLIBDIR@@'; }\n+BEGIN {\n+\tunless (exists $ENV{'RUNNING_GIT_TESTS'}) {\n+\t\tunshift @INC, '@@INSTLIBDIR@@';\n+\t}\n+}\n use warnings;\n use strict;\n use Getopt::Std;\ndiff --git a/t/test-lib.sh b/t/test-lib.sh\nindex fba0c51..298c6ca 100755\n--- a/t/test-lib.sh\n+++ b/t/test-lib.sh\n@@ -206,8 +206,9 @@ PYTHON=`sed -e '1{\n \tPYTHONPATH=$(pwd)/../compat\n \texport PYTHONPATH\n }\n+RUNNING_GIT_TESTS=YesWeAre\n PERL5LIB=$(pwd)/../perl/blib/lib:$(pwd)/../perl/blib/arch/auto/Git\n-export PERL5LIB\n+export PERL5LIB RUNNING_GIT_TESTS\n test -d ../templates/blt || {\n \terror \"You haven't built things yet, have you?\"\n }\n"},{"id":"23067","messageId":"Pine.LNX.4.64.0607021655440.12404@g5.osdl.org","threadId":"4687","inReplyTo":"7vejx31sav.fsf@assigned-by-dhcp.cox.net","subject":"Re: Quick merge status updates.","fromName":"Linus Torvalds","fromEmail":"torvalds@osdl.org","sentAt":"2006-07-03T00:00:40Z","receivedAt":"2006-07-03T00:00:40Z","isPatch":false,"sender":{"key":"torvalds@linux-foundation.org","avatar":"https://avatars.githubusercontent.com/u/1024025?v=4"},"body":"\n\nOn Sun, 2 Jul 2006, Junio C Hamano wrote:\n> Yuck; that means we would need to have something evil like this.\n\nThat's just disgusting.\n\nHow about a _much_ simpler approach.\n\nJust make it do\n\n\tBEGIN { push ENV{'GIT_PERL_EXEC_DIR'}; }\n\nAnd then simply _require_ that the setup code sets up GIT_PERL_EXEC_DIR.\n\nWhich is usually simple enough to do. For git.c, something like this will \ndo it, other places you can reach things through can have something \nsimilar.\n\n\t\tLinus\n\n---\n\ndiff --git a/git.c b/git.c\nindex ca8961f..e8f25ee 100644\n--- a/git.c\n+++ b/git.c\n@@ -294,6 +294,7 @@ int main(int argc, const char **argv, ch\n \t\tprepend_to_path(exec_path, strlen(exec_path));\n \texec_path = git_exec_path();\n \tprepend_to_path(exec_path, strlen(exec_path));\n+\tsetenv(exec_path, \"GIT_PERL_EXEC_DIR\", 0);\n \n \twhile (1) {\n \t\t/* See if it's an internal command */\n"},{"id":"23070","messageId":"7v1wt31riu.fsf@assigned-by-dhcp.cox.net","threadId":"4687","inReplyTo":"Pine.LNX.4.64.0607021655440.12404@g5.osdl.org","subject":"Re: Quick merge status updates.","fromName":"Junio C Hamano","fromEmail":"junkio@cox.net","sentAt":"2006-07-03T00:06:01Z","receivedAt":"2006-07-03T00:06:01Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Linus Torvalds <torvalds@osdl.org> writes:\n\n> On Sun, 2 Jul 2006, Junio C Hamano wrote:\n>> Yuck; that means we would need to have something evil like this.\n>\n> That's just disgusting.\n>\n> How about a _much_ simpler approach.\n>\n> Just make it do\n>\n> \tBEGIN { push ENV{'GIT_PERL_EXEC_DIR'}; }\n>\n> And then simply _require_ that the setup code sets up GIT_PERL_EXEC_DIR.\n\nNo, we are not mucking with /usr/bin but are talking about a\ndirectory for platform specific Perl libraries, which we need to\nask Perl at build-time.\n\nAnd the standard way to say that is to do:\n\n\tuse lib '@@INSTLIBDIR@@';\n\nbut that always prepends the directory to the search path, and\nthe ugly stuff is to allow test scripts to override it when\nneeded.\n"},{"id":"23408","messageId":"1152344168.26627.10.camel@dv","threadId":"4687","inReplyTo":"20060702204906.GG29115@pasky.or.cz","subject":"Re: Quick merge status updates.","fromName":"Pavel Roskin","fromEmail":"proski@gnu.org","sentAt":"2006-07-08T07:36:08Z","receivedAt":"2006-07-08T07:36:08Z","isPatch":false,"sender":{"key":"proski@gnu.org","avatar":null},"body":"On Sun, 2006-07-02 at 22:49 +0200, Petr Baudis wrote:\n> Dear diary, on Wed, Jun 28, 2006 at 12:05:03PM CEST, I got a letter\n> where Pavel Roskin <proski@gnu.org> said that...\n\n> I feel that it is time for another stupid question of mine - why can't\n> you just use lib?\n> \n> \tuse lib ('@@INSTLIBDIR@@');\n> \n> Looks a lot better than some @INC unshifting, and it should be\n> equivalent.\n\nI honestly have no idea.  I think whatever gets you closer to the\nsatisfaction of the \"three conditions\" should be used.\n\n-- \nRegards,\nPavel Roskin\n"}]}