Subject: Re: infrastructure change: PLIST files not rebuilt
To: None <>
From: Klaus Heinz <>
List: tech-pkg
Date: 06/04/2007 02:10:28
Mark Davies wrote:
> On Sunday 03 June 2007, Thomas Klausner wrote:
> > When one installed a package, changed the PLIST and (deleted it
> > and) installed it again, the new PLIST was used. This recently
> > stopped working, now one has to manually delete work*/.PLIST* to
> > get an updated PLIST. This is annyoing when updating packages.
> This might be part of the same infrastructure change, or just 

I am quite sure that the new dependency chain I introduced with

  .PHONY: plist

  .if ${PLIST_TYPE} == "static" 

creates ${_PLIST_NOKEYWORDS} whenever you change ${PLIST_SRC} (the PLIST

Some testing shows that the file $WRKSRC/.PLIST_deps is the culprit.
When I change the PLIST file, .PLIST and .PLIST_nokeywords get created
again but .PLIST_deps stays the same.

> separately broken, but installing kdenetwork3 on Solaris10 now fails 
> with:

> /bin/sh: bad substitution
> *** Error code 1
> Stop.
> bmake: stopped in /src/work/pkgsrc/net/kdenetwork3
> *** Error code 1

It looks like my change introduced those kinds of parameter expansion
(#, ##, %, %%) for the first time in *.mk files. On the other hand,
there are plenty of shell scripts in pkgsrc/mk using this syntax, so
I wonder how they worked before. Are those scripts _all_ called through
${SH} (/usr/xpg4/bin/sh on Solaris)?


I have changed the way the PROVIDES line is written in,
please try again.
We should really require bmake to use /bin/ksh or /usr/xpg4/bin/sh
as the default shell on Solaris. Or we introduce nbsh in the bootstrap
kit and use it on all platforms to get rid of all those differences.