OSDN Git Service

[NEW] Option -f and command destroy are added to portsreinstall-chroot.
authorMamoru Sakaue / MwGhennndo <glmwghennndo@users.sourceforge.jp>
Mon, 20 Aug 2018 14:35:40 +0000 (22:35 +0800)
committerMamoru Sakaue / MwGhennndo <glmwghennndo@users.sourceforge.jp>
Mon, 20 Aug 2018 14:35:40 +0000 (22:35 +0800)
[NEW] Option -j is added.

 Changes to be committed:
modified:   lib/chroot/libcommand.sh
modified:   lib/chroot/libcommand_do.sh
modified:   lib/chroot/libdatabase_maintain.sh
modified:   lib/chroot/liboptions.sh
modified:   lib/chroot/libusage.sh
modified:   lib/libcommand_do.sh
modified:   lib/main/liboptions.sh
modified:   lib/main/libusage.sh
modified:   man/portsreinstall-chroot.8
modified:   man/portsreinstall.8
modified:   lib/libmain.sh

lib/chroot/libcommand.sh
lib/chroot/libcommand_do.sh
lib/chroot/libdatabase_maintain.sh
lib/chroot/liboptions.sh
lib/chroot/libusage.sh
lib/libcommand_do.sh
lib/main/liboptions.sh
lib/main/libusage.sh
man/portsreinstall-chroot.8
man/portsreinstall.8

index 56ae638..cb5e728 100644 (file)
@@ -27,7 +27,7 @@ command_all_exec_before_db_creation ()
                _command_parse_args__chk_no_arg $#
                case $COMMAND_OPERATION in
                force )
-                       database_maintain_destroy_force
+                       database_maintain_clean_force
                        exit
                        ;;
                esac
@@ -58,7 +58,7 @@ command_all_parse_args ()
                COMMAND_RESTART=$COMMAND_MODE
                misc_chk_privilege
                ;;
-       do | mount | unmount | enter | sync )
+       do | mount | unmount | enter | sync | destroy )
                misc_chk_privilege
                _command_parse_args__chk_no_arg $#
                ;;
@@ -78,7 +78,13 @@ command_all_exec_before_tools_upgrade ()
 {
        case $COMMAND_MODE in
        clean )
+               database_maintain_clean
+               message_echo "Done"
+               exit
+               ;;
+       destroy )
                database_maintain_destroy
+               message_echo "Done"
                exit
                ;;
        unmount )
@@ -119,6 +125,9 @@ command_all_exec_main ()
        case $COMMAND_MODE in
        do)
                command_do_pre
+               command_do_starter_portsnap
+               command_do_starter_pkg
+               command_do_starter_init_resinst
                command_do_chroot_enter_if_incomplete
                command_do_post
                command_do_ending_process
index fbb8d54..3a8ab56 100644 (file)
@@ -25,8 +25,8 @@ command_do_get_recent_chroot_exit_status ()
        cat "${DBDIR}/recent_exit_status"
 }
 
-# ============= Enter the guest =============
-command_do_chroot_enter ()
+# ============= Enter the shell of the guest =============
+command_do_chroot_enter_shell ()
 {
        local shellcmd exitstatus
        message_cat <<eof
@@ -47,6 +47,25 @@ eof
                ;;
        esac
        chroot "$opt_basedir"/builder "$shellcmd"
+}
+
+# ============= Continue reinstallation in the guest =============
+command_do_chroot_enter_fullcourse ()
+{
+       local shellcmd exitstatus
+       [ $opt_batch_mode = yes ] && opt_quiet='-a '
+       chroot "$opt_basedir"/builder /usr/bin/env ${PROGRAM} -S $opt_quiet
+}
+
+# ============= Enter the guest =============
+command_do_chroot_enter ()
+{
+       if [ $opt_fullcourse = no ]
+       then
+               command_do_chroot_enter_shell
+       else
+               command_do_chroot_enter_fullcourse
+       fi
        exitstatus=$?
        echo "$exitstatus" > ${DBDIR}/recent_exit_status
        return $exitstatus
@@ -128,6 +147,7 @@ command_do_chroot_cleanup  ()
        _program_exec_and_record_completion__operation ()
        {
                fs_destroy
+               message_echo
        }
        program_exec_and_record_completion CLEANUP_GUEST
 }
@@ -149,16 +169,96 @@ command_do_chroot_postprocess ()
                fi
 }
 
+# ============= Starter process in the chroot environment: Update the ports tree =============
+command_do_starter_portsnap ()
+{
+       local PROGRAM_DEPENDS
+       PROGRAM_DEPENDS='CLEANUP_GUEST'
+       _program_exec_and_record_completion__operation ()
+       {
+               local mode stdout
+               [ $opt_fullcourse = no ] && return
+               message_section_title "Full course starter: Update the ports tree"
+               if [ -e "$opt_basedir/var/db/portsnap/INDEX" ]
+               then
+                       mode=update
+               else
+                       mode=extract
+               fi
+               if [ $opt_batch_mode = no ]
+               then
+                       stdout=/dev/stdout
+               else
+                       stdout=/dev/null
+               fi
+               chroot "$opt_basedir"/builder /usr/bin/env portsnap fetch $mode > $stdout
+               message_echo
+       }
+       program_exec_and_record_completion STARTER_GUEST_PORTS_TREE
+}
+
+# ============= Starter process in the chroot environment: Update the package repository =============
+command_do_starter_pkg ()
+{
+       local PROGRAM_DEPENDS
+       PROGRAM_DEPENDS='STARTER_GUEST_PORTS_TREE'
+       _program_exec_and_record_completion__operation ()
+       {
+               local opts
+               [ $opt_fullcourse = no ] && return
+               message_section_title "Full course starter: Update the package repository"
+               if [ $opt_batch_mode = no ]
+               then
+                       opts=
+               else
+                       opts='-q'
+               fi
+               chroot "$opt_basedir"/builder /usr/bin/env pkg update $opts
+               message_echo
+       }
+       program_exec_and_record_completion STARTER_GUEST_PKG_REPO
+}
+
+# ============= Starter process in the chroot environment: Initiate the reinstallation process =============
+command_do_starter_init_resinst ()
+{
+       local PROGRAM_DEPENDS
+       PROGRAM_DEPENDS='STARTER_GUEST_PKG_REPO'
+       _program_exec_and_record_completion__operation ()
+       {
+               local exitstatus
+               [ $opt_fullcourse = no ] && return
+               message_section_title "Full course starter: Initiate the reinstallation process"
+               if [ $opt_batch_mode = no ]
+               then
+                       opts='-CGSYjqx'
+               else
+                       opts='-CGSajqx'
+               fi
+               if ! chroot "$opt_basedir"/builder /usr/bin/env ${PROGRAM} $opts
+               then
+                       exitstatus=$?
+                       message_echo "INFO: The last exit status in the builder chroot environment was non-zero." >&2
+                       command_do_chk_unionfs_error_at_chroot && \
+                               message_echo "INFO: Executing ${APPNAME} again may be sufficient for the troubleshooting." >&2
+                       exit $exitstatus
+               fi
+               command_do_chroot_postprocess
+               program_register_stage_complete UPGRADE_GUEST
+               message_echo
+       }
+       program_exec_and_record_completion STARTER_GUEST_INIT_REINST
+}
+
 # ============= Enter the chroot environment =============
 command_do_chroot_enter_if_incomplete ()
 {
        local PROGRAM_DEPENDS
        command_do_chk_build_completion || program_deregister_stage_complete UPGRADE_GUEST
-       PROGRAM_DEPENDS='CLEANUP_GUEST'
+       PROGRAM_DEPENDS='STARTER_GUEST_INIT_REINST'
        _program_exec_and_record_completion__operation ()
        {
                local exitstatus
-               message_echo
                if ! command_do_chroot_enter
                then
                        exitstatus=`command_do_get_recent_chroot_exit_status`
@@ -168,6 +268,7 @@ command_do_chroot_enter_if_incomplete ()
                        exit $exitstatus
                fi
                command_do_chroot_postprocess
+               message_echo
        }
        program_exec_and_record_completion UPGRADE_GUEST
 }
@@ -181,7 +282,6 @@ command_do_auto_if_incomplete ()
        _program_exec_and_record_completion__operation ()
        {
                local exitstatus
-               message_echo
                until command_do_chroot_auto "$@" || ! command_do_chk_unionfs_error_at_chroot
                do
                        message_echo "INFO: Retrying by re-mounting the file systems for the builder chroot environment." >&2
@@ -191,6 +291,7 @@ command_do_auto_if_incomplete ()
                exitstatus=`command_do_get_recent_chroot_exit_status`
                [ "$exitstatus" -gt 0 ] && exit $exitstatus
                command_do_chroot_postprocess
+               message_echo
        }
        program_exec_and_record_completion UPGRADE_GUEST "$@"
 }
index 0600af4..3998a3a 100644 (file)
@@ -12,15 +12,20 @@ database_maintain_destroy ()
 {
        message_echo "Starting to clean up the builder chroot environment..."
        fs_destroy
+}
+
+# ============= Destroy the builder chroot environment and clean up the temporary database =============
+database_maintain_clean ()
+{
+       database_maintain_destroy
        message_echo "Starting to clean up the temporary database..."
        command_exec_without_pkgtools__notify_reset_options
        rm -rf "${DBDIR}"
-       message_echo "Done"
 }
 
 # ============= Forcibly destroy the builder chroot environment and clean up the temporary database =============
-database_maintain_destroy_force ()
+database_maintain_clean_force ()
 {
        [ -e "${DBDIR}/saved_options.sh" ] && . "${DBDIR}/saved_options.sh"
-       database_maintain_destroy
+       database_maintain_clean
 }
index 3435286..ba63846 100644 (file)
@@ -33,6 +33,7 @@ b     basedir opt_basedir     /home/.${APPNAME}       :
 c      suppress-clean-obsolete-database        opt_suppress_obsolete_db_clean  no      yes
 d      invalidate-mount-privilege      opt_invalidate_mount_privilege  no      yes
 e      extra-dirs      opt_extra_dirs  ''      :
+f      fullcourse      opt_fullcourse  no      yes
 p      load-pkgtoolsconf-as-default    opt_load_pkgtoolsconf   undef   default
 P      load-pkgtoolsconf-as-override   opt_load_pkgtoolsconf   undef   override
 Q      ignore-pkgtoolsconf     opt_load_pkgtoolsconf   undef   no
index 91b8a24..459bacf 100644 (file)
@@ -27,6 +27,7 @@ USAGE: portsreinstall-chroot [OPTIONS] [--] [command]
  -c : Suppress cleaning the temporary database even if its obsolete.
  -d : Forcibly invalidate the privilege of mounting/unmounting file systems.
  -e dir[,dir2[,...]] : Extra directories to mount for the chroot environment.
+ -f : Full course mode.
  -P : Import settings from pkgtools.conf(5) as the secondary if exists.
  -p : Import settings from pkgtools.conf(5) as the primary if exists (default).
  -Q : Ignore pkgtools.conf(5) even if it exists.
@@ -38,6 +39,7 @@ USAGE: portsreinstall-chroot [OPTIONS] [--] [command]
           | enter
           | mount | unmount
           | sync
+          | destroy
           | clean [normal] | clean force
           | options
  
index cde83bb..b9d10db 100644 (file)
@@ -1368,21 +1368,34 @@ command_do_main ()
                        message_echo
                fi
                
-               # Reinstallation of remained ports
-               command_do_reinstallation_of_remained_ports
-               
                if [ $opt_fetch_only = yes ]
                then
+                       # Reinstallation of remained ports
+                       command_do_reinstallation_of_remained_ports
+                       
                        message_echo "Completed the fetch only mode."
                        exit
+               elif [ $opt_delete_then_reinstall = no ]
+               then
+                       # Reinstallation of remained ports
+                       command_do_reinstallation_of_remained_ports
+                       
+                       # Restoration of obsolete and leaf packages which have been deinstalled but unselected from the deletion list again 
+                       command_do_restore_needed_obsolete_and_leaf_packages
+                       
+                       # Deinstallation of unused obsolete and leaf packages
+                       command_do_deinstallation_of_unused_obsolete_and_leaf_packages
+               elif 
+                       # Deinstallation of unused obsolete and leaf packages
+                       command_do_deinstallation_of_unused_obsolete_and_leaf_packages
+                       
+                       # Reinstallation of remained ports
+                       command_do_reinstallation_of_remained_ports
+                       # Restoration of obsolete and leaf packages which have been deinstalled but unselected from the deletion list again 
+                       
+                       command_do_restore_needed_obsolete_and_leaf_packages
                fi
                
-               # Restoration of obsolete and leaf packages which have been deinstalled but unselected from the deletion list again 
-               command_do_restore_needed_obsolete_and_leaf_packages
-               
-               # Deinstallation of unused obsolete and leaf packages
-               command_do_deinstallation_of_unused_obsolete_and_leaf_packages
-               
                # Clean up obsolete or unused distfiles
                command_do_clean_up_obsolete_or_unused_distfiles
                
index 14afa8c..1665eec 100644 (file)
@@ -49,6 +49,7 @@ Y     select-all      opt_dialog_auto no      all
 G      use-prebuilt-package    opt_inst_by_pkg_if_can  no      yes
 l      use-legacy-package-for-missing-pkgng    opt_use_legacy_pkg_for_missing_pkgng    no      yes
 f      disallow-force-continuation-for-looped-dependency       opt_disallow_force_continuation_for_looped_dependency   no      yes
+j      delete-then-reinstall   opt_delete_then_reinstall       no      yes
 F      fetch-only      opt_fetch_only  no      yes
 x      no-exec-inst-script     no_exec_inst_script     no      yes
 eof
index 40b3710..9a3141b 100644 (file)
@@ -38,6 +38,7 @@ USAGE: portsreinstall [OPTIONS] [--] [command]
  -G : Use prebuilt packages for ports with the default configurations.
  -g : Keep pkg(8) and dialog4ports(1) untouched.
  -I : Only interactive ports are (re)installed.
+ -j : Delete unneeded leaf and obsolete packages before (re)installation of needed ports
  -k : Keep portsreinstall itself untouched.
  -l : Use legacy-style packages when prebuilt modern-style packages are missing.
  -n : No operation is carried out (just for seeing what will be done).
index c7e5cfe..605f098 100644 (file)
@@ -65,12 +65,11 @@ The original configuration file is backed up as \fB/root/.cshrc.bak\-portsreinst
 One of the following \fIcommands\fR can be given for optional operations or confirmation.
 .TP
 \fBdo\fR
-(Default) Execute the whole process from creation of a builder \fBchroot\fR(8) environment to package update of the host system.
+(Default) Execute the whole process from creation of a builder \fBchroot\fR(8) environment to package update of the host system, where the flow corresponds to \fBmount\fR, \fBenter\fR, \fBportsreinstall packupgrade create\fR at the builder chroot, \fBportsreinstall packupgrade crop\fR at the builder chroot, \fBsync\fR, then \fBportsreinstall\-upgrade\fR at the host, in order.
 .TP
 \fBauto\fR [\fIoptions\fR] [\fIarguments\fR]
-Automatically execute \fBportsreinstall\fR(8) in the whole process from creation of a builder \fBchroot\fR(8) environment to package update of the host system.
+Automatically execute \fBportsreinstall\fR(8) in the builder \fBchroot\fR(8) environment instead of the \fBenter\fR stage in the conventional \fBdo\fR process.
 If given, \fIoptions\fR and \fIarguments\fR are passed to \fBportsreinstall\fR(8).
-If the reinstallation inside the builder \fBchroot\fR(8) environment is marked complete at the exit with zero status from \fBportsreinstall\fR(8) regardless of the options or arguments, the following processes toward the package update of the host system are automatically carried out.
 In case of the lost of the lower layer image of unionfs by its bug, the file system will be automatically recovered by re-mounting.
 .TP
 \fBenter\fR
@@ -86,6 +85,10 @@ Just unmount file systems for the builder \fBchroot\fR(8) environment.
 \fBsync\fR
 Synchronize the files affecting package installation (packages, distfiles, port options, ports/packages management tools configurations) of the host environment to the builder.
 .TP
+\fBdestroy\fR
+Destroy the builder \fBchroot\fR(8) environment.
+The difference from \fBclean\fR command is that the saved options are preserved.
+.TP
 \fBclean\fR
 .PD 0
 .TP
@@ -157,10 +160,10 @@ Suppress the credit and opening messages.
 Option \fB\-a\fR takes higher priority over this option.
 .PD
 .SS Group 3: Saved and not renewable until cleaning
-.IP \fB\-b\fR
+.IP \fB\-b\fR \fIbasedir\fR
 .PD 0
 .TP
-\fB\-\-basedir\fR
+\fB\-\-basedir\fR=\fIbasedir\fR
 Specifies the base directory of the \fBchroot\fR(8) environment.
 The default is "/home/.portsreinstall\-chroot".
 .PD
@@ -179,7 +182,7 @@ Use of this option may cause unexpected results and basically unrecommended.
 Forcibly invalidate the privilege of the current environment for mounting/unmounting file systems.
 This option can be meaningful when this utility is executed inside a \fBchroot\fR(8) or \fBjail\fR(8) virtual environment.
 .PD
-.IP \fB\-e\fR\ \fIdir1\fR[\fB,\fIdir2\fR[\fB,\fR...]]
+.IP \fB\-e\fR \fIdir1\fR[\fB,\fIdir2\fR[\fB,\fR...]]
 .PD 0
 .TP
 \fB\-\-extra\-dirs\fR=\fIdir1\fR[\fB,\fIdir2\fR[\fB,\fR...]]
@@ -188,6 +191,14 @@ By default (without this option), /bin, /compat, /etc, /lib, /libexec, /rootm /s
 This option should be set if any of the above directories contain symbolic links referring to outside of the default directories, or if any package build/installation is customized to refer to outside of them.
 The delimiter is comma (",") by default and changeable by \fB\-E\fR option.
 .PD
+.IP \fB\-f\fR
+.PD 0
+.TP
+\fB\-\-fullcourse\fR
+Carry out the \fBdo\fR process as the "full course" automatic mode where operation in the builder \fBchroot\fR(8) environment is initiated by update of the ports tree and package repository followed by execution of \fBportsreinstall\fR(8) initiated with option \fB\-CGSYjqx\fR (\fB\-CGSajqx\fR if \fB\-a\fR option is set).
+Resuming \fBdo\fR command automatically executes \fBportsreinstall\fR(8) in the builder \fBchroot\fR(8) environment.
+With \fB\-a\fR option, the all detected leaf and obsolete packages will be deleted.
+.PD
 .IP \fB\-P\fR
 .PD 0
 .TP
@@ -255,25 +266,15 @@ The utility will upgrade the ports in host environment using the created package
 .SS Example
 The conventional flow of using this utility will be as follows:
 .PP
-1. In the host (target) environment, update the ports tree and the package repository catalog.
-.RS
-root@[host]#
-.B portsnap fetch update
-.RE
-.RS
-root@[host]#
-.B pkg update
-.RE
-2. Execute \fBportsreinstall\fR(8) in a "forked" builder \fBchroot\fR(8) environment by launching from this utility.
-The sample set of options will be one of the convenient choices for building in the \fBchroot\fR(8) environment.
+1. In the host (target) environment, execute this utility by the full course mode.
 .RS
 root@[host]#
-.B portsreinstall\-chroot auto -CGqx
+.B portsreinstall\-chroot -f
 .RE
-3. After successful build of the temporary database, \fBportsreinstall\fR(8) may show select dialogues for leaf and obsolete ports/packages.
+2. After successful build of the temporary database, \fBportsreinstall\fR(8) may show select dialogues for leaf and obsolete ports/packages.
 Note that the choice made here can be changed afterward without any fatal risk as long as the current builder \fBchroot\fR(8) environment is preserved even after the upgrade of the host environment.
 .PP
-4. \fBportsreinstall\fR(8) will continue to build, (re)install and deinstall processes, which take very long and impose a high load.
+3. \fBportsreinstall\fR(8) will continue to build, (re)install and deinstall processes, which take very long and impose a high load.
 You may want to interrupt the execution to cool down or shutdown your machine for your work or travel.
 In this case, press Ctrl+C at any point so that \fBportsreinstall\fR(8) will stop by preserving its progress marker information in the temporary database and this utility will unmount the builder \fBchroot\fR(8) environment.
 Some network troubles in fetching distfiles or packages may be resolved by terminating the process once.
@@ -281,30 +282,30 @@ Some network troubles in fetching distfiles or packages may be resolved by termi
 .RS
 .B Ctrl+C
 .RE
-5. At any convenient time, restart the processes.
+4. At any convenient time, restart the processes.
 Note that no option should be speified here.
 .RS
 root@[host]#
 .B portsreinstall\-chroot auto
 .RE
-6. The process may stop with some failures which cannot be resolved automatically.
+5. The process may stop with some failures which cannot be resolved automatically.
 It may be mismatches of port option configurations of dependencies, unrecognized conflict or essential conflict between needed packages.
 In this case, you will need to enter the builder \fBchroot\fR(8) environment for the manual troubleshooting.
 .RS
 root@[host]#
 .B portsreinstall\-chroot enter
 .RE
-7. Then the you will be prompted in the builder \fBchroot\fR(8) environment.
+6. Then the you will be prompted in the builder \fBchroot\fR(8) environment.
 .RS
 root@[chroot]#
 .RE
-8. Troubleshooting may be done by modifying the configuration files or struggling with \fBfreeze\fR/\fBtaboo\fR/\fBescape\fR/\fBok\fR/\fBneed\fR/\fBnoneed\fR/\fBreselect\fR/\fBreconf\fR commands of \fBportsreinstall\fR(8) referring to information obtained by \fBshow\fR command of \fBportsreinstall\fR(8).
+7. Troubleshooting may be done by modifying the configuration files or struggling with \fBfreeze\fR/\fBtaboo\fR/\fBescape\fR/\fBok\fR/\fBneed\fR/\fBnoneed\fR/\fBreselect\fR/\fBreconf\fR commands of \fBportsreinstall\fR(8) referring to information obtained by \fBshow\fR command of \fBportsreinstall\fR(8).
 After such possible patchwork, exit from the builder \fBchroot\fR(8) environment.
 .RS
 root@[chroot]#
 .B exit
 .RE
-9. Retry to continue the processes by executing
+8. Retry to continue the processes by executing
 .RS
 root@[host]#
 .B portsreinstall\-chroot auto
@@ -314,7 +315,7 @@ or, when the configuration files were modified,
 root@[host]#
 .B portsreinstall\-chroot auto -L redo
 .RE
-10. When the all necessary upgrade is completed inside the builder \fBchroot\fR(8) environment, you will be asked whether to reflect the upgrade to the host environment.
+9. When the all necessary upgrade is completed inside the builder \fBchroot\fR(8) environment, you will be asked whether to reflect the upgrade to the host environment.
 If you select Yes here, package archiving in the builder \fBchroot\fR(8) environment, synchronization of package files, distfiles, port option database and configuration files for \fBportsreinstall\fR(8), and the update of the packages at the host environment will be automatically carried out.
 Here, again, Ctrl+C interruption and unintentional termination will be recovered by simple re-exeution of this utility.
 .SH "ENVIRONMENT VARIABLES"
index 30d30a3..d0540c6 100644 (file)
@@ -544,6 +544,14 @@ Concretely, this option suppresses upgrade, de/re-installation of the currently
 Operations of (re)installation are made only on ports which require manual interaction.
 This option conflicts with \fB\-A\fR.
 .PD
+.IP \fB\-j\fR
+.PD 0
+.TP
+\fB\-\-delete\-then\-reinstall\fR
+Delete unneeded leaf and obsolete packages before (re)installation of needed ports.
+The effects of this option will be manifested as possible shortening of the total time for (re)installation (by avoiding unrecognized conflict with moved ports) in exchange of possible longer abscent times of moved packages.
+This option is suitable for builder chroot environments.
+.PD
 .IP \fB\-k\fR
 .PD 0
 .TP
@@ -1127,11 +1135,11 @@ Configuration file of \fBportupgrade\fR(1).
 .TP
 4.1.0 (?? August 2018)
 .RS
-[NEW] Option \fB\-x\fR is added.
+[NEW] Options \fB\-j\fR and \fB\-x\fR are added.
 .PP
-[NEW] Option \fB\-s\fR is added to \fBportsreinstall\-chroot\fR(8).
+[NEW] Options \fB\-f\fR and \fB\-s\fR are added to \fBportsreinstall\-chroot\fR(8).
 .PP
-[NEW] \fBauto\fR command is added to \fBportsreinstall\-chroot\fR(8).
+[NEW] \fBauto\fR and \fBdestroy\fR commands are added to \fBportsreinstall\-chroot\fR(8).
 .PP
 [NEW] \fBpkg\fR, \fBmake\fR, \fBshow build_conflict_pkgs\fR, \fBshow inst_conflict_pkgs\fR, \fBshow errormessage\fR, \fBshow inst_by_pkg\fR, \fBshow heritage\fR, \fBshow leaves\fR and \fBshow obsolete\fR commands are added.
 .PP