{"thread":{"id":"40085","subject":"[bug] 2.5.0 build with NO_PERL is broken","startedAt":"2015-08-14T15:41:09Z","lastAt":"2015-08-18T18:09:12Z","messageCount":11,"participants":["Renato Botelho","Junio C Hamano","Eric Sunshine"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"268040","messageId":"loom.20150814T171757-901@post.gmane.org","threadId":"40085","inReplyTo":null,"subject":"[bug] 2.5.0 build with NO_PERL is broken","fromName":"Renato Botelho","fromEmail":"garga@freebsd.org","sentAt":"2015-08-14T15:41:09Z","receivedAt":"2015-08-14T15:41:09Z","isPatch":false,"sender":{"key":"garga@freebsd.org","avatar":"https://gravatar.com/avatar/695c68fb2f0629998c430204a7212aec683a3f87ec5eeaae236fd2376e790bfc?d=mp&s=160"},"body":"I was working on update git on FreeBSD ports tree to 2.5.0 and I noted 2.5.0\nis trying to use perl even when it's being built with NO_PERL knob.\n\n/bin/sh: /usr/bin/perl: not found\nMakefile:1701: recipe for target 'common-cmds.h' failed\ngmake[2]: *** [common-cmds.h] Error 127\ngmake[2]: *** Waiting for unfinished jobs....\ngmake[2]: Leaving directory '/freebsd/ports/head/devel/git/work/git-2.5.0'\n\nAfter a quick search, looks like commit 527ec3980b is the culprit since it\nremoved generate-cmdlist.sh and introduced generate-cmdlist.perl.\n\nI just would like to check if it's planned to add perl dependency during\nbuild time or it happened by accident and will be fixed so NO_PERL can work\nagain.\n\nThanks\n"},{"id":"268045","messageId":"loom.20150814T184447-932@post.gmane.org","threadId":"40085","inReplyTo":"loom.20150814T171757-901@post.gmane.org","subject":"Re: [bug] 2.5.0 build with NO_PERL is broken","fromName":"Renato Botelho","fromEmail":"garga@freebsd.org","sentAt":"2015-08-14T16:46:18Z","receivedAt":"2015-08-14T16:46:18Z","isPatch":false,"sender":{"key":"garga@freebsd.org","avatar":"https://gravatar.com/avatar/695c68fb2f0629998c430204a7212aec683a3f87ec5eeaae236fd2376e790bfc?d=mp&s=160"},"body":"Renato Botelho <garga <at> FreeBSD.org> writes:\n\n> \n> I was working on update git on FreeBSD ports tree to 2.5.0 and I noted 2.5.0\n> is trying to use perl even when it's being built with NO_PERL knob.\n> \n> /bin/sh: /usr/bin/perl: not found\n> Makefile:1701: recipe for target 'common-cmds.h' failed\n> gmake[2]: *** [common-cmds.h] Error 127\n> gmake[2]: *** Waiting for unfinished jobs....\n> gmake[2]: Leaving directory '/freebsd/ports/head/devel/git/work/git-2.5.0'\n> \n> After a quick search, looks like commit 527ec3980b is the culprit since it\n> removed generate-cmdlist.sh and introduced generate-cmdlist.perl.\n> \n> I just would like to check if it's planned to add perl dependency during\n> build time or it happened by accident and will be fixed so NO_PERL can work\n> again.\n\nI also found that some commands require perl when NO_PERL is set:\n\ngit-submodule\ngit-request-pull\ngit-am\n\nDefinitely NO_PERL is not working as expected.\n"},{"id":"268068","messageId":"xmqq7foxiqu6.fsf@gitster.dls.corp.google.com","threadId":"40085","inReplyTo":"loom.20150814T184447-932@post.gmane.org","subject":"Re: [bug] 2.5.0 build with NO_PERL is broken","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2015-08-14T19:59:29Z","receivedAt":"2015-08-14T19:59:29Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Renato Botelho <garga@FreeBSD.org> writes:\n\n> I also found that some commands require perl when NO_PERL is set:\n>\n> git-submodule\n> git-request-pull\n> git-am\n>\n> Definitely NO_PERL is not working as expected.\n\nNO_PERL merely means \"I want to build a subset of Git that is meant\nto be usable on a system without a working Perl installed\".  These\nscripts that do require Perl installed are indeed not expected to\nwork under NO_PERL (if you think about it, that would be natural and\nthe only sensible expectation---otherwise we would have coded them\nwithout using Perl at all, in which case there will be no need for\nNO_PERL in the first place).\n"},{"id":"268083","messageId":"CAPig+cR77oFo6D3f8BjAB_yM-xPt+3EUGK4vZr3eYWJGTtksAQ@mail.gmail.com","threadId":"40085","inReplyTo":"xmqq7foxiqu6.fsf@gitster.dls.corp.google.com","subject":"Re: [bug] 2.5.0 build with NO_PERL is broken","fromName":"Eric Sunshine","fromEmail":"sunshine@sunshineco.com","sentAt":"2015-08-14T20:49:38Z","receivedAt":"2015-08-14T20:49:38Z","isPatch":false,"sender":{"key":"sunshine@sunshineco.com","avatar":"https://avatars.githubusercontent.com/u/163641?v=4"},"body":"On Fri, Aug 14, 2015 at 3:59 PM, Junio C Hamano <gitster@pobox.com> wrote:\n> Renato Botelho <garga@FreeBSD.org> writes:\n>> I also found that some commands require perl when NO_PERL is set:\n>\n> NO_PERL merely means \"I want to build a subset of Git that is meant\n> to be usable on a system without a working Perl installed\".  These\n> scripts that do require Perl installed are indeed not expected to\n> work under NO_PERL (if you think about it, that would be natural and\n> the only sensible expectation---otherwise we would have coded them\n> without using Perl at all, in which case there will be no need for\n> NO_PERL in the first place).\n\nNevertheless, there's still the problem, due to 527ec39\n(generate-cmdlist: parse common group commands, 2015-05-21), that git\ndoesn't build at all anymore when Perl is unavailable.\n\nOne option would be to go with the awk version of\n'generate-cmdlist'[1], which restricts itself to POSIX and was tested\non Linux, FreeBSD, and Mac OS X[2], though I'm not sure we really want\nto go there, particularly if you're uncomfortable[3] about introducing\nawk into the toolchain.\n\nAnother option would be to rewrite the (more complex) generate-cmdlist\nin shell, which I think should be possible, though it will be uglier\nand more verbose.\n\n[1]: http://article.gmane.org/gmane.comp.version-control.git/269307/\n[2]: http://article.gmane.org/gmane.comp.version-control.git/269336/\n[3]: http://article.gmane.org/gmane.comp.version-control.git/269324/\n"},{"id":"268087","messageId":"xmqqoai9h9co.fsf@gitster.dls.corp.google.com","threadId":"40085","inReplyTo":"CAPig+cR77oFo6D3f8BjAB_yM-xPt+3EUGK4vZr3eYWJGTtksAQ@mail.gmail.com","subject":"Re: [bug] 2.5.0 build with NO_PERL is broken","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2015-08-14T21:02:31Z","receivedAt":"2015-08-14T21:02:31Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Eric Sunshine <sunshine@sunshineco.com> writes:\n\n> Nevertheless, there's still the problem, due to 527ec39\n> (generate-cmdlist: parse common group commands, 2015-05-21), that git\n> doesn't build at all anymore when Perl is unavailable.\n\nI do not think that is anything new.  We always have assumed \"some\"\nversion of Perl available in order to run t/ scripts.\n"},{"id":"268096","messageId":"CAPig+cR6iT=AC8zq-vHHTkXMzRmDA-o9JLi0h8gbR1tzbqNyKA@mail.gmail.com","threadId":"40085","inReplyTo":"xmqqoai9h9co.fsf@gitster.dls.corp.google.com","subject":"Re: [bug] 2.5.0 build with NO_PERL is broken","fromName":"Eric Sunshine","fromEmail":"sunshine@sunshineco.com","sentAt":"2015-08-14T21:15:29Z","receivedAt":"2015-08-14T21:15:29Z","isPatch":false,"sender":{"key":"sunshine@sunshineco.com","avatar":"https://avatars.githubusercontent.com/u/163641?v=4"},"body":"On Fri, Aug 14, 2015 at 5:02 PM, Junio C Hamano <gitster@pobox.com> wrote:\n> Eric Sunshine <sunshine@sunshineco.com> writes:\n>> Nevertheless, there's still the problem, due to 527ec39\n>> (generate-cmdlist: parse common group commands, 2015-05-21), that git\n>> doesn't build at all anymore when Perl is unavailable.\n>\n> I do not think that is anything new.  We always have assumed \"some\"\n> version of Perl available in order to run t/ scripts.\n\nTrue, but prior to 527ec39, without Perl available, git itself could\nat least be built and used (with some commands unavailable), even if\nit couldn't be fully tested. As of 527ec39, however, git won't even\nbuild because common-cmds.h can't be generated.\n"},{"id":"268102","messageId":"xmqqzj1tfr2g.fsf@gitster.dls.corp.google.com","threadId":"40085","inReplyTo":"CAPig+cR6iT=AC8zq-vHHTkXMzRmDA-o9JLi0h8gbR1tzbqNyKA@mail.gmail.com","subject":"Re: [bug] 2.5.0 build with NO_PERL is broken","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2015-08-14T22:22:47Z","receivedAt":"2015-08-14T22:22:47Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Eric Sunshine <sunshine@sunshineco.com> writes:\n\n> On Fri, Aug 14, 2015 at 5:02 PM, Junio C Hamano <gitster@pobox.com> wrote:\n>> Eric Sunshine <sunshine@sunshineco.com> writes:\n>>> Nevertheless, there's still the problem, due to 527ec39\n>>> (generate-cmdlist: parse common group commands, 2015-05-21), that git\n>>> doesn't build at all anymore when Perl is unavailable.\n>>\n>> I do not think that is anything new.  We always have assumed \"some\"\n>> version of Perl available in order to run t/ scripts.\n>\n> True, but prior to 527ec39, without Perl available, git itself could\n> at least be built and used (with some commands unavailable), even if\n> it couldn't be fully tested. As of 527ec39, however, git won't even\n> build because common-cmds.h can't be generated.\n\nI wouldn't bother digging in the history myself, but I am reasonably\nsure that the current genereate-common-cmds is not the sole instance\nthat we relied on Perl to build (not test) in the past, and that is\nanother reason why I do not think this is anything new.\n"},{"id":"268103","messageId":"CAPig+cQkApWfZ6N159F-XFZk+nnzY-gAgLRfZXNitdd0CHpm2g@mail.gmail.com","threadId":"40085","inReplyTo":"xmqqzj1tfr2g.fsf@gitster.dls.corp.google.com","subject":"Re: [bug] 2.5.0 build with NO_PERL is broken","fromName":"Eric Sunshine","fromEmail":"sunshine@sunshineco.com","sentAt":"2015-08-14T22:25:48Z","receivedAt":"2015-08-14T22:25:48Z","isPatch":false,"sender":{"key":"sunshine@sunshineco.com","avatar":"https://avatars.githubusercontent.com/u/163641?v=4"},"body":"On Fri, Aug 14, 2015 at 6:22 PM, Junio C Hamano <gitster@pobox.com> wrote:\n> Eric Sunshine <sunshine@sunshineco.com> writes:\n>\n>> On Fri, Aug 14, 2015 at 5:02 PM, Junio C Hamano <gitster@pobox.com> wrote:\n>>> Eric Sunshine <sunshine@sunshineco.com> writes:\n>>>> Nevertheless, there's still the problem, due to 527ec39\n>>>> (generate-cmdlist: parse common group commands, 2015-05-21), that git\n>>>> doesn't build at all anymore when Perl is unavailable.\n>>>\n>>> I do not think that is anything new.  We always have assumed \"some\"\n>>> version of Perl available in order to run t/ scripts.\n>>\n>> True, but prior to 527ec39, without Perl available, git itself could\n>> at least be built and used (with some commands unavailable), even if\n>> it couldn't be fully tested. As of 527ec39, however, git won't even\n>> build because common-cmds.h can't be generated.\n>\n> I wouldn't bother digging in the history myself, but I am reasonably\n> sure that the current genereate-common-cmds is not the sole instance\n> that we relied on Perl to build (not test) in the past, and that is\n> another reason why I do not think this is anything new.\n\nHmm. In my tests by setting PERL_PATH to a bogus (non-existent)\ncommand, prior to 527ec39, git builds successfully, whereas, following\n527ec39, it does not build. But, perhaps I overlooked something...(?)\n"},{"id":"268251","messageId":"loom.20150818T130309-687@post.gmane.org","threadId":"40085","inReplyTo":"CAPig+cQkApWfZ6N159F-XFZk+nnzY-gAgLRfZXNitdd0CHpm2g@mail.gmail.com","subject":"Re: [bug] 2.5.0 build with NO_PERL is broken","fromName":"Renato Botelho","fromEmail":"garga@freebsd.org","sentAt":"2015-08-18T11:05:45Z","receivedAt":"2015-08-18T11:05:45Z","isPatch":false,"sender":{"key":"garga@freebsd.org","avatar":"https://gravatar.com/avatar/695c68fb2f0629998c430204a7212aec683a3f87ec5eeaae236fd2376e790bfc?d=mp&s=160"},"body":"Eric Sunshine <sunshine <at> sunshineco.com> writes:\n\n> \n> On Fri, Aug 14, 2015 at 6:22 PM, Junio C Hamano <gitster <at> pobox.com>\nwrote:\n> > Eric Sunshine <sunshine <at> sunshineco.com> writes:\n> >\n> >> On Fri, Aug 14, 2015 at 5:02 PM, Junio C Hamano <gitster <at>\npobox.com> wrote:\n> >>> Eric Sunshine <sunshine <at> sunshineco.com> writes:\n> >>>\n> >>> I do not think that is anything new.  We always have assumed \"some\"\n> >>> version of Perl available in order to run t/ scripts.\n> >>\n> >> True, but prior to 527ec39, without Perl available, git itself could\n> >> at least be built and used (with some commands unavailable), even if\n> >> it couldn't be fully tested. As of 527ec39, however, git won't even\n> >> build because common-cmds.h can't be generated.\n> >\n> > I wouldn't bother digging in the history myself, but I am reasonably\n> > sure that the current genereate-common-cmds is not the sole instance\n> > that we relied on Perl to build (not test) in the past, and that is\n> > another reason why I do not think this is anything new.\n> \n> Hmm. In my tests by setting PERL_PATH to a bogus (non-existent)\n> command, prior to 527ec39, git builds successfully, whereas, following\n> 527ec39, it does not build. But, perhaps I overlooked something...(?)\n\nIt builds but there will be at least 3 commands that won't work:\n\ngit-submodule\ngit-request-pull\ngit-am\n\nI'm considering to add perl dependency as mandatory on FreeBSD ports tree,\nand maybe this NO_PERL option doesn't make more sense nowadays...\n"},{"id":"268258","messageId":"CAPig+cTvNQ74G4T3McNd2JUXLvxe-yX+ApFrevXDi4GXsFQ_3g@mail.gmail.com","threadId":"40085","inReplyTo":"loom.20150818T130309-687@post.gmane.org","subject":"Re: [bug] 2.5.0 build with NO_PERL is broken","fromName":"Eric Sunshine","fromEmail":"sunshine@sunshineco.com","sentAt":"2015-08-18T16:42:47Z","receivedAt":"2015-08-18T16:42:47Z","isPatch":false,"sender":{"key":"sunshine@sunshineco.com","avatar":"https://avatars.githubusercontent.com/u/163641?v=4"},"body":"On Tue, Aug 18, 2015 at 7:05 AM, Renato Botelho <garga@freebsd.org> wrote:\n> Eric Sunshine <sunshine <at> sunshineco.com> writes:\n>> On Fri, Aug 14, 2015 at 6:22 PM, Junio C Hamano <gitster <at> pobox.com>\n> wrote:\n>> > Eric Sunshine <sunshine <at> sunshineco.com> writes:\n>> >> On Fri, Aug 14, 2015 at 5:02 PM, Junio C Hamano <gitster <at>\n> pobox.com> wrote:\n>> >>> Eric Sunshine <sunshine <at> sunshineco.com> writes:\n>> >>> I do not think that is anything new.  We always have assumed \"some\"\n>> >>> version of Perl available in order to run t/ scripts.\n>> >>\n>> >> True, but prior to 527ec39, without Perl available, git itself could\n>> >> at least be built and used (with some commands unavailable), even if\n>> >> it couldn't be fully tested. As of 527ec39, however, git won't even\n>> >> build because common-cmds.h can't be generated.\n>> >\n>> > I wouldn't bother digging in the history myself, but I am reasonably\n>> > sure that the current genereate-common-cmds is not the sole instance\n>> > that we relied on Perl to build (not test) in the past, and that is\n>> > another reason why I do not think this is anything new.\n>>\n>> Hmm. In my tests by setting PERL_PATH to a bogus (non-existent)\n>> command, prior to 527ec39, git builds successfully, whereas, following\n>> 527ec39, it does not build. But, perhaps I overlooked something...(?)\n>\n> It builds but there will be at least 3 commands that won't work:\n\nHmm, I was under the impression from your initial mail[1] that Git\nwouldn't even build without Perl available:\n\n    /bin/sh: /usr/bin/perl: not found\n    Makefile:1701: recipe for target 'common-cmds.h' failed\n    gmake[2]: *** [common-cmds.h] Error 127\n\nDoesn't this failure prevent generation of the 'git' executable altogether?\n\n> git-submodule\n> git-request-pull\n> git-am\n\nAlso...\n\ngit-add--interactive\ngit-archimport\ngit-cvsexportcommit\ngit-cvsimport\ngit-cvsserver\ngit-difftool\ngit-instaweb\ngit-relink\ngit-send-email\ngit-svn\n\nA C rewrite of git-am has recently graduated to 'master'.\n\n> I'm considering to add perl dependency as mandatory on FreeBSD ports tree,\n> and maybe this NO_PERL option doesn't make more sense nowadays...\n\nThat might make sense. Although some of the above commands may not be\nused widely, others, such as git-send-email, probably are used\nregularly.\n\n[1]: http://thread.gmane.org/gmane.comp.version-control.git/275905\n"},{"id":"268260","messageId":"loom.20150818T200305-434@post.gmane.org","threadId":"40085","inReplyTo":"CAPig+cTvNQ74G4T3McNd2JUXLvxe-yX+ApFrevXDi4GXsFQ_3g@mail.gmail.com","subject":"Re: [bug] 2.5.0 build with NO_PERL is broken","fromName":"Renato Botelho","fromEmail":"garga@freebsd.org","sentAt":"2015-08-18T18:09:12Z","receivedAt":"2015-08-18T18:09:12Z","isPatch":false,"sender":{"key":"garga@freebsd.org","avatar":"https://gravatar.com/avatar/695c68fb2f0629998c430204a7212aec683a3f87ec5eeaae236fd2376e790bfc?d=mp&s=160"},"body":"> Eric Sunshine <sunshine <at> sunshineco.com> writes:\n> \n> Hmm, I was under the impression from your initial mail[1] that Git\n> wouldn't even build without Perl available:\n> \n>     /bin/sh: /usr/bin/perl: not found\n>     Makefile:1701: recipe for target 'common-cmds.h' failed\n>     gmake[2]: *** [common-cmds.h] Error 127\n\nThis assumption is correct, current 2.5.0 doesn't build without perl.\n\n> Doesn't this failure prevent generation of the 'git' executable altogether?\n> \n> > git-submodule\n> > git-request-pull\n> > git-am\n> \n> Also...\n> \n> git-add--interactive\n> git-archimport\n> git-cvsexportcommit\n> git-cvsimport\n> git-cvsserver\n> git-difftool\n> git-instaweb\n> git-relink\n> git-send-email\n> git-svn\n\nWhen I build with NO_PERL=1, above files are a simple shell script saying\ngit was built without it:\n\n#!/bin/sh\n\necho >&2 \"fatal: git was built without support for `basename $0` (NO_PERL=1).\"\nexit 128\n\nBut the same doesn't happen with submodule, request-pull and am.\n\n> A C rewrite of git-am has recently graduated to 'master'.\n\ncool!\n\n> That might make sense. Although some of the above commands may not be\n> used widely, others, such as git-send-email, probably are used\n> regularly.\n\nThere is a port called git-lite with few dependencies, sometimes people\ninstall it on servers that only need to clone and update local copies of\nrepos. It's interesting to keep it working as expected with NO_PERL, since\nit offers this option.\n"}]}