Problems with "spaces" in file names during stage-qa

Danilo E. Gondolfo danilo at freebsd.org
Mon Nov 4 18:22:44 UTC 2013


On 11/03/13 20:56, Matthias Andree wrote:
> Am 03.11.2013 14:16, schrieb Danilo E. Gondolfo:
>> Hello folks,
>>
>>  I've had some problems with blank chars in file names during stage-qa.
>>
>> Problems like that:
>>
>> ====> Running Q/A tests (stage-qa)
>> sed:
>> /home/barba/Sources/freebsd-working/ports/games/lincity-ng/work/stage/usr/local/share/lincity-ng/music/01:
>> No such file or directory
>> sed: -: No such file or directory
>> sed: pronobozo: No such file or directory
>> sed: -: No such file or directory
>> sed: lincity.ogg: No such file or directory
>> sed:
>> /home/barba/Sources/freebsd-working/ports/games/lincity-ng/work/stage/usr/local/share/lincity-ng/music/03:
>> No such file or directory
>> sed: -: No such file or directory
>> sed: Robert: No such file or directory
>> sed: van: No such file or directory
>> sed: Herk: No such file or directory
>> sed: -: No such file or directory
>> sed: Architectural: No such file or directory
>> sed: Contemplations.ogg: No such file or directory
>> sed:
>> /home/barba/Sources/freebsd-working/ports/games/lincity-ng/work/stage/usr/local/share/lincity-ng/music/02:
>> No such file or directory
>> sed: -: No such file or directory
>> sed: Robert: No such file or directory
>> sed: van: No such file or directory
>> sed: Herk: No such file or directory
>> sed: -: No such file or directory
>> sed: City: No such file or directory
>> sed: Blues.ogg: No such file or directory
>>
>>
>> I've fixed this with the attached patch. What do you think?
> Thanks for taking a stab at this.
>
> However, the patch goes only halfway. If we really want to proof it
> against blanks, we need to tweak IFS - and that would still not proof it
> against tabs or line feeds in filenames.
>
> As reference, I found David A. Wheeler's article most elucidating:
> <http://www.dwheeler.com/essays/filenames-in-shell.html>
>
> Would you like to take another, more robust, stab at the script?
Tweak IFS is smarter :D
It reduced my patch to this:

Index: qa.sh
===================================================================
--- qa.sh    (revision 332718)
+++ qa.sh    (working copy)
@@ -110,6 +110,7 @@
 ret=0
 cd ${STAGEDIR}
 for check in ${checks}; do
+    IFS="$(printf '\n\t')"
     ${check} || ret=1
 done

But the problem with other blanks remains... =/


More information about the freebsd-ports mailing list