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