VirtualBox

Changeset 57969 in vbox for trunk


Ignore:
Timestamp:
Sep 30, 2015 2:48:47 PM (10 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
102965
Message:

Installers/linux: drop DKMS support.

Location:
trunk/src/VBox
Files:
4 deleted
24 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Additions/common/VBoxGuest/Makefile.kmk

    r56294 r57969  
    201201 vboxguest-src_SOURCES  = $(subst ",,$(FILES_VBOXGUEST_NOBIN))
    202202
    203  INSTALLS += vboxguest-conf
    204  vboxguest-conf_INST    = $(INST_ADDITIONS)src/
    205  vboxguest-conf_MODE    = a+r,u+w
    206  vboxguest-conf_SOURCES = $(vboxguest-sh_0_OUTDIR)/dkms.conf
    207  vboxguest-conf_CLEAN   = $(vboxguest-sh_0_OUTDIR)/dkms.conf
    208 
    209203 INSTALLS += vboxguest-scripts
    210204 vboxguest-scripts_INST    = $(INST_ADDITIONS)src/
    211205 vboxguest-scripts_MODE    = a+rx,u+w
    212  vboxguest-scripts_SOURCES = ../../../HostDrivers/linux/do_dkms \
    213                              ../../../HostDrivers/linux/build_in_tmp
    214 
    215  $$(vboxguest-sh_0_OUTDIR)/dkms.conf: \
    216                 $(PATH_SUB_CURRENT)/linux/dkms.conf \
    217                 $(VBOX_VERSION_STAMP) \
    218                 | $$(dir $$@)
    219         $(call MSG_TOOL,Creating,,$@)
    220         $(QUIET)$(SED) \
    221                 -e "s;_VERSION_;${VBOX_VERSION_STRING};g" \
    222                 -e "s;_BUILDTYPE_;$(KBUILD_TYPE);g" \
    223                 --output $@ $<
     206 vboxguest-scripts_SOURCES = ../../../HostDrivers/linux/build_in_tmp
    224207
    225208 # scripts.
     
    228211 vboxguest-sh_MODE      = a+rx,u+w
    229212 vboxguest-sh_SOURCES   = $(subst ",,$(FILES_VBOXGUEST_BIN))
    230  vboxguest-sh_SOURCES  += $(PATH_ROOT)/src/VBox/HostDrivers/linux/do_Module.symvers
    231213
    232214endif # Linux
  • trunk/src/VBox/Additions/linux/Makefile

    r44528 r57969  
    1818ifneq ($(KBUILD_EXTMOD),)
    1919
    20 # DKMS
     20# Building from kBuild (make -C <kernel_directory> M=`pwd`).
     21# KBUILD_EXTMOD is set to $(M) in this case.
    2122
    2223obj-m = vboxguest/ vboxsf/ vboxvideo/
  • trunk/src/VBox/Additions/linux/Makefile.kmk

    r56301 r57969  
    156156        vboxvideo_drv.o
    157157
    158 VBOX_ADD_KMOD_FILES = $(addprefix vboxguest-$(VBOX_VERSION_STRING)/, Makefile dkms.conf do_dkms build_in_tmp)
     158VBOX_ADD_KMOD_FILES = $(addprefix vboxguest-$(VBOX_VERSION_STRING)/, Makefile build_in_tmp)
    159159VBOX_ADD_KMOD_DIRS =  $(addprefix vboxguest-$(VBOX_VERSION_STRING)/, vboxguest/ vboxsf/ vboxvideo/)
    160160
     
    366366        $(VBOX_REL_LNX_ADD_INST)deffiles
    367367LnxAdd-scripts_EXEC_SOURCES  = \
    368         $(VBOX_REL_LNX_HOST_DRV)do_dkms \
    369368        $(VBOX_REL_LNX_INST_SRC)routines.sh \
    370369        $(VBOX_REL_LNX_ADD_INST)vboxadd.sh=>vboxadd \
  • trunk/src/VBox/Additions/linux/drm/Makefile.kmk

    r56301 r57969  
    3232        $(subst $(DQUOTE),,$(FILES_VBOXVIDEO_DRM_NOBIN))
    3333vboxvideo_drm-mod_EXEC_SOURCES = \
    34         $(subst $(DQUOTE),,$(FILES_VBOXVIDEO_DRM_BIN)) \
    35         $(PATH_ROOT)/src/VBox/HostDrivers/linux/do_Module.symvers
     34        $(subst $(DQUOTE),,$(FILES_VBOXVIDEO_DRM_BIN))
    3635
    3736
  • trunk/src/VBox/Additions/linux/installer/vboxadd.sh

    r57945 r57969  
    277277cleanup_modules()
    278278{
    279     if [ -n "$(which dkms 2>/dev/null)" ]; then
    280         begin "Removing existing VirtualBox DKMS kernel modules"
    281         $DODKMS uninstall $OLDMODULES > $LOG
    282         succ_msg
    283     fi
    284     begin "Removing existing VirtualBox non-DKMS kernel modules"
     279    begin "Removing existing VirtualBox kernel modules"
     280    # We no longer support DKMS, remove any leftovers.
     281    for i in vboxguest vboxadd vboxsf vboxvfs vboxvideo; do
     282        rm -rf "/var/lib/dkms/${i}"*
     283    done
    285284    for i in $OLDMODULES; do
    286285        find /lib/modules -name $i\* | xargs rm 2>/dev/null
     
    295294    cleanup_modules
    296295    begin "Building the VirtualBox Guest Additions kernel modules"
    297 
    298     # Short cut out if a dkms build succeeds
    299     if [ -n "$(which dkms 2>/dev/null)" ] &&
    300        $DODKMS install vboxguest $INSTALL_VER >> $LOG 2>&1; then
    301         succ_msg
    302         return 0
    303     fi
    304296
    305297    test_for_gcc_and_make
     
    424416    MODULE_SRC="$INSTALL_DIR/src/vboxguest-$INSTALL_VER"
    425417    BUILDINTMP="$MODULE_SRC/build_in_tmp"
    426     DODKMS="$MODULE_SRC/do_dkms"
    427418    chcon -t bin_t "$BUILDINTMP" > /dev/null 2>&1
    428     chcon -t bin_t "$DODKMS"     > /dev/null 2>&1
    429419
    430420    setup_modules
     
    447437      test -n "$INSTALL_DIR" -a -n "$INSTALL_VER" ||
    448438        fail "Configuration file $config not complete"
    449       DODKMS="$INSTALL_DIR/src/vboxguest-$INSTALL_VER/do_dkms"
    450     elif test -x ./do_dkms; then  # Executing as part of the installer...
    451       DODKMS=./do_dkms
    452439    else
    453440      fail "Configuration file $config not found"
  • trunk/src/VBox/Additions/linux/sharedfolders/Makefile.kmk

    r56301 r57969  
    2929        $(subst $(DQUOTE),,$(FILES_VBOXSF_NOBIN))
    3030vboxsf-mod_EXEC_SOURCES = \
    31         $(subst $(DQUOTE),,$(FILES_VBOXSF_BIN)) \
    32         $(PATH_ROOT)/src/VBox/HostDrivers/linux/do_Module.symvers
     31        $(subst $(DQUOTE),,$(FILES_VBOXSF_BIN))
    3332
    3433
  • trunk/src/VBox/HostDrivers/Support/Makefile.kmk

    r57771 r57969  
    698698 vboxdrv-mod_EXEC_SOURCES  = \
    699699        $(subst $(DQUOTE),,$(FILES_VBOXDRV_BIN))
    700  vboxdrv-mod_EXEC_SOURCES.linux = \
    701         $(PATH_ROOT)/src/VBox/HostDrivers/$(KBUILD_TARGET)/do_Module.symvers
    702700 vboxdrv-mod_CLEAN   = \
    703701        $(vboxdrv-mod_0_OUTDIR)/Makefile \
  • trunk/src/VBox/HostDrivers/VBoxNetAdp/Makefile.kmk

    r56293 r57969  
    162162        $(subst $(DQUOTE),,$(VBOX_VBOXNETADP_SOURCES)) \
    163163        $(VBoxNetAdp-src_0_OUTDIR)/Makefile
    164  VBoxNetAdp-src_EXEC_SOURCES = \
    165         $(PATH_ROOT)/src/VBox/HostDrivers/linux/do_Module.symvers
    166164 VBoxNetAdp-src_CLEAN = \
    167165        $(VBoxNetAdp-src_0_OUTDIR)/Makefile \
  • trunk/src/VBox/HostDrivers/VBoxNetFlt/Makefile.kmk

    r56846 r57969  
    511511        $(subst $(DQUOTE),,$(VBOX_VBOXNETFLT_SOURCES)) \
    512512        $(VBoxNetFlt-src_0_OUTDIR)/Makefile
    513  VBoxNetFlt-src_EXEC_SOURCES = \
    514         $(PATH_ROOT)/src/VBox/HostDrivers/linux/do_Module.symvers
    515513 VBoxNetFlt-src_CLEAN   = \
    516514        $(VBoxNetFlt-src_0_OUTDIR)/Makefile \
  • trunk/src/VBox/HostDrivers/VBoxPci/Makefile.kmk

    r56293 r57969  
    5252        $(subst $(DQUOTE),,$(VBOX_VBOXPCI_SOURCES)) \
    5353        $(VBoxPci-src_0_OUTDIR)/Makefile
    54  VBoxPci-src_EXEC_SOURCES = \
    55         $(PATH_ROOT)/src/VBox/HostDrivers/linux/do_Module.symvers
    5654 VBoxPci-src_CLEAN      = \
    5755        $(VBoxPci-src_0_OUTDIR)/Makefile \
  • trunk/src/VBox/HostDrivers/linux/Makefile

    r56293 r57969  
    1818ifneq ($(KBUILD_EXTMOD),)
    1919
    20 # DKMS
     20# Building from kBuild (make -C <kernel_directory> M=`pwd`).
     21# KBUILD_EXTMOD is set to $(M) in this case.
    2122
    2223obj-m = vboxdrv/
     
    3233else # ! KBUILD_EXTMOD
    3334
    34 # convenience Makefile without DKMS
     35# convenience Makefile without KBUILD_EXTMOD
    3536
    3637KBUILD_VERBOSE =
  • trunk/src/VBox/HostDrivers/linux/Makefile.kmk

    r56293 r57969  
    2222HostDrivers-scripts_INST        = $(INST_DIST)
    2323HostDrivers-scripts_SOURCES     = \
    24         Makefile=>src/Makefile \
    25         $(HostDrivers-scripts_0_OUTDIR)/dkms.conf=>src/dkms.conf
     24        Makefile=>src/Makefile
    2625HostDrivers-scripts_EXEC_SOURCES = \
    2726        loadall.sh \
    2827        load.sh \
    29         do_dkms=>src/do_dkms \
    3028        build_in_tmp=>src/build_in_tmp
    31 HostDrivers-scripts_CLEAN       = \
    32         $(HostDrivers-scripts_0_OUTDIR)/dkms.conf
    33 
    34 $$(HostDrivers-scripts_0_OUTDIR)/dkms.conf: \
    35                 $(PATH_SUB_CURRENT)/dkms.conf \
    36                 $(VBOX_VERSION_STAMP) \
    37                 | $$(dir $$@)
    38         $(call MSG_TOOL,Creating,,$@)
    39         $(QUIET)$(SED) \
    40                 -e "s;_VERSION_;${VBOX_VERSION_STRING};g" \
    41                 -e "s;_OMIT_VBOXNETFLT_;$(if $(VBOX_WITH_NETFLT),,#);g" \
    42                 -e "s;_OMIT_VBOXNETADP_;$(if $(VBOX_WITH_NETADP),,#);g" \
    43                 -e "s;_OMIT_VBOXPCI_;$(if $(VBOX_WITH_PCI_PASSTHROUGH),,#);g" \
    44                 --output $@ $<
    4529
    4630include $(FILE_KBUILD_SUB_FOOTER)
  • trunk/src/VBox/HostDrivers/linux/build_in_tmp

    r56293 r57969  
    33#
    44# Script to build a kernel module in /tmp. Useful if the module sources
    5 # are installed in read-only directory. Not for DKMS!
     5# are installed in read-only directory.
    66#
    77# Copyright (C) 2007-2015 Oracle Corporation
  • trunk/src/VBox/Installer/linux/Makefile.include.footer

    r56299 r57969  
    8888endif # eq($(MAKECMDGOALS),clean)
    8989
    90 # important: Don't remove Module.symvers! DKMS does 'make clean' before building ...
    9190clean:
    9291        for f in $(MOD_CLEAN); do rm -f $$f/*.o $$f/.*.cmd $$f/.*.flags; done
  • trunk/src/VBox/Installer/linux/debian/control

    r55078 r57969  
    1818Pre-Depends: debconf (>= 1.1) | debconf-2.0
    1919Depends: ${shlibs:Depends}, debconf (>= 0.5) | debconf-2.0, psmisc, adduser
    20 Recommends: ${alsa}, ${pulse}, ${sdlttf}, ${dkms},
    21   linux-headers, gcc, make, binutils,
     20Recommends: ${alsa}, ${pulse}, ${sdlttf}, kmod | kldutils | module-init-tools,
     21  linux-headers-generic | linux-headers-generic-pae | linux-headers-686-pae | linux-headers-amd64 | linux-headers-2.6-686 | linux-headers-2.6-amd64 | linux-headers,
     22  linux-image, gcc, make | build-essential | dpkg-dev, binutils,
    2223  pdf-viewer, libgl1
    2324Provides: virtualbox
  • trunk/src/VBox/Installer/linux/debian/postinst.in

    r57888 r57969  
    120120
    121121# Install and start the new service scripts.
    122 PRERM_DKMS=
    123 test "${REGISTER_MODULES}" = 1 && PRERM_DKMS="--dkms %VER%"
    124122POSTINST_START=--start
    125123test "${INSTALL_NO_VBOXDRV}" = 1 && POSTINST_START=
    126 /usr/lib/virtualbox/prerm-common.sh ${PRERM_DKMS} || true
     124/usr/lib/virtualbox/prerm-common.sh || true
    127125/usr/lib/virtualbox/postinst-common.sh /usr/lib/virtualbox "${POSTINST_START}" > /dev/null || true
    128126
  • trunk/src/VBox/Installer/linux/debian/prerm.in

    r57888 r57969  
    3030db_capb backup
    3131
    32 if ! /usr/lib/virtualbox/prerm-common.sh --dkms %VER% > /dev/null 2>&1; then
     32if ! /usr/lib/virtualbox/prerm-common.sh > /dev/null 2>&1; then
    3333  if [ "$1" != "failed-upgrade" ]; then
    3434    db_fset virtualbox/old-running seen false || true
  • trunk/src/VBox/Installer/linux/debian/rules

    r57888 r57969  
    293293          -Valsa=$(if $(HEADLESS),,libasound2) \
    294294          -Vpulse=$(if $(HEADLESS),,libpulse0) \
    295           -Vsdlttf=$(if $(HEADLESS),,libsdl-ttf2.0-0) \
    296           -Vdkms=$(if $(filter _Debian_lenny,$(debrel)),,dkms)
     295          -Vsdlttf=$(if $(HEADLESS),,libsdl-ttf2.0-0)
    297296        dh_md5sums
    298297        dh_builddeb --destdir $(pkgdir) -- \
  • trunk/src/VBox/Installer/linux/install.sh

    r57940 r57969  
    4343ACTION=""
    4444SELF=$1
    45 DKMS=`which dkms 2> /dev/null`
    4645RC_SCRIPT=0
    4746if [ -n "$HARDENED" ]; then
     
    216215
    217216    # Remove previous installation
    218     if [ ! "$VERSION" = "$INSTALL_VER" -a ! "$BUILD_MODULE" = "true" -a -n "$DKMS" ]
    219     then
    220         # Not doing this can confuse dkms
    221         info "Rebuilding the kernel module after version change"
    222         BUILD_MODULE=true
    223     fi
    224217    test "${BUILD_MODULE}" = true || VBOX_DONT_REMOVE_OLD_MODULES=1
    225218
  • trunk/src/VBox/Installer/linux/postinst-common.sh

    r57712 r57969  
    5151fi
    5252
     53# Remove any traces of DKMS from previous installations.
     54for i in vboxhost vboxdrv vboxnetflt vboxnetadp; do
     55    rm -rf "/var/lib/dkms/${i}"*
     56done
     57
    5358# Install runlevel scripts and systemd unit files
    5459install_init_script "${TARGET}/vboxdrv.sh" vboxdrv
  • trunk/src/VBox/Installer/linux/prerm-common.sh

    r57868 r57969  
    3131. "./routines.sh"
    3232
    33 DO_DKMS=
    34 VERSION=
    35 while true
    36 do
    37     test -z "${1}" && break
    38     case "${1}" in
    39         --dkms)
    40             DO_DKMS=true
    41             shift
    42             VERSION="${1}"
    43             if test -z "${VERSION}"; then
    44                 echo "--dkms requires a version"
    45                 exit 1
    46             fi
    47             ;;
    48         *)
    49             echo "Bad argument ${1}" >&2
    50             exit 1
    51             ;;
    52     esac
    53     shift
    54 done
    55 
    5633# Stop the ballon control service
    5734stop_init_script vboxballoonctrl-service 2>/dev/null
     
    7350delrunlevel vboxweb-service
    7451remove_init_script vboxweb-service
    75 DKMS=`which dkms 2>/dev/null`
    76 if test "$DO_DKMS" = true && test -n "$DKMS"; then
    77   $DKMS remove -m vboxhost -v "${VERSION}" --all > /dev/null 2>&1
    78   $DKMS remove -m vboxdrv -v "${VERSION}" --all > /dev/null 2>&1
    79   $DKMS remove -m vboxnetflt -v "${VERSION}" --all > /dev/null 2>&1
    80   $DKMS remove -m vboxnetadp -v "${VERSION}" --all > /dev/null 2>&1
    81 fi
    8252# Stop kernel module and uninstall runlevel script
    8353stop_init_script vboxdrv 2>/dev/null
  • trunk/src/VBox/Installer/linux/rpm/VirtualBox.tmpl.spec

    r57876 r57969  
    319319fi
    320320# Install and start the new service scripts.
    321 PRERM_DKMS=
    322 test "${REGISTER_MODULES}" = 1 && PRERM_DKMS="--dkms %VER%"
    323321POSTINST_START=--start
    324322test "${INSTALL_NO_VBOXDRV}" = 1 && POSTINST_START=
    325 /usr/lib/virtualbox/prerm-common.sh ${PRERM_DKMS} || true
     323/usr/lib/virtualbox/prerm-common.sh || true
    326324/usr/lib/virtualbox/postinst-common.sh /usr/lib/virtualbox "${POSTINST_START}" > /dev/null || true
    327325
     
    333331# $1>=1: upgrade
    334332if [ "$1" = 0 ]; then
    335   /usr/lib/virtualbox/prerm-common.sh --dkms || exit 1
     333  /usr/lib/virtualbox/prerm-common.sh || exit 1
    336334  rm -f /etc/udev/rules.d/60-vboxdrv.rules
    337335  rm -f /etc/vbox/license_agreed
  • trunk/src/VBox/Installer/linux/uninstall.sh

    r57940 r57969  
    3030check_root
    3131
    32 [ -z "$DKMS"       ]    && DKMS=`which dkms 2> /dev/null`
    3332[ -z "$CONFIG_DIR" ]    && CONFIG_DIR="/etc/vbox"
    3433[ -z "$CONFIG" ]        && CONFIG="vbox.cfg"
     
    5049# Do pre-removal common to all installer types, currently service script
    5150# clean-up.
    52 test "${BUILD_MODULE}" = true && DO_DKMS="--dkms ${INSTALL_VER}"
    53 `dirname $0`/prerm-common.sh ${DO_DKMS} || exit 1  # Arguments intentionally not quoted.
     51`dirname $0`/prerm-common.sh || exit 1  # Arguments intentionally not quoted.
    5452
    5553# Remove kernel module installed
    56 if [ -n "$DKMS" ]; then
    57     $DKMS remove -m vboxhost -v $INSTALL_VER --all > /dev/null 2>&1
    58 fi
    5954if [ -z "$VBOX_DONT_REMOVE_OLD_MODULES" ]; then
    6055    find /lib/modules/`uname -r` -name "vboxdrv\.*" 2>/dev/null|xargs rm -f 2> /dev/null
  • trunk/src/VBox/Installer/linux/vboxdrv.sh.in

    r57945 r57969  
    2727### END INIT INFO
    2828
    29 ## @todo get rid of the autogeneration, perhaps write "version" and "group" to
     29## @todo get rid of the autogeneration, perhaps write "group" to
    3030##       a configuration file in /etc
    3131
     
    3333DEVICE=/dev/vboxdrv
    3434LOG="/var/log/vbox-install.log"
    35 VERSION=%VERSION%
    3635MODPROBE=/sbin/modprobe
    3736SCRIPTNAME=vboxdrv
     
    5453fi
    5554BUILDINTMP="$MODULE_SRC/build_in_tmp"
    56 DODKMS="$MODULE_SRC/do_dkms"
    5755
    5856# silently exit if the package was uninstalled but not purged,
     
    236234{
    237235    stop
    238     DKMS=`which dkms 2>/dev/null`
    239     if [ -n "$DKMS" ]; then
    240       begin_msg "Uninstalling old VirtualBox DKMS kernel modules"
    241       $DODKMS uninstall vboxhost vboxdrv vboxnetflt vboxnetadp > $LOG
    242       succ_msg
    243     fi
    244236    if find /lib/modules/`uname -r` -name "vboxpci\.*" 2>/dev/null|grep -q vboxpci; then
    245237        begin_msg "Removing old VirtualBox pci kernel module"
     
    262254        succ_msg
    263255    fi
    264     if [ -n "$DKMS" ]; then
    265       begin_msg "Trying to register the VirtualBox kernel modules using DKMS"
    266       if ! $DODKMS install vboxhost $VERSION >> $LOG; then
    267         fail_msg "Failed, trying without DKMS"
    268         DKMS=""
    269       fi
    270     fi
    271     if [ -z "$DKMS" ]; then
    272       begin_msg "Recompiling VirtualBox kernel modules"
    273       if ! $BUILDINTMP \
    274           --save-module-symvers /tmp/vboxdrv-Module.symvers \
    275           --module-source "$MODULE_SRC/vboxdrv" \
    276           --no-print-directory install >> $LOG 2>&1; then
    277           failure "Look at $LOG to find out what went wrong"
    278       fi
    279       if ! $BUILDINTMP \
    280           --use-module-symvers /tmp/vboxdrv-Module.symvers \
    281           --module-source "$MODULE_SRC/vboxnetflt" \
    282           --no-print-directory install >> $LOG 2>&1; then
    283           failure "Look at $LOG to find out what went wrong"
    284       fi
    285       if ! $BUILDINTMP \
    286           --use-module-symvers /tmp/vboxdrv-Module.symvers \
    287           --module-source "$MODULE_SRC/vboxnetadp" \
    288           --no-print-directory install >> $LOG 2>&1; then
    289           failure "Look at $LOG to find out what went wrong"
    290       fi
    291       if ! $BUILDINTMP \
    292           --use-module-symvers /tmp/vboxdrv-Module.symvers \
    293           --module-source "$MODULE_SRC/vboxpci" \
    294           --no-print-directory install >> $LOG 2>&1; then
    295           failure "Look at $LOG to find out what went wrong"
    296       fi
     256    begin_msg "Recompiling VirtualBox kernel modules"
     257    if ! $BUILDINTMP \
     258        --save-module-symvers /tmp/vboxdrv-Module.symvers \
     259        --module-source "$MODULE_SRC/vboxdrv" \
     260        --no-print-directory install >> $LOG 2>&1; then
     261        failure "Look at $LOG to find out what went wrong"
     262    fi
     263    if ! $BUILDINTMP \
     264        --use-module-symvers /tmp/vboxdrv-Module.symvers \
     265        --module-source "$MODULE_SRC/vboxnetflt" \
     266        --no-print-directory install >> $LOG 2>&1; then
     267        failure "Look at $LOG to find out what went wrong"
     268    fi
     269    if ! $BUILDINTMP \
     270        --use-module-symvers /tmp/vboxdrv-Module.symvers \
     271        --module-source "$MODULE_SRC/vboxnetadp" \
     272        --no-print-directory install >> $LOG 2>&1; then
     273        failure "Look at $LOG to find out what went wrong"
     274    fi
     275    if ! $BUILDINTMP \
     276        --use-module-symvers /tmp/vboxdrv-Module.symvers \
     277        --module-source "$MODULE_SRC/vboxpci" \
     278        --no-print-directory install >> $LOG 2>&1; then
     279        failure "Look at $LOG to find out what went wrong"
    297280    fi
    298281    rm -f /etc/vbox/module_not_compiled
Note: See TracChangeset for help on using the changeset viewer.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette