[kernel-snaps-uc2*/main|master][PATCH] trim-firmware: correctly support firmware wildcard patterns

Dimitri John Ledkov dimitri.ledkov at canonical.com
Thu May 12 13:44:39 UTC 2022


On Thu, 12 May 2022 at 12:17, Juerg Haefliger
<juerg.haefliger at canonical.com> wrote:
>
> On Mon,  9 May 2022 17:38:51 +0100
> Dimitri John Ledkov <dimitri.ledkov at canonical.com> wrote:
>
> > firmware stanzas in kernel modules can contain wildcard
> > expansions. Thus explicitely do not quote fw_file such that wildcard
> > expansion finds all of:
> >
> >  brcm/brcmfmac*-sdio.*.bin
> >  brcm/brcmfmac*-pcie.*.txt
> >  brcm/brcmfmac*-sdio.*.txt
> >
> > Signed-off-by: Dimitri John Ledkov <dimitri.ledkov at canonical.com>
> > ---
> >  trim-firmware | 9 ++-------
> >  1 file changed, 2 insertions(+), 7 deletions(-)
> >
> > diff --git a/trim-firmware b/trim-firmware
> > index cc7c9fff6c..cc8b61c42d 100755
> > --- a/trim-firmware
> > +++ b/trim-firmware
> > @@ -23,7 +23,8 @@ DESTDIR=${1}
> >
> >  # Copy required firmware files to a new directory
> >  while IFS= read -r fw_file ; do
> > -     for src_file in "${DESTDIR}"/firmware/${fw_file} ; do
> > +     # Note path expansion required, as fw_file can be a wildcard
> > +     for src_file in $DESTDIR/firmware/$fw_file ; do
>
> What does that do? fw_file wasn't quoted before, for that very reason.
>

I want to say that path expansion happened before variable expansion
when quoted.... but I am now failing to reproduce this. And I am now
questioning my sanity and maybe the quoting change is redundant / semi
harmful (as it now prevents DESTDIR from having spaces".

I'll go and do clean experiments, maybe my local shell is setup weirdly.


> ...Juerg
>
> >               if ! [ -e "${src_file}" ] ; then
> >                       continue  # Skip non-existing source files
> >               fi
> > @@ -38,12 +39,6 @@ while IFS= read -r fw_file ; do
> >       done
> >  done < <(list_firmware "${DESTDIR}"/modules | sort -u)
> >
> > -# Copy all brcm files, since there might be config files that the kernel
> > -# doesn't expose via modinfo
> > -if [ -d "${DESTDIR}"/firmware.new/brcm ] ; then
> > -     cp "${DESTDIR}"/firmware/brcm/* "${DESTDIR}"/firmware.new/brcm
> > -fi
> > -
> >  # Copy the wifi regulatory database
> >  if [ -e "${DESTDIR}"/firmware/regulatory.db ] ; then
> >       cp "${DESTDIR}"/firmware/regulatory.* "${DESTDIR}"/firmware.new
>



More information about the kernel-team mailing list