Variable not expanding during Solaris pkgadd

I'm having a little trouble with a Solaris package build/install.

I have the following entries in my prototype file...

# Interfaces file - all versions installed and auto linked to installation type...
f none $OPTDIR/config/interfaces.DEV                   0444 $OWNER $GROUP
f none $OPTDIR/config/interfaces.UA                    0444 $OWNER $GROUP
f none $OPTDIR/config/interfaces.PROD                  0444 $OWNER $GROUP

# Link interfaces to the correct installation type...
x none $OPTDIR                                          0755 $OWNER $GROUP
s none $OPTDIR/interfaces=config/interfaces.$PACKAGE_TYPE

PACKAGE_TYPE is determined by the request script at install time and takes a value of DEV, UA or PROD, so I then want to use that to link my interfaces file to the correct version during installation.

Unfortunately, after installation I get...

> ls -l interfaces
lrwxrwxrwx   1 root     root          31 Oct  6 12:53 interfaces -> config/interfaces.$PACKAGE_TYPE

From what I can tell in the manual, both source and target paths in a symbolic link entry should expand variables, so does anyone have any idea why mine isn't?

---------- Post updated 10-07-10 at 12:50 PM ---------- Previous update was 10-06-10 at 06:16 PM ----------

After much messing about, I've determined that this...

s none $OPTDIR/interfaces=config/$PACKAGE_TYPE

works but this

s none $OPTDIR/interfaces=config/interfaces.$PACKAGE_TYPE

doesn't.
It seems this is another example of where the Solaris install works in a shell-like manner but doesn't have full shell functionality.
My solution has been to perform the linking with a postinstall script which works fine. However, that creates an extra file that the original install doesn't know about, so pkgrm doesn't uninstall the package cleanly. To overcome that one, I've added the following to prototype

s none $OPTDIR/interfaces=dummy

to register a file ready for uninstall, although the postinstall has changed the link's target.