As part of fixing CR 6392582, I need to detect whether the system
being upgraded has ever run SMF and thus avoid the gymnastics
necessary for upgrade from non-SMF.  I able do so by checking for the
existence of one of these symlinks, created by the undocumented
"svcadm _smf_backup" feature added by CR 5102864:

  $BASEDIR/etc/svc/repository-boot
  $BASEDIR/etc/svc/repository-manifest_import

Doing this seems like the simplest and easiest to defend
implementation.  The problem, of course, is that it's an undocumented
interface, and it could be ripped out from under me.  I thus need to
make it Stable.

Alternatives include creating some sort of utility to abstract this
away, but that's problematic.  The utility wouldn't necessarily work
in all the scenarios where detection is required (such as using LU to
upgrade from Solaris 9 or S10u[1-4] to Nevada), so we'd need to code
around the missing utility and fall back on something else to solve
the problem.  That puts us back where we started.

Any comments?  If not, I'm going to draft up a PSARC case to make one
of those two symlinks (probably the latter one) a Stable interface so
that, where necessary, package and patch authors can check for SMF.

-- 
James Carlson, Solaris Networking              <james.d.carlson at sun.com>
Sun Microsystems / 1 Network Drive         71.232W   Vox +1 781 442 2084
MS UBUR02-212 / Burlington MA 01803-2757   42.496N   Fax +1 781 442 1677

Reply via email to