Subject: Re: infrastructure change: PLIST files not rebuilt
To: None <tech-pkg@netbsd.org>
From: Klaus Heinz <k.heinz.jun.sieben@kh-22.de>
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
_PLIST_NOKEYWORDS
.PHONY: plist
plist: ${PLIST} ${_PLIST_NOKEYWORDS}
.if ${PLIST_TYPE} == "static"
${PLIST}: ${PLIST_SRC}
.endif
...
${_PLIST_NOKEYWORDS}: ${PLIST}
creates ${_PLIST_NOKEYWORDS} whenever you change ${PLIST_SRC} (the PLIST
file).
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)?
./check/check-subr.sh
./extract/extract
./fetch/fetch
./flavor/pkg/metadata.mk
./buildlink3/show-buildlink3.sh
./buildlink3/transform-libtool
./buildlink3/libtool-fix-la
./bulk/sort-packages
./gnu-config/missing
./scripts/pkg_path
./scripts/shell-lib
./wrapper/transform-ccc-cc
./wrapper/arg-pp-darwin-gcc
./wrapper/arg-pp-main
./wrapper/arg-source
./wrapper/transform-mipspro-cc
./wrapper/cmd-sink-aix-cc
./wrapper/cmd-sink-aix-ld
./wrapper/cmd-sink-aix-xlc
./wrapper/cmd-sink-ld
./wrapper/cmd-sink-osf1-cc
./wrapper/cmd-sink-osf1-ld
./wrapper/cmd-sink-unixware-gcc
./wrapper/gen-reorder.sh
./wrapper/gen-transform.sh
./wrapper/transform-mipspro-ucode-cc
./wrapper/transform-sunpro-cc
./wrapper/cmd-sink-hpux-cc
./wrapper/cmd-sink-hpux-ld
./checksum/checksum
./plist/shlib-type
./plist/doc-compress
./plist/libtool-expand
./pkginstall/usergroup
./pkginstall/bsd.pkginstall.mk
./pkginstall/dirs
./pkginstall/files
./pkginstall/fonts
./pkginstall/header
./pkginstall/info-files
./pkginstall/perms
./pkginstall/shell
./pkginstall/usergroup-check
./pkginstall/usergroupfuncs
./pkginstall/usergroupfuncs.DragonFly
./pkginstall/usergroupfuncs.FreeBSD
./pkginstall/usergroupfuncs.Linux
I have changed the way the PROVIDES line is written in metadata.mk,
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.
ciao
Klaus