> You should not patch out the use of POSIX_SHELL after the fact. Find > where it is resolved/expanded in the source code in the first place, and > patch it there. Also, please check why setting POSIX_SHELL in the recipe > no longer has any effect - there is a patch called > 0001-config-libopts.m4-regenerate-it-from-config-libopts.patch which > should do the trick, but does not.
I guess I see the problem now. The mechanism in libopts.m4 won't allow setting POSIX_SHELL to anything other than an actual file because it does test -x ${POSIX_SHELL} && break Now the recipe sets POSIX_SHELL to "/usr/bin/env sh" which would resolve to the actual shell binary when used but itself it's just a string so the condition (test -x) fails because POSIX_SHELL at that particular moment is just a string and not an executable. Moving ahead the script does POSIX_SHELL=`which bash` which then resolves/expands to <build-dir>/tmp/hosttools/bash and obviously breaks what we're trying to achieve with "/usr/bin/env sh". I believe the first check in libopts.m4 for POSIX_SHELL should be changed to test -n ${POSIX_SHELL} && break So the user can set it to whatever he desires obviously he'll need to make sure that this would work as a proper shell. Thoughts? BR, Awais ________________________________________ From: Alexander Kanavin <alexander.kana...@linux.intel.com> Sent: Tuesday, May 16, 2017 4:32 PM To: Belal, Awais; openembedded-core@lists.openembedded.org Subject: Re: [OE-core] [PATCH] autogen: fix autoopts script generation to handle shebang On 05/16/2017 08:36 AM, Belal, Awais wrote: >> The standard way to fix too long #! lines in oe is to patch >> upstream code to use #!/usr/bin/env something (where something is >> just the binary name). > >> Why not simply replace ${POSIX_SHELL} with /bin/sh? Where and how >> is it set? > > POSIX_SHELL is being set to "/usr/bin/env sh" already through the > recipe but it gets resolved/expanded to > <build-dir>/hosttools/<shell-bin> during the configuration process so > it's not usable for shebang in deep directory hierarchy scenarios. I > guess a better way would be simply to use the same technique that > we're using for perl. So for shell we'll have > > #!/usr/bin/env sh > > in mk-tpl-config.sh directly. I'll submit the change as v2 if you > think this is okay. You should not patch out the use of POSIX_SHELL after the fact. Find where it is resolved/expanded in the source code in the first place, and patch it there. Also, please check why setting POSIX_SHELL in the recipe no longer has any effect - there is a patch called 0001-config-libopts.m4-regenerate-it-from-config-libopts.patch which should do the trick, but does not. Alex -- _______________________________________________ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core