{"thread":{"id":"8976","subject":"test suite fails if sh != bash || tar != GNU tar","startedAt":"2007-07-11T02:39:29Z","lastAt":"2007-07-11T21:57:00Z","messageCount":10,"participants":["David Frech","Johannes Schindelin","Linus Torvalds","Junio C Hamano"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"47001","messageId":"7154c5c60707101939sc921b07wef1d14f85086947d@mail.gmail.com","threadId":"8976","inReplyTo":null,"subject":"test suite fails if sh != bash || tar != GNU tar","fromName":"David Frech","fromEmail":"nimblemachines@gmail.com","sentAt":"2007-07-11T02:39:29Z","receivedAt":"2007-07-11T02:39:29Z","isPatch":false,"sender":{"key":"nimblemachines@gmail.com","avatar":null},"body":"I've built git on several BSD (FreeBSD and DragonFlyBSD) systems, and\nwhile it builds fine on both platforms, the test suite *fails* on\nboth.\n\nI tracked most of the problems down to dependencies on bash and GNU\ntar. I'm not sure yet what the specific differences are between BSD's\n/bin/sh and bash (the two are separate in the BSD world), but it's\nobvious what the problem is with tar: the git-archive test parses\ndatestamps printed out by tar, and the two tar's print datestamps\ndifferently.\n\nIf I  set SHELL_PATH=/usr/local/bin/bash and TAR=gtar (the name of GNU\ntar on BSD systems) I am able to get thru all the tests on FreeBSD\n(this is with a checkout of the v1.5.2.3 tag).\n\nOn DragonFly there is another problem that I have not yet tracked\ndown. git-mailinfo fails on 0004 - it fails to extract *anything* from\nthe message.\n\nAnyone running Linux or Mac OSX won't see these problems, because on\nboth platforms /bin/sh == bash and tar == GNU tar.\n\nCheers,\n\n- David\n-- \nIf I have not seen farther, it is because I have stood in the\nfootsteps of giants.\n"},{"id":"47002","messageId":"Pine.LNX.4.64.0707110347580.4047@racer.site","threadId":"8976","inReplyTo":"7154c5c60707101939sc921b07wef1d14f85086947d@mail.gmail.com","subject":"Re: test suite fails if sh != bash || tar != GNU tar","fromName":"Johannes Schindelin","fromEmail":"johannes.schindelin@gmx.de","sentAt":"2007-07-11T02:49:35Z","receivedAt":"2007-07-11T02:49:35Z","isPatch":false,"sender":{"key":"johannes.schindelin@gmx.de","avatar":"https://avatars.githubusercontent.com/u/127790?v=4"},"body":"Hi,\n\nOn Tue, 10 Jul 2007, David Frech wrote:\n\n> Anyone running Linux or Mac OSX won't see these problems, because on \n> both platforms /bin/sh == bash and tar == GNU tar.\n\nActually, Ubuntu seems to ship with dash as the default shell, and we had \nquite some fallout from that change.\n\nAs for GNU tar, I think that this is easily fixable if you have access to \nnon-GNU tar.  We do not use tar _ever_, except for the test suite, to \nverify that things are working as expected.\n\nIf you could put in some time to make the tests work, that would be \nawesome.\n\nCiao,\nDscho\n"},{"id":"47003","messageId":"alpine.LFD.0.999.0707102020020.3412@woody.linux-foundation.org","threadId":"8976","inReplyTo":"Pine.LNX.4.64.0707110347580.4047@racer.site","subject":"Re: test suite fails if sh != bash || tar != GNU tar","fromName":"Linus Torvalds","fromEmail":"torvalds@linux-foundation.org","sentAt":"2007-07-11T03:22:24Z","receivedAt":"2007-07-11T03:22:24Z","isPatch":false,"sender":{"key":"torvalds@linux-foundation.org","avatar":"https://avatars.githubusercontent.com/u/1024025?v=4"},"body":"\n\nOn Wed, 11 Jul 2007, Johannes Schindelin wrote:\n> \n> Actually, Ubuntu seems to ship with dash as the default shell, and we had \n> quite some fallout from that change.\n\nWell, part of it was really dash bugs, no? The whole \"'shift' on an empty \nargument list\" seemed to be a total and outright dash bug, and wasn't \nabout relying on bash \"features\".\n\nBut we've had tons of issues with different spacing for \"wc -l\" etc, so \nyeah, the silly details matter even when there aren't outright bugs in \ntools.\n\n> As for GNU tar, I think that this is easily fixable if you have access to \n> non-GNU tar.  We do not use tar _ever_, except for the test suite, to \n> verify that things are working as expected.\n> \n> If you could put in some time to make the tests work, that would be \n> awesome.\n\nYeah, it would be a good thing to get rid of any bashisms, but to _keep_ \nit working somebody would then need to test every once in a while that it \nstill works ;)\n\n\t\tLinus\n"},{"id":"47005","messageId":"7154c5c60707102108g59280301pa5c3c0dc3911753d@mail.gmail.com","threadId":"8976","inReplyTo":"alpine.LFD.0.999.0707102020020.3412@woody.linux-foundation.org","subject":"Re: test suite fails if sh != bash || tar != GNU tar","fromName":"David Frech","fromEmail":"david@nimblemachines.com","sentAt":"2007-07-11T04:08:30Z","receivedAt":"2007-07-11T04:08:30Z","isPatch":false,"sender":{"key":"david@nimblemachines.com","avatar":null},"body":"On 7/10/07, Linus Torvalds <torvalds@linux-foundation.org> wrote:\n> On Wed, 11 Jul 2007, Johannes Schindelin wrote:\n> > As for GNU tar, I think that this is easily fixable if you have access to\n> > non-GNU tar.  We do not use tar _ever_, except for the test suite, to\n> > verify that things are working as expected.\n> >\n> > If you could put in some time to make the tests work, that would be\n> > awesome.\n>\n> Yeah, it would be a good thing to get rid of any bashisms, but to _keep_\n> it working somebody would then need to test every once in a while that it\n> still works ;)\n\nI'll see what I can do. As I'm planning on running git on both FreeBSD\nand DragonFly for the forseeable future, and plan to track git's\nevolution (running stable releases if not more bleeding-edge code), I\ncan run the test suite every time I build a new git.\n\nCheers,\n\n- David\n\n>\n>                 Linus\n>\n\n-- \nIf I have not seen farther, it is because I have stood in the\nfootsteps of giants.\n"},{"id":"47023","messageId":"Pine.LNX.4.64.0707111209160.4516@racer.site","threadId":"8976","inReplyTo":"7154c5c60707102108g59280301pa5c3c0dc3911753d@mail.gmail.com","subject":"Re: test suite fails if sh != bash || tar != GNU tar","fromName":"Johannes Schindelin","fromEmail":"johannes.schindelin@gmx.de","sentAt":"2007-07-11T11:09:40Z","receivedAt":"2007-07-11T11:09:40Z","isPatch":false,"sender":{"key":"johannes.schindelin@gmx.de","avatar":"https://avatars.githubusercontent.com/u/127790?v=4"},"body":"Hi,\n\nOn Tue, 10 Jul 2007, David Frech wrote:\n\n> On 7/10/07, Linus Torvalds <torvalds@linux-foundation.org> wrote:\n> > On Wed, 11 Jul 2007, Johannes Schindelin wrote:\n> > > As for GNU tar, I think that this is easily fixable if you have \n> > > access to non-GNU tar.  We do not use tar _ever_, except for the \n> > > test suite, to verify that things are working as expected.\n> > >\n> > > If you could put in some time to make the tests work, that would be \n> > > awesome.\n> > \n> > Yeah, it would be a good thing to get rid of any bashisms, but to \n> > _keep_ it working somebody would then need to test every once in a \n> > while that it still works ;)\n> \n> I'll see what I can do. As I'm planning on running git on both FreeBSD \n> and DragonFly for the forseeable future, and plan to track git's \n> evolution (running stable releases if not more bleeding-edge code), I \n> can run the test suite every time I build a new git.\n\nIf you want to, I can help you setting up a nightly cron job to fetch what \nis the current \"next\", run the tests, and report failures by email.\n\nCiao,\nDscho\n"},{"id":"47079","messageId":"7v7ip64opa.fsf@assigned-by-dhcp.cox.net","threadId":"8976","inReplyTo":"Pine.LNX.4.64.0707111209160.4516@racer.site","subject":"Re: test suite fails if sh != bash || tar != GNU tar","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2007-07-11T21:26:09Z","receivedAt":"2007-07-11T21:26:09Z","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>> I'll see what I can do. As I'm planning on running git on both FreeBSD \n>> and DragonFly for the forseeable future, and plan to track git's \n>> evolution (running stable releases if not more bleeding-edge code), I \n>> can run the test suite every time I build a new git.\n>\n> If you want to, I can help you setting up a nightly cron job to fetch what \n> is the current \"next\", run the tests, and report failures by email.\n\nWow.  Nightly builds of 'next' on various platforms would\nactually be quite useful, especially from non Linux and non bash\nworld.\n"},{"id":"47084","messageId":"7154c5c60707111433r64ae5109o314778655cbc017e@mail.gmail.com","threadId":"8976","inReplyTo":"7v7ip64opa.fsf@assigned-by-dhcp.cox.net","subject":"Re: test suite fails if sh != bash || tar != GNU tar","fromName":"David Frech","fromEmail":"david@nimblemachines.com","sentAt":"2007-07-11T21:33:03Z","receivedAt":"2007-07-11T21:33:03Z","isPatch":false,"sender":{"key":"david@nimblemachines.com","avatar":null},"body":"On 7/11/07, Junio C Hamano <gitster@pobox.com> wrote:\n> Johannes Schindelin <Johannes.Schindelin@gmx.de> writes:\n>\n> >> I'll see what I can do. As I'm planning on running git on both FreeBSD\n> >> and DragonFly for the forseeable future, and plan to track git's\n> >> evolution (running stable releases if not more bleeding-edge code), I\n> >> can run the test suite every time I build a new git.\n> >\n> > If you want to, I can help you setting up a nightly cron job to fetch what\n> > is the current \"next\", run the tests, and report failures by email.\n>\n> Wow.  Nightly builds of 'next' on various platforms would\n> actually be quite useful, especially from non Linux and non bash\n> world.\n\nI found and fixed the shell issues. Once I've got a \"fix\" for tar I'll\nsend a patch. I think the BSD sh has a bug wrt to negating the return\ncode from a pipeline.\n\nI'd be happy to do a nightly build on my DragonFly box, and that\nshould catch anything that also doesn't work for FreeBSD. The failure\nmodes were exactly the same - though the DFly box has an additional\niconv-related problem (with git-mailinfo) that I still haven't tracked\ndown...\n\nIs there a canned script to get me started?\n\nOne issue is that my server is on dynamic IP, and my lame ISP (the\nlocal telco) doesn't give me a proper SMTP relay - they want us to\nsend our mail via HTTP to MSN! Completely lame.\n\nSo sending mail can be an issue, if the receiver blocks mail from dynamic IPs.\n\n- David\n\n-- \nIf I have not seen farther, it is because I have stood in the\nfootsteps of giants.\n"},{"id":"47085","messageId":"7v7ip639cb.fsf@assigned-by-dhcp.cox.net","threadId":"8976","inReplyTo":"7154c5c60707111433r64ae5109o314778655cbc017e@mail.gmail.com","subject":"Re: test suite fails if sh != bash || tar != GNU tar","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2007-07-11T21:43:16Z","receivedAt":"2007-07-11T21:43:16Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"\"David Frech\" <david@nimblemachines.com> writes:\n\n> One issue is that my server is on dynamic IP, and my lame ISP (the\n> local telco) doesn't give me a proper SMTP relay - they want us to\n> send our mail via HTTP to MSN! Completely lame.\n>\n> So sending mail can be an issue, if the receiver blocks mail from dynamic IPs.\n\nI think I heard gmail has incoming SMTP for its subscribers, and\nI would not be surprised if other free e-mail providers have the\nsame.  Perhaps you can use one of them for this purpose?\n"},{"id":"47088","messageId":"Pine.LNX.4.64.0707112240120.4516@racer.site","threadId":"8976","inReplyTo":"7154c5c60707111433r64ae5109o314778655cbc017e@mail.gmail.com","subject":"Re: test suite fails if sh != bash || tar != GNU tar","fromName":"Johannes Schindelin","fromEmail":"johannes.schindelin@gmx.de","sentAt":"2007-07-11T21:56:23Z","receivedAt":"2007-07-11T21:56:23Z","isPatch":false,"sender":{"key":"johannes.schindelin@gmx.de","avatar":"https://avatars.githubusercontent.com/u/127790?v=4"},"body":"Hi,\n\nOn Wed, 11 Jul 2007, David Frech wrote:\n\n> On 7/11/07, Junio C Hamano <gitster@pobox.com> wrote:\n> > Johannes Schindelin <Johannes.Schindelin@gmx.de> writes:\n> > \n> > >> I'll see what I can do. As I'm planning on running git on both \n> > >> FreeBSD and DragonFly for the forseeable future, and plan to track \n> > >> git's evolution (running stable releases if not more bleeding-edge \n> > >> code), I can run the test suite every time I build a new git.\n> > >\n> > > If you want to, I can help you setting up a nightly cron job to \n> > > fetch what is the current \"next\", run the tests, and report failures \n> > > by email.\n> > \n> > Wow.  Nightly builds of 'next' on various platforms would actually be \n> > quite useful, especially from non Linux and non bash world.\n> \n> I found and fixed the shell issues. Once I've got a \"fix\" for tar I'll \n> send a patch. I think the BSD sh has a bug wrt to negating the return \n> code from a pipeline.\n\nCool!  Please be sure to give Documentation/SubmittingPatches a quick \nglance before sending, to avoid hassles for the reviewers.\n\n> I'd be happy to do a nightly build on my DragonFly box, and that should \n> catch anything that also doesn't work for FreeBSD. The failure modes \n> were exactly the same - though the DFly box has an additional \n> iconv-related problem (with git-mailinfo) that I still haven't tracked \n> down...\n> \n> Is there a canned script to get me started?\n\nWell, I would have started from scratch, as in\n\n5 0 * * *       (cd /xx/git && sh test-it.sh)\n\nAnd in test-it.sh there could be something like\n\n\t(git pull origin next && make test > test-it.out 2>&1 ) || \n\tsome-script-that-sends-the-email.sh\n\n> One issue is that my server is on dynamic IP, and my lame ISP (the local \n> telco) doesn't give me a proper SMTP relay - they want us to send our \n> mail via HTTP to MSN! Completely lame.\n\nIt is lame.\n\n> So sending mail can be an issue, if the receiver blocks mail from \n> dynamic IPs.\n\nBut maybe you can just upload the status somewhere public?  Or ssh into a \nmachine which allows you to send an email, with public key authentication?\n\nCiao,\nDscho\n"},{"id":"47089","messageId":"7154c5c60707111457o424cd1a3g192cecc2e00936a8@mail.gmail.com","threadId":"8976","inReplyTo":"7v7ip639cb.fsf@assigned-by-dhcp.cox.net","subject":"Re: test suite fails if sh != bash || tar != GNU tar","fromName":"David Frech","fromEmail":"david@nimblemachines.com","sentAt":"2007-07-11T21:57:00Z","receivedAt":"2007-07-11T21:57:00Z","isPatch":false,"sender":{"key":"david@nimblemachines.com","avatar":null},"body":"On 7/11/07, Junio C Hamano <gitster@pobox.com> wrote:\n> \"David Frech\" <david@nimblemachines.com> writes:\n>\n> > One issue is that my server is on dynamic IP, and my lame ISP (the\n> > local telco) doesn't give me a proper SMTP relay - they want us to\n> > send our mail via HTTP to MSN! Completely lame.\n> >\n> > So sending mail can be an issue, if the receiver blocks mail from dynamic IPs.\n>\n> I think I heard gmail has incoming SMTP for its subscribers, and\n> I would not be surprised if other free e-mail providers have the\n> same.  Perhaps you can use one of them for this purpose?\n\nYes, I have managed to relay thru gmail. It was a bit hard to set up -\nbuild Postfix with SASL, sniff the traffic to figure out who signed\ngmail's SSL cert (Thawte), download CA cert - but I know how to do it.\n;-)\n\nThe downside is, the gmail relay rewrites the headers in annoying\nways, so I'm not using it in general. If necessary I could relay just\nthe \"build breakage\" thru them.\n\nActually my incoming nimblemachines.com mail gets sent from my dynamic\nIP thru normal (non-AUTH, non-SSL) SMTP to gmail, and they accept it\nfine. So if I can send the build results to a gmail account, there are\nno problems. Hmm - and that account could forward to the git list...\n\n- David\n\n-- \nIf I have not seen farther, it is because I have stood in the\nfootsteps of giants.\n"}]}