JDK-8025836 : Renamed ancestor of obsolete packages must be marked obsolete
  • Type: Bug
  • Component: install
  • Affected Version: 6
  • Priority: P3
  • Status: Closed
  • Resolution: Fixed
  • OS: solaris_11
  • CPU: generic
  • Submitted: 2013-10-02
  • Updated: 2015-04-13
  • Resolved: 2013-10-21
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
JDK 6
6u71 b04Fixed
Description
In order to remove a package, it must be marked obsolete.
Also any packages which are renamed ancestors of  this package must be
marked obsolete and their rename dependencies must be removed.


Those packages which have been renamed to the now to be obsoleted
packages now themselves need to be obsoleted which essentially means
put the same info into them as per the packages being obsoleted.

From the ON README.pkg (usr/src/pkg/README.pkg):

To remove a package, you must mark it as obsolete.  You must *also* mark
as obsolete any packages which are renamed ancestors of this package, and
remove their rename dependencies.  Here is what you must do.

For example, to find rename ancestors of 'system/zones', do the following:

    $ mypkgname=system/zones
    $ pkg search -pr :depend:require:$mypkgname AND ::pkg.renamed:true
    PACKAGE                                 PUBLISHER
    pkg:/SUNWzone@0.5.11-0.133              solaris
    pkg:/system/zones/internal@0.5.11-0.171 solaris

For packages that were renamed prior to the last release boundary, we
occasionally clean out manifests.defunct and list the defunct package
fmris in usr/src/pkg/osnet[-internal]-history.p5m.  You should never
need to add a line to this file, but you may occasionally remove one:
if you find the fmri of a renamed ancestor listed in one of these
files, you should simply remove it and create the obsolete package
manifest in manifests.defunct as described below.

Once you have the renamed ancestor list, for *each* of the packages (the
newly obsolete package, and its renamed ancestors), edit the package as
follows:

        Move the manifest to manifests.defunct/ or, if you found the
        fmri via pkg search, create a new manifest in manifests.defunct/.

        Update 'set name=pkg.fmri' with the version set explicitly to the
            build you're integrating into.

        Add 'set name=pkg.obsolete value=true'.

        Maintain the architecture and variant declarations in the
            package you are obsoleting.  Note that you must obsolete a
            package on all architectures and variants simultaneously.

            If you found the fmri via pkg search, you can figure
            out the appropriate variant.arch setting using pkg
            contents.  For example

                pkg contents -r -m SUNWtavor | fgrep variant

            If you see only one value for variant.arch, preserve it in
            your defunct manifest.  If you see multiple values, then
            use

                set name=variant.arch value=$(ARCH)

        Preserve any of the following actions if present:

            set name=org.opensolaris.redist
            set name=org.opensolaris.noincorp

        For fmris from the osnet-history.p5m file, you should not set
        org.opensolaris.redist.  For fmris from the
        osnet-internal-history.p5m file, you should set

            set name=org.opensolaris.redist value=internal

        Delete everything else.

        If the package is a renamed ancestor, leave a comment behind as
        follows:

           # Was renamed to <other-pkg-name>, both now obsolete.

Fix description:
===========

I have added new packages to a list of obsoleted packages included in
SVR4 to IPS conversion script.

Previously the list of obsoleted packages was containing 5 packages:

       runtime/java/jre-6
    developer/java/jdk-6
    library/java/java-demo-6
    SUNWj6dev
    SUNWj6rt

I have added following packages:

renames to library/java/java-demo-6:
library/java/demo
library/java/demo64

renames to developer/java/jdk-6: 
developer/java/jdk64

renames to runtime/java/jre-6:
library/java/manual/locale/ja
library/java/manual 
runtime/java/runtime64 

renames to any packages listed above:
SUNWj6cfg renamed to  library/java/host-config
SUNWj6dmo renamed to  library/java/demo
SUNWj6dmx renamed to  library/java/demo64
SUNWj6dvx renamed to  developer/java/jdk64
SUNWj6jmp renamed to  library/java/manual/locale/ja
SUNWj6man renamed to  library/java/manual
SUNWj6rtx renamed to  runtime/java/runtime64
SUNWjhrt  renamed to  library/java/javahelp


below packages:
developer/java/jdk 
library/java/java-demo 
runtime/java

are not  included on the obsoleted list since
these packages allow customers to install the jdk, jre, or java-demos
and have the system automatically update them to the latest version of Java available as new versions are released.
(see https://bugs.openjdk.java.net/browse/JDK-8023053)

----------------------------------------------------------------------------------
Sample call of  SVR4 to IPS conversion script:
make-ips.sh 0 6 -S 5.12.0.0.0.24.0 -v 1.6.0.99 -o 5.12 -O

-O  (capital O) means to generate obsolete package.
-o is Solaris version
-v java verion (6u99 - very high 6 update to be obsolete)

First parameter is 0 (zero) means that SVR4 packages will not be needed to convert as we create an obsolete IPS package. 
---------------------------------------------------------------------------- 


Comments
pushed to: http://closedjdk.us.oracle.com/jdk6u/jdk6u-cpu/install/rev/94de00ec1620
21-10-2013

SA request: http://sa.sfbay.sun.com/mail-archive/8025836-cpu-review/
21-10-2013