From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 129864 invoked by alias); 2 Mar 2017 17:28:18 -0000 Mailing-List: contact cygwin-help@cygwin.com; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner@cygwin.com Mail-Followup-To: cygwin@cygwin.com Received: (qmail 129852 invoked by uid 89); 2 Mar 2017 17:28:18 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=0.4 required=5.0 tests=AWL,BAYES_20,KAM_LAZY_DOMAIN_SECURITY,RCVD_IN_DNSWL_LOW autolearn=no version=3.3.2 spammy=H*R:D*ca, ranging, crons, ASCII X-HELO: smtp-out-so.shaw.ca Received: from smtp-out-so.shaw.ca (HELO smtp-out-so.shaw.ca) (64.59.136.138) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Thu, 02 Mar 2017 17:28:15 +0000 Received: from [192.168.1.100] ([174.0.238.184]) by shaw.ca with SMTP id jUWScx2Zmsa1kjUWTcbc1G; Thu, 02 Mar 2017 10:28:14 -0700 X-Authority-Analysis: v=2.2 cv=W+NIbVek c=1 sm=1 tr=0 a=WqCeCkldcEjBO3QZneQsCg==:117 a=WqCeCkldcEjBO3QZneQsCg==:17 a=eIhxMilvRf8A:10 a=r77TgQKjGQsHNAKrUKIA:9 a=0tyBXaeHwgPmBxYG9sUA:9 a=QEXdDO2ut3YA:10 a=QDJd8P9Fd7bAx3PITGoA:9 a=Ld372NDzu18A:10 Subject: Re: [ANNOUNCEMENT] Updated: dash-0.5.9.1-1 References: <485AF0C5-7E1B-49AA-BE3E-C3717DA3268B@solidrocksystems.com> <58b811b2.261d9d0a.7c759.299d@mx.google.com> To: cygwin@cygwin.com From: Brian Inglis Reply-To: Brian.Inglis@SystematicSw.ab.ca Message-ID: <8c9fefe1-a377-9188-62ac-ef960b639b75@SystematicSw.ab.ca> Date: Thu, 02 Mar 2017 17:28:00 -0000 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.7.1 MIME-Version: 1.0 In-Reply-To: Content-Type: multipart/mixed; boundary="------------44DD7E19D5DC8D4D1A538F38" X-CMAE-Envelope: MS4wfCsux6qpLHd90WbbOiCZX47oYJ2y4ordM7eHoTdbhRkDRXwoDImBitE2pxo2Mr0HqzeKLF9ae1qrSEFe9bv+TXci+NqsyzgxWqEwKy8Hr66HSOL/Meuv jUC7jype0xzoS7+SK992IWlPoVMTlio/FpTe1O2ohsheDda/QiJej80TyfGGVlmjMcplp2opx/mONg== X-IsSubscribed: yes X-SW-Source: 2017-03/txt/msg00019.txt.bz2 --------------44DD7E19D5DC8D4D1A538F38 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Content-length: 5919 On 2017-03-02 07:29, Eric Blake wrote: > On 03/02/2017 07:36 AM, Marco Atzeri wrote: >> On 02/03/2017 13:36, Steven Penny wrote: >>> On Wed, 1 Mar 2017 23:31:24, Vince Rice wrote: >>>> Then you haven't been paying attention. And I didn't even >>>> attempt to make an argument one way or the other, except to say >>>> stop arguing. The horse is dead. >>> >>> Perhaps you could link to a constructive, concrete idea against >>> the change that someone has made besides Eric. Even better, you >>> could post your own constructive idea; surely you havent emailed >>> twice now with nothing constructive to add? >> >> He was constructive, but you seems biased in understanding the answer. > > To reiterate my answer in different terms: > > If you can convince Fedora to switch /bin/sh to dash, then I will > immediately follow in Cygwin. Until then, I'm worried that there are > enough scripts in the wild that use bashisms and will therefore break if > /bin/sh is not bash, even though that number has reduced somewhat since > Debian made their switch. Trying to make Cygwin the guinea pig, instead > of Fedora, is going about it backwards (you WANT the change to be done > in a place where there is plenty of manpower to deal with the fallout, > and Fedora has more manpower than Cygwin). I can see distros like *BSD or Debian making decisions like that or systemd, but not vendors like RH or Canonical: too little upside with too much downside for paying customers. > I'm still toying with the idea of doing a test release of both bash > and dash that flips /bin/sh between them; but I'm still stuck on the > problem that a user MUST upgrade (or downgrade) both packages in > tandem, or else risk being left without a /bin/sh at all. Help would > be appreciated in figuring out the problem (telling me that "dash is > faster than bash" is not help, nor is telling me that "portable shell > scripts don't care if /bin/sh is bash or dash" - I already know those > points. What I don't know is how many non-portable scripts are out > there, so how much breakage would I be causing by forcing those > non-portable scripts to deal with their non-portability, and how to > minimize the even-worse breakage of an upgrade scenario that leaves > no /bin/sh at all). summary of checkbashisms -f run on 140 POSIX shell scripts as identified by file in my Cygwin 64 /bin/ with 784 packages (about 20% of cygwin-pkg-maint, 8% of setup.ini) installed, 70 possible issues (some from wrapped scripts because of -f): 14 /bin/cronbug 7 /bin/procmail-config 5 /bin/ca-legacy 4 /bin/pcdovtoppm 3 /bin/ppmshadow 3 /bin/ppmfade 3 /bin/fig2ps2tex 3 /bin/bzgrep 2 /bin/ppmrainbow 2 /bin/pnmquant 2 /bin/pnmflip 2 /bin/install-catalog 1 /bin/zgrep 1 /bin/zdiff 1 /bin/xzdiff 1 /bin/updatedb 1 /bin/texi2dvi 1 /bin/ppmquant 1 /bin/pnmquantall 1 /bin/pic2graph 1 /bin/pgmcrater 1 /bin/pdfroff 1 /bin/messagebus-config 1 /bin/gzexe 1 /bin/grap2graph 1 /bin/gettextize 1 /bin/gettext.sh 1 /bin/eqn2graph 1 /bin/clisp-link 1 /bin/ccmakedep 1 /bin/autopoint 1 /bin/autoconf-2.69 with diagnostics (some from wrapped scripts because of -f): 16 echo -e 12 '((' should be '$((' 7 alternative test command ([[ foo ]] should be [ foo ]) 7 $RANDOM 6 unsafe echo with backslash 5 'function' is useless 4 type 4 bash arrays, ${name[0|*|@]} 3 ${parm/?/pat[/str]} 3 $_ 1 should be '.', not 'source' 1 $BASH_SOMETHING 1 $(OS|MACH)TYPE So about 20% of packages have scripts installed, with potential issues ranging from 5-12*70 == 350-840. Some potential fixes are obvious from my sample (attached, hopefully as inline text which will pass thru the filters): - change these scripts to shebang #!/bin/bash - replace echo -e with printf in most cases - replace [[ ... ]] with [ ... ] or case if patterns are used - strip leading function - use mktemp to eliminate $RANDOM but most require judgement in application. Generated scripts like libtool{,ize} may require complex patches submitted upstream to fix what may be sh dependent code generation or execution; not included in the attached sample, as file categorized these as: /bin/libtool: POSIX shell script, ASCII text executable, with very long lines, with escape sequences /bin/libtoolize: POSIX shell script, ASCII text executable, with very long lines, with escape sequences > Hmm, maybe I could create a NEW package, 'sh', which packages /bin/sh as > however I want it (probably bash to begin with, to at least give people > time to upgrade and pick up the packaging change before also having to > deal with any shell changing). New releases of both bash and dash would > depend on the new package, to guarantee that if you upgrade one shell, > you pick up the dependency. And by not having /bin/sh in either the > bash or dash package, then we would at least avoid the current situation > where upgrading/downgrading in the wrong order could leave a user > without /bin/sh at all. You might still be in a situation where the > wrong version of the 'sh' package leaves you with an outdated version of > a shell, or the wrong flavor in relation to the current distro choice, > but that's less of a problem than having no /bin/sh at all. In fact, > having a separate 'sh' package may make it even easier to pick which > shell flavor you prefer (if I always keep the 'curr' and 'test' versions > pointed to different shells, then you make the choice of which sh flavor > you want by which version you install). Smart idea: just a postinstall dash script dependent on the prereq shell, ln curr bash->sh, test dash->sh, and respective man 1 page. -- Take care. Thanks, Brian Inglis, Calgary, Alberta, Canada --------------44DD7E19D5DC8D4D1A538F38 Content-Type: text/plain; charset=UTF-8; name="root-bin-shell-posix-bashisms.txt" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="root-bin-shell-posix-bashisms.txt" Content-length: 11090 cG9zc2libGUgYmFzaGlzbSBpbiAvYmluL2F1dG9jb25mLTIuNjkgbGluZSA1 NSAoJEJBU0hfU09NRVRISU5HKToKaWYgdGVzdCAteiAiJEJBU0hfVkVSU0lP TiRaU0hfVkVSU0lPTiIgXAogICAgJiYgKHRlc3QgIlhgcHJpbnQgLXIgLS0g JGFzX2VjaG9gIiA9ICJYJGFzX2VjaG8iKSAyPi9kZXYvbnVsbDsgdGhlbgpl cnJvcjogL2Jpbi9hdXRvY29uZi0yLjY5OiBVbnRlcm1pbmF0ZWQgcXVvdGVk IHN0cmluZyBmb3VuZCwgRU9GIHJlYWNoZWQuIFdhbnRlZDogPCc+LCBvcGVu ZWQgaW4gbGluZSA0MjkKcG9zc2libGUgYmFzaGlzbSBpbiAvYmluL2F1dG9w b2ludCBsaW5lIDU3ICgkUkFORE9NKToKICAgIHRtcD0kVE1QRElSL2d0JCQt JFJBTkRPTQpwb3NzaWJsZSBiYXNoaXNtIGluIC9iaW4vYnpncmVwIGxpbmUg NjYgKCR7cGFybS8/L3BhdFsvc3RyXX0pOgogICAgaj0ke2kvL1xcL1xcXFx9 CnBvc3NpYmxlIGJhc2hpc20gaW4gL2Jpbi9iemdyZXAgbGluZSA2NyAoJHtw YXJtLz8vcGF0Wy9zdHJdfSk6CiAgICBqPSR7ai8vfC9cXHx9CnBvc3NpYmxl IGJhc2hpc20gaW4gL2Jpbi9iemdyZXAgbGluZSA2OCAoJHtwYXJtLz8vcGF0 Wy9zdHJdfSk6CiAgICBqPSR7ai8vJi9cXCZ9CnBvc3NpYmxlIGJhc2hpc20g aW4gL2Jpbi9jYS1sZWdhY3kgbGluZSA2MSAoYWx0ZXJuYXRpdmUgdGVzdCBj b21tYW5kIChbWyBmb28gXV0gc2hvdWxkIGJlIFsgZm9vIF0pKToKaWYgW1sg JCMgLWVxIDAgXV07IHRoZW4KcG9zc2libGUgYmFzaGlzbSBpbiAvYmluL2Nh LWxlZ2FjeSBsaW5lIDY3IChhbHRlcm5hdGl2ZSB0ZXN0IGNvbW1hbmQgKFtb IGZvbyBdXSBzaG91bGQgYmUgWyBmb28gXSkpOgppZiBbWyAiJDEiID0gImlu c3RhbGwiIF1dOyB0aGVuCnBvc3NpYmxlIGJhc2hpc20gaW4gL2Jpbi9jYS1s ZWdhY3kgbGluZSA3MiAoYWx0ZXJuYXRpdmUgdGVzdCBjb21tYW5kIChbWyBm b28gXV0gc2hvdWxkIGJlIFsgZm9vIF0pKToKaWYgW1sgIiQxIiA9ICJkZWZh dWx0IiBdXTsgdGhlbgpwb3NzaWJsZSBiYXNoaXNtIGluIC9iaW4vY2EtbGVn YWN5IGxpbmUgNzYgKGFsdGVybmF0aXZlIHRlc3QgY29tbWFuZCAoW1sgZm9v IF1dIHNob3VsZCBiZSBbIGZvbyBdKSk6CmlmIFtbICIkMSIgPSAiZGlzYWJs ZSIgXV07IHRoZW4KcG9zc2libGUgYmFzaGlzbSBpbiAvYmluL2NhLWxlZ2Fj eSBsaW5lIDgxIChhbHRlcm5hdGl2ZSB0ZXN0IGNvbW1hbmQgKFtbIGZvbyBd XSBzaG91bGQgYmUgWyBmb28gXSkpOgppZiBbWyAiJDEiID0gImNoZWNrIiBd XTsgdGhlbgpwb3NzaWJsZSBiYXNoaXNtIGluIC9iaW4vY2NtYWtlZGVwIGxp bmUgNDQgKHVuc2FmZSBlY2hvIHdpdGggYmFja3NsYXNoKToKZWNobyAiIFxj IiA+ICRDUFBDTUQKcG9zc2libGUgYmFzaGlzbSBpbiAvYmluL2NsaXNwLWxp bmsgbGluZSAxMzMgKCRSQU5ET00pOgogICAgdG1wPSRUTVBESVIvZ3QkJC0k UkFORE9NCnBvc3NpYmxlIGJhc2hpc20gaW4gL2Jpbi9jcm9uYnVnIGxpbmUg MjAgKGVjaG8gLWUpOgogICAgICBlY2hvIC1lICJRdWl0dGluZy5cbiIKcG9z c2libGUgYmFzaGlzbSBpbiAvYmluL2Nyb25idWcgbGluZSA0NiAoZWNobyAt ZSk6CmVjaG8gLWUgIlxuVGhlIHJlcG9ydCBpcyB3cml0dGVuIHRvIHRoZSBm aWxlIC4vY3JvbmJ1Zy50eHQiCnBvc3NpYmxlIGJhc2hpc20gaW4gL2Jpbi9j cm9uYnVnIGxpbmUgNTAgKGVjaG8gLWUpOgplY2hvIC1lICJcbkN1cnJlbnQg dmVyc2lvbiIKcG9zc2libGUgYmFzaGlzbSBpbiAvYmluL2Nyb25idWcgbGlu ZSA1MyAoZWNobyAtZSk6CmVjaG8gLWUgIlxuUnVubmluZyBjcm9uczoiCnBv c3NpYmxlIGJhc2hpc20gaW4gL2Jpbi9jcm9uYnVnIGxpbmUgNTYgKGVjaG8g LWUpOgplY2hvIC1lICJcblNlbmRtYWlsOiIKcG9zc2libGUgYmFzaGlzbSBp biAvYmluL2Nyb25idWcgbGluZSA1OSAoZWNobyAtZSk6CmVjaG8gLWUgIlxu Q3JvbnRhYnM6Igpwb3NzaWJsZSBiYXNoaXNtIGluIC9iaW4vY3JvbmJ1ZyBs aW5lIDY1IChlY2hvIC1lKToKZWNobyAtZSAiXG5jcm9uLmxvZzoiCnBvc3Np YmxlIGJhc2hpc20gaW4gL2Jpbi9jcm9uYnVnIGxpbmUgNjggKGVjaG8gLWUp OgplY2hvIC1lICJcbmNyb24ucGlkOiIKcG9zc2libGUgYmFzaGlzbSBpbiAv YmluL2Nyb25idWcgbGluZSA3MSAoZWNobyAtZSk6CmVjaG8gLWUgIlxuQ3Jv bnRhYjoiCnBvc3NpYmxlIGJhc2hpc20gaW4gL2Jpbi9jcm9uYnVnIGxpbmUg NzUgKGVjaG8gLWUpOgogIGVjaG8gLWUgIlxuU3lzbG9nIHJ1bm5pbmciCnBv c3NpYmxlIGJhc2hpc20gaW4gL2Jpbi9jcm9uYnVnIGxpbmUgNzcgKGVjaG8g LWUpOgogIGVjaG8gLWUgIlxuV2luZG93cyBBcHBsaWNhdGlvbiBFdmVudHMg bG9nOiIKcG9zc2libGUgYmFzaGlzbSBpbiAvYmluL2Nyb25idWcgbGluZSA4 MSAoZWNobyAtZSk6CmVjaG8gLWUgIlxuQ3lnY2hlY2s6Igpwb3NzaWJsZSBi YXNoaXNtIGluIC9iaW4vY3JvbmJ1ZyBsaW5lIDg3IChlY2hvIC1lKToKCWVj aG8gLWUgIlxuV0FSTklORzogVGhlIFdpbmRvd3MgYXBwbGljYXRpb24gbG9n IGNvbnRhaW5zIGNyb24iCnBvc3NpYmxlIGJhc2hpc20gaW4gL2Jpbi9jcm9u YnVnIGxpbmUgOTIgKGVjaG8gLWUpOgoJZWNobyAtZSAiXG5XQVJOSU5HOiBZ b3UgaGF2ZSBtdWx0aXBsZSBjeWd3aW4uZGxsIGluIHlvdXIgUEFUSC4iCnBv c3NpYmxlIGJhc2hpc20gaW4gL2Jpbi9lcW4yZ3JhcGggbGluZSA2OCAoJFJB TkRPTSk6CiAgICB0bXA9JGQvZXFuMmdyYXBoJCQtJFJBTkRPTQpwb3NzaWJs ZSBiYXNoaXNtIGluIC9iaW4vZmlnMnBzMnRleCBsaW5lIDE4ICh1bnNhZmUg ZWNobyB3aXRoIGJhY2tzbGFzaCk6CmVjaG8gIiAgXHZib3ggdG8gJHt5c3B9 aW57Igpwb3NzaWJsZSBiYXNoaXNtIGluIC9iaW4vZmlnMnBzMnRleCBsaW5l IDE5ICh1bnNhZmUgZWNobyB3aXRoIGJhY2tzbGFzaCk6CmVjaG8gIiAgICBc dmZpbGwiCnBvc3NpYmxlIGJhc2hpc20gaW4gL2Jpbi9maWcycHMydGV4IGxp bmUgMjIgKHVuc2FmZSBlY2hvIHdpdGggYmFja3NsYXNoKToKZWNobyAiICBc dnNwYWNley1cYmFzZWxpbmVza2lwfSIKcG9zc2libGUgYmFzaGlzbSBpbiAv YmluL2dldHRleHQuc2ggbGluZSAyMCAodW5zYWZlIGVjaG8gd2l0aCBiYWNr c2xhc2gpOgppZiB0ZXN0ICJYYChlY2hvICdcdCcpIDI+L2Rldi9udWxsYCIg PSAnWFx0JzsgdGhlbgpwb3NzaWJsZSBiYXNoaXNtIGluIC9iaW4vZ2V0dGV4 dGl6ZSBsaW5lIDU3ICgkUkFORE9NKToKICAgIHRtcD0kVE1QRElSL2d0JCQt JFJBTkRPTQpwb3NzaWJsZSBiYXNoaXNtIGluIC9iaW4vZ3JhcDJncmFwaCBs aW5lIDY0ICgkUkFORE9NKToKICAgIHRtcD0kZC9ncmFwMmdyYXBoJCQtJFJB TkRPTQpwb3NzaWJsZSBiYXNoaXNtIGluIC9iaW4vZ3pleGUgbGluZSAxMTgg KHR5cGUpOgogICAgdHlwZSBta3RlbXAgPi9kZXYvbnVsbCAyPiYxCmVycm9y OiAvYmluL2lnYXdrOiBVbnRlcm1pbmF0ZWQgcXVvdGVkIHN0cmluZyBmb3Vu ZCwgRU9GIHJlYWNoZWQuIFdhbnRlZDogPCc+LCBvcGVuZWQgaW4gbGluZSA4 MApwb3NzaWJsZSBiYXNoaXNtIGluIC9iaW4vaW5zdGFsbC1jYXRhbG9nIGxp bmUgOTEgKGVjaG8gLWUpOgogIGVjaG8gLWUgJFNHTUxfSEVMUF9NRVNTQUdF ID4mMgpwb3NzaWJsZSBiYXNoaXNtIGluIC9iaW4vaW5zdGFsbC1jYXRhbG9n IGxpbmUgMTE0IChlY2hvIC1lKToKICBlY2hvIC1lICRTR01MX0hFTFBfTUVT U0FHRSA+JjIKcG9zc2libGUgYmFzaGlzbSBpbiAvYmluL21lc3NhZ2VidXMt Y29uZmlnIGxpbmUgMjYgKHNob3VsZCBiZSAnLicsIG5vdCAnc291cmNlJyk6 CnNvdXJjZSAke0NTSUhfU0NSSVBUfQpwb3NzaWJsZSBiYXNoaXNtIGluIC9i aW4vcGNkb3Z0b3BwbSBsaW5lIDEzNyAoYmFzaCBhcnJheXMsICR7bmFtZVsw fCp8QF19KToKICAgICAgICBpZiBbICIke2Rlc2NyaXB0aW9uWzRdfSIgLWxl ICRzaXplIC1hIFwKICAgICAgICAgICAgICIke2Rlc2NyaXB0aW9uWzZdfSIg LWxlICRzaXplIF0gOyB0aGVuCnBvc3NpYmxlIGJhc2hpc20gaW4gL2Jpbi9w Y2RvdnRvcHBtIGxpbmUgMTYyIChiYXNoIGFycmF5cywgJHtuYW1lWzB8KnxA XX0pOgogICAgd2lkdGg9JCgoICR3aWR0aCArICR7ZGVzY3JpcHRpb25bNF19 ICkpCnBvc3NpYmxlIGJhc2hpc20gaW4gL2Jpbi9wY2RvdnRvcHBtIGxpbmUg MTg1IChiYXNoIGFycmF5cywgJHtuYW1lWzB8KnxAXX0pOgppZiBbICR7I2lt YWdlZmlsZXNbKl19IC1ndCAwIF0gOyB0aGVuCnBvc3NpYmxlIGJhc2hpc20g aW4gL2Jpbi9wY2RvdnRvcHBtIGxpbmUgMTk4IChiYXNoIGFycmF5cywgJHtu YW1lWzB8KnxAXX0pOgppZiBbICR7I3Jvd2ZpbGVzWypdfSA9IDEgXTsgdGhl bgpwb3NzaWJsZSBiYXNoaXNtIGluIC9iaW4vcGRmcm9mZiBsaW5lIDQyNSAo dW5zYWZlIGVjaG8gd2l0aCBiYWNrc2xhc2gpOgogIGNhc2UgYGVjaG8gInRl c3RpbmdcYyI7IGVjaG8gMSwyLDNgLGBlY2hvIC1uIHRlc3Rpbmc7IGVjaG8g MSwyLDNgIGluCnBvc3NpYmxlIGJhc2hpc20gaW4gL2Jpbi9wZ21jcmF0ZXIg bGluZSA0NSAoJygoJyBzaG91bGQgYmUgJyQoKCcpOgogICAgaWYgKGRlZmlu ZWQoJGFyZzEpICYmICgoJGFyZzEgZXEgIi0tdmVyc2lvbiIpIHx8ICgkYXJn MSBlcSAiLXZlcnNpb24iKSkpIHsKcG9zc2libGUgYmFzaGlzbSBpbiAvYmlu L3BpYzJncmFwaCBsaW5lIDc4ICgkUkFORE9NKToKICAgIHRtcD0kZC9waWMy Z3JhcGgkJC0kUkFORE9NCnBvc3NpYmxlIGJhc2hpc20gaW4gL2Jpbi9wbm1m bGlwIGxpbmUgNzYgKCRfKToKICAgICAgICAgICAgcHVzaChAbWlzY09wdGlv bnMsICRfKTsKcG9zc2libGUgYmFzaGlzbSBpbiAvYmluL3BubWZsaXAgbGlu ZSA4NSAoJF8pOgogICAgICAgICAgICAkaW5maWxlID0gJF87CnBvc3NpYmxl IGJhc2hpc20gaW4gL2Jpbi9wbm1xdWFudCBsaW5lIDUyICgnKCgnIHNob3Vs ZCBiZSAnJCgoJyk6CiAgICBpZiAoZGVmaW5lZCgkYXJnMSkgJiYgKCgkYXJn MSBlcSAiLS12ZXJzaW9uIikgfHwgKCRhcmcxIGVxICItdmVyc2lvbiIpKSkg ewpwb3NzaWJsZSBiYXNoaXNtIGluIC9iaW4vcG5tcXVhbnQgbGluZSAxODMg KCRfKToKICAgICAgICAgICAgICAgIHByaW50KCRpbkZoICRfKTsKcG9zc2li bGUgYmFzaGlzbSBpbiAvYmluL3BubXF1YW50YWxsIGxpbmUgNzAgKCcoKCcg c2hvdWxkIGJlICckKCgnKToKICAgIGlmIChkZWZpbmVkKCRhcmcxKSAmJiAo KCRhcmcxIGVxICItLXZlcnNpb24iKSB8fCAoJGFyZzEgZXEgIi12ZXJzaW9u IikpKSB7CnBvc3NpYmxlIGJhc2hpc20gaW4gL2Jpbi9wcG1mYWRlIGxpbmUg NTAgKCcoKCcgc2hvdWxkIGJlICckKCgnKToKICAgIGlmIChkZWZpbmVkKCRh cmcxKSAmJiAoKCRhcmcxIGVxICItLXZlcnNpb24iKSB8fCAoJGFyZzEgZXEg Ii12ZXJzaW9uIikpKSB7CnBvc3NpYmxlIGJhc2hpc20gaW4gL2Jpbi9wcG1m YWRlIGxpbmUgMTM2ICgnKCgnIHNob3VsZCBiZSAnJCgoJyk6CiAgICBpZiAo KGBwbm1maWxlICRmaXJzdF9maWxlYCA9fiBte1xiKFxkKylcc2J5XHMoXGQr KX0gKSkgeyAKcG9zc2libGUgYmFzaGlzbSBpbiAvYmluL3BwbWZhZGUgbGlu ZSAxNDMgKCcoKCcgc2hvdWxkIGJlICckKCgnKToKICAgIGlmICgoYHBubWZp bGUgJGxhc3RfZmlsZWAgPX4gbXtcYihcZCspXHNieVxzKFxkKyl9ICkpIHsg CnBvc3NpYmxlIGJhc2hpc20gaW4gL2Jpbi9wcG1xdWFudCBsaW5lIDQzICgn KCgnIHNob3VsZCBiZSAnJCgoJyk6CiAgICBpZiAoZGVmaW5lZCgkYXJnMSkg JiYgKCgkYXJnMSBlcSAiLS12ZXJzaW9uIikgfHwgKCRhcmcxIGVxICItdmVy c2lvbiIpKSkgewpwb3NzaWJsZSBiYXNoaXNtIGluIC9iaW4vcHBtcmFpbmJv dyBsaW5lIDQxICgnKCgnIHNob3VsZCBiZSAnJCgoJyk6CiAgICBpZiAoZGVm aW5lZCgkYXJnMSkgJiYgKCgkYXJnMSBlcSAiLS12ZXJzaW9uIikgfHwgKCRh cmcxIGVxICItdmVyc2lvbiIpKSkgewpwb3NzaWJsZSBiYXNoaXNtIGluIC9i aW4vcHBtcmFpbmJvdyBsaW5lIDExNCAoJygoJyBzaG91bGQgYmUgJyQoKCcp OgogICAgbXkgJHcgPSBpbnQoKCR3aWR0aFJlbWFpbmluZy0xKS8oQGNvbG9y bGlzdC0xKSkrMTsKcG9zc2libGUgYmFzaGlzbSBpbiAvYmluL3BwbXNoYWRv dyBsaW5lIDY1ICgnKCgnIHNob3VsZCBiZSAnJCgoJyk6CiAgICBpZiAoZGVm aW5lZCgkYXJnMSkgJiYgKCgkYXJnMSBlcSAiLS12ZXJzaW9uIikgfHwgKCRh cmcxIGVxICItdmVyc2lvbiIpKSkgewpwb3NzaWJsZSBiYXNoaXNtIGluIC9i aW4vcHBtc2hhZG93IGxpbmUgMTI3ICgnKCgnIHNob3VsZCBiZSAnJCgoJyk6 CiAgICBpZiAoKHN1YnN0cigkYXJnLCAwLCAxKSBlcSAnLScpICYmIChsZW5n dGgoJGFyZykgPiAxKSkgewpwb3NzaWJsZSBiYXNoaXNtIGluIC9iaW4vcHBt c2hhZG93IGxpbmUgMTM1ICgnKCgnIHNob3VsZCBiZSAnJCgoJyk6CiAgICAg ICAgICAgIGlmICgoJGNvbnZvbHZlIDwgMTEpICYmICgoJGNvbnZvbHZlICYg MSkgPT0gMCkpIHsKcG9zc2libGUgYmFzaGlzbSBpbiAvYmluL3Byb2NtYWls LWNvbmZpZyBsaW5lIDcgKCdmdW5jdGlvbicgaXMgdXNlbGVzcyk6CmZ1bmN0 aW9uIHN5bnRheCB7CnBvc3NpYmxlIGJhc2hpc20gaW4gL2Jpbi9wcm9jbWFp bC1jb25maWcgbGluZSAxOSAoJ2Z1bmN0aW9uJyBpcyB1c2VsZXNzKToKZnVu Y3Rpb24gd2VsY29tZSB7CnBvc3NpYmxlIGJhc2hpc20gaW4gL2Jpbi9wcm9j bWFpbC1jb25maWcgbGluZSAzNiAoJ2Z1bmN0aW9uJyBpcyB1c2VsZXNzKToK ZnVuY3Rpb24gZ3JvdXBhZGQgewpwb3NzaWJsZSBiYXNoaXNtIGluIC9iaW4v cHJvY21haWwtY29uZmlnIGxpbmUgMzcgKGFsdGVybmF0aXZlIHRlc3QgY29t bWFuZCAoW1sgZm9vIF1dIHNob3VsZCBiZSBbIGZvbyBdKSk6CglpZiBbWyBg Z2V0ZW50IGdyb3VwICIkMSJgIF1dOyB0aGVuCnBvc3NpYmxlIGJhc2hpc20g aW4gL2Jpbi9wcm9jbWFpbC1jb25maWcgbGluZSA1MCAoJ2Z1bmN0aW9uJyBp cyB1c2VsZXNzKToKZnVuY3Rpb24gc2V0X2dyb3VwIHsKcG9zc2libGUgYmFz aGlzbSBpbiAvYmluL3Byb2NtYWlsLWNvbmZpZyBsaW5lIDUxIChhbHRlcm5h dGl2ZSB0ZXN0IGNvbW1hbmQgKFtbIGZvbyBdXSBzaG91bGQgYmUgWyBmb28g XSkpOgoJaWYgISBbWyBgZ2V0ZW50IGdyb3VwICIkMSJgIF1dOyB0aGVuCnBv c3NpYmxlIGJhc2hpc20gaW4gL2Jpbi9wcm9jbWFpbC1jb25maWcgbGluZSA4 OCAoJ2Z1bmN0aW9uJyBpcyB1c2VsZXNzKToKZnVuY3Rpb24gZG9fc2V0Z2lk IHsKZXJyb3I6IC9iaW4vc3FsaXRlM19hbmFseXplcjogVW50ZXJtaW5hdGVk IHF1b3RlZCBzdHJpbmcgZm91bmQsIEVPRiByZWFjaGVkLiBXYW50ZWQ6IDwn Piwgb3BlbmVkIGluIGxpbmUgMjc5CnBvc3NpYmxlIGJhc2hpc20gaW4gL2Jp bi90ZXhpMmR2aSBsaW5lIDk2ICgkKE9TfE1BQ0gpVFlQRSk6CmlmIHRlc3Qg LW4gIiRDT01TUEVDJENvbVNwZWMiIFwKICAgJiYgTVNZU1RFTT0kT1NUWVBF IHVuYW1lIHwgJEVHUkVQIC1pdiAnY3lnd2lufG1zeXMnID4vZGV2L251bGw7 IHRoZW4KZXJyb3I6IC9iaW4vdGV4aTJkdmk6IFVudGVybWluYXRlZCBxdW90 ZWQgc3RyaW5nIGZvdW5kLCBFT0YgcmVhY2hlZC4gV2FudGVkOiA8Ij4sIG9w ZW5lZCBpbiBsaW5lIDE4MjMKcG9zc2libGUgYmFzaGlzbSBpbiAvYmluL3Vw ZGF0ZWRiIGxpbmUgMjM2ICgkUkFORE9NKToKICAgICAgICB0bXA9IiRUTVBE SVIiL3VwZGF0ZWRiIiQkIi0iJHtSQU5ET006LX0ke3RzfSIKcG9zc2libGUg YmFzaGlzbSBpbiAvYmluL3h6ZGlmZiBsaW5lIDE0MiAodHlwZSk6CiAgICAg ICAgICAgIGlmIHR5cGUgbWt0ZW1wID4vZGV2L251bGwgMj4mMTsgdGhlbgpl cnJvcjogL2Jpbi94emdyZXA6IFVudGVybWluYXRlZCBxdW90ZWQgc3RyaW5n IGZvdW5kLCBFT0YgcmVhY2hlZC4gV2FudGVkOiA8Jz4sIG9wZW5lZCBpbiBs aW5lIDE4OQpwb3NzaWJsZSBiYXNoaXNtIGluIC9iaW4vemRpZmYgbGluZSAx MTkgKHR5cGUpOgogICAgICAgICAgICAgICAgICAgICAgICBpZiB0eXBlIG1r dGVtcCA+L2Rldi9udWxsIDI+JjE7IHRoZW4KcG9zc2libGUgYmFzaGlzbSBp biAvYmluL3pncmVwIGxpbmUgMTM2ICh0eXBlKToKICAgICAgaWYgdHlwZSBt a3RlbXAgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCmVycm9yOiAvYmluL3pncmVw OiBVbnRlcm1pbmF0ZWQgcXVvdGVkIHN0cmluZyBmb3VuZCwgRU9GIHJlYWNo ZWQuIFdhbnRlZDogPCc+LCBvcGVuZWQgaW4gbGluZSAyMjMK --------------44DD7E19D5DC8D4D1A538F38 Content-Type: text/plain; charset=us-ascii Content-length: 219 -- Problem reports: http://cygwin.com/problems.html FAQ: http://cygwin.com/faq/ Documentation: http://cygwin.com/docs.html Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple --------------44DD7E19D5DC8D4D1A538F38--