Michael Goff writes: > I haven't yet received any help on this, but I've made some progress. After l > ooking at how repsitory.db is built in Solaris: > > http://src.opensolaris.org/source/xref/onnv/onnv-gate/usr/src/cmd/svc/see > d/Makefile > > I added this to my ramdisk building process: > > ROOT=/home/mgoff/svn/ramdisk > SVCCFG=$ROOT/usr/sbin/svccfg > CONFIGD=$ROOT/lib/svc/bin/svc.configd > DTD=$ROOT/usr/share/lib/xml/dtd/service_bundle.dtd.1 > MANIFEST=$ROOT/var/svc/manifest/application/honeycomb-net-filesystem.xml > > cd $ROOT > REPOSITORY=$ROOT/etc/svc/repository.db > SVCCFG_DTD=$DTD \ > SVCCFG_REPOSITORY=$REPOSITORY \ > SVCCFG_CONFIGD_PATH=$CONFIGD \ > SVCCFG_CHECKHASH=1 \ > PKG_INSTALL_ROOT=$ROOT \ > $SVCCFG import $MANIFEST > > This results in my service running along filsystem/minimal at boot time, but > the dependency is not enforced, which causes errors. The interesting thing is > that the dependency is present in /etc/svc/repository.db: > > NODE hcb101 ~ $ svccfg -s filesystem/minimal listprop
What do you see if you run "svcprop filesystem/minimal" instead? (You probably won't see your dependency.) My guess is that the $ROOT/etc/svc/repository.db you're building on top of has already had its running snapshots created. Thus, you're in need of a "svcadm refresh" of the service to copy the properties you just imported into the running snapshot. During the ON build, we have no running snapshots created, because we've just built the repository. The functionality to run this refresh is not currently available due to: 5087504 svccfg should allow 'refresh' of services on an alternate repository (I've just moved the comments content to the description field, sorry...) You can also test this by doing svccfg repository <your repository>, select filesystem/minimal:default, then 'listsnap'. If there's any running snapshot in the repository you're building on, a refresh is necessary -- but you haven't had a chance to do the refresh. One way to resolve this today would be to explicitly build the repository up yourself from the seed, rather than copying one from a machine. That way you wouldn't have any running snapshots, and we'd automatically create them when we started the service the first time. (In the medium term, the plan is to have manifest-import run first thing during boot, before any services have started. That might help solve your problem, but not in the next 2 hours. Publishing that proposal here is #2 on my list of things to do, after I publish the next templates draft.) liane -- Liane Praza, Solaris Kernel Development liane.praza at sun.com - http://blogs.sun.com/lianep