Subject: Re: debugging pkgsrc on Solaris
To: None <pkgsrc-users@netbsd.org, tech-pkg@netbsd.org>
From: None <joerg@britannica.bec.de>
List: tech-pkg
Date: 07/06/2006 01:07:30
On Wed, Jul 05, 2006 at 11:49:30PM +0100, Raymond Meyer wrote:
> Thanks, I used truss command:
> 
> 24420:  execve("/bin/sh", 0x00044488, 0x0004C068)  argc = 3
> 24420:   argv: /bin/sh -c
> 24420:    for str in ; do                                /usr/ucb/echo 1>&2 "ERR
> OR:" "$str";                                     done
> 
> This is coming from mk/bsd.pkg.mk
> Lines of the following form cause problems, I think:
> 
> #
> # Now print some error messages that we know we should ignore the pkg
> #
> .  if defined(PKG_FAIL_REASON) || defined(PKG_SKIP_REASON)
> .PHONY: do-check-pkg-fail-or-skip-reason
> fetch checksum extract patch configure all build install package \
> update depends do-check-pkg-fail-or-skip-reason:
> .    if defined(SKIP_SILENT)
>         @${DO_NADA}
> .    else
>         @for str in ${PKG_FAIL_REASON}; do                              \
>                 ${ERROR_MSG} "$$str";                                   \
>         done
>         @for str in ${PKG_SKIP_REASON}; do                              \
>                 ${WARNING_MSG} "$$str";                                 \
>         done
> .    endif
> .    if defined(PKG_FAIL_REASON)
>         @${FALSE}
> .    endif
> .  endif # SKIP
> .endif # !NO_SKIP
> 
> What would be a proper fix for this??

Before going into the for loops, the variables should be checked once
more whether they are empty. Seems that Solaris doesn't allow that.

Joerg