[pacman-dev] makepkg and (n)awk

Allan McRae allan at archlinux.org
Sat Dec 25 19:43:59 EST 2010


On 26/12/10 09:59, Nezmer wrote:
> Hi,
>
> In commit ef977865, awk was added as an external tool needed by makepkg.
>
> As you know, there is different awk implementations out there. nawk is
> the implementation shipped by default in non-GNU systems As far as I
> know.
>
> Unfortunately, awk usage in makepkg is not nawk-compatible.
>
> Command:
>
> %gawk '/^[[:space:]]*provides=/,/)/' B | sed "s/provides=/provides_list+=/"
>
> Output:
>
>   provides_list+=('p1' 'p2' '3') # comment
>
> Command:
>
> % awk '/^[[:space:]]*provides=/,/)/' B | sed "s/provides=/provides_list+=/"
>
> Output:
>
> awk: illegal primary in regular expression ) at
>   source line number 1
>   context is
>           >>>  /^[[:space:]]*provides=/,/)/<<<
>
>
> ======================
>
> Anyway, what is awk doing here? Is it the same as:
> egrep '^\s*provides=\(.*\)'
>

No its not...  it handles depends/provides arrays going over multiple lines.

Perhaps there is a way that both gawk/nawk can do that using the same 
regex.  That would be the best solution.   Otherwise we need to either 
use gawk explicitly or do some autoconf stuff...

Allan


More information about the pacman-dev mailing list