Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8025836

Renamed ancestor of obsolete packages must be marked obsolete

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: P3 P3
    • 6u71
    • 6
    • install
    • b01
    • b04
    • generic
    • solaris_11
    • Verified

      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.
      ----------------------------------------------------------------------------

            miroslawzn Miroslaw Niemiec (Inactive)
            miroslawzn Miroslaw Niemiec (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: