While working with Mike Kupfer to integrate my fix for

        6414822 don't try to build packages with closed components

the question came up how to properly deal with a couple of packages that
cannot be built in an open build since they contain files missing from the
closed tarballs.  The workaround I've come with for the CR above is to
avoid building those packages, but this is not appropriate in a couple of
cases since core packages like SUNWcsu and SUNWhea are omitted.

My suggestion is to either move those closed components to new packages of
their own or to to really omit the affected packages when all or most files
are missing.  The full list is as follows:

common to sparc and x86:

* SUNWaudd:

  kernel/drv/audioens.conf
  kernel/drv/audioens
  kernel/drv/amd64/audioens
  kernel/drv/sparcv9/audioens

  create new SUNWadens

* SUNWaudh:

  usr/include/sys/audio/audioens.h
  usr/include/sys/audio/audioixp.h
  usr/include/sys/audio/audiovia823x.h

  create new SUNWadensh, SUNWvia823xh, SUNWadixph

* SUNWckr:

  kernel/drv/sgen.conf
  kernel/drv/sgen
  kernel/drv/amd64/sgen
  kernel/drv/sparcv9/isp
  kernel/drv/sparcv9/sgen

  create new SUNWsgen, SUNWisp (sparc only)

* SUNWcsu:

  usr/bin/ksh

  create new SUNWksh(88?); this might even be useful for ksh93 integration,
  since it could allow/simplify selection of /usr/bin/ksh at install time,
  similar to how different versions of java (used to?) be selected

* SUNWhea:

  usr/include/nfs/lm_impl.h
  usr/include/nfs/lm_nlm.h
  usr/include/nfs/lm_server.h

  move to new SUNWhea-closed or don't distribute at all: not referenced by
  any public header

  usr/include/sys/ib/adapters/tavor/tavor_ioctl.h

  move to new SUNWtavorh or don't distribute at all, not referenced in any
  public header

  usr/include/sys/lc_core.h
  usr/include/sys/localedef.h

  move to new SUNWhea-closed or don't distribute at all: not referenced by
  any public header

  usr/include/sys/pcmcia/pcelx.h

  move to SUNWpcelxh or don't distribute at all

  usr/include/sys/pem.h

  create new SUNWpemh

  usr/include/sys/scsi/targets/sgendef.h

  create new SUNWsgenh

  usr/include/sys/pcic_reg.h
  usr/include/sys/pcic_var.h

  already in cardbus-0.2

  sparc only:

  usr/include/sys/scsi/adapters/ispcmd.h
  usr/include/sys/scsi/adapters/ispmail.h
  usr/include/sys/scsi/adapters/ispreg.h
  usr/include/sys/scsi/adapters/ispvar.h

  move to new SUNWispu?

  usr/platform/sun4u/include/sys/i2c/clients/scmi2c.h
  usr/include/sys/scsi/adapters/sfvar.h
  usr/include/sys/socalvar.h
  usr/include/sys/socalmap.h
  usr/include/sys/socal_cq_defs.h

  move where?, maybe SUNWhea-closed?

* SUNWiotu:

  usr/sbin/pcitool
  usr/share/man/man1m/pcitool.1m

  don't build

* SUNWllc:

  usr/include/sys/llc2.h

  create new SUNWllch

* SUNWmdbr:

  kernel/kmdb/sparcv9/isp
  platform/sun4u/kernel/kmdb/sparcv9/wrsmd

  create new SUNWisp, SUNWwrsm; ugly, works on x86, closed parts on sparc
  only!

* SUNWmdb:

  usr/lib/mdb/kvm/sparcv9/isp.so
  usr/platform/sun4u/lib/mdb/kvm/sparcv9/wrsmd.so

  create new SUNWispu, SUNWwrsmu

* SUNWocf:

  usr/bin/smartcard
  usr/lib/smartcard/libIFDNative.so.1
  usr/share/lib/smartcard/ocf.jar
  usr/share/lib/smartcard/smartcard.jar
  usr/share/lib/smartcard/commands.jar
  usr/share/lib/smartcard/IFDCardTerminal.jar
  usr/share/lib/smartcard/SolarisAuthApplet.capx
  usr/share/lib/smartcard/SolarisAuthApplet.jib
  usr/share/lib/smartcard/SolarisAuthApplet.bin
  usr/share/lib/smartcard/SolarisAuthApplet.bin.sig
  usr/share/lib/smartcard/CDESmartCardAdmin

  don't build

* SUNWocfd:

  usr/share/javadoc/smartcard/allclasses-frame.html
  usr/share/javadoc/smartcard/allclasses-noframe.html
  usr/share/javadoc/smartcard/com/sun/smartcard/scf/package-frame.html
  usr/share/javadoc/smartcard/com/sun/smartcard/scf/package-summary.html
  usr/share/javadoc/smartcard/com/sun/smartcard/scf/package-tree.html
  usr/share/javadoc/smartcard/com/sun/smartcard/scf/TerminalEventListener.html
  usr/share/javadoc/smartcard/com/sun/smartcard/scf/Card.html
  usr/share/javadoc/smartcard/com/sun/smartcard/scf/Session.html
  usr/share/javadoc/smartcard/com/sun/smartcard/scf/Terminal.html
  usr/share/javadoc/smartcard/com/sun/smartcard/scf/CardLockedException.html
  usr/share/javadoc/smartcard/com/sun/smartcard/scf/CardRemovedException.html
  usr/share/javadoc/smartcard/com/sun/smartcard/scf/CommException.html
  usr/share/javadoc/smartcard/com/sun/smartcard/scf/DoubleLockException.html
  usr/share/javadoc/smartcard/com/sun/smartcard/scf/InternalException.html
  usr/share/javadoc/smartcard/com/sun/smartcard/scf/InvalidStateException.html
  usr/share/javadoc/smartcard/com/sun/smartcard/scf/NoCardException.html
  usr/share/javadoc/smartcard/com/sun/smartcard/scf/NoSuchTerminalException.html
  usr/share/javadoc/smartcard/com/sun/smartcard/scf/SCFException.html
  usr/share/javadoc/smartcard/com/sun/smartcard/scf/TimeoutException.html
  usr/share/javadoc/smartcard/constant-values.html
  usr/share/javadoc/smartcard/deprecated-list.html
  usr/share/javadoc/smartcard/help-doc.html
  usr/share/javadoc/smartcard/index-all.html
  usr/share/javadoc/smartcard/index.html
  usr/share/javadoc/smartcard/overview-tree.html
  usr/share/javadoc/smartcard/package-list
  usr/share/javadoc/smartcard/resources/inherit.gif
  usr/share/javadoc/smartcard/serialized-form.html
  usr/share/javadoc/smartcard/stylesheet.css

  don't build

* SUNWocfh:

  usr/include/smartcard/scf.h
  usr/include/smartcard/ifdhandler.h

  don't build

* SUNWocfr:

  etc/smartcard/opencard.properties
  etc/smartcard/ocf.classpath
  etc/smartcard/.keys
  etc/smartcard/desktop.properties

  don't build

* SUNWpcmci:

  kernel/drv/pem.conf
  kernel/drv/pem
  kernel/drv/amd64/pem
  kernel/drv/sparcv9/pem

  create new SUNWpem

* SUNWphx:

  kernel/misc/phx
  kernel/misc/amd64/phx
  kernel/misc/sparcv9/phx

  don't build

* PHXext:

  usr/include/sys/phx.h

  don't build

* SUNWcryptoint:

  etc/certs/SUNWosnetSolaris
  etc/crypto/certs/SUNWosnet

  don't build

* SUNWsvvs:

  usr/include/sys/lo.h
  usr/include/sys/tidg.h
  usr/include/sys/tivc.h
  usr/include/sys/tmux.h
  usr/kernel/drv/lo.conf
  usr/kernel/drv/tidg.conf
  usr/kernel/drv/tivc.conf
  usr/kernel/drv/tmux.conf
  usr/kernel/drv/lo
  usr/kernel/drv/tidg
  usr/kernel/drv/tivc
  usr/kernel/drv/tmux
  usr/kernel/strmod/lmodb
  usr/kernel/strmod/lmode
  usr/kernel/strmod/lmodr
  usr/kernel/strmod/lmodt
  usr/kernel/drv/amd64/lo
  usr/kernel/drv/amd64/tidg
  usr/kernel/drv/amd64/tivc
  usr/kernel/drv/amd64/tmux
  usr/kernel/strmod/amd64/lmodb
  usr/kernel/strmod/amd64/lmode
  usr/kernel/strmod/amd64/lmodr
  usr/kernel/strmod/amd64/lmodt
  usr/kernel/drv/sparcv9/lo
  usr/kernel/drv/sparcv9/tidg
  usr/kernel/drv/sparcv9/tivc
  usr/kernel/drv/sparcv9/tmux
  usr/kernel/strmod/sparcv9/lmodb
  usr/kernel/strmod/sparcv9/lmode
  usr/kernel/strmod/sparcv9/lmodr
  usr/kernel/strmod/sparcv9/lmodt

  don't build

sparc only:

* SUNWcakr.u:

  platform/SUNW,Netra-T4/kernel/drv/lombus.conf
  platform/SUNW,Netra-T4/kernel/drv/sparcv9/lombus
  platform/SUNW,Sun-Blade-100/kernel/drv/grppm.conf
  platform/SUNW,Sun-Blade-100/kernel/drv/sparcv9/grppm
  platform/SUNW,Ultra-250/kernel/drv/sparcv9/envctrltwo
  platform/SUNW,Ultra-Enterprise/kernel/drv/sparcv9/central
  platform/sun4u/kernel/drv/rmclomv.conf
  platform/sun4u/kernel/drv/sparcv9/rmclomv

  move to new packages, but perhaps they can be opened instead?

* SUNWifp:

  kernel/drv/ifp.conf
  kernel/drv/sparcv9/ifp

  don't build

* SUNWifph:

  usr/include/sys/scsi/adapters/ifpcmd.h
  usr/include/sys/scsi/adapters/ifpmail.h
  usr/include/sys/scsi/adapters/ifpreg.h
  usr/include/sys/scsi/adapters/ifpvar.h

  don't build

* SUNWjcom:

  usr/lib/smartcard/libSolarisSerialParallel.so.1
  usr/share/lib/smartcard/comm.jar

* SUNWjib:

  usr/share/lib/smartcard/ibutton.jar

  don't build

* SUNWkvm.u:

  usr/platform/sun4u/lib/cfgadm/sysctrl.so.1
  usr/platform/sun4u/lib/cfgadm/ac.so.1
  usr/platform/sun4u/lib/cfgadm/sparcv9/sysctrl.so.1
  usr/platform/sun4u/lib/cfgadm/sparcv9/ac.so.1

  don't build, but again perhaps the sources can be opened

* SUNWluxl:

  kernel/drv/sparcv9/socal

  don't build

* SUNWonmtst.u:

  platform/sun4u/kernel/drv/memtest.conf
  platform/sun4u/kernel/drv/sparcv9/memtest
  usr/platform/sun4u/include/sys/memtestio.h
  usr/platform/sun4u/include/sys/memtestio_u.h
  usr/platform/sun4u/include/sys/memtestio_ch.h
  usr/platform/sun4u/include/sys/memtestio_chp.h
  usr/platform/sun4u/include/sys/memtestio_ja.h
  usr/platform/sun4u/include/sys/memtestio_jg.h
  usr/platform/sun4u/include/sys/memtestio_oc.h
  usr/platform/sun4u/include/sys/memtestio_pn.h
  usr/platform/sun4u/include/sys/memtestio_sf.h
  usr/platform/sun4u/include/sys/memtestio_sr.h
  usr/bin/mtst

  don't build

* SUNWonmtst.v:

  platform/sun4v/kernel/drv/memtest.conf
  platform/sun4v/kernel/drv/sparcv9/memtest
  usr/platform/sun4v/include/sys/memtestio.h
  usr/platform/sun4v/include/sys/memtestio_v.h
  usr/platform/sun4v/include/sys/memtestio_ni.h
  usr/bin/mtst

  don't build

* SUNWpdu:

  usr/include/sys/scsi/adapters/glmvar.h
  usr/include/sys/scsi/adapters/glmreg.h
  usr/include/sys/scsi/adapters/mptvar.h
  usr/include/sys/scsi/adapters/mptreg.h

  don't build

* SUNWscmhdlr:

  usr/lib/smartcard/ifdh_scmi2c.so.1

  don't build

* SUNWstc.u:

  platform/sun4u/kernel/drv/sparcv9/scmi2c

  don't build

* SUNWwrsd.u:

  platform/sun4u/kernel/drv/wrsmd.conf
  platform/sun4u/kernel/drv/sparcv9/wrsmd

  don't build

x86 only:

* SUNWcakr.i:

  platform/i86pc/kernel/drv/amd64/bmc
  platform/i86pc/kernel/drv/bmc
  platform/i86pc/kernel/drv/bmc.conf

  create new SUNWbmc

* SUNWonmtst.i:

  usr/bin/mtst

  don't build

* SUNWos86r:

  kernel/drv/pcn
  kernel/drv/pcn.conf
  kernel/drv/spwr
  kernel/drv/spwr.conf
  kernel/drv/amd64/pcn

  create new SUNWpcn, SUNWspwr

* SUNWpsdir:

  platform/i86pc/kernel/drv/sbpro
  platform/i86pc/kernel/drv/sbpro.conf

  create new SUNWsbpro

* SUNWpsh:

  usr/include/sys/sbpro.h

  create new SUNWsbproh

It may seem strange to create separate *h packages that contain only a
single or just a few headers, but unfortunately those headers cannot be
included in the corresponding driver packages since those install into /
(SUNW_PKGTYPE=root), while the headers go into /usr/include
(SUNW_PKGTYPE=usr).  They need to be kept separate to allow for diskless
clients and sparse-root zones.

The question is: is the proposed creation (and granularity) of new packages
a reasonable thing to do, and are there additional issues to consider?
Mike mentioned that this splitting of existing packages into several new
ones might cause problems for upgrades, but this doesn't seem to be handled
in the currently distributed O/N sources (probably that's done in the
still-closed parts of the install/admin consolidation).

        Rainer

-----------------------------------------------------------------------------
Rainer Orth, Faculty of Technology, Bielefeld University

Reply via email to