Re: [PATCH] common/rc: fix MKSWAP_PROG quoting

Zorro Lang
2021-08-31T13:21:14Z

On Tue, Aug 31, 2021 at 09:38:25AM +0200, Pavel Reichl wrote:
>
> On 8/31/21 7:26 AM, Zorro Lang wrote:
> > On Tue, Aug 31, 2021 at 11:04:26AM +0800, Murphy Zhou wrote:
> > > After commit
> > > 0e4dd8b9 common/rc: fix ignoring of errors on
> > > we are getting this error message when running swapfiles tests:
> > > +./common/rc: line 2553: MKSWAP_PROG: command not found
> > >
> > > Signed-off-by: Murphy Zhou <xzhou@redhat.com>
> > > ---
> > > common/rc | 2 +-
> > > 1 file changed, 1 insertion(+), 1 deletion(-)
> > >
> > > diff --git a/common/rc b/common/rc
> > > index 46b6b220..0597de13 100644
> > > --- a/common/rc
> > > +++ b/common/rc
> > > @@ -2550,7 +2550,7 @@ _format_swapfile() {
> > > $CHATTR_PROG +C "$fname" > /dev/null 2>&1
> > > _pwrite_byte 0x61 0 "$sz" "$fname" >> $seqres.full
> > > # Ignore permission complaints on filesystems that don't support perms
> > > - $(MKSWAP_PROG "$fname" 2> >(grep -v 'insecure permission' >&2)) >> $seqres.full
> > > + ($MKSWAP_PROG "$fname" 2> >(grep -v 'insecure permission' >&2)) >> $seqres.full
> > The change history is:
> >
> > Commit 0c95c8ac tried to "hide permision warning", so did:
> > - $MKSWAP_PROG "$fname" >> $seqres.full
> > + # Ignore permission complaints on filesystems that don't support perms
> > + $MKSWAP_PROG "$fname" 2> >(grep -v 'insecure permission' >&2) >> $seqres.full
> >
> > Then commit 0e4dd8b9 said "it broke older versions of bash such as 4.4.23", so tried
> > to use "a $(foo) to run the executable":
> > - $MKSWAP_PROG "$fname" 2> >(grep -v 'insecure permission' >&2) >> $seqres.full
> > + $(MKSWAP_PROG "$fname" 2> >(grep -v 'insecure permission' >&2)) >> $seqres.full
> >
> > Now this patch try to do ($FOO_PROG):
> > ($MKSWAP_PROG "$fname" .....)
> >
> > I'm *not* a bash expert, if I'm wrong feel free to correct me:) If the original problem
> > is trying to hide permision warning from stderr, and to avoid new syntax breaking old
> > bash, Why we must struggle with this complex syntax which isn't compatible. How about:
>
> Hi, sorry I do suck at bash, but:
>
> >
> > $MKSWAP_PROG "$fname" >> $seqres.full 2>&1 | grep -v "insecure permission"
>
> >> redirects stdout to the seqres.full and the 2>&1 redirects stderr to
> wherever stdout goes...so $MKSWAP_PROG "$fname" >> $seqres.full 2>&1 sends
> both stdout and stderr to the file so nothing is piped to grep. Or do I miss
> something (which is entirely possible)?

Sorry, I reversed the order. I mean:

$MKSWAP_PROG "$fname" 2>&1 >> $seqres.full | grep -v "insecure permission"

Thanks,
Zorro

>
>
> Thanks!
>
>
> >
> > Or other better and compatible way ?
> >
> > Thanks,
> > Zorro
> >
> > > }
> > > _swapon_file() {
> > > --
> > > 2.20.1
> > >
>