[pacman-dev] [PATCH] makepkg: save and restore shell options before and after build()
Aaron Griffin
aaronmgriffin at gmail.com
Thu Dec 4 23:39:36 EST 2008
On Thu, Dec 4, 2008 at 9:00 PM, Allan McRae <allan at archlinux.org> wrote:
> Dan McGee wrote:
>>
>> On Thu, Dec 4, 2008 at 8:48 PM, Dan McGee <dan at archlinux.org> wrote:
>>
>>>
>>> Fix the issue uncovered by FS#12344. In this instance, the dotglob shopt
>>> was
>>> being set in the build() function but never cleared, causing issues in
>>> the
>>> remaining parts of the makepkg script.
>>>
>>> Signed-off-by: Dan McGee <dan at archlinux.org>
>>> ---
>>> scripts/makepkg.sh.in | 4 ++++
>>> 1 files changed, 4 insertions(+), 0 deletions(-)
>>>
>>> diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in
>>> index 4cc255c..25e4cc8 100644
>>> --- a/scripts/makepkg.sh.in
>>> +++ b/scripts/makepkg.sh.in
>>> @@ -675,6 +675,8 @@ run_build() {
>>>
>>> # ensure all necessary build variables are exported
>>> export CFLAGS CXXFLAGS MAKEFLAGS CHOST
>>> + # save our shell options so build() can't override what we need
>>> + local $shellopts=$(shopts -p)
>>>
>>
>> I could have used this as a litmus test to see if anyone actually
>> tried this, but assume I put "shopt" (drop the s) here instead. Fixed
>> locally. :)
>>
>>
>
> Ha, i was just trying to figure out why I had not "shopts" command !
>
>>> local ret=0
>>> if [ "$LOGGING" = "1" ]; then
>>> @@ -695,6 +697,8 @@ run_build() {
>>> else
>>> build 2>&1 || ret=$?
>>> fi
>>> + # reset our shell options
>>> + eval "$shellopts"
>>>
>>> if [ $ret -gt 0 ]; then
>>> error "$(gettext "Build Failed.")"
>>> --
>>> 1.6.0.4
>>>
>>>
>
> Strange problem.... Patch looks good to me.
With even stranger symptoms! Thayer build a package that had 2
.PKGINFO files in it. I didn't even know tar could do that. This
actually caused goofy issues on gerolde when validating that the
package's arch was the same as the repo it was going to - because the
check basically cat's the .PKGINFO and looks for the arch setting.
Instead of 'i686' it was getting 'i686\ni686'
More information about the pacman-dev
mailing list