Browse Source

Initial import of the CDE 2.1.30 sources from the Open Group.

Peter Howkins 12 years ago
commit
83b6996daa
100 changed files with 27769 additions and 0 deletions
  1. 74 0
      cde/BUGREPORT
  2. 1043 0
      cde/CLOSEDBUGS
  3. 148 0
      cde/Imakefile
  4. 239 0
      cde/Makefile
  5. 3557 0
      cde/OPENBUGS
  6. 318 0
      cde/README-2.1.10
  7. 282 0
      cde/README-2.1.20
  8. 280 0
      cde/README-2.1.30
  9. 326 0
      cde/README-2.1.30.snapshot
  10. 5595 0
      cde/ReleaseNotes.ps
  11. 1601 0
      cde/ReleaseNotes.sgm
  12. 95 0
      cde/admin/BuildTools/fnrclone/Makefile
  13. BIN
      cde/admin/BuildTools/fnrclone/findnewrcs.300.80
  14. BIN
      cde/admin/BuildTools/fnrclone/findnewrcs.300.90
  15. BIN
      cde/admin/BuildTools/fnrclone/findnewrcs.700.100
  16. BIN
      cde/admin/BuildTools/fnrclone/findnewrcs.700.807
  17. BIN
      cde/admin/BuildTools/fnrclone/findnewrcs.700.90
  18. BIN
      cde/admin/BuildTools/fnrclone/findnewrcs.800.100
  19. BIN
      cde/admin/BuildTools/fnrclone/findnewrcs.800.80
  20. BIN
      cde/admin/BuildTools/fnrclone/findnewrcs.800.90
  21. BIN
      cde/admin/BuildTools/fnrclone/findnewrcs.AIX
  22. BIN
      cde/admin/BuildTools/fnrclone/findnewrcs.HP-UX
  23. BIN
      cde/admin/BuildTools/fnrclone/findnewrcs.SunOS
  24. 179 0
      cde/admin/BuildTools/fnrclone/findnewrcs.UNIX_SV
  25. 179 0
      cde/admin/BuildTools/fnrclone/findnewrcs.UNIX_System_V
  26. BIN
      cde/admin/BuildTools/fnrclone/findnewrcs.apollo.binary
  27. 1674 0
      cde/admin/BuildTools/fnrclone/findnewrcs.c
  28. BIN
      cde/admin/BuildTools/fnrclone/findnewrcs.osf.400s
  29. BIN
      cde/admin/BuildTools/fnrclone/findnewrcs.osf.pa
  30. 140 0
      cde/admin/BuildTools/fnrclone/fnrclone
  31. 58 0
      cde/admin/BuildTools/fnrclone/makefindnewrcs
  32. 144 0
      cde/admin/BuildTools/master_build/ListTheTree
  33. 54 0
      cde/admin/BuildTools/master_build/builds
  34. 121 0
      cde/admin/BuildTools/master_build/cleanLinks
  35. 28 0
      cde/admin/BuildTools/master_build/cleanLogs
  36. 23 0
      cde/admin/BuildTools/master_build/cleanfnr
  37. 29 0
      cde/admin/BuildTools/master_build/cleansrctree
  38. 69 0
      cde/admin/BuildTools/master_build/cron_example
  39. 50 0
      cde/admin/BuildTools/master_build/fixSourceDirPerm
  40. 89 0
      cde/admin/BuildTools/master_build/manageBInstallDirs
  41. 520 0
      cde/admin/BuildTools/master_build/master_build
  42. 55 0
      cde/admin/BuildTools/master_build/mkPreviousLink
  43. 20 0
      cde/admin/BuildTools/master_build/remote_build
  44. 9 0
      cde/admin/BuildTools/setup/README
  45. 22 0
      cde/admin/BuildTools/setup/hpversioncheck
  46. 144 0
      cde/admin/BuildTools/setup/ibmversioncheck
  47. BIN
      cde/admin/BuildTools/setup/perl.hp.tar.Z
  48. BIN
      cde/admin/BuildTools/setup/perl.ibm.tar.Z
  49. BIN
      cde/admin/BuildTools/setup/perl.sun.tar.Z
  50. 158 0
      cde/admin/BuildTools/tog/build_id
  51. 207 0
      cde/admin/BuildTools/tog/build_project
  52. 751 0
      cde/admin/BuildTools/tog/build_summary
  53. 124 0
      cde/admin/BuildTools/tog/build_summary_cron
  54. 662 0
      cde/admin/BuildTools/tog/build_world
  55. 348 0
      cde/admin/BuildTools/tog/cc_checkedout
  56. 334 0
      cde/admin/BuildTools/tog/cc_submissions
  57. 59 0
      cde/admin/BuildTools/tog/cde.components
  58. 237 0
      cde/admin/BuildTools/tog/cde.crondb
  59. 5 0
      cde/admin/BuildTools/tog/cde.crontab
  60. 9 0
      cde/admin/BuildTools/tog/cdedoc.components
  61. 54 0
      cde/admin/BuildTools/tog/cdetest.components
  62. 173 0
      cde/admin/BuildTools/tog/compress_msg
  63. 162 0
      cde/admin/BuildTools/tog/cron_scripts
  64. 32 0
      cde/admin/BuildTools/tog/dt_errors.msg
  65. 7 0
      cde/admin/BuildTools/tog/dt_ignore.msg
  66. 10 0
      cde/admin/BuildTools/tog/dt_make.msg
  67. 8 0
      cde/admin/BuildTools/tog/dt_warnings.msg
  68. 278 0
      cde/admin/BuildTools/tog/extract_log
  69. 67 0
      cde/admin/BuildTools/tog/extract_log.awk
  70. 239 0
      cde/admin/BuildTools/tog/extract_msg
  71. 139 0
      cde/admin/BuildTools/tog/initialize_view
  72. 190 0
      cde/admin/BuildTools/tog/install_world
  73. 99 0
      cde/admin/BuildTools/tog/make_report_dir
  74. 13 0
      cde/admin/BuildTools/tog/motif.components
  75. 96 0
      cde/admin/BuildTools/tog/prune_logs
  76. 96 0
      cde/admin/BuildTools/tog/prune_logs_compress
  77. 155 0
      cde/admin/BuildTools/tog/script_setup.ksh
  78. 85 0
      cde/admin/BuildTools/tog/x11.components
  79. 8 0
      cde/admin/Imakefile
  80. 44 0
      cde/admin/IntegTools/Imakefile
  81. 213 0
      cde/admin/IntegTools/config/config.dec
  82. 207 0
      cde/admin/IntegTools/config/config.hp
  83. 285 0
      cde/admin/IntegTools/config/config.ibm
  84. 79 0
      cde/admin/IntegTools/config/config.sco
  85. 207 0
      cde/admin/IntegTools/config/config.sun
  86. 207 0
      cde/admin/IntegTools/config/config.usl
  87. 207 0
      cde/admin/IntegTools/config/config.uxp
  88. 11 0
      cde/admin/IntegTools/dbTools/Imakefile
  89. 216 0
      cde/admin/IntegTools/dbTools/UDB.format
  90. 82 0
      cde/admin/IntegTools/dbTools/UDB.tools
  91. 311 0
      cde/admin/IntegTools/dbTools/dinstallCDE.src
  92. 964 0
      cde/admin/IntegTools/dbTools/installCDE.src
  93. 23 0
      cde/admin/IntegTools/dbTools/linksLast
  94. 650 0
      cde/admin/IntegTools/dbTools/mkProd
  95. 765 0
      cde/admin/IntegTools/dbTools/udbParseLib.awk
  96. 437 0
      cde/admin/IntegTools/dbTools/udbToAny.ksh
  97. 9 0
      cde/admin/IntegTools/dbTools/uncomment
  98. 8 0
      cde/admin/IntegTools/deinstall.dt
  99. 783 0
      cde/admin/IntegTools/dinstall.dt.src
  100. 91 0
      cde/admin/IntegTools/ezinstall.hp

+ 74 - 0
cde/BUGREPORT

@@ -0,0 +1,74 @@
+
+ ** Mail this report to:  motif-defect@osf.org  for Motif  Release defects
+                          cde-defect@osf.org    for CDE    Release defects
+
+  Please be aware that this file will be parsed by machine.  Do not change the
+field names.  Include all the Submitter Information lines and as much of the
+other sections as you can.  Remove the brackets <> around any field that you
+fill in. Thank you!
+
+
+------------------------------- CUT HERE --------------------------------------
+
+
+                    The Open Group Problem Report
+                  =================================
+
+
+Submitter Information (Include Email address at miminum)
+---------------------
+
+Submitter Name:            <your name - Required>
+Organization:              <your company or institute - Required>
+Email Address:             <your electronic mail address -- Required>
+Phone:                     <your phone number with extension - Required>
+OSF License Number:        <license number (for release versions only)>
+Licensee's Defect Number:  <your internal reference number>
+
+
+Hardware/Software Configuration
+-------------------------------
+
+Offering and Version:   <examples: Motif 2.1.10, or CDE 2.1.10>
+Component (Module):     <examples: src/usr/bin/mesg.c, or lib/Xm/FileSB.c>
+Client Hardware:        <client machine type, memory, etc.>
+Client Software:        <client OS and X windows version, if relevant>
+Server Hardware:        <server machine type, memory, etc.> or SAME
+Server Software:        <server OS and X version, if relevant> or SAME
+Compiler:               <name of compiler and version>
+
+Problem Description
+-------------------
+
+Severity Level: <example: Incompatibility>
+
+        <One of the severity level as described below -- delete before sending
+
+        Incompatibility -- represents a problem which resulted from inability
+                           to install the software on the machine.
+        Fatal -- represents a problem which resulted in a software crash or
+                 required reboot of the software.
+        Critical -- represents a problem which resulted in software malfunction
+                    or a feature failure and has no work-around.
+        Severe -- represents a problem which resulted in software functionality
+                  limitation but had alternative work-around.
+        Minor -- represents a cosmetic type problem.
+        Enhancement -- represents a request for enhancement of the software.>
+
+Date of First Occurrence: <Date problem was first noticed (optional)>
+
+One Line Description:
+
+        <A one line description of the specifying the problem>
+
+Full Description:
+
+        <A full description of the problem>
+
+Repeat By:
+
+        <A description of how to reproduce the problem (optional)>
+
+Proposed Solution:
+
+        <A short description of how to fix the problem/bug (optional)>

+ 1043 - 0
cde/CLOSEDBUGS

@@ -0,0 +1,1043 @@
+
+------- Closed defects in project cde-code        -------
+
+
+Component: Applications         Sub-component: dtaction              
+
+CDExc24073 dtaction buffer overflow in username paramete
+CDExc24102 dtdbcache does not handle ToolTalk connection errors gracefully
+CDExc24104 dtexec does not handle ToolTalk connection errors gracefully
+
+Component: Applications         Sub-component: dtbuilder             
+
+CDExc16921 No checking is done for unsuccessful malloc
+CDExc17478 CodeGen action doesn`t wor
+CDExc23981 dtbuilder title is incorrect on HP at startup
+
+Component: Applications         Sub-component: dtcm                  
+
+CDExc11675 No non-WM means to pop-down Appt & ToDo List
+CDExc16634 DtcmEdit action gives an error
+CDExc17017 Incorrect diagram in View->Wee
+CDExc17140 Valentines can`t be Forever in DtC
+CDExc17398 Day view resize action has leftover on the canvas
+CDExc19314 Help->About Calendar should not display developer`s name
+CDExc19817 dtcm: Incorrect behavior in Appt.Editor window for `Daily` Occurs
+CDExc19819 dtcm: Incorrect behavior in Appt. Editor window for `Weekly` Occurs
+CDExc19822 dtcm: The default value of the `Occurs` in App.Editor window is `Daily`
+CDExc20501 Title overlap for `Reminders` title
+CDExc20515 Initial Editor Default Start time is 9 AND 
+CDExc20522 dtcm Editor Defaults allows 1440 min duratio
+CDExc20527 Alpha text in Start time has TWO continue
+CDExc20573 Browse selection `valid_user@` defaults to localhos
+CDExc21351 dtcm print to file doesnt revert to print to printe
+CDExc22891 CDE Calendar (dtcm) displays spurious numbers in `Day` view
+CDExc23738 dtcm - fails to display a confirmation dialog when exiting during an edit
+CDExc23822 Update dtcm to use Dt.h defines to construct the version string
+CDExc23958 dtcm confirmation dialog for appointment editor pops up inconvenientl
+CDExc23959 Editing dtcm default calendar option does not take immediate effect
+CDExc24025 Error dialog Help button extends past the end of the dialo
+CDExc24026 dtcm dumps core attempting to send an email reminder
+CDExc24027 One Time Only TODO produces a dialog as though it is a repeating series
+CDExc24029 dtcm appointment list dialog is managed at inappropriate time
+CDExc24030 dtcm Time Zone test fail
+CDExc24099 dtcm does not handle ToolTalk connection errors gracefully
+
+Component: Applications         Sub-component: dtcreate              
+
+CDExc24097 dtcreate Find Set dialog title does not comply with CDE style guide
+CDExc24098 dtcreate does not handle ToolTalk connection errors gracefully
+
+Component: Applications         Sub-component: dtfile                
+
+CDExc21306 File Manager hanging
+CDExc21309 Mnemonic is invalidity, on Japanese environment
+CDExc22554 dtfile help on actions does not work in Japanes
+CDExc23819 dtfile crashes during Wsm tes
+CDExc24092 dtfile does not handle ToolTalk connection errors gracefully
+CDExc24094 dticon does not handle ToolTalk connection errors gracefully
+CDExc24096 dtfile uses hardwired strings in the UI which should be localize
+CDExc24126 dtfile hangs due when fork fail
+
+Component: Applications         Sub-component: dthelpview            
+
+CDExc21518 CAN NOT PRINT MANPAGE FROM DTHELPVIEW IN A REMOTE SESSION
+CDExc23961 dthelpview dumps core under unusual circumstance
+CDExc24129 dthelpview failing GuiIndexTouchAll regression test
+
+Component: Applications         Sub-component: dticon                
+
+CDExc16890 New warning dialog not unposte
+CDExc23953 dticon file selection box should default to users icon directory
+
+Component: Applications         Sub-component: dtinfo                
+
+CDExc24100 dtinfo_start needs to be updated to use error messages from ToolTal
+
+Component: Applications         Sub-component: dtksh                 
+
+CDExc22517 dtksh - Sleep(1) command fails. Sleep is a dtksh buildin command
+CDExc24088 dtksh needs to be updated to handle ToolTalk authentication errors
+
+Component: Applications         Sub-component: dtlogin               
+
+CDExc19304 The default Dtlogin.authDir directory does not reset
+CDExc21701 User can not log into a CDE session with a syntax error in .profil
+CDExc23925 dtlogin re-writes wrong X authority file upon rese
+
+Component: Applications         Sub-component: dtmail                
+
+CDExc13630 no tear-offs as define
+CDExc15872 Adding large attachments should give conf. dialo
+CDExc23812 File Share error messages need to be localized
+CDExc23817 dtmail Mailbox->Open list is not updated after change to options
+CDExc23901 Add timeout for POP3 socket connection
+CDExc23949 Internationalize socket access error messages
+CDExc23952 dtmail sortBy glyph shows up as a circumflex i when running under CDE
+CDExc23988 Need an error dialog when attaching invalid file types in compose dialog
+CDExc24040 dtmail hangs when requesting a file loc
+CDExc24041 Incorrect text in error dialo
+CDExc24043 dtmail rename dialog should be a transient window
+CDExc24044 dtmail Option->MessageHeaderList dialog combo boxes is allowe
+CDExc24045 dtmail has incorrect status line after mailbox is closed and reopened
+CDExc24047 dtmail password dialog textfield needs to be unmanaged
+CDExc24048 Turning Vacation on and off leaves .forward file in inappropriate state
+CDExc24049 dtmail exits when message dragged onto the editor desktop icon
+CDExc24084 Dtmail poorly informs users about ToolTalk errors due to authentication
+CDExc24089 dtmail checks the wrong environment variable for the ToolTalk session id
+
+Component: Applications         Sub-component: dtpad                 
+
+CDExc24090 dtpad does not handle ToolTalk errors gracefully
+
+Component: Applications         Sub-component: dtsession             
+
+CDExc22674 dtsession failed to save after dtwm restar
+CDExc23940 dtsession crashes after SmRestartNever clien
+CDExc24101 dtsession does not handle ToolTalk connection errors gracefully
+
+Component: Applications         Sub-component: dtspcd                
+
+CDExc24072 dtspcd relies on file-system-based authenticatio
+
+Component: Applications         Sub-component: dtstyle               
+
+CDExc21304 The mnemonic-character of `Exit` item in `File` menu is incorrect
+
+Component: Applications         Sub-component: dtterm                
+
+CDExc24095 dtterm does not handle ToolTalk connection errors gracefull
+
+Component: Applications         Sub-component: dtwm                  
+
+CDExc12376 window uselessly brought to front before minimizi
+CDExc20225 clicking out of a window & causing the marquee is way too slo
+CDExc21646 THE ICON BOX UNDER CDE CANNOT BE SIZED SMALLER THAN 2 ICONS WIDE
+CDExc23338 mwm menu additions do not work in stand-alone window manage
+CDExc24103 dtwm does not handle ToolTalk connection errors gracefully
+
+Component: Build-Install        Sub-component: build                 
+
+CDExc23989 Error in the dtappbuilder Imakefile prevents buil
+CDExc24077 libtt elist has warnings
+CDExc24078 elistgen.sun needs to filter out internal C++ compiler symbol
+CDExc24083 Update CDE/Motif version strings to 2.1.3
+CDExc24112 Clean up warnings in CDE libraries
+
+Component: Build-Install        Sub-component: install               
+
+CDExc23955 Installation of japanese font alias files need to be updated for H
+
+Component: DtHelp               Sub-component: Canvas/Render         
+
+CDExc23973 segv kills dthelpview in DtCanvas selection code
+
+Component: DtHelp               Sub-component: GUI                   
+
+CDExc22774 Memory leaks in several locations
+
+Component: DtMail               Sub-component:                       
+
+CDExc20633 Changing mail file locking does not prompt as documente
+
+Component: DtMrm                Sub-component:                       
+
+CDExc22905 libDtMrm.elist is missin
+
+Component: DtSvc                Sub-component: actioninvoke          
+
+CDExc23879 DtSvc/ActCBTt/ActCBTt{3} test fail
+CDExc23970 Assertion messages showing up in errorlog file
+CDExc24093 DtSvc should explain why ToolTalk connection failed
+
+Component: DtSvc                Sub-component: other                 
+
+CDExc23623 update CDE/Motif ver. numbers in header files to 2.1.20 before releas
+CDExc23917 Applications started by tooltalk cant connect to Session Manager
+
+Component: DtTerm               Sub-component:                       
+
+CDExc23945 TermPrim crashes in ja_JP.eucJP because of misaligned wc strin
+
+Component: DtWidget             Sub-component: other                 
+
+CDExc12421 Icon.c return value and typing error
+
+Component: PAM                  Sub-component: Install/Admin         
+
+CDExc22906 libpam.elist is missin
+CDExc23926 pam.conf file needs to be updated to support rs
+
+Component: Runtime              Sub-component: runtimeconfig         
+
+CDExc23931 path configuration for X clients needs reconciliatio
+
+Component: Runtime              Sub-component: runtimeenv            
+
+CDExc23287 On HP/UX, there are deprecated keysyms used in sys.resource
+
+Component: ToolTalk             Sub-component: libtt                 
+
+CDExc23932 users of ttmediaload must check result
+CDExc24063 buffer overflow vulnerability with TT_SESSIO
+CDExc24082 Session client initialization fails for _TT_AUTH_UNI
+CDExc24085 ttdt_open passes back incorrect status cod
+CDExc24086 ToolTalk magic cookie vulerable to brute force attac
+CDExc24087 Update ToolTalk to handle authentication errors
+
+Component: ToolTalk             Sub-component: rpc.ttdbserver        
+
+CDExc20812 rpc.ttdbserverd version mismatch errormessage w/o effects on syste
+CDExc23942 rpc.ttdbserverd outputs version warning message
+CDExc24108 tt_type_comp -G causes rpc.ttdbserverd to SIGTER
+
+Component: ToolTalk             Sub-component: tt apps               
+
+CDExc24109 ttauth man page contains error
+
+Component: ToolTalk             Sub-component: ttsession             
+
+CDExc24071 ToolTalk ttsession uses weak RPC authentication mechanis
+
+Component: other                Sub-component: misc                  
+
+CDExc23806 dtdnddemo segv when doing drag and dro
+
+Component: other                Sub-component: xclients              
+
+CDExc22648 xterm does not run on SGI machine
+
+------- Closed defects in project cde-doc         -------
+
+
+Component: other                Sub-component:                       
+
+CDExc23125 Edit CDE version of X Release Note
+
+------- Closed defects in project cde-test        -------
+
+
+Component: Applications         Sub-component: dtaction              
+
+CDExc23367 dtaction test failure
+CDExc23962 DtSvc/DtAction/InvAttribCmd_B test fails all asserts
+CDExc23963 ActInvokeCmd assert 3 is failin
+CDExc23976 DefConfig/actions/action18 test fails
+CDExc24124 dtaction cwd test scripts need updatin
+
+Component: Applications         Sub-component: dtappmanager          
+
+CDExc23977 action17 fails on all platform
+CDExc23978 action22 testing Make desktop tool fails on all platform
+
+Component: Applications         Sub-component: dtcalc                
+
+CDExc20604 dtcalc fails in XHPListInputDevices(dpy,&ndevices
+CDExc20606 dtcalc generates strtok failure
+CDExc23950 dtcalc commandline test fail
+
+Component: Applications         Sub-component: dtcm                  
+
+CDExc16186 Test cases abort with segmentation violation
+CDExc16534 incorrect focus map for appointment time
+CDExc16545 Dialog window titles are not matched on HP platfor
+CDExc17868 dtcm manual tests don`t apply to appt edito
+CDExc24028 No Time To Do test needs updating
+CDExc24145 dtcm tests produce SYN_BAD_WINDOW errors
+CDExc24146 dtcm tests produce SYN_FILE_OPEN_ERROR errors
+CDExc24147 dtcm test lib function cm_goto_date expects ToDo dialog to auto unmanage
+CDExc24148 dtcm test Show02 has incorrect assertion
+CDExc24149 dtcm Find01 test is incorrec
+CDExc24150 dtcm Find02 test fails all assertion
+CDExc24151 dtcm Group tests never implemented fully
+CDExc24152 dtcm FocusMap and SynObject files need updating
+CDExc24154 dtcm test is unresolve
+
+Component: Applications         Sub-component: dtfile                
+
+CDExc17081 testPlan needs to be update
+CDExc17130 Dtfile testplan needs to be update
+CDExc17276 Dtfile testplan needs to be update
+CDExc18089 General problems with dtfile test suit
+CDExc20853 dtfile REGRESSION errors - window titles have change
+CDExc22244 obj locations are still wrong for some platform
+CDExc24125 dtfile test fails bad conditions for remainder of REGRESSION suite
+CDExc24155 dtfile test misc22 causes dtfile to hang and subsequent tests to fail
+CDExc24157 dtfile tests misc09 and misc10 fail when retrieving windows by title
+CDExc24161 dtfile tests have extensive problems causing aborts and failure
+CDExc24162 dtfile SynObject files and FocusMap file needs updating
+CDExc24163 dtfile fails to correctly filter files
+CDExc24166 dtfile tests have intermittent errors caused by using slee
+CDExc24167 dtfile has failures caused by bad placement on the deskto
+CDExc24170 dtfile tests fail due to inappropriate region definition
+
+Component: Applications         Sub-component: dthelpgen             
+
+CDExc17840 dthelp/dthelpgen/hgenCli/gencli includes inappropriate golden data file
+CDExc19154 dthelpgen: gencli.c always generates unique dat
+CDExc19195 dthelpgen test suite needs golden data updat
+CDExc20592 dthelpgen needs to handle dates in path name
+
+Component: Applications         Sub-component: dthelpprint           
+
+CDExc17842 dthelp/dthelpprint/hprintCli/printcli includes run-specific informatio
+CDExc20571 dthelpprint output mildly differen
+CDExc21696 dthelpprint test fails with diff file of size zer
+CDExc23572 dthelpprint test failures
+
+Component: Applications         Sub-component: dtlogin               
+
+CDExc17379 Incorrect results in dtlogin - journal file appended
+
+Component: Applications         Sub-component: dtmail                
+
+CDExc16038 Changing margins in Compose Window options not workin
+CDExc19329 Image comparison fails fot dtmail
+CDExc23040 The dtmail test suite still has many test-specific problem
+CDExc23863 Cascading open folder menu is causing tests to fai
+CDExc23864 dtmail test fails on stat command
+CDExc23866 dtmail test undList2 needs to be updated to reflect new behavio
+CDExc23876 Image failure needs to be examined for the following tes
+CDExc23878 dtmail test fails cause helpview takes extraordinarily long to map
+CDExc23902 dtmail readOnly test fails due to a SIGSEGV error
+CDExc24119 dtmail test goes into an infinite loo
+
+Component: Applications         Sub-component: dtpad                 
+
+CDExc16446 Spelling fails to identify misspell word
+CDExc19859 WordWrap/WrdWrap2 test gives false failure
+CDExc20288 StsLine5 test reports a false failur
+CDExc22319 Tests that use Shift-Right Arrow to select text fail on SunO
+CDExc23574 dtpad test failure
+
+Component: Applications         Sub-component: dtprintinfo           
+
+CDExc23975 DefConfig test action06 fail
+
+Component: Applications         Sub-component: dtsearchpath          
+
+CDExc21709 dtsearchpath test failures related to dtinfoli
+
+Component: Applications         Sub-component: dtsession             
+
+CDExc21695 CDE 1.0 dtsession tests need work to run wel
+CDExc22278 XSMPMessages{13} test needs some re-workin
+CDExc23376 dtsession test suite failure
+CDExc23911 dtsession XSMP tests receive SIGPIPE on HP-U
+CDExc24018 SIGSEGV in dtsession tes
+
+Component: Applications         Sub-component: dtstyle               
+
+CDExc23836 dtstyle regression test needs to be updated to reflect bugfix
+CDExc23837 Dtstyle tests need to be updated to reflect functional change to backdrop
+CDExc24116 dtstyle GOLDEN data needs updating in response to fix
+
+Component: Applications         Sub-component: dtwm                  
+
+CDExc23539 dtwm manual Help test - some steps need to be fixed
+
+Component: Applications         Sub-component: frontpanel            
+
+CDExc19851 GOLDEN data causing errors when none exist
+CDExc23974 Sun SynObject file for DefConfig tests needs updating
+CDExc24117 DefConfig test failure on SunO
+
+Component: Config               Sub-component: configdb              
+
+CDExc24013 dtappman.ob file needs updating in response to defect fix
+
+Component: DtHelp               Sub-component:                       
+
+CDExc19202 dtHelpApi hyperlink failure
+CDExc19205 dtHelpApi window size difference
+CDExc19207 dtHelpGui Sun golden data update neede
+CDExc19208 dtHelpGui Sun bad image capture
+CDExc19209 dtHelpGui expected dialog doesnt appea
+CDExc19210 dtHelpGui Sun/Novell fail to close help dialog windo
+
+Component: DtHelp               Sub-component: CDE1                  
+
+CDExc19871 Test cannot differentiate between GOLDEN and REGRESSIO
+CDExc19872 GOLDEN data script was copied and not update
+CDExc23570 dtHelpApi test failure
+CDExc24016 dthelptag regressio
+CDExc24133 QuickApiSetValues test 23 tests against the wrong image
+
+Component: DtHelp               Sub-component: Canvas/Render         
+
+CDExc19880 dthelp/dtHelpCanvas assertions won`t run:  SynStoreText function failur
+
+Component: DtHelp               Sub-component: GUI                   
+
+CDExc19883 dthelp/dtHelpGui images need analysis - some expected changes occure
+CDExc19884 Compare Image calls failing even when images are identica
+CDExc23571 DtHelp/dtHelpGui test failures
+CDExc23906 dtHelpApi tests which rely on copyright file need golden data update
+CDExc23908 dtHelpGui GuiIndexTouchAll/indexgui tests han
+CDExc23909 dtHelpGui GuiPrintTouchAll/printall tests han
+CDExc24014 dtHelpGui test regression
+CDExc24115 dtHelpApi test quickapi{23} fails because of capitalizatio
+CDExc24127 GOLDEN data for various dtHelpGui tests need to be updated
+CDExc24128 Intermittent failures on Sun in Gui Index tests
+
+Component: DtMail               Sub-component:                       
+
+CDExc21290 DtMail test suite need to be updated to reflect changes from CDExc1925
+
+Component: DtSvc                Sub-component: Error API             
+
+CDExc20925 DtMsgLog tests should allow a small time fudge facto
+
+Component: DtSvc                Sub-component: actioninvoke          
+
+CDExc19854 Many tests hang inexplicably everywhere except IB
+CDExc19855 Two DtAction test assertions die with SIGSEGV - always UNRESOLVE
+CDExc20891 REGRESSION:  Troubles with DtActionInvoke(
+CDExc23825 ActInvokeCmd test hangs intermittentl
+CDExc23828 many assertion errors from Action.c in DtSvc/DtActio
+CDExc23830 DtSvc/DtActions/tests/DbLoad/DbReload test has error which hangs suite
+CDExc23831 ActInvokeErr has two ASSERT 6`
+CDExc23907 DtAction/Keyword test hangs in assertion 11
+CDExc23964 InvAttribCmd_C test hangs in a number of assertions
+CDExc23966 InvAttribTt failures
+CDExc23967 Keyword test assertion failure
+CDExc23968 Resource test failure
+CDExc23969 DtActCb{4} passes but dies with a segv
+CDExc23971 DtAction/ActInvokeTtMedia hangs in assertion
+
+Component: DtSvc                Sub-component: dragdrop              
+
+CDExc19853 dragdrop clients intermittently behave strangel
+
+Component: DtSvc                Sub-component: dtinit                
+
+CDExc24113 Update CDETest version strings to 2.1.3
+
+Component: DtSvc                Sub-component: other                 
+
+CDExc24079 UNRESOLVED results in DtMsgLog
+CDExc24080 DtWsm tests take too long on Su
+
+Component: DtWidget             Sub-component: DtEditor              
+
+CDExc19648 Test New1 ICs (2,3) fails and hangs regression on Sun
+
+Component: DtWidget             Sub-component: dttextwidget          
+
+CDExc17038 DtEditor test Case DnD01 fails due to test case problem
+CDExc17059 DtEditor test case GetValues fails
+
+Component: Runtime              Sub-component: runtimeconfig         
+
+CDExc17004 DefConfig automated test action28 fails
+CDExc21664 DefConfig test suite needs lots of general work, possible core dump on OS
+CDExc23881 DefConfig mishandles Sun keyboa
+CDExc23882 DefConfig/action27 fail
+CDExc23979 DefConfig/visuals tests fail in call to DtWsmGetWorkspaceLis
+CDExc23980 DefConfig/actions tests need to be added into the build and REGRESSION tes
+CDExc24120 action13 test refers to wrong mail spool directory for HPU
+CDExc24123 DefConfig/actions/action05.c test fails on HP-U
+
+Component: Synlib               Sub-component:                       
+
+CDExc23639 SynStoreText has trouble retrieving null tex
+CDExc24017 Free of callstack data causes coredump in dthelp tests
+CDExc24143 Core dump in SynNameWindowByInstanc
+
+Component: ToolTalk             Sub-component: libtt                 
+
+CDExc24105 Update TT version string parser to reflect new version string format
+CDExc24106 tt_cmd_test is failing on HP
+
+Component: ToolTalk             Sub-component: ttsession             
+
+CDExc24081 Manual tests procedures needed to test ICEAUTH and UNIX authentication
+
+Component: other                Sub-component: testenvironment       
+
+CDExc23903 DevEnv test environment needs LM_LICENSE_FILE variable
+CDExc24021 DevEnv compile and link test requires env.sh to set compiler license def
+CDExc24114 DevEnv compilation test fails
+CDExc24122 DtTestDragAndDrop fails when SynSetPointerDelay is 0
+CDExc24142 DtTestCompareImage uses SynCompareXwdImage incorrectly
+
+------- Closed defects in project motif-code      -------
+
+
+Component: MWM                  Sub-component: MWM programmatic inter
+
+CDExc04974 Performance improvement for loading Mwm unspecified pixmap
+
+Component: MWM                  Sub-component: MWM user interface    
+
+CDExc09508 Geometry in icon box seems a little of
+
+Component: UIL                  Sub-component: Mrm library           
+
+CDExc20147 In  Mrm.h  the  value of RGMListSizeMax is set to 100
+CDExc23994 potential minor memory leak with UIL render table
+
+Component: UIL                  Sub-component: UIL                   
+
+CDExc23721 Uil Library does not function properly in a 64-bit envorinment
+CDExc23723 Colors in XmRenditions in UIL Cause Program to Abor
+
+Component: Xm                   Sub-component:                       
+
+CDExc11803 XsetCloseDown Not supported on X11-XNews serve
+CDExc12623 XmClipboard man page incompatible with Solaris ma
+CDExc16992 Can`t enter cc: in compose windo
+CDExc17274 Assertions 3, 6, and 7 fail in ColorObj testcase
+
+Component: Xm                   Sub-component: ANSI-C compliance     
+
+CDExc22903 Misc. compiler warning
+CDExc23666 VSM: problem with XmProcessTraversa
+
+Component: Xm                   Sub-component: BaseClass             
+
+CDExc23205 BaseClass.c`_XmTransformSubResources refers to R5 Xt bugs, probably fixe
+
+Component: Xm                   Sub-component: Build issues          
+
+CDExc23985 make: Fatal error: Don`t know how to make target `os2Lib.rules
+CDExc23987 possible difficulty building 2.1.20 with gcc
+CDExc24111 Missing entries from the Xm and Mrm export list
+
+Component: Xm                   Sub-component: C++ .h compile        
+
+CDExc09648 C++ linake proble
+
+Component: Xm                   Sub-component: Clipboard             
+
+CDExc23920 XmClipboardUndoCopy crashes VSM4.1 funcs/clpundocp tes
+CDExc24009 users of ClipboardFindItem must check validity of heade
+
+Component: Xm                   Sub-component: Color                 
+
+CDExc24003 closing 2nd display causes 1st to cras
+
+Component: Xm                   Sub-component: Demos                 
+
+CDExc23986 failures to install in hellomotifi18n dem
+
+Component: Xm                   Sub-component: Drag and Drop         
+
+CDExc09420 setting f.menu <Btn2Down> interferes with DN
+CDExc23482 XmDisplay does not support multiscreen applicatio
+CDExc24060 VSM: Funcs/XmDropSiteRegister fails on Alph
+CDExc24066 Dialog fails to post if drag is in progress; pointer grab locks system
+CDExc24067 Attempting to drag from a pulldown menu locks display
+
+Component: Xm                   Sub-component: Geometry Management Me
+
+CDExc20432 slight layout differences in Pane if children set values before managed/re
+
+Component: Xm                   Sub-component: Memory issues         
+
+CDExc23475 Motif binary compatibility mechanism has bug in XmResolve[All]PartOffse
+CDExc23674 XmResolveAllPartOffsets appears to be off by one class leve
+CDExc23709 Memory leaks in various widget
+CDExc23725 Memory Leak in _XmRenditionCop
+
+Component: Xm                   Sub-component: Menu button interactio
+
+CDExc09773 Menus must ungrab with CurrentTime
+CDExc20402 Cascade button keeps highlight when pull down is gon
+CDExc20403 incorrectly highlight 2 buttons in tear-off men
+
+Component: Xm                   Sub-component: Menu event handling   
+
+CDExc09772 Changes make to menus and mwm to support event time - was CurrentTime -
+CDExc20060 Motif menu accellarators are confused by don`t care modifier bit
+CDExc20401 grab conflict proble
+CDExc24004 Check for NULL pointer uses the wrong field
+
+Component: Xm                   Sub-component: Menu layout           
+
+CDExc20404 cascade button not supported in Tear-off men
+
+Component: Xm                   Sub-component: PC Style Convergence  
+
+CDExc22767 moving left off of leftmost menu button should select window men
+
+Component: Xm                   Sub-component: Pixmap Converters     
+
+CDExc23099 Missing pixmap
+
+Component: Xm                   Sub-component: Pixmap cache          
+
+CDExc19778 XmGePixmapByDepth core dumps on monochrome system
+
+Component: Xm                   Sub-component: Synthetic Resources   
+
+CDExc23943 Manager GetValuesHook has obsolete code for NULL ArgVa
+
+Component: Xm                   Sub-component: TearOff Menus         
+
+CDExc23923 Tear off menu crash when hitting escap
+
+Component: Xm                   Sub-component: Traits Other          
+
+CDExc23944 XmQTcareParentVisual redraw methods need to check that widget is realized
+
+Component: Xm                   Sub-component: Translations and Virtu
+
+CDExc23279 Sun virtual bindings out of dat
+
+Component: Xm                   Sub-component: VendorShell           
+
+CDExc23560 Thread unsafe of XmeGetDefaultRenderTabl
+CDExc23672 Events can sometime `sneak` in during processing of primary modal
+CDExc23720 XtRemoveGrab asked to remove a widget not on the lis
+
+Component: Xm                   Sub-component: XmArrowButtonGadget   
+
+CDExc20513 Motif sash sizing error
+
+Component: Xm                   Sub-component: XmCascadeButton       
+
+CDExc09768 problem with two cascade buttons are sharing the same submenu pan
+CDExc24069 Program dies in call to XmCascadeButtonHighligh
+
+Component: Xm                   Sub-component: XmComboBox            
+
+CDExc22532 Combo Box arrow still active when XmNarrowSize set to 
+CDExc23729 XmComboBox Cuts Off Text in Text Fiel
+
+Component: Xm                   Sub-component: XmCommand             
+
+CDExc23892 CDExc23345 needs to be reversed or fixed differentl
+CDExc23990 XmCommandAppendValue causes TCM Error in VSM4.1 on Alph
+
+Component: Xm                   Sub-component: XmContainer           
+
+CDExc23204 XmContainer marquee selection funky in out-of-bounds case
+CDExc23305 XmContainer denies geometry requests for children resizin
+CDExc24005 container widget outline loses widget
+CDExc24006 Container has drag & drop problems, causes SEG
+CDExc24061 Container widget always supports inappropriate drag operations
+CDExc24062 Container widget does not react properly to Button1Down event
+
+Component: Xm                   Sub-component: XmDialogShell         
+
+CDExc23706 dialog box doesn`t take input after rapid clicking away from button
+
+Component: Xm                   Sub-component: XmDisplay             
+
+CDExc23773 Invalid use of XtGetValue function on create only resource
+
+Component: Xm                   Sub-component: XmDrawnButton         
+
+CDExc23999 DrawnButton in menu produces warning, and has no translation
+CDExc24000 DrawnButton does not show proper visuals when in men
+
+Component: Xm                   Sub-component: XmFileSelectionBox    
+
+CDExc23897 compound widget display difference
+CDExc23921 VSM4.1 widgets/filesb1{2} causes SIGBUS on HP-U
+
+Component: Xm                   Sub-component: XmIconGadget          
+
+CDExc19866 XmIconGadget doesn`t honor XmNlayoutDirection resourc
+
+Component: Xm                   Sub-component: XmIm                  
+
+CDExc23895 A bug in XmText and XmList widget
+
+Component: Xm                   Sub-component: XmLabel               
+
+CDExc23608 Indicator size not recalculated in ToggleBtn when String is used as labe
+
+Component: Xm                   Sub-component: XmList                
+
+CDExc19518 ListBeginExtend behaves non-intuitively when no selection exist
+CDExc19559 List c-a-Btn1 actions are wrong
+CDExc19642 Toolkit/List/List2 test List1SW widget scrollbar too lon
+CDExc22405 Item highlightlighting may erase parts of adjacent item
+CDExc23894 fatal defect in XmList widge
+CDExc23896 XmList fails to adjust to size changes, clips dat
+CDExc23914 auto-created IC not free
+CDExc23996 Highlight spacing off by one for XmLis
+
+Component: Xm                   Sub-component: XmMenuShell           
+
+CDExc23280 XmMenuShell issues unnecessary XmFontListFree cal
+
+Component: Xm                   Sub-component: XmNotebook            
+
+CDExc20033 XmNotebook: can`t set XmNcurrentPageNumber before widget is realize
+CDExc23791 Tabs do not go to correct `heights` for prior page numbers in noteboo
+CDExc23797 notebook first back page drawn incorrectly for some XmNbindingType
+CDExc23798 notebook size incorrect with specific XmNbackPagePlacement/XmNorientatio
+CDExc23801 notebook size includes tab scrollers even if not manage
+CDExc23802 top major tab shadow not drawn if frameShadowThickness = 
+CDExc24070 Notebook gives error when the bindingType is XmSPIRAL
+
+Component: Xm                   Sub-component: XmPanedWindow/Sash    
+
+CDExc23984 XmPanedWindow does not respond to change in XmNorientatio
+
+Component: Xm                   Sub-component: XmPushButtonGadget    
+
+CDExc17352 Btn2 double-click while Btn1 holds down a button gadget, stay
+CDExc24011 PushBG has dup call to XtSetKeyboardFocus in Enter event handler
+
+Component: Xm                   Sub-component: XmRenderTable/XmFontLi
+
+CDExc23590 XmeGetDefaultTable`s doc need new inf
+
+Component: Xm                   Sub-component: XmRowColumn WorkArea|R
+
+CDExc23893 lib/Xm/RowColumn.h missing function prototype
+
+Component: Xm                   Sub-component: XmScrolledWindow      
+
+CDExc04585 paging grab need to apply to inner SW, plus the begin/end line data should
+
+Component: Xm                   Sub-component: XmSelectionBox        
+
+CDExc21358 The default action in the SelectionBox ListItems XmList widget is broken
+
+Component: Xm                   Sub-component: XmSpinBox             
+
+CDExc23604 XmSpinBox does not handle XmManager resources properl
+
+Component: Xm                   Sub-component: XmString              
+
+CDExc23922 funcs/stlength VSM4.1 test causes warning on Solari
+
+Component: Xm                   Sub-component: XmText                
+
+CDExc05686 It is impossible to set the slider color on a scrollbar of a scrolled Text
+CDExc16629 XmTextPosToXY can mess up curso
+CDExc23645 XmTextSetTopCharacter does not work for zero positio
+CDExc23898 locale bug in XmTextSetTopCharacter in Motif2.
+
+Component: Xm                   Sub-component: XmTextField           
+
+CDExc20409 Performance bug in XmTextFiel
+CDExc20656 The XmTextField returns the type `TEXT` as the selection type
+CDExc24076 Compilation warnings in TextField widget code
+
+Component: Xm                   Sub-component: XmToggleButton        
+
+CDExc08708 ToggleButton`s XmNvalueChangedCallback firing incorrectl
+CDExc20667 Toggles` XmNselectPixmap handling doesn`t detect NULL pixma
+CDExc23615 ToggleBtn indicator resizes automatically even if XmNindicatorSize is se
+CDExc24058 VSM: Widgets/XmToggleButton/3 fails on Alph
+CDExc24064 ToggleBtn indicatorSize is zero if no pixmap is specifie
+
+Component: Xm                   Sub-component: XmToggleButtonGadget  
+
+CDExc23991 XmToggleButtonGadgetGetState causes TCM Error in VSM4.
+CDExc24059 VSM: Widgets/XmToggleButtonGadget/3 fails on Alph
+CDExc24065 ToggleBtnGadget indicatorSize is zero if no pixmap is specified
+CDExc24074 DisArm call back is not redrawing the visual correctly.
+CDExc24075 ToggleButtonGadget`s XmNvalueChangedCallback gives some problem
+
+Component: Xm                   Sub-component: other                 
+
+CDExc20062 XmosP.h may need to change alloca definition for Solaris 2.
+CDExc20066 _XmVirtKeysLoadFileBindings puts comments from .motifbind file into the MO
+CDExc23236 Xmos.c handling of select uses wrong types on some system
+CDExc23237 Messages.c has nested comment
+CDExc23643 Supplied CTL code for Xm/XmXOC.h has Xlcint.h as include which is X11`
+CDExc23689 Name space collision between /usr/include/term.h and Xm.
+CDExc23722 Bug in Motif 2.1 Mrm Library with TabList
+CDExc23891 testing applications for binary compatibility with earlier release
+CDExc24019 osfHelp on sun doesn`t bind to <Key>F
+
+Component: other                Sub-component: Build issues          
+
+CDExc09774 SharedXmRev is still defined as 1.
+CDExc22904 Misc. compiler warning
+CDExc23416 Add Motif macros: BuildMotifDemos BuildMotifConfig BuildWMLTabl
+CDExc23992 exportlistgen needs to eliminate warnings about symbols missing from expor
+
+Component: other                Sub-component: Exm C Reference Widget
+
+CDExc09667 ExmMenuButton in pulldown menu does not respond if menu is posted by a cli
+
+Component: other                Sub-component: WML                   
+
+CDExc05118 Warnings and prototypes in wml
+
+Component: other                Sub-component: other                 
+
+CDExc06053 VenShellM1 Panel 5 test logic erroneous
+CDExc21080 XmCxxXmString.h copy constructor arg should be cons
+CDExc23850 2.1.n release notes needs information about UID file
+
+------- Closed defects in project motif-test      -------
+
+
+Component: MT                   Sub-component:                       
+
+CDExc23534 Tests/DragAndDrop/DNDDrop2 has bulltenboard animation style out wron
+CDExc23535 Auto scrolling in DNDScrool of tests/DragAndDrop is not workin
+
+Component: MWM                  Sub-component: MWM programmatic inter
+
+CDExc06738 Update RUN in ./tests/mwm/P
+CDExc08730 PIVMwm.dat tells you to click on the wrong butto
+CDExc09351 some tests fail in VenShellM
+
+Component: MWM                  Sub-component: MWM user interface    
+
+CDExc07988 TransFamilyM1 test needs some looking into
+CDExc08732 test mwmwrc file syntax wron
+CDExc23491 Inconsistancy in docs/tests for mw
+
+Component: UIL                  Sub-component: UIL                   
+
+CDExc07945 Compiler warnings while building uil/Manual/callUil test
+CDExc07959 uil/Manual/validator/RUN script has wrong location of ui
+CDExc08012 uil/dataStructs/Translations should be updated to reflect expected behavio
+
+Component: Xm                   Sub-component: Clipboard             
+
+CDExc09391 CopyByName seems to fail in test Cutpaste4
+
+Component: Xm                   Sub-component: Cxx Foundry Widgets   
+
+CDExc08969 CxxManager test does not build
+CDExc09527 In CxxManager and CxxPrimitive Coverage reports are wrong
+
+Component: Xm                   Sub-component: Demos                 
+
+CDExc09760 Compilation errors when building gmalloc.o in tests/internal/Performance/U
+
+Component: Xm                   Sub-component: Drag and Drop         
+
+CDExc06759 Correct DNDDrop1 tes
+CDExc07911 Instructions for DNDList1 should indicate you need a multi-line Text widge
+CDExc08900 Instruction Panel should be changed for DNDDrop
+CDExc08901 DNDScroll instructions has vertical and horizontal scrollbars switche
+CDExc09631 Intruction Panel wrong for DNDScroll tes
+
+Component: Xm                   Sub-component: I18N misc             
+
+CDExc09712 Missing new lines at end of .dat file
+
+Component: Xm                   Sub-component: Menu button interactio
+
+CDExc05914 SimpleM1 - test says there should be four pushbuttons displayed, but there
+CDExc08226 Menu1 test does not compile cleanly on alpha
+
+Component: Xm                   Sub-component: Menu event handling   
+
+CDExc07441 MenuBar1 does a KCancel when it really wants to do a ClickM
+
+Component: Xm                   Sub-component: Performance           
+
+CDExc23536 tests/Performance has CSText in it
+
+Component: Xm                   Sub-component: Resolution Independenc
+
+CDExc06071 RIPanedWin3.Scr has a typ
+
+Component: Xm                   Sub-component: TearOff Menus         
+
+CDExc07360 Test tries to add popup callback to row column widge
+
+Component: Xm                   Sub-component: Uniform Transfer Model
+
+CDExc24137 UTM tests fail to build due to use of CSTex
+
+Component: Xm                   Sub-component: VendorShell           
+
+CDExc06761 Don`t know how to make target VenShellM2.da
+
+Component: Xm                   Sub-component: XmComboBox            
+
+CDExc08654 ComboBox is a Manager not a Primitive and should be treated as such in Vis
+CDExc09289 ComboBox4 not updating with items being added to list
+CDExc23507 ComboBox1d test does not wor
+
+Component: Xm                   Sub-component: XmDialogShell         
+
+CDExc06772 No .dat file for DiaShellM
+CDExc06797 Test dies when destroying parent of a destroyed dialog message
+
+Component: Xm                   Sub-component: XmDrawingArea         
+
+CDExc09654 Problem with DrawArea2 test
+
+Component: Xm                   Sub-component: XmFileSelectionBox    
+
+CDExc24057 Widgets are getting resized when sensitivity changes
+
+Component: Xm                   Sub-component: XmForm                
+
+CDExc08393 Form1h script file has a syntax erro
+CDExc08640 Test crashing on Alpha due to script proble
+
+Component: Xm                   Sub-component: XmLabel               
+
+CDExc07864 MessageDia4 test needs to change calls from XtVaSetValues to XtSetValues f
+
+Component: Xm                   Sub-component: XmList                
+
+CDExc05904 ListM1 does not print message to term window as instructions suggest
+
+Component: Xm                   Sub-component: XmPanedWindow/Sash    
+
+CDExc07266 Incorrect dimensions for paned window and its children
+
+Component: Xm                   Sub-component: XmRowColumn WorkArea|R
+
+CDExc07701 RowCol1 logs two visual differences when run on alph
+
+Component: Xm                   Sub-component: XmScrollBar           
+
+CDExc24156 Scrollbar7 gives warning message and VISERRO
+
+Component: Xm                   Sub-component: XmSpinBox             
+
+CDExc22661 SpinBox QATS tests are using wrong value for arrowOrientation
+
+Component: Xm                   Sub-component: XmString              
+
+CDExc23502 Missing golden data for tests/XmString/StringTa
+
+Component: Xm                   Sub-component: XmText                
+
+CDExc09472 Get error about not being able to load font in ScrollText3
+
+Component: Xm                   Sub-component: XmTrackingLocate/Event
+
+CDExc06132 Test Grab1 crashes on Sun and HP and OSF/1
+CDExc07979 TrackingLocM2 test needs to be revisite
+CDExc08938 Problems with instruction panel for TrackingLocM1
+CDExc08953 Empty Shell widget in TrackingLocM
+
+Component: Xm                   Sub-component: Xme Transfer API      
+
+CDExc06819 XmeClipboardSink segv`
+CDExc08903 XmeTransfer test fails on alphas
+
+Component: Xm                   Sub-component: other                 
+
+CDExc20064 tests/Toolkit/Converters/Conversion2.c does not pass lin
+CDExc20077 tests/Manual/validator has outdated reference lo
+CDExc20082 Cutpaste4a give strange behavio
+CDExc20085 stupid varargs code in test routine kills u
+CDExc20089 XmeString test issues warnin
+CDExc20090 XmeTransfer test screwed u
+CDExc20095 ./XmeString: ERROR: incorrect XmString component encountere
+CDExc20098 test claims that CR 5989 is still a proble
+CDExc20101 VenShellM1 tests fai
+CDExc20113 automated Toolkit/ComboBox tests fai
+CDExc23215 tests/Toolkit/Extensibility/XmeTransfer doesn`t work at al
+CDExc23217 HorPanedWin1 wrong about siz
+CDExc23295 PanedWinM1 uses old XtGetValues(NULL
+CDExc23296 MessageBM1 item does not appea
+CDExc23306 ScrollText1 lies about resource setting
+CDExc23311 Visual1 uses wrong handling for sensitivit
+CDExc23328 Toolkit/Manual/BBoardM1 uses old form of XtGetValues(NULL
+CDExc23508 Automate constraint widget testin
+CDExc23928 Several tests in Toolkit/ResInd fail due to NULL ArgVa
+CDExc23929 Several tests in Toolkit/Scrollbar fail due to NULL ArgVa
+CDExc23983 Primitive/Label4 fails on Su
+
+Component: other                Sub-component: Automation            
+
+CDExc04952 mvsGetSubObjects must free memory allocated by XmFontListGetNextFont
+CDExc05254 TransFamily test exits with a signal under automatio
+CDExc06084 Automation is not doing the select for Text
+CDExc06591 Uninitialized memory read in Create/mvsGetRscVal`mvsGetResourceValue-  -
+CDExc07311 Automation doesn`t do printfs of callbacks - could this be related to the 
+CDExc08232 segv, event/actions when using ClickKey <Mod1> Kq
+CDExc09002 Automation dumps core in DragSliderValue if slider can not be found
+CDExc23848 Automation Imakefile does not pass CDEBUGFLAG
+CDExc23930 Several tests in Toolkit/Select depend on OSF site-specific directorie
+CDExc23946 AutoWmCmd.c is corrupted
+CDExc23956 Typo in QATS Automation error message
+CDExc23982 RUN_auto script contains OSF-specific display nam
+CDExc23993 Automation message SCRMSG19 is missing a wor
+CDExc24010 QATS environment setup files contain OSF-specific informatio
+CDExc24022 .motifbind file for HP-UX had bad osfMenu and osfMenuBar definition
+CDExc24032 Select/Command2 golden .prt file needs to be re-recorde
+CDExc24033 Error in script file for Container2
+CDExc24037 Golden data for textSl needs to be re-recorde
+
+Component: other                Sub-component: UIL                   
+
+CDExc04903 uil matrix tests are not complete
+
+Component: other                Sub-component: VendorShell           
+
+CDExc07291 Test instructions site the incorrect font for the pushbutton label
+CDExc08736 DiaShell1 not compiling clean on Alph
+
+Component: other                Sub-component: XmDialogShell         
+
+CDExc04891 uil test ErrorDia hasdefunct resource
+
+Component: other                Sub-component: XmManager             
+
+CDExc08642 Manager directory not compiling clean on Alph
+
+Component: other                Sub-component: XmMenuShell           
+
+CDExc07244 The following tests in tests/Toolkit/Manual generate compiler warnings whe
+
+Component: other                Sub-component: XmPanedWindow/Sash    
+
+CDExc08645 Instruction wrong in HorPanedWin
+
+Component: other                Sub-component: XmPushButton          
+
+CDExc08601 Buttons directory not compiling clean on Alph
+
+Component: other                Sub-component: XmTrackingLocate/Event
+
+CDExc07986 Instructions need a correction in TrackingLocM2 test
+
+Component: other                Sub-component: other                 
+
+CDExc03831 Several tests in Constraint directory need looking into. Instructions don`
+CDExc05398 Some Text tests use functions that are in Obsolete.
+CDExc05441 ScrollText1, Instruction Panel 3, instruction number 2 - looks like incorr
+CDExc05600 AutoParser leaks memor
+CDExc06123 Defunct tests/uil/matrix directory, tests no longer usefu
+CDExc06128 Makefile in Toolkit/Manual does not build all the test
+CDExc06129 Instructions for ListM1 is wrong, no message sent to stdou
+CDExc06131 Toolkit/Manual/SharedTearM1 segv when displayed onto a Sun or HP but not 3
+CDExc06142 Toolkit/Manual/SharedTearM1 segv on the Sun - betelgeuse 
+CDExc07288 The following tests failed in VenShellM1
+CDExc07449 RowCol* tests need to be added to  the foreach loop in RUN.custom
+CDExc07772 Top list CRs needing testcases can be inadvertently removed from the topli
+CDExc08412 compilation warnings for UTM/UTMPrim1.
+CDExc08935 DNDIcon1, Panel 7 wrong instructionin no. 3
+CDExc09713 DND test does not run correctly
+CDExc23543 Test failure of tests/Toolkit/Converters/RepType
+CDExc23924 Crash in Toolkit/PanedWin/PanedWin
+CDExc23927 Toolkit/Primitive/Label2 segv on Solari
+CDExc23948 Primitive/Label5 uses obsolete _XmGetImageFromFile(
+CDExc23965 Golden .prt file for Converters/RepType2 needs update for Motif 2.0 value
+CDExc24035 .motifbind file for Sun needs updat
+CDExc24038 MessageDiaM1 code does not match instruction pane
+CDExc24055 ColorM1.h does not compile on Su
+CDExc24174 Toolkit/CxxManager and Toolkit/CxxPrimitive directories are obsolet

+ 148 - 0
cde/Imakefile

@@ -0,0 +1,148 @@
+XCOMM $TOG: Imakefile /main/22 1999/01/18 10:38:29 samborn $
+#define IHaveSubdirs
+#define PassCDebugFlags CDEBUGFLAGS="$(CDEBUGFLAGS)"
+
+CDE_RELEASE = 2.1.20
+
+SUBDIRS = config util logs include lib programs databases admin
+DOCSUBDIRS = config doc
+
+MakeSubdirs($(SUBDIRS))
+
+DependSubdirs($(SUBDIRS))
+
+#define IHaveSpecialMakefileTarget
+Makefile:: xmakefile
+ImakeDependency(xmakefile)
+xmakefile:: Imakefile
+	RMoveToBakFile(xmakefile)
+	$(IMAKE_CMD) -s xmakefile -DTOPDIR=$(TOP) -DCURDIR=$(CURRENT_DIR)
+
+
+VerifyOS::
+	@echo ""
+	@echo Building on OSName.
+	@echo ""
+
+includes::
+	MakeDir($(BUILDINCDIR))
+
+XCOMM
+XCOMM Watch out!!!  Make sure you do make includes after removing X11....
+XCOMM
+clean::
+	$(RM) -r $(BUILDINCDIR)
+	$(RM) -r $(BUILDLIBDIR)
+
+      WORLDOPTS = -k
+      MAKE_OPTS = -f xmakefile
+
+XCOMM 
+XCOMM install; create the directories that we're going to need
+XCOMM 
+
+DIRS_TO_CREATE = $(USRLIBDIR) $(BINDIR) $(INCDIR) $(USRINCDIR) $(LIBDIR) $(XAPPLOADDIR)
+
+MakeDirectories(install, $(DIRS_TO_CREATE))
+
+XCOMM 
+XCOMM Everything builds everything in the SUBDIRS directories
+XCOMM 
+
+Everything::
+	@echo ""
+	@echo "Rebuilding Release $(CDE_RELEASE) of CDE"
+	@echo ""
+	@date
+	@echo ""
+	cd $(IMAKESRC) && if [ -f Makefile ]; then \
+	    $(MAKE) $(MFLAGS) BOOTSTRAPCFLAGS="$(BOOTSTRAPCFLAGS)"; \
+	else \
+	    $(MAKE) $(MFLAGS) -f Makefile.ini BOOTSTRAPCFLAGS="$(BOOTSTRAPCFLAGS)"; \
+	fi
+	-$(RM) xmakefile.bak; $(MV) xmakefile xmakefile.bak
+	$(MAKE) $(MFLAGS) -f xmakefile.bak xmakefile
+	$(MAKE) $(MFLAGS) $(MAKE_OPTS) Makefiles
+	$(MAKE) $(MFLAGS) $(MAKE_OPTS) Makefiles.doc
+	$(MAKE) $(MFLAGS) $(MAKE_OPTS) includes
+	$(MAKE) $(MFLAGS) $(MAKE_OPTS) includes.doc
+	$(MAKE) $(MFLAGS) $(MAKE_OPTS) depend
+	$(MAKE) $(MFLAGS) $(MAKE_OPTS) depend.doc
+	$(MAKE) $(MFLAGS) $(MAKE_OPTS) $(WORLDOPTS)
+	$(MAKE) $(MFLAGS) $(MAKE_OPTS) $(WORLDOPTS) all.doc
+	@echo ""
+	@date
+	@echo ""
+	@echo "Rebuild of Release $(CDE_RELEASE) of CDE complete."
+	@echo ""
+
+Everything.dev::
+	@echo ""
+	@echo "Rebuilding Release $(CDE_RELEASE) of CDE excluding DOC"
+	@echo ""
+	@date
+	@echo ""
+	cd $(IMAKESRC) && if [ -f Makefile ]; then \
+	    $(MAKE) $(MFLAGS) BOOTSTRAPCFLAGS="$(BOOTSTRAPCFLAGS)"; \
+	else \
+	    $(MAKE) $(MFLAGS) -f Makefile.ini BOOTSTRAPCFLAGS="$(BOOTSTRAPCFLAGS)"; \
+	fi
+	-$(RM) xmakefile.bak; $(MV) xmakefile xmakefile.bak
+	$(MAKE) $(MFLAGS) -f xmakefile.bak xmakefile
+	$(MAKE) $(MFLAGS) $(MAKE_OPTS) Makefiles
+	$(MAKE) $(MFLAGS) $(MAKE_OPTS) includes
+	$(MAKE) $(MFLAGS) $(MAKE_OPTS) depend
+	$(MAKE) $(MFLAGS) $(MAKE_OPTS) $(WORLDOPTS)
+	@echo ""
+	@date
+	@echo ""
+	@echo "Rebuild of Release $(CDE_RELEASE) of CDE excluding DOC complete."
+	@echo ""
+
+XCOMM clean out link tree looking for stuff that should get checked in
+dangerous_strip_clean::
+	make -k clean clean.doc
+	find . -type l -exec rm {} \;
+	find . \( \! \( -type d -o -name Makefile \) \) -print
+
+XCOMM special target to determine if the xmakefile exists. 
+XCOMM Works on both Unix and NMAKE.EXE
+xmakefile-exists::
+
+
+XCOMM 
+XCOMM Everything.doc builds everything in the DOCSUBDIRS directories
+XCOMM 
+
+Everything.doc::
+	@echo ""
+	@echo "Rebuilding Release $(CDE_RELEASE) of DOC"
+	@echo ""
+	@date
+	@echo ""
+	cd $(IMAKESRC) && if [ -f Makefile ]; then \
+	    $(MAKE) $(MFLAGS) BOOTSTRAPCFLAGS="$(BOOTSTRAPCFLAGS)"; \
+	else \
+	    $(MAKE) $(MFLAGS) -f Makefile.ini BOOTSTRAPCFLAGS="$(BOOTSTRAPCFLAGS)"; \
+	fi
+	-$(RM) xmakefile.bak; $(MV) xmakefile xmakefile.bak
+	$(MAKE) $(MFLAGS) -f xmakefile.bak xmakefile
+	$(MAKE) $(MFLAGS) $(MAKE_OPTS) Makefiles.doc
+	$(MAKE) $(MFLAGS) $(MAKE_OPTS) includes.doc
+	$(MAKE) $(MFLAGS) $(MAKE_OPTS) depend.doc
+	$(MAKE) $(MFLAGS) $(MAKE_OPTS) $(WORLDOPTS) all.doc
+	@echo ""
+	@date
+	@echo ""
+	@echo "Rebuild of Release $(CDE_RELEASE) of DOC complete."
+	@echo ""
+
+NamedTargetSubdirs(install.doc,$(DOCSUBDIRS),"installing",DESTDIR=$(DESTDIR),install)
+NamedTargetSubdirs(install.man.doc,$(DOCSUBDIRS),"installing man pages",DESTDIR=$(DESTDIR),install.man)
+InstallLinkKitSubdirs($(DOCSUBDIRS))
+NamedCleanSubdirs(clean.doc,$(DOCSUBDIRS))
+NamedTagSubdirs(tags.doc,$(DOCSUBDIRS))
+MakeMakeSubdirs($(DOCSUBDIRS),Makefiles.doc)
+NamedTargetSubdirs(includes.doc,$(DOCSUBDIRS),including,NullParameter,includes)
+NamedTargetSubdirs(depend.doc,$(DOCSUBDIRS),depending,NullParameter,depend)
+NamedMakeSubdirs(all.doc, $(DOCSUBDIRS))

+ 239 - 0
cde/Makefile

@@ -0,0 +1,239 @@
+# $TOG: Makefile /main/15 1999/10/12 09:33:30 mgreess $
+     RELEASE = Release 2.1.30
+     PRODUCT = CDE
+       SHELL = /bin/sh
+          RM = rm -f
+          MV = mv
+        MAKE = make
+       NMAKE = nmake
+   WORLDOPTS = -k
+WIN32WORLDOPTS = -i
+         TOP = .
+ CURRENT_DIR = .
+   CONFIGSRC = $(TOP)/config
+    IMAKESRC = $(CONFIGSRC)/imake
+   DEPENDSRC = $(CONFIGSRC)/makedepend
+   DEPENDTOP = ../..
+    IMAKETOP = ../..
+    IRULESRC = $(CONFIGSRC)/cf
+       IMAKE = $(IMAKESRC)/imake
+   IMAKE_CMD = $(IMAKE) -I$(IRULESRC) $(IMAKE_DEFINES)
+   MAKE_OPTS = -f xmakefile
+    MAKE_CMD = $(MAKE) $(MAKE_OPTS)
+   NMAKE_CMD = $(NMAKE) $(MAKE_OPTS)
+       FLAGS = $(MFLAGS) -f Makefile.ini BOOTSTRAPCFLAGS="$(BOOTSTRAPCFLAGS)"
+
+all:
+	@$(MAKE_CMD) xmakefile-exists || $(MAKE) all-initial
+	@$(MAKE_CMD) $@
+
+all-initial:
+	@echo "Please begin by using make World or make Makefile.  You may"
+	@echo "find it necessary to set the make variable BOOTSTRAPCFLAGS in"
+	@echo "order to compile imake.  One common example is"
+	@echo "\"BOOTSTRAPCFLAGS=-I<dir>\", where <dir> is the top of your"
+	@echo "X11R6 source tree.  Remember to check the configuration"
+	@echo "parameters in the config directory."
+	@echo
+	@echo "We recommend that you read the release notes carefully before"
+	@echo "proceeding; they can be found under the doc directory.  If"
+	@echo "the top-level Makefile gets corrupted, copy Makefile.ini to"
+	@echo "Makefile and try again.  Do not name your log file make.log or"
+	@echo "it will be deleted."
+
+World:
+	@echo ""
+	@echo "Building $(RELEASE) of $(PRODUCT)"
+	@echo ""
+	@case "x$(BOOTSTRAPCFLAGS)" in x) \
+	echo I hope you checked the configuration parameters in $(IRULESRC) ; \
+	echo to see if you need to pass BOOTSTRAPCFLAGS. ; \
+	echo "" ; \
+	;; esac;
+	@date
+	@echo ""
+	cd $(IMAKESRC) && $(MAKE) $(FLAGS) clean
+	$(MAKE) $(MFLAGS) Makefile.boot
+	$(MAKE_CMD) $(MFLAGS) VerifyOS
+	$(MAKE_CMD) $(MFLAGS) Makefiles
+	$(MAKE_CMD) $(MFLAGS) Makefiles.doc
+	$(MAKE_CMD) $(MFLAGS) clean
+	$(MAKE_CMD) $(MFLAGS) clean.doc
+	$(MAKE_CMD) $(MFLAGS) includes
+	$(MAKE_CMD) $(MFLAGS) includes.doc
+	$(MAKE_CMD) $(MFLAGS) depend
+	$(MAKE_CMD) $(MFLAGS) depend.doc
+	$(MAKE_CMD) $(MFLAGS) $(WORLDOPTS)
+	$(MAKE_CMD) $(MFLAGS) $(WORLDOPTS) all.doc
+	@echo ""
+	@date
+	@echo ""
+	@echo "Full build of $(RELEASE) of $(PRODUCT) complete."
+	@echo ""
+
+
+World.dev:
+	@echo ""
+	@echo "Building $(RELEASE) of $(PRODUCT) excluding DOC"
+	@echo ""
+	@case "x$(BOOTSTRAPCFLAGS)" in x) \
+	echo I hope you checked the configuration parameters in $(IRULESRC) ; \
+	echo to see if you need to pass BOOTSTRAPCFLAGS. ; \
+	echo "" ; \
+	;; esac;
+	@date
+	@echo ""
+	cd $(IMAKESRC) && $(MAKE) $(FLAGS) clean
+	$(MAKE) $(MFLAGS) Makefile.boot
+	$(MAKE_CMD) $(MFLAGS) VerifyOS
+	$(MAKE_CMD) $(MFLAGS) Makefiles
+	$(MAKE_CMD) $(MFLAGS) clean
+	$(MAKE_CMD) $(MFLAGS) includes
+	$(MAKE_CMD) $(MFLAGS) depend
+	$(MAKE_CMD) $(MFLAGS) $(WORLDOPTS)
+	@echo ""
+	@date
+	@echo ""
+	@echo "Full build of $(RELEASE) of $(PRODUCT) excluding DOC complete."
+	@echo ""
+
+World.doc:
+	@echo ""
+	@echo "Building $(RELEASE) of $(PRODUCT) DOC"
+	@echo ""
+	@case "x$(BOOTSTRAPCFLAGS)" in x) \
+	echo I hope you checked the configuration parameters in $(IRULESRC) ; \
+	echo to see if you need to pass BOOTSTRAPCFLAGS. ; \
+	echo "" ; \
+	;; esac;
+	@date
+	@echo ""
+	cd $(IMAKESRC) && $(MAKE) $(FLAGS) clean
+	$(MAKE) $(MFLAGS) Makefile.boot
+	$(MAKE_CMD) $(MFLAGS) VerifyOS
+	$(MAKE_CMD) $(MFLAGS) Makefiles.doc
+	$(MAKE_CMD) $(MFLAGS) clean.doc
+	$(MAKE_CMD) $(MFLAGS) includes.doc
+	$(MAKE_CMD) $(MFLAGS) depend.doc
+	$(MAKE_CMD) $(MFLAGS) $(WORLDOPTS) all.doc
+	@echo ""
+	@date
+	@echo ""
+	@echo "Full build of $(RELEASE) of $(PRODUCT) DOC complete."
+	@echo ""
+
+.PRECIOUS: Makefile
+
+# This is just a sequence of bootstrapping steps we have to do.
+# The steps are listed as separate targets so clearmake can wink in
+# the Makefile.proto files.
+Makefile.boot: imake.proto $(DEPENDSRC)/Makefile.proto depend.bootstrap $(IMAKESRC)/Makefile.proto imake.bootstrap
+
+imake.proto:
+	cd $(IMAKESRC) && $(MAKE) $(FLAGS)
+	$(RM) $(DEPENDSRC)/Makefile.proto
+
+$(DEPENDSRC)/Makefile.proto:
+	$(IMAKE_CMD) -s $(DEPENDSRC)/Makefile.proto -f $(DEPENDSRC)/Imakefile -DTOPDIR=$(DEPENDTOP) -DCURDIR=$(DEPENDSRC)
+
+depend.bootstrap:
+	cd $(DEPENDSRC) && $(RM) -r Makefile Makefile.dep makedepend *.o bootstrap
+	cd $(DEPENDSRC) && $(MAKE) -f Makefile.proto bootstrap
+
+$(IMAKESRC)/Makefile.proto:
+	$(IMAKE_CMD) -s $(IMAKESRC)/Makefile.proto -f $(IMAKESRC)/Imakefile -DTOPDIR=$(IMAKETOP) -DCURDIR=$(IMAKESRC)
+
+imake.bootstrap:
+	cd $(IMAKESRC) && $(MAKE) -f Makefile.proto bootstrapdepend
+	cd $(IMAKESRC) && $(MAKE) $(FLAGS) bootstrap
+	cd $(IMAKESRC) && $(MAKE) -f Makefile.proto all 
+	-@if [ -f xmakefile ]; then set -x; \
+	  $(RM) xmakefile.bak; $(MV) xmakefile xmakefile.bak; \
+	  else exit 0; fi
+	$(MAKE) $(MFLAGS) xmakefile
+
+Makefile::
+	$(MAKE) $(MFLAGS) xmakefile
+
+xmakefile: Imakefile
+	$(IMAKE_CMD) -s xmakefile -DTOPDIR=$(TOP) -DCURDIR=$(CURRENT_DIR)
+
+World.Win32:
+	@echo :
+	@echo Building $(RELEASE) of $(PRODUCT).
+	@echo :
+	@echo :
+	cd $(IMAKESRC)
+	$(NMAKE) -f Makefile.ini clean.Win32
+	$(NMAKE) -f Makefile.ini imake.exe
+	cd ..\..
+	-if exist xmakefile.bak del xmakefile.bak
+	-if exist xmakefile ren xmakefile xmakefile.bak
+	$(IMAKE:/=\) -s xmakefile -I$(IRULESRC) $(IMAKE_DEFINES) -DTOPDIR=$(TOP) -DCURDIR=$(CURRENT_DIR)
+	$(NMAKE_CMD) $(MFLAGS) VerifyOS
+	$(NMAKE_CMD) $(MFLAGS) Makefiles
+	$(NMAKE_CMD) $(MFLAGS) clean
+	$(NMAKE_CMD) $(MFLAGS) includes
+	$(NMAKE_CMD) $(MFLAGS) depend
+	$(NMAKE_CMD) $(MFLAGS) $(WIN32WORLDOPTS)
+	@echo :
+	@echo :
+	@echo Full build of $(RELEASE) of $(PRODUCT) complete.
+	@echo :
+
+
+# don't allow any default rules in this Makefile
+.SUFFIXES:
+
+# a copy of every rule that might be invoked at top level
+
+clean:
+	    $(MAKE_CMD) $@
+dangerous_strip_clean:
+	    $(MAKE_CMD) $@
+depend:
+	    $(MAKE_CMD) $@
+Everything:
+	    $(MAKE_CMD) $@
+external.ln:
+	    $(MAKE_CMD) $@
+includes:
+	    $(MAKE_CMD) $@
+install.ln:
+	    $(MAKE_CMD) $@
+install.man:
+	    $(MAKE_CMD) $@
+install:
+	    $(MAKE_CMD) $@
+Makefiles:
+	    $(MAKE_CMD) $@
+man_keywords:
+	    $(MAKE_CMD) $@
+tags:
+	    $(MAKE_CMD) $@
+VerifyOS:
+	    $(MAKE_CMD) $@
+
+# dev versions
+
+Everything.dev:
+	    $(MAKE_CMD) $@
+
+# doc versions
+
+clean.doc:
+	    $(MAKE_CMD) $@
+depend.doc:
+	    $(MAKE_CMD) $@
+Everything.doc:
+	    $(MAKE_CMD) $@
+includes.doc:
+	    $(MAKE_CMD) $@
+install.man.doc:
+	    $(MAKE_CMD) $@
+install.doc:
+	    $(MAKE_CMD) $@
+Makefiles.doc:
+	    $(MAKE_CMD) $@
+tags.doc:
+	    $(MAKE_CMD) $@

+ 3557 - 0
cde/OPENBUGS

@@ -0,0 +1,3557 @@
+
+------- Open defects in project cde-code        -------
+
+
+Component: Applications         Sub-component: dndproxy              
+
+CDExc15915 dnd into a shelltool prevents source app from dnd ing agai
+CDExc22188 dsdm is incompletely localize
+
+Component: Applications         Sub-component: dtaction              
+
+CDExc14214 dtcreate would be enhanced if state variables can be se
+CDExc20486 dtaction does not support -help optio
+CDExc20714 dtaction -execHost does not work with different username on remote hos
+CDExc23957 dtaction fails to display error message
+
+Component: Applications         Sub-component: dtappintegrate        
+
+CDExc11439 Needs to support integrating under $HOM
+
+Component: Applications         Sub-component: dtappmanager          
+
+CDExc20170 Application Manager dies with file/path erro
+CDExc20607 DtAppmanager does not recognize new App_Group
+CDExc23464 dt man page viewer needs MANPATH to be set to display man pages
+
+Component: Applications         Sub-component: dtbuilder             
+
+CDExc10998 icons inconsistent with other CDE icon
+CDExc11094 CGT1-3  Code Gen Window - Can`t copy from it
+CDExc11177 Resize problems in panes - DOM2_2 
+CDExc11178 title bar needs to be changed from App Build to dtbuilde
+CDExc11182 No scroll cability in code generator windo
+CDExc11183 No copy/paste cability in code generator windo
+CDExc11184 No group type in property shee
+CDExc11185 core dump when aligning group
+CDExc11563 Apply in Main Window prop sheet makes window come forward
+CDExc11585 view conn list in conn mgr doesn`t have Al
+CDExc11810 Need a way for apps to specify destruction of popup
+CDExc11836 Undo does not restore connection
+CDExc12229 Drag rectangle obscured by object it represent
+CDExc12236 appbuilder should chg 2 terms to agree with  cde usag
+CDExc12357 Can`t drop a control on top of another contro
+CDExc12395 No error pop-up in Connections Manger from lack of Targe
+CDExc13025 Save Changes Dialog should read  Discard Edit
+CDExc13131 Spinbox: Arrow Style does not reset
+CDExc13195 Default object names: should include  1  as suffix
+CDExc13203 Scale object called Slider in Info Area; no Type in UI
+CDExc13209 Property Editor: Object Order not clear
+CDExc13268 Property Editor: Menu: Tearoff Enabled & Disabled
+CDExc13490 Revolving prop editor and conn editor should be iconabl
+CDExc13551 Popup menu model is not standard
+CDExc13648 Blinking cursor in Code Gen Term Pane is aggravating
+CDExc13649 Import BIL file twice; core dump
+CDExc13785 Help Editor: buttons do not line up
+CDExc14218 should remember last resiz
+CDExc14293 Menu: can t create first menu in Menu Editor
+CDExc14294 Scale prop sheet: Label and Graphic String inactive
+CDExc14295 Error message for dropping panes mentions containers
+CDExc14352 Help: can t delete help for object
+CDExc14514 Resizing project organizer does not re-layout icon
+CDExc14531 cgen: execute code connections not followed by newlin
+CDExc14650 To correct invalid names reset button is used - can`t it be aut
+CDExc14771 Browser: popup menu only if close to browser objects
+CDExc14853 Multiple item selection doesn`t work correctly
+CDExc15049 Project is read-only  message is redundant and unnecessar
+CDExc15052 No way to find hidden widge
+CDExc15054 Groups don t relayout children when an object s size change
+CDExc15170 Module path: field fails to get updated by pointe
+CDExc15201 arrow push button doesn t change to menu button in u
+CDExc15313 Add mouse-based discontiguous selectio
+CDExc15418 Black border around choice items fails to get redraw
+CDExc15544 Grouping items resizes scrolled list inappropriately
+CDExc15593 PanedWindow doesn t attach to window when stretched past ed
+CDExc15610 Can t reduce W value in main window prop ed
+CDExc15752 seperator displays twice when changing orientatio
+CDExc15755 Foreground color is meaningless with etched Line Styl
+CDExc15802 Changes to current project lost if open other project
+CDExc15815 error messages should be multi-lin
+CDExc15824 Browser needs documente
+CDExc15830 Instantiation error
+CDExc15854 Help volume is incomplete and out of date
+CDExc16057 Browser inconsistent in its displa
+CDExc16086 Message objects do not show up in browser top level vie
+CDExc16150 Warning: DtTermInitialize not called before initializatio
+CDExc16180 User can`t type none as color choice - really should be able t
+CDExc16234 generated .h files should have ifdef __cplusplus extern  
+CDExc16236 want options of _stubs.C, _stubs.cc, _stubs.cpp etc
+CDExc16257 Test mode: custom dialog not iconify with parent
+CDExc16288 Test bad for defect 632
+CDExc16423 Bad widget layou
+CDExc16549 No error in dropping on the palett
+CDExc16552 Not picking up stylemanager font change
+CDExc16554 Inconsistencies in getting project create
+CDExc16574 Browser`s View menu items need to be made insensitiv
+CDExc16575 Browser has trouble displaying linear tree
+CDExc16576 Browser`s find window is too smal
+CDExc16577 Browser`s find doesn`t return error if invalid inpu
+CDExc16636 CodeGen action not working
+CDExc16657 PRJ1:5-6 Project and Module Paths aren`t being set correctl
+CDExc16658 Module menu items are not inactive when require
+CDExc16661 Testcase error in CON4.1-
+CDExc16662 text and term panes don`t resize correctly
+CDExc16664 HLP10.1: Renaming object causes it to duplicate
+CDExc16670 Problem with reducing Project Organizer PRJ3.
+CDExc16671 Project Organizer doesn`t close associated dialogs: PRJ3.
+CDExc16676 PRP1.2: Menu Button is misbehavin
+CDExc16677 PRP2.10-11  Property Editor chops color name at beginnin
+CDExc16678 Property Editor doesn`t report more than 1 error at a tim
+CDExc16679 Message needs updated PRP3:
+CDExc16681 With label type of Graphic, Foreground resource is meaningles
+CDExc16694 Changing module Name deselects the Object HLP12.
+CDExc16696 Spin Box doesn`t get resized when label size shrink
+CDExc16701 Can`t add error checking for user input in spin bo
+CDExc16718 Inactive and Selected should be an invalid combinatio
+CDExc16729 Fit Contents isn`t working in the PE for main windo
+CDExc16730 Pixmap doesn`t always display on main window ico
+CDExc16731 PRP14:7 - some widgets aren`t greying out on inactiv
+CDExc16733 Palette has cursors - which flicke
+CDExc16734 PRP24:7 Can`t run test as writte
+CDExc16735 Object Type is inconsistent with widget loaded in P
+CDExc16738 FSB selects a default filter when not appropriat
+CDExc16739 Creating a popup menu doesn`t seem to do anything on text pan
+CDExc16741 Widgets which are inactive shouldn`t display the curso
+CDExc16743 Can`t change the colors of the scroll bar
+CDExc16744 cntl and mouse 1 select invokes Connection Edito
+CDExc16748 Item Mnemonic isn`t insensitive when label is graphi
+CDExc16749 Changing the background resource in MenuBar doesn`t change al
+CDExc16787 DtBuilder`s popupMenu interferes with DtMenuButton`s men
+CDExc16874 Property Editor is active on selecting layer
+CDExc16910 Default directory for Save As doesn`t make sens
+CDExc16913 Parameter needs cleaned up for messag
+CDExc16964 Property Editor not tracking current objec
+CDExc16968 Button3 props cascade menu doesn`t pop u
+CDExc17061 Browser doesn`t update with new menu item
+CDExc17078 The Connections Editor allows the user to add duplicate connec
+CDExc17104 Copying a button from a dialog window results in wide butto
+CDExc17106 No checking is done to see if out of space when savin
+CDExc17108 Change and Delete buttons disappear in CE while refres
+CDExc17109 Connections Editor Set Label function doesn`t work on graphi
+CDExc17204 Buttons overlap on large font
+CDExc17292 Can no longer drop a menu bar on the main windo
+CDExc17294 Bad fix - defect 767
+CDExc17295 File->Save should be sensitive on new project
+CDExc17300 PE doesn`t save default and help selections properl
+CDExc17310 dtbuilder doesn`t seem to handle pathnames on invocatio
+CDExc17311 dtbuilder doesn`t allow null label
+CDExc17313 Hide and Show should not be active when using Created in C
+CDExc17323 Project Organizer window isn`t appropriate widt
+CDExc17329 Can`t invoke Help Editor for File Selection Box from RP
+CDExc17342 Cannot reach label or separator controls via keyboard traversa
+CDExc17361 Discard changes dialog box help button isn`t workin
+CDExc17363 Import FSB help button displays blank pop-u
+CDExc17371 Adding a pane to a pane window is bugg
+CDExc17372 Moving a sash on the Control Pane draws black line
+CDExc17376 Can`t add menus to individual list item
+CDExc17381 PE allows the input of an unknown menu definitio
+CDExc17383 Return in CE doesn`t work for all drag-link invocation
+CDExc17384 Title wrong for Group Property Edito
+CDExc17386 CE should only allow Call Function for TT action
+CDExc17387 buttons don`t display when not visible in test mode
+CDExc17419 .bil doens`t get updated with connection changes
+CDExc17420 Connections editor not updated with new objec
+CDExc17421 Cannot make connection on Activate of Choice Ite
+CDExc17432 Help Volume problems - post S
+CDExc17433 Blank lines don`t get ignored when setting label graphic
+CDExc17436 Move cursors are inconsistent for the widget
+CDExc17437 dtbuilder doesn`t set labels on buttons via C
+CDExc17438 Can`t Undo a deleted connectio
+CDExc17439 A couple more inconsistencies with object list
+CDExc17440 User can`t see connection if view isn`t Source Objec
+CDExc17441 Can`t find make message needs update
+CDExc17445 Group Property Editor Window is too shor
+CDExc17468 dtbuilder loses connection chang
+CDExc17469 Continuation of I18N discussion - 707
+CDExc17472 I18N/T9N: build messes up messages file
+CDExc17479 Text Field Connections don`t work in tes
+CDExc17829 dtbuilder: menu item not activate
+CDExc19724 If no project is open, several invalid options are available
+CDExc20239 dtcodegen modifies string constant
+CDExc20534 Faulty behavior when copying a Project using Save A
+CDExc20542 dtbuilder can`t find a module in a sub-director
+CDExc20545 After failing to name a new window, cancel leaves a named window
+CDExc20548 Deleting a connected module causes all modules in project to be removed
+CDExc21367 Buttons on Drag and Drop of Custom Dialog clobber each other
+CDExc22187 dtappbuilder is incompletely localize
+CDExc22189 abuil_print transforms comboboxes into option menu
+CDExc22190 abuil_print transforms spin boxes into text field
+CDExc22374 dtcodegen does not generate Makefiles for UNIX_SV when run on HP-U
+CDExc22375 Makefiles generates by dtcodegen have incomplete scour targe
+CDExc23692 dtcodegen is dumping core on Linux
+
+Component: Applications         Sub-component: dtcalc                
+
+CDExc12791 Buttons are too close together and look too much alik
+CDExc12837 Would like an RPN option to dtcal
+CDExc13008 Space for 40, but display only accepts 36 chars even if Acc=
+CDExc13030 Keys button doesn`t display keyboard values for option menus
+CDExc13901 Mem. Reg. Dialog not restored to prev. position at new session
+CDExc13903 Finance Reg., Const. & Func. diags not restored at new session
+CDExc14625 should not beep under normal condition
+CDExc14652 buttons having own pop-up menus should have visual indicato
+CDExc14685 should beep on illegal key after selecting menu-butto
+CDExc14689 should right-align values displayed in Financial Reg dialo
+CDExc14701 should display user-defined constants with default radi
+CDExc14707 constants saved in non-decimal base are treated as decima
+CDExc15089 no usage error msg when incorrect option is specifie
+CDExc15509 Unable to include special keys - ^s, clear display - in function
+CDExc15518 Display of small numbers in Mem. & Fin. regs. confusing
+CDExc19438 dtcalc uses deprecated HP input device extensio
+CDExc21023 In X11R6.1 dtcalc could use XKB instead of HP_EXTENSION
+CDExc23547 DtCalc popup window  has problem interpreting CR keystrok
+CDExc23939 dtcalc cursor looks wrong when it first comes u
+
+Component: Applications         Sub-component: dtcm                  
+
+CDExc10821 Rpc.cmsd demos bad behavior if callog.username is missin
+CDExc10829 - Selected - Date is not preserved when traversing calendar view
+CDExc10934 Toolbar Icons are not easily understood
+CDExc11097 rpc.cmsd not responding user feedback flawe
+CDExc11236 Date formats not enforced in appt. edito
+CDExc11241 Changing start to PM doesn`t change Stop to P
+CDExc11243 Day View should show appts with no tim
+CDExc11293 RFE: Show Other Calendar dialog should not obscure calenda
+CDExc11295 Views print in reverse order at printe
+CDExc11301 Apply functionality non-uniform across window
+CDExc11319 dtcm duplicates libc functionalit
+CDExc11323 Day View hour slots not flush with bottom - RFE 
+CDExc11383 dtcm titles do not conform to the CDE style standards
+CDExc11426 Stop time set with No Time comes back with a time filled in
+CDExc11445 Have Today button change with Vie
+CDExc11497 Multiple instance of a calendar all send appt reminder
+CDExc11504 Appt. reminders from background, other machine
+CDExc11669 ToDo & Appt Eds retain Expanded setting in minimal versio
+CDExc11673 Irregular ordering of Privacy popup men
+CDExc11686 For text field length less than maximum For label lengt
+CDExc11687 Obscured Appt & ToDo eds expanded close to bottom of scree
+CDExc11729 Request Calendar to list date repeating appts star
+CDExc11812 Slow Find on one-time appt: 3+min for 17 line callo
+CDExc11813 Redesign Finder for repeat appt
+CDExc11918 Partial calendar names in Group Appointment Edito
+CDExc12226 leave newly created appointment selecte
+CDExc12388 Cancel button behavior in dialogs is inconsistent
+CDExc12399 date assume in Appt Editor if only What field filled i
+CDExc12500 To Do mail reminder can`t be differentiated from appointmen
+CDExc12554 Inappropriate behavior on Change of unmodified appointmen
+CDExc12562 DIalog windows should have minimum resize window limits
+CDExc12591 appt delected when someone else insert
+CDExc12631 Cross-day appts: no date in Day Vie
+CDExc12962 View->To Dos... should gray-out when you have non
+CDExc12963 Add ability to DnD appts from alarm dialog to different tim
+CDExc13076 Add case-sensitive search option in Find window
+CDExc13122 dtcm should switch you back to the default calenda
+CDExc13281 Start/Stop time retrieval from menu and appointment differs
+CDExc13643 Cal permissions not checked early enoug
+CDExc13795 Dialogs should not be allowed to be sized too small
+CDExc13805 Error messages should indicate alternative action
+CDExc14407 dtcm ignores LC_TIME setting for date format
+CDExc14728 Change CM tab navigation and focus mode
+CDExc15028 Wrong visual for todo drag ico
+CDExc15451 showing week numbers when using week vie
+CDExc15627 A Clear button in the Find Dialog would be nice
+CDExc15630 appt dialog should be positioned off of the minimize butto
+CDExc16111 All appointment text should be visible Day and Week vie
+CDExc16112 Allow the user to specify a default start and end tim
+CDExc16113 per-todo item option should exis
+CDExc16114 search mechanism should exis
+CDExc16116 Week view should provide more customizatio
+CDExc16226 View menu should use radio button
+CDExc16518 DnD of One Time appt fails on H
+CDExc16635 DtcmInsert action gives no feedback
+CDExc16639 dtcalendar example - compiler warning on H
+CDExc16651 T9N: calendar app-defaults file rename
+CDExc17165 Changing day in the mini month fails to update Appt Edito
+CDExc17169 Calendar-Finder footer displays incorrected messag
+CDExc17172 Calendar-Finder search doesnt included the date in `to` fiel
+CDExc17192 `Go to Date` window displays incorrect footnot
+CDExc17487 dtcmsd running as group bin prevents shared calendar spool dir
+CDExc17506 dtcm Calendar Appointment Editor doesn`t redraw properl
+CDExc17849 dtcm appt editor should label times with A or P in 12 hour forma
+CDExc17850 dtcm appointments with no time should appear as --:-- What in appt edito
+CDExc17851 All day appts list first in appt edito
+CDExc17852 3 digit times formatted badly in appt edito
+CDExc17853 Can`t navigate with keyboard when appt editor ope
+CDExc17854 dtcm time selection widget on appt editor awkward to us
+CDExc17858 dtcm bad window managemen
+CDExc17859 dtcm doesn`t update main canva
+CDExc17860 dtcm bad window management: goto date windo
+CDExc17861 dtcm changing timezones breaks thing
+CDExc17862 dtcm: inconsistent behavior when no appts, v. no todo
+CDExc17864 dtcm becomes confused when running on two machine
+CDExc17869 dtcm doesn`t update appt edito
+CDExc17871 dtcm fails to dismiss Go To Date windo
+CDExc17872 dtcm time zone window preserves dat
+CDExc19142 dtcm paradigm is inconsistent with dtmail and confuses user
+CDExc19238 Reminder popped up several days too earl
+CDExc19268 The C and localized versions of dtcm.msg contain many obsolete messages
+CDExc19355 dtcm: Spurious `cannot connect` messages when run on native hos
+CDExc19356 dtcm: selecting Today button does not update open Appointment Edito
+CDExc19358 dtcm: On-Help select changes selected item in windo
+CDExc19360 dtcm: No time appointments should show No Time in the app edito
+CDExc19364 dtcm: wide appointment texts don`t displa
+CDExc19373 dtcm: Entering a To Do fails to reset the time fiel
+CDExc19374 dtcm: resize events handled strangel
+CDExc19376 dtcm: Repeat every button not updated correctl
+CDExc19377 dtcm: New repeating appointment dialogue confirm has odd labe
+CDExc19378 dtcm: Repeating For values are not checked for forma
+CDExc19379 dtcm: Changing frequency of repeating appointments
+CDExc19381 dtcm: Focus changes when selecting day vie
+CDExc19382 dtcm: Arrow keys do not wor
+CDExc19383 dtcm: clicking on grey-hours in week view ungreys the
+CDExc19384 dtcm: Impossible appt during DST change not notice
+CDExc19385 dtcm: Appointment list lets you select appointments, but not do anythin
+CDExc19386 dtcm: Appointment list updated at strange time
+CDExc19388 dtcm: Drag and drop of To Do items is odd, and counter-intuitiv
+CDExc19818 dtcm: Incorrect behavior in Appt. Editor window for `One Time` Occurs
+CDExc19823 dtcm: Incorrect behavior in Appt. Editor window for `Every 2 Weeks` Occurs
+CDExc20259 Group appointment inserted with bogus reminders on default calenda
+CDExc20508 dtcm ToDo`s sent via dtmail become appointment
+CDExc20516 Editor Default Privacy field not fully visibl
+CDExc20524 dtcm: appointments into next day don`t display properl
+CDExc20525 dtcm: 24 hour appointment shows as ZERO duratio
+CDExc20569 dtcm: sash bar changes altered by click in wee
+CDExc20570 single-click in week grid doesn`t update Grp Appt Men
+CDExc20576 `Calendar does not exist` error missing Help butto
+CDExc20885 dtcm Options Display slider values don`t reflect appt lengt
+CDExc21171 dtcm should not save its geometry and workspace when a session is save
+CDExc21204 resize events handled strangely (`Find` and `Compare Calendar` 
+CDExc21205 Group Appointment Editor displays incorrect access rights
+CDExc21206 Compare Calendar window grows wide, when you click time block
+CDExc21352 Time blocks in Week View are too dens
+CDExc21394 Appointment Editor window keeps on shifting (right-downwards
+CDExc21485 DTCM COMPARECALENDARS DATE LIMITATION NOT ENFORCE
+CDExc21586 Redraw of lines in drawing area leaves 1-pixel gap
+CDExc21956 double-clicking days in the year view should start Appt. Edito
+CDExc22081 The Calendar:Error - Print Setup dialog should have a help butto
+CDExc22083 Help text for printing lacks (references to) usefull informatio
+CDExc22148 The calendar mgr server daemon is not killed when CDE is shutdown
+CDExc22149 Calandar Manager fails to display a label in the Front Panel when expected
+CDExc22150 DTCM YEAR LIMIT MESSAGES ARE NOT ALWAYS DISPLAYED
+CDExc22174 Printed weekly view wastes white spac
+CDExc22201 dtcm assumes pid_t is an in
+CDExc22205 dtcm is incompletely localize
+CDExc22214 Appointment Editor time menu buttons can be too wid
+CDExc22215 dtcm Italian app-defaults file has stray quote mark
+CDExc22286 Todo objects are not supported in the deskto
+CDExc22287 dtcm_insert does not handle a ToDo even
+CDExc22288 dtcm does not handle a dropped ToDo even
+CDExc22289 dtcm_editor does not handle a file with a ToDo even
+CDExc22716 Files create by yacc do not have a make clean rul
+CDExc22791 DOCUMENTED METHOD OF FIGURING TIMEZONE SETTING IS MISLEADING 
+CDExc22795 DTCM PRINTER SETTINGS INCLUDE SECTION HAS CONFUSING WORDIN
+CDExc22796 Setting dtcm display options 21 hour interval makes 
+CDExc22798 On Item Help missing for various items in DTC
+CDExc22867 DTCM has problems with captions when font size is set to 7
+CDExc22868 the a and p in dtcm`s day view (for am and pm) should be localizabl
+CDExc22869 dtcm`s appointment list dialog has formatting and am/pm problem
+CDExc22870 dtcm`s appointment editor dialog has two small layout problem
+CDExc22876 dtcm`s appointment editor dialog has layout problem with am/pm indicator
+CDExc22877 please make dtcm`s initial date format localizabl
+CDExc22878 please make dtcm`s choice of 12 vs. 24 hour time format be localizabl
+CDExc22892 please make these two strings in dtcm`s mail window localizabl
+CDExc22921 Appointment AM/PM indicators lock in 24 Hour display mode
+CDExc22946 Calendar Options Category pulldown m
+CDExc22947 Calendar default window sizes are too small to show info 
+CDExc22972 dtcm takes too long to change from 12 to 24 hou
+CDExc22973 dtcm should hide AM PM buttons in 24-hour mod
+CDExc22996 dtcm`s todo and appt lists use incorrect date format in japanes
+CDExc23078 Dtcm - Help: Clicking on Help of error dialog of inetd not running goes ..
+CDExc23357 dtcm does not change date format as appropriate according to local
+CDExc23960 dtcm leaks memory when the Browse menu is updated
+CDExc24024 Missing location ids in dtc
+
+Component: Applications         Sub-component: dtcreate              
+
+CDExc11958 dtcreate man page has dticon and dtfile in SEE ALS
+CDExc12265 Replace utility with tool in Help text
+CDExc12763 Use of datatype and data typ
+CDExc13119 Usability problems with edit ico
+CDExc14215 allow multiple input
+CDExc15284 Show Monochrome checkbox disappear
+CDExc15572 When OPEN dialog is up, primary stops working but has curso
+CDExc16631 HIllegal code in dtcreat
+CDExc16683 Get `Actions not found` msg
+CDExc17027 Hour glass cursor removed too soo
+CDExc17028 Permissions pattern longer than windo
+CDExc17029 Does not allow `Ask For` on other parameter
+CDExc17030 $ syntax only allows a one digit valu
+CDExc17039 Inaccurate error message
+CDExc17128 Cannot open an existing action
+CDExc19460 dtcreate let the user enter an invalid action nam
+CDExc21183 dtcreate displays an unsorted list of icons in `Find Set
+CDExc21212 Height of button in dtcreate changes with window resiz
+CDExc21216 dtcreate: no return binding in Find Set (selection) widge
+CDExc21218 No response on Find Set in dtcreate when different locale chosen at logi
+CDExc21308 The message of Question Dialog is only English
+
+Component: Applications         Sub-component: dtdocbook             
+
+CDExc22268 dtdocbook does not number Procedure Step
+CDExc22271 dtdocbook handles RefSect2 oddl
+CDExc22274 dtdocbook produces hugely wide output for relative ColWidt
+CDExc22857 Sdl files generated from common sgm file vary depending on platfor
+CDExc22861 Commandline return value for dtdocbook wrong on IB
+CDExc22919 dtdocbook fails to place Anchor ids correctl
+CDExc22984 dtdocbook does not localize default admonition title
+CDExc23030 dtdocbook incorrectly sorts glossary entries in German on Solari
+CDExc23081 nearly useless dtdocbook error message
+CDExc23118 dtdocbook or DtHelp fails to handle newlines in certain contex
+
+Component: Applications         Sub-component: dtfile                
+
+CDExc09837 When creating new from template, use tearoff drag animatio
+CDExc09840 Desktop icons - add occupy across workspace
+CDExc09844 Selection Dialog for file copy destination
+CDExc09848 Add a mulitpane-style view to the File Manage
+CDExc09850 File manager to support other devices
+CDExc09852 Selection of template type w/in New File dialo
+CDExc09853 File duplication with automatic namin
+CDExc09854 File search by filetyp
+CDExc09857 File Manager open new view or in plac
+CDExc09859 Link/reflection design issue
+CDExc09861 Filetype selection in New File dialo
+CDExc09862 Selectable history list of accessed folders for recal
+CDExc09864 File links inherit the properties of the linked fil
+CDExc09866 Save session auto to gaurd against crashe
+CDExc09868 Converge action/filetype def lang and front panel def lan
+CDExc09869 Changeable icon spacin
+CDExc09871 File Manager - shouldn`t have to hit enter change icon nam
+CDExc09879 Mouse selection to select directory search rang
+CDExc09880 File Manager search for new/modified file
+CDExc09881 Add case selection option for file searc
+CDExc09882 Trash: Add user specified timed dum
+CDExc09883 Align - to - grid function for icon
+CDExc09886 Trash view isn`t restored between sessions
+CDExc09899 Drag-and-Drop text selection
+CDExc09912 Add `Go Up...` icon to filetree view to be visible at all time
+CDExc10236 FileMgr windows should auto-scroll on icon dra
+CDExc11333 tear-off menus wante
+CDExc11535 Provide switch user contro
+CDExc12086 Need multi-object move/copy/link
+CDExc12097 Add seperate size control for iconic pat
+CDExc12697 Need to add scrolling drag
+CDExc12714 Buttons at bottom of Set Properties incorreect
+CDExc13978 Re-selecting Selected.* options creates 2nd dialo
+CDExc14136 cannot drag-copy or drag-link in same folde
+CDExc14404 dtfile views limited to default scree
+CDExc14494 Find doesn`t work in App Manage
+CDExc14510 middle button drag broken in 2button mous
+CDExc16766 Need Put In Trash button in Find dialo
+CDExc16767 Need icon name truncatio
+CDExc16768 Iconic path icon object behaviors incomplet
+CDExc16769 Need to integrate Save Settings with Set Preferences
+CDExc16770 Set Filter Options dialog needs rework
+CDExc16788 File Actions need to be in the backgroun
+CDExc16789 Collision Dialogs need to be moda
+CDExc17278 Cannot detect AFS on Sun or H
+CDExc17312 need popup object indicatio
+CDExc17315 Placement is strange in `As Placed` mode
+CDExc17325 Cannot delete a file with a space in a multiple delete
+CDExc17364 afs permissions dont sho
+CDExc17366 Datatype icons may be incorrect when object permissions change
+CDExc17368 Information on Permissions dialog for a recursive link is bogu
+CDExc17406 Folder name entry fields don`t resolve /afs/austin/u1/lstein
+CDExc17409 Misleading message for /afs/austin/u1/lstein/.dt/Desktop
+CDExc17412 Can loose icons in dtfile view when restoring session
+CDExc17414 As placed mode doesn`t work in `By Name, date, size ...` mode
+CDExc17418 Help position is off for Selected/View pulldowns
+CDExc17497 dtfile IconWindow.c handling of virtual keysyms is suspicious
+CDExc17577 Action/Datatyping Inconsistency for Sym Link
+CDExc17751 could not shift click to add files/directories to selecte
+CDExc17752 double clicking on directory name in dtfile does not selec
+CDExc17983 dtfile outline view leaves vertical trash line behing when collapse
+CDExc18044 dragging ".." to workspace in app manager has wrong nam
+CDExc19530 Selected text in icons used for filtering white on whit
+CDExc19531 Autodrag/scroll of icons too fas
+CDExc19576 defaults to small icon
+CDExc19784 Transient VM exhaustion can make dtfile loo
+CDExc20184 need to truncate long filename
+CDExc20291 Redragging an existing data file on desktop does not generate error messag
+CDExc20893 refresh in dtfile is too slo
+CDExc21310 There aren`t Japanese labels that used to display datatypes by dtfile
+CDExc21311 The icon area can`t make a change size
+CDExc21312 dtfile : Can`t use printing of the help
+CDExc21392 Problem starting two dtfile on two different screens at a time
+CDExc21393 a possible secutiry hole in filemanager started from `su` session
+CDExc21510 D&D OF ICON FROM FILE MGR ACROSS HEADS ONTO DTTERM LOSES OBJECTS
+CDExc21693 dtfile icon spacing incorrect in japanes
+CDExc21847 bad mnemonic for Deselect Al
+CDExc21848 BACKTRACK in Help for DTFILE when server starts gives error ms
+CDExc21849 AppManager: restrictions should be enforced in support of vendo
+CDExc21852 dtfile: Find operation searches all subdirs, suggest a new option for on
+CDExc21926 dtfile ignores alphabetical sorting order while displaying files/folders
+CDExc22719 Accelerators that need Ctrl key won`t work in the spanish local
+CDExc23112 When moving write protected files to the trash can, not all are displayed.
+CDExc23157 app manager should iconify after action star
+CDExc23564 Action dialog in File manager for executable file has design proble
+CDExc24158 dtfile allows directories to be moved when a view is open
+CDExc24165 dtfile fails to display an error dialog when trashing the root directory
+CDExc24169 dtfile rename function fails to respond to osfEndLine ke
+CDExc24172 dtfile displays the wrong error dialog when trashing the .dt directory
+
+Component: Applications         Sub-component: dtfonteditor          
+
+CDExc23016 font editor, etc. should have actions define
+
+Component: Applications         Sub-component: dtgreet               
+
+CDExc21071 dtgreet consumes CPU cycles while doing nothin
+CDExc21702 dtchooser: UPDATE LIST resets login scree
+
+Component: Applications         Sub-component: dthelpgen             
+
+CDExc20477 dthelpgen tests fai
+CDExc22793 CANT GO TO THE TOPLEVEL IN DTHELPVIEW AFTER DELETING THE .DT 
+CDExc23164 The file CHANGE_FOR_NEXT_RELEASE should be remove
+
+Component: Applications         Sub-component: dthelpprint           
+
+CDExc17199 I18N: Non-existent iconv converter was calle
+CDExc23062 When -subTopics specified, the sub topics are not printed
+CDExc24015 dthelpprint is adding a trailing control-L causing regressions
+
+Component: Applications         Sub-component: dthelptag             
+
+CDExc17187 xref to head with graphic bad
+CDExc17285 Gap between <lablist nowrap> columns is tigh
+CDExc17460 dthelp example GUI needs wor
+CDExc17462 Missing markup for text files in <link> element
+CDExc17481 dthelptag dumps core on some syntax error
+CDExc22343 dthelptag fails to compile test htg files on AIX onl
+CDExc22560 dthelptag core dumps when compiling Japanese help volumes with large loc
+CDExc22992 If hypertext links are in the glossary, dthelp_[c,h]tag1 process bad sdl
+CDExc23060 cannot break a term across lines with white space
+CDExc23094 dthelp parser checkdefault routine has logic flaw
+CDExc23101 xref in example create incorrect SDL markup
+
+Component: Applications         Sub-component: dthelpview            
+
+CDExc11869 helpview ignors -geometry option on command lin
+CDExc17921 helpview performance test result needs investigatio
+CDExc20710 Need way to align text rows in adjacent BLOCK/FORM element
+CDExc21272 onHelpDialog columns resource value in Japanese locale is a small
+CDExc22147 IN TRUE COLOR MODE, HELP VIEWER COLORS ARE LOST
+CDExc23910 The actions to bring up a help viewer start multiple processes
+CDExc24130 dthelpview index dialog has inconsistant radio button indicator size
+CDExc24135 dthelpview fails a Copy/Paste test
+
+Component: Applications         Sub-component: dticon                
+
+CDExc09847 Icon editor must understand tooltal
+CDExc10313 icon editor including private header file
+CDExc13010 Filled ellipse is lopside
+CDExc13198 Change color tile button selection behavior
+CDExc13200 Move function too difficult
+CDExc13215 Magnification chice not understood
+CDExc13217 Difficulty drawing circles
+CDExc13271 Replace select icon
+CDExc13780 iconGray6  c  value wrong, use iconGray7 valu
+CDExc15134 I18N: dticon messes up the title strings on H
+CDExc15200 eraser tool leaves track
+CDExc15561 Missing Format buttons in Save dialo
+CDExc15562 If an image larger than 256 is loaded, image overwrites button
+CDExc15563 Missing No Drop cursor for invalid drag object
+CDExc15611 title line does not show `Icon Editor - ...` for LANG=ja_J
+CDExc15690 Change accelerator key
+CDExc15930 Needs status/message are
+CDExc15931 Unfriendly behavior when trying to modify an ico
+CDExc15932 Save changes warning dialog may cause user erro
+CDExc16240 Core file will crash dticon
+CDExc16246 Save function isnt updating format suffix in nam
+CDExc16327 Rotate should be Cut+Rotate, not cop
+CDExc17985 dticon graphics palette button have wrong backgroun
+CDExc18042 dticon`s 2-Color mode window spils ove
+CDExc22359 dticon `undo` does not revert scaling of icon thumbnail
+CDExc22703 Icon Editor does not start if there is not enough colors on displa
+
+Component: Applications         Sub-component: dtimsstart            
+
+CDExc21907 dtimsstart does not report errors if it fail
+CDExc22750 dtimsstart fonts incorrec
+CDExc22927 Invoking ims on remote host, login not completed
+CDExc22928 On DS/90 platform, `-host` option is not available
+
+Component: Applications         Sub-component: dtinfo                
+
+CDExc21639 dtinfo Reading Window does not contain Edit->Copy men
+CDExc21651 icon for `view doc` in dtinfo bk list toolbar is mis-leading for purpos
+CDExc22282 dtinfo tabs are sometimes partially clipped on section displa
+CDExc22365 book list tool bar should include the scope editor button & ico
+CDExc22562 bookmark button should have specific On-Context hel
+CDExc22701 dtinfo - eliminate use of treeres in app-defaults file generatio
+CDExc22807 dtinfo - search results hilighting to left of mar
+CDExc22810 dtinfo Save Scope dialog needs modification, such as max field widt
+CDExc22811 should be a way to clean out all scopes fr Preferences file via GU
+CDExc22812 minor -help arg descriptions should have been placed in msg catalo
+CDExc22813 dtinfo - core dump displaying `Layout Features` sectio
+CDExc22819 print interface error messages (pre-print) need better clarit
+CDExc22821 Print error & dialog hidden if original parent has been iconifie
+CDExc22822 xt warnings issued when using Print dialog under dtinfo, command lin
+CDExc22853 Cntrl-B in Browser window should do Back History, to match DtHel
+CDExc22854 dtinfo Preferences dialog decorations should not incl resize handle
+CDExc22855 with tiny desktop font, Prefs dialog has Form constraint error
+CDExc22871 dtinfo printing interprets style sheet values as pixels rather than point
+CDExc22885 GIF graphics don`t print if raster print driver is somehow selecte
+CDExc22886 CGM graphics print very small from dtinfo through raster drive
+CDExc22887 dtinfo print interface can freeze application for long tim
+CDExc22916 DtWidget pages not using style sheet indentation
+CDExc22966 CGM graphic prints as solid black under dtinfo, through PS drive
+CDExc22983 slight optimization possible for _DtGrLoad call sequence in dtinf
+CDExc22985 UAS_Common::book_tab_list does not return tabs for section
+CDExc23001 missing error and dialog dismissed if print-to-file w/no fil
+CDExc23002 print-in-progress dialog with cancel option needed for toolbar initiatio
+CDExc23003 dtinfo implements Using Help menu item incorrectl
+CDExc23008 dtinfo does not really detach a graphic in table
+CDExc23009 detached graphic from online is not in printed copy eithe
+CDExc23014 dtinfo: Memory Leak (9kb) when using browser windo
+CDExc23033 confirmation dialog on canceling bookmark edit parenting to wrong on
+CDExc23050 second print request of section hierarchy, or to slow prtr, hangs ap
+CDExc23051 hier print under dtinfo updates bklist & position marker, each sectio
+CDExc23056 former BadAlloc cond now handled quietly, without user warning, for prin
+CDExc23068 colformat should default to the last one availabl
+CDExc23069 colstart and colend not supported by dtinf
+CDExc23070 colsep/rowsep are inadvertently being converted to pixel siz
+CDExc23083 StyleSheet: char align in TGroup is being ignore
+CDExc23093 auto-generated IDs can be duplicate in large volume corpu
+CDExc23108 dtinfo: memory errors and minor leak
+CDExc23119 newline in title displays as funny glyph in booklist windo
+CDExc23122 dtinfo - cannot print section CDEMUG.APPA.DIV.
+CDExc23123 dtinfo - cannot print section CDEMMA.APPC.DIV.
+CDExc23131 dtinfo does not work from dtaction -execHost remot
+CDExc23132 dtinfo graphics do not display properly remotel
+CDExc23135 dtinfo core dump from On Selection without Selectio
+CDExc23197 dtinfo joining workspaces irregularl
+CDExc23246 dtinfo does not support searching for variable name
+CDExc23703 Linking dtinfo results in multiple undefined reference errors for template
+CDExc23739 dtinfo - it is possible to start multiple dtinfos from the front panel
+CDExc23740 dtinfo - The quit confirmation dialog should be eliminate
+
+Component: Applications         Sub-component: dtinfogen             
+
+CDExc20747 dtinfogen: closing pipe from sgml parser: Illegal see
+CDExc22981 Librarian generates weird error msg when errors found in validatio
+CDExc23000 dtinfogen does not handle DTINFO ids/idrefs uniforml
+
+Component: Applications         Sub-component: dtksh                 
+
+CDExc10909 the dtksh build environment needs to be cleaned u
+CDExc17761 dtksh has no documentation about its non-standard build proces
+CDExc17762 the documentation for unpackaging dtksh is incomplet
+CDExc17763 dtksh is not instrumented for branch coverag
+CDExc21920 ttdt_open failed with status: TT_WRN_START_MESSAGE when running dtksh test
+CDExc22518 dtksh - Typing backspace in emacs mode while editing multi-byte character
+CDExc22519 dtksh - Half width kana character cannot be echoed back in Japanese locale
+
+Component: Applications         Sub-component: dtlogin               
+
+CDExc11407 Dtlogin reads 2mb of /dev/me
+CDExc12204 dthello could be invoked bette
+CDExc12842 Allo providing argument add-ons to dthell
+CDExc13635 Login and Password need to be more visually distinc
+CDExc15126 I18N: dtlogin exports LANG on AI
+CDExc15264 AIX: dtlogin doesn`t warn/ask user to change initial passw
+CDExc17797 dtlogin sets $DISPLAY incorrectly to unix:0.
+CDExc21537 command line login puts console in funny state on UnixWar
+CDExc22030 Xservers config file has Sun-specific comment
+CDExc22765 If login is disabled, dtlogin shows an empty error dialo
+CDExc23202 Xstartup & Xsession should share font setting cod
+CDExc23664 dtlogin - fails when started from an X -query sessio
+CDExc23918 dtlogin should include the display id in the name put in the process table
+CDExc24121 Xsession script needs updating for HP-UX 10.X
+
+Component: Applications         Sub-component: dtlp                  
+
+CDExc15070 Print dialog remains after Text Editor is exite
+CDExc17389 title bar message is wrong
+CDExc18009 dtlp does not behave like other transient
+CDExc19426 dtlp: Requires LANG environment variabl
+CDExc19427 dtlp: Does not exi
+CDExc20338 Dtlp uses lpstat flags in a way which is not portibl
+CDExc22229 dtlp_help background color not consis tent with dtstyle color settings
+
+Component: Applications         Sub-component: dtmail                
+
+CDExc11366 there`s no Done button on dtmai
+CDExc11368 header window titles don`t alig
+CDExc11761 Need to set minimum size constraints on dtmai
+CDExc12467 The Add Files dialog should have an Apply butto
+CDExc12944 Allow a tag to notify the sender when the receiver reads ms
+CDExc12956 Add Stack button for quick and easy view of folder
+CDExc12958 Need more options on the Send butto
+CDExc12959 buttons in the middle of the window look cluttere
+CDExc12960 Implement the ability to add a signature file to message
+CDExc12961 Implement the ability to configure the button ba
+CDExc12968 Send  leads to slow window take dow
+CDExc13646 Need easy way to add recipients to the To: and Cc: line
+CDExc13647 Dtmail always starts in current login WS regardless WS se
+CDExc13774 Move menu ordering: Other on to
+CDExc13869 flashing implemented wron
+CDExc13969 Attachment area cannot resize
+CDExc13971 mailx hangs when dtmail is runnin
+CDExc13988 new messages do not scroll the header window dow
+CDExc14058 Invoking action on attachment -> no feedbac
+CDExc14062 Auto-save logic should be folder sensitiv
+CDExc14122 Ctrl-/ doesn t select all attachment
+CDExc14130 don t forget mail folder list between invocation
+CDExc14299 Compose window icon should display To:<user> like mailtoo
+CDExc14304 SaveAsText saves a msg with attachment without warnin
+CDExc14329 NNo text/richtext or text/enriched interpretatio
+CDExc14331 Unknown type body parts presented as text in edito
+CDExc14332 MMIME headers should be filtered for presentatio
+CDExc14333 uUsing dtpad for text attachment viewing very cumbersom
+CDExc14399 header ignore selections should be compared in lower-cas
+CDExc14566 dtmail doesn t refresh a folder s view when message is move
+CDExc14730 Edit menu problems in Compose Windo
+CDExc14924 Support MH forma
+CDExc15193 DtMail should use toggles in men
+CDExc15497 Destroy should be Shre
+CDExc15648 About Box not fronted when mapped
+CDExc15885 Rename attachment conf dialog missin
+CDExc15886 DtMail does not use DtEditor`s XmNhelpCallbac
+CDExc16119 Search should include both From and Cc
+CDExc16158 Need scroll-down optio
+CDExc16222 Format setting box has not Hel
+CDExc16284 Cannot drag multiply selected attachmts from attachmt pan
+CDExc16427 Find dialog should tell me which folder it s attached to
+CDExc16481 Move/Copy dialog should stay u
+CDExc16501 Escape key doesn`t cancel several dialog
+CDExc16521 dtmail move/copy model is confusin
+CDExc17093 <Mailer - Other Mailboxes> misses bottom buttons on ta
+CDExc17147 Focus not reset after viewing messag
+CDExc17176 <Shift><F8> not clearing viewing are
+CDExc17194 Traversal of Bcc: in compose window not consisten
+CDExc17422 Extra char when message is dropped onto fp text editor ico
+CDExc17778 drag of mail messages to trash does not delete, and is weir
+CDExc17801 Fails to redraw screen during long mail folder save
+CDExc18013 delete key does not work in message men
+CDExc18014 dropping a mail message on help is bogu
+CDExc18094 Review treatment of mailboxes as message/rfc822 attachment
+CDExc18096 dtmail generating X-Sun-Data-Type headers in mail message
+CDExc19776 dtmail trouble with help page from error dialog help butto
+CDExc20317 dtmail error dialog for failed actions has too many button
+CDExc20336 Secondary windows map on each other, when more than 1 messages displaye
+CDExc20700 dtmail edit/undo in compose mail deselects selected tex
+CDExc20780 dtmail should have a `mark as unread feature
+CDExc20999 Purify - NPR`s in DtMai
+CDExc21004 Purify - UMRs in Dtmail, various place
+CDExc21010 dtmail doesn`t resort incoming mai
+CDExc21425 dtmail print options margins are not exac
+CDExc21622 Suggestion: There should be a CLEAR button in the FIND/Change option
+CDExc21624 Help windows invoked from DTMAIL don`t iconify
+CDExc21627 Mail lacks Keyboard Accelerators for some menu items
+CDExc22084 Help text for printing lacks (references to) useful informatio
+CDExc22544 dtmail should support searching through the body of message
+CDExc22574 dtmail on Novell freezes up while printing to a fil
+CDExc22621 dtmail should show proper help and title for typed attachment
+CDExc22960 dtmail does not destroy print dialog for WM_DELET
+CDExc23148 With wordwrap, first line of composed messages sometimes overlon
+CDExc23196 Workaround for broken getpwuid_r on AIX needs to be backed out when OS fix
+CDExc23316 dtmail - memory leakage when updating mail options ..
+CDExc23348 The AttachmentArea behaves differently from dtfile wrt icon selection
+CDExc23469 The behavior for opening a message should be configurable via action
+CDExc23598 Dtmail mail retrieval from server needs enhancements
+CDExc23633 dtmail - executable attachments are misstyped as text or data
+CDExc23804 dtmail fails to clean up dead letter messages after compose window is clos
+CDExc23809 dtmail should allow the user to specify which STMP server to use
+CDExc23813 Separation of dtmail front/back end architecture is being violated
+CDExc23814 Implement ui for filtering messages from mail server based on size
+CDExc23862 dtmail conflict between special vacation and read only suffixes
+CDExc23870 dtmail composer and folder titles should be set prior to managing dialogs
+CDExc23873 dtmail new mail flag does not work when retrieving mail from a mail server
+CDExc24008 Drag under highlighting is displayed in Options Pan
+CDExc24046 dtmail Options->MessageView->CharactersWide combo box doesnt wor
+
+Component: Applications         Sub-component: dtmailpr              
+
+CDExc21765 DTMAILPR(1) APPLICATION DOES NOT WORK WHEN DISPLAY SERVER IS ON A RemoteSy
+
+Component: Applications         Sub-component: dtpad                 
+
+CDExc10314 dtpad including private header file
+CDExc12284 Dtpad cannot edit large files in finite tim
+CDExc12847 Add ability to menu off of the Text pan
+CDExc12850 Need properties butto
+CDExc12851 Window frame should indicate when a file has been edite
+CDExc13165 dtpad overrides DISPLA
+CDExc13255 A failed attempt to open a new file resets dtpad
+CDExc13367 Dtpad will not die with control 
+CDExc14825 add popup to dtpa
+CDExc15382 need usage message if command line option is invali
+CDExc15431 unable to edit a file as root when root has write permissio
+CDExc15874 The New menu cmd appears to be trying to reuse the windo
+CDExc16720 Change [Copy to File...] to [Save As - noNameChange -...
+CDExc17066 Including a special file displays no warning
+CDExc17474 Find/Change doesn`t center found text ala vuepa
+CDExc17554 Using Find/Change dlg before Spell dlg changes default focus on Spell dlg
+CDExc17580 dDtpad should allow for user-definable tab stop
+CDExc19511 dtpad in a cpu spi
+CDExc19897 Erratic cut and paste behavior in dtpa
+CDExc20348 File/Open menu is selected the default highlighted file to be opened
+CDExc20487 Purify - Memory Leaks in StandAlone DtPa
+CDExc20493 Purify - Memory Leaks and Free`d Reads in Client/Server DtPa
+CDExc20929 DtPad fails to replace text using secondary selection
+CDExc20955 Purify - FMRs in DtPad serve
+CDExc21139 dtpad has two Print menu entries on UnixWar
+CDExc21536 fonts for printing must be internationalize
+CDExc21576 Double clicking on root doc does not bring up dtpad
+CDExc21579 dtpad -standAlone on HP gives catgets erro
+CDExc21718 BACKTRACK in Help for DTPAD when server starts gives error msg
+CDExc22525 dtpad mnemonics do not work in Japanes
+CDExc24091 dtpad error dialog title does not conform to CDE style guide
+
+Component: Applications         Sub-component: dtpdm                 
+
+CDExc22085 dtpdm dies with X erro
+
+Component: Applications         Sub-component: dtprintinfo           
+
+CDExc12845 Add ability to print to alternate printers
+CDExc12846 Need Action feedback indicating status of print jo
+CDExc15447 Need feedback that job accepted if que is empty
+CDExc15578 details to icon doesn`t shrink sizeof print job windo
+CDExc15801 Drawing extra printer
+CDExc15866 Need option to save window siz
+CDExc16450 The connection timeout should be configurabl
+CDExc16453 Not possible to select >1 print job to cance
+CDExc16454 Ordering of printers breaks after a printer name is change
+CDExc16916 Add [No <user> jobs] when Mine Only selecte
+CDExc17257 highlight all job info when se
+CDExc22711 dtprintinfo should force ComboBox positionMode resourc
+CDExc23640 dtprintinfo core dumps on clicking on a non-existent printe
+CDExc23680 dtprintinfo needs a print job parser for linu
+CDExc23713 security hole in dtprintinf
+
+Component: Applications         Sub-component: dtscreen              
+
+CDExc16899 I18N: dtscreen.msg contains message numbers and quote
+CDExc19821 dtscreen DTSAVERINFO not working on IB
+CDExc21705 Screen Savers should run at priority 16, as man page says
+
+Component: Applications         Sub-component: dtsearch-utils        
+
+CDExc22239 dtsr is incompletely localize
+CDExc23011 DtSearch tests fail to find string `Table of Contents
+
+Component: Applications         Sub-component: dtsession             
+
+CDExc09900 session needs progress indicator for startu
+CDExc12659 No feedback when login is done
+CDExc16308 Getting logged out on setting numKeyCode to 24
+CDExc19435 dtsession should own TARGET and MULTIPLE for the colorserve
+CDExc19596 Create an Xrm-based client database for the default sessio
+CDExc19597 Dtsession should try to guard against poorly written XSMP clients
+CDExc19598 Dtsession should allow sessionexit and sessionetc files per sessio
+CDExc20670 dtsession should exit if wm can`t be started successfull
+CDExc20859 Purify - Memory Leaks in Dtsessio
+CDExc21048 1 pixel cursor is visible when screen is locke
+CDExc21731 Third party applications may not fit correctly on small scree
+CDExc22279 Obsolete code for contention management should be remove
+CDExc22707 dtsession does not allocate 16 fixed colors for icons in front pane
+CDExc22748 dtsession fonts wrong if dialog brought up initiall
+CDExc22789 old resource enableDefaultButton still presen
+CDExc23080 Dtlogo not displayed if colormap is exhauste
+CDExc23681 dtsession GetMemoryUtilization needs to be ported for linux
+
+Component: Applications         Sub-component: dtspcd                
+
+CDExc12063 spcd should use .rhosts access contro
+
+Component: Applications         Sub-component: dtstyle               
+
+CDExc09841 Add pointer size option to Style Manage
+CDExc09849 Miscellaneous Stlye Manager additions,
+CDExc09851 Dynamic font change
+CDExc09863 Save locale per user I
+CDExc09954 Keyboard settings in Style Manager don`t wor
+CDExc10452 separate specification of background and text colo
+CDExc10846 Text color is mandated
+CDExc11676 Add switch for secondary window behavio
+CDExc12691 Need to remove Icons from inside secondaries
+CDExc12692 Popups missing from style panel icons
+CDExc12694 Missing confirmation message for Defaults button
+CDExc13211 Users still cant figure out Modify color dialog
+CDExc13216 Color/objects model not apparent
+CDExc14185 Font selection dialog lacks `type` of font information
+CDExc14186 The `size` column in the font selection dialog is incorrect
+CDExc14216 Should occupy all workspaces on startu
+CDExc15217 Can`t set the hue slider to 240 and certain other specific nos
+CDExc15218 Black & White radio box is disabled in Color Use dialog window
+CDExc15232 icon labels are not readable against light background color
+CDExc17019 I18N: Incorrect layout of Test Double-Click ico
+CDExc17558 dtstyle`s Beep window has extra spaces in its title
+CDExc19306 No default button for fonts in dtstyl
+CDExc19408 New messages added for CDEnext are missing their translations
+CDExc21069 Style manager beep tone value display is truncate
+CDExc21276 Add Palette - An inproper error message appear
+CDExc21279 Mouse - The default button cannot set the double-click tim
+CDExc21457 Style manager color palette display problems with Truecolor/Directcolo
+CDExc21858 dtstyle/startup default Return to Home Session inconsistent stat
+CDExc21869 Style Manager Beep control is broken on DE
+CDExc21873 DTSTYLE BACKDROP DOESN`T REFLECT STATE CORRECTLY
+CDExc21876 DTSTYLE Color & Screen dialogs don`t resize to show full lis
+CDExc21877 DTSTYLE lacks a keyboard command to grab a color from the screen
+CDExc21878 DTSTYLE cannot DELETE more that 1 NEW Color palett
+CDExc22749 dtstyle menu bar labels are too bi
+CDExc22890 dtstyle should sort its lists of palettes and backdrop
+CDExc23044 Style Manager Backdrop popup needs Cancel butto
+
+Component: Applications         Sub-component: dtterm                
+
+CDExc11942 dtterm - 5x - UDK section needs more informatio
+CDExc12290 Request: put a separator between options and help in popup men
+CDExc12634 margin bell bi-directiona
+CDExc12722 F9-F12 are KP_1-KP_4, KP_2 doesn`t wor
+CDExc12858 function key and UDK design is incorrec
+CDExc12987 dtterm session management not saving correctl
+CDExc13261 dtterm*sizeList: 10x changes number of rows from defaul
+CDExc13299 Resizing dtterm wrapped text should re-wrap correctl
+CDExc13301 Mouse interface to dtterm should allow complete string edi
+CDExc14290 Motif selection model may be insufficient for term usag
+CDExc14335 clear wrong in dtterm terminf
+CDExc15946 CDE/Sun - read after xmodmap fail
+CDExc16334 Buffer resize is losing chars in history buffe
+CDExc16688 I18N: Extra statusChangeCallback is called while pre-editin
+CDExc16781 TermView widget returns -1 as DtNsubprocessPid valu
+CDExc16955 Changing FontSize changes also dtterm`s siz
+CDExc17650 Font size menu has duplicate entrie
+CDExc19676 dtterm: seach capabilit
+CDExc20169 dtterm hangs up in japanese with IMS on Fu
+CDExc20346 dtterm does not map help window on pressing F
+CDExc20472 dtterm default indicator not set for font menu, but set for size men
+CDExc20520 dtterms come up the wrong siz
+CDExc21170 Wrongly display of cursor
+CDExc21307 The dtterm needs performance improvements
+CDExc21769 DTTERM NEEDS THE ABILITY TO SET ITSELF TO BE A VT22
+CDExc21821 DTTERM OFFERS NO UI METHOD TO INCREASE THE SCROLLBACK MEMOR
+CDExc21838 DTTERM LOSES SCROLLBAR DATA WITH V
+CDExc21923 dtterm emulation causes emacs display error
+CDExc22453 dtterm - pasted text getting scrambele
+CDExc23289 dtterm erase behavior incorrect: stty erase not set properl
+CDExc23361 dtterm should select words over boundary of line when double clicke
+CDExc23877 dtterm Comm/Pty test fail
+CDExc23935 dtterm sometimes keeps its drop highlight after drag is ove
+
+Component: Applications         Sub-component: dttypes               
+
+CDExc17001 Lot of Actions are missing data in DESCRIPTION, ICON, and LABE
+
+Component: Applications         Sub-component: dtwm                  
+
+CDExc09901 Hour glass pointer needed for On Front Panel Hel
+CDExc10667 dtwm can`t force windows to stay on the scree
+CDExc10762 double clicking an icon flashes window men
+CDExc12525 Add support for additional architecture in Imakefil
+CDExc12526 Add support for additional UNI
+CDExc12527 Long variables need 4 forma
+CDExc12528 WmResource.c assumes int and pointer are the sam
+CDExc12798 Dtwm help dialog needs a help butto
+CDExc12860 want control over tiling of backdro
+CDExc12946 Allow a double click on base frame to enlarge windo
+CDExc12964 Add ability to activate apps directly from front pane
+CDExc13305 dtwm needs to stop setting on-item help curso
+CDExc13426 Need way to force an application to launch at specific W
+CDExc13544 Dtwm help viewer does not behave like dthelpvie
+CDExc13957 f.raise_lower wrong with Allow Primary Windows On To
+CDExc14463 Accelerator keys not passed to icons in the iconbox
+CDExc14467 Multiple screen handling is poor
+CDExc14556 Need a warning dialog when deleting workspace
+CDExc14574 Dtwm doesn`t shutdown very cleanl
+CDExc15059 Alt+F4 does not close window when icon displayed in icon bo
+CDExc16003 Add *workspaceCursor resource on per-screen basi
+CDExc16066 Many useful resources missing from dtwm man pag
+CDExc16068 warn me if you ignore my specific key binding context
+CDExc16069 Occupy All Workspaces  ignores new workspace
+CDExc16322 maximumClientSize set to vertical moves window from positio
+CDExc16466 dtwm resists raise window comman
+CDExc16643 L7 fails to close popup windo
+CDExc17465 DtWsm.5 man page has a misnamed AP
+CDExc19347 Need additional makefiles in dtwm/examples/wsinfo and occup
+CDExc19655 Default for screen lock changed to be transparent; compat brea
+CDExc19732 dtwm PUSH_RECALL feature doesn`t handle multi-toplevels application
+CDExc19828 The ParseFunction structure should be modifie
+CDExc20249 Dtwm hangs when trying to join a session on Novell
+CDExc20337 dtwm can leave focus in wrong window during popdow
+CDExc20376 workspace names font too dark to read in dtw
+CDExc20661 wants the equivalent of Vue`s LAYOUT_POLICY `as_needed` in CD
+CDExc20958 Purify - PAR and MAF in Dtwm, running help test
+CDExc20979 Clock icon unreadable on black & white displa
+CDExc21466 dtwm does not recognize new backdrop files until restarte
+CDExc21472 CDE-Regression: In true color mode, Help Viewer colors are lost
+CDExc21643 Action icon for trashcan is not available when DISPLAY_CONTROL_LABEL
+CDExc21645 WM RESTART ERASES `ALL WORKSPACE` OCCUPATION
+CDExc21666 DELETING the Trash app. from subpanel leaves a BLANK spot on subpa
+CDExc21676 ICONBOX does not maximiz
+CDExc21791 dtwm uses XmSTRING_DEFAULT_CHARSE
+CDExc22342 Could not find minimize window gadget on Digital test of dtw
+CDExc22938 fontlist test fails on H
+CDExc22939 key sequence ignored for packing icon box on H
+CDExc22941 dtwm seems to ignore fadeNormalIcon resource according to test
+CDExc22977 dtwm - push-up panel doesn`t recede after keyboard selectio
+CDExc23031 dtwm stays around when powering the X terminal down without proper exi
+CDExc23082 Front panel gets truncated on small screen
+CDExc23339 some small anamolies with freeFamily in dtw
+CDExc23617 dtwm front panel doesn`t check past first item installed in it
+CDExc23834 dtwm Imakefile has funny Sun define
+CDExc23933 icons on desktop do not always move successfull
+CDExc23938 clicking twice for root menu releases gra
+CDExc23954 Integration of MWM_QATS_PROTOCOL used incorrect combination of defines
+
+Component: Applications         Sub-component: frontpanel            
+
+CDExc10681 I18N: Front Panel has IM status area
+CDExc11530 printer on bezel confusin
+CDExc11698 workspace switches do not place cursor where user click
+CDExc12856 Sub-panel doesn t always roll back after selectio
+CDExc12900 When DISPLAY_CONTROL_LABELS is on, labels should be truncate
+CDExc13466 Front Panel goes off the display when toggling controls
+CDExc13497 Front panel rendered incorrectly if CONTROL Blank missin
+CDExc13503 Selectable workspace launch action desire
+CDExc13611 trash icon does not change state to show content
+CDExc14236 Delete pop-up menu item should be rename
+CDExc14480 no keyboard method to install subpanel app
+CDExc14835 Front Panel does not use Icon Bo
+CDExc14927 front panel allows adding too many icons to a subpane
+CDExc15225 .fp file with >1 controls not installed in subpanel correctl
+CDExc16170 Copy/link to Trash window/front panel works differentl
+CDExc16208 frontpanel should allow  rented  realestat
+CDExc16359 Restore front panel action gives no warnin
+CDExc16465 remove printer animatio
+CDExc16700 Restore Front panel doesn t reinstate main panel icon
+CDExc16712 Tearoff menu fails to pop dow
+CDExc16779 Popup menu label is incorrec
+CDExc16798 Error occured during parsing of frontpane
+CDExc17375 Client in front panel doesnt displayed popup menu correctl
+CDExc17655 Got new mail, and the workspace I was renaming rese
+CDExc17657 Front Panel for mail does not actually get new mai
+CDExc17722 front panel won`t raise after a workspace switc
+CDExc17808 workspace buttons have bad font margin when renamin
+CDExc17833 Edit Dtwm from the applications box does not edit dtwmr
+CDExc18018 slide-ups and icons do not show arm/disarm visual
+CDExc18020 sometimes slide-ups do not go dow
+CDExc19152 frontpanel: scrollup menus don`t disappear during startup condition
+CDExc19287 Installing icon of file with multiple def`s into subpanel fail
+CDExc19917 The up arrows on the front panel are always highlighted
+CDExc21300 The date of calendar icon on frontpanel differ from image of Hel
+CDExc21301 Bitmap icon and Pixmap icon,label aren`t displayed
+CDExc21302 HELP_VOLUME and HELP_TOPIC are not displayed on the help window
+CDExc21303 A ALTERNATE_ICON does not take effect if a mail is arrived
+CDExc21669 The Personal Applications Pop-Up menu doesn`t always retract after select`
+CDExc23022 Dtterm icon is hidden down too many level
+CDExc23351 return in front panel does not activat
+CDExc23487 The front panel does not support window manager icon
+CDExc23852 front panel window menu button should appear depresse
+CDExc23934 front panel drop sites should distinguish between valid and invali
+
+Component: Applications         Sub-component: psddx                 
+
+CDExc20930 PS ddx should call MakeAtom once for various font routine
+CDExc23074 No ouput is produced when running the test
+
+Component: Build-Install        Sub-component: build                 
+
+CDExc11471 We need lots of mapfiles to specify versioning informatio
+CDExc12248 Varient builds needed for performance wor
+CDExc16152 assert after dragging file to Trash for Trash putback fil
+CDExc19504 make clean doesnt remove .map file
+CDExc19524 hpversion.h should be removed from the source tre
+CDExc19593 If dtlogin fails to build, none of the config files get buil
+CDExc22064 help graphics unavailable from build tre
+CDExc23091 misc. compiler warning
+CDExc23115 Error in the Imakefile for nsgmls
+CDExc23144 Generic defect for making updates to build scripts, eta
+CDExc23252 links in config go directly to VOB, not import
+CDExc23342 save the environment in a file at start of buil
+CDExc23346 get nsgmls to work on Solaris 2.
+CDExc23601 Build errors on Linux
+CDExc23655 gencat is missing from the Linux distributio
+CDExc23657 Iconv does not exist on Linux.  A suitable stubbing scheme is needed
+CDExc23669 Find a substitute for inline defines of __SVR4_I386_ABI_L1__ on linux
+CDExc23679 Need to clean up hacks in linux buil
+CDExc23716 Build reports for SCO are showing false errors
+CDExc23887 shared library build on Solaris needs refinin
+CDExc23899 dtwm link line incorrect for Solari
+
+Component: Build-Install        Sub-component: databases             
+
+CDExc20794 create utility to pre-verify build before installin
+CDExc22061 dthelp directory is out of syn
+CDExc22531 Install dbs should use relative pathnames for platform-spec locale name
+
+Component: Build-Install        Sub-component: install               
+
+CDExc12191 Install leaves /$ directory on target machine
+CDExc19181 installCDE must provide a way to install CDE somewhere else than /usr/d
+CDExc19226 -RunScriptsOnly option is obsolete in installCD
+CDExc19339 The post-install confingRun script cannot find /etc/src.s
+CDExc19393 If chown or chgrp fails during an install, the failure is mis-reporte
+CDExc20554 Various warnings/cleanups during installCD
+CDExc21373 During a DEC install some files that exist are reported missin
+CDExc21811 Sunsoft needs to provide configuration files for dtimsstart
+CDExc21812 SCO needs to provide configuration files for dtimsstart
+CDExc22200 install set[gu]id non-readabl
+CDExc22543 system specific locale links should come from .lcx databas
+CDExc23116 install script sources users .cshr
+CDExc23268 bad Japanese palette/background desc file on Solari
+CDExc23937 /proj/cde/osf directory dups moti
+
+Component: Build-Install        Sub-component: utilities             
+
+CDExc22124 need makedepend equivalent for SGML sourc
+CDExc22620 db2man incorrectly creates tables with borders on OSF/
+CDExc23010 dbtoman sometimes breaks .IP data across line
+
+Component: Calendar             Sub-component: cal apps              
+
+CDExc20637 Appointment editor layout problem
+CDExc20638 Insert Appointment button labels are wron
+CDExc20640 To-Do editor layout problem
+CDExc20647 Set & reset to-do items are removed
+CDExc22521 dtcm - Doesn`t restore its status such as minimize, workspace number
+CDExc23551 Appointment editor does not update change when `Today` button is presse
+CDExc23552 Appointment editor changes size upon clicking `Clear` butto
+
+Component: Calendar             Sub-component: libcsa                
+
+CDExc21469 HOT:dtcm_insert does not put MBCS chars correctly
+CDExc22580 libcsa is missing some necessary thread-safe changes
+
+Component: Calendar             Sub-component: rpc.cmsd              
+
+CDExc20793 rpc.cmsd should use the syslogd(1) facilities to log errors - not fprint
+CDExc21482 GENERIC_DIALOG NOT DESTROYED ON POPDOWN
+
+Component: DtHelp               Sub-component: CDE1                  
+
+CDExc22592 app using 24 bit TrueColor get X11 BadMatch and fails to ru
+
+Component: DtHelp               Sub-component: Canvas/Render         
+
+CDExc17932 HP special rule for Canvas.c should be remove
+CDExc21842 clear search hits button does not clear surrounding box around tex
+CDExc22012 nbsp (non-break space) being ignore
+CDExc22387 multibyte prefix as controller wraps at every characte
+CDExc22526 _DtCanvasSetTopic on fresh canvas returns incorrect (too big) y offse
+CDExc22569 Modify Canvas layout routines to `chunk` processing
+CDExc22838 no kybrd trav hilite if hyperlink has search match traversal hilit
+CDExc23007 table layout for print is messed up, at least one cas
+CDExc23061 dtinfo - sections shouldn`t start new page
+CDExc23067 dtinfo Print: tables get clipped with large fon
+CDExc23105 Automatic hyphen break happens before the hyphen, not afte
+
+Component: DtHelp               Sub-component: GUI                   
+
+CDExc12616 allows print to dummy printe
+CDExc13360 Print dialog grows with long volume titl
+CDExc21564 DtHelpDialog not creating a virtical scrollbar when a file is displaye
+CDExc21566 DtHelpQuickDialog widget missing `More` and `Back` buttton
+CDExc22844 old header files left after move to DtPrint and DtSv
+CDExc22852 per doc, Control-B s/b keyboard accelerator for Backtrac
+CDExc22935 user can`t control DtHelp dialog initial sizes via resource
+CDExc22982 When sdl file has empty <ENTRY>, the system pretends none exist
+CDExc23492 On Item help --> Help manager not workin
+CDExc24134 DtHelp dialog fails the DtNminimizeButtons resource test
+
+Component: DtHelp               Sub-component: Graphics              
+
+CDExc20877 TIFF images display poorly (odd stippled effect
+CDExc21881 _DtGrLoad allow_reduced_colors=FALSE sometimes ignored for JPE
+CDExc22434 Some tiff images cannot be rendere
+CDExc22527 unaligned access in dtinfo on Digital UNI
+CDExc22550 DtHelp causes fit_graphic_to_window to work incorrectly
+
+Component: DtMail               Sub-component:                       
+
+CDExc17977 Charset encoding for Chinese files is incorrect
+CDExc20634 There should be an option to view deleted message
+CDExc20655 Purify - Memory Leaks in DtMai
+CDExc21678 The use of lockf to synchronize with sendmail should be a sysadmin param
+CDExc23557 `Start Looking in` setting in Message filling dialog has no effec
+
+Component: DtMmdb               Sub-component:                       
+
+CDExc22907 libDtMmdb.elist is missin
+
+Component: DtPrint              Sub-component: DtPrintSetupBox       
+
+CDExc22616 need default values for printer environment variable
+
+Component: DtSearch             Sub-component:                       
+
+CDExc22211 jpn.knj is far from completio
+CDExc22659 katakana words containing jis0208 hyphens are not searchabl
+CDExc22759 NOT operator returns fail when the word is not indexe
+
+Component: DtSvc                Sub-component: Error API             
+
+CDExc23941 message logging facility should indicate source of sessio
+
+Component: DtSvc                Sub-component: actioninvoke          
+
+CDExc11106 How do we reference the EXEC_HOST in an EXEC_STRIN
+CDExc11135 Automatically use sh-  - for EXEC_STRING when needed
+CDExc11152 Support TT_MSG actions with variable number of msg args
+CDExc12820 Make DtDbLoad-  - return # of records accepte
+CDExc13476 Preprocess the action/datatype
+CDExc14479 DtActionInvoke could accept a NIL widge
+CDExc14527 Blanks embedded in File Names cause problem
+CDExc15934 Optimize away the use of dtexec where possibl
+CDExc15935 DtActionErrorDialogs-  true ! false  
+CDExc15936 DtActionErrorDetails-  id  
+CDExc16482 Dtterms From Actions Should Not Show MenuBa
+CDExc17256 should log errors if remote env mapping fail
+CDExc17485 Action`s WINDOW_TYPE should have a NO_WINDOW optio
+CDExc19212 dsdm test failed when dragging text from Motif to Xvie
+CDExc19600 Cleanup items of Action.c and Action.h from code inspectio
+CDExc19604 Performance enhancements to Action.c from code revie
+CDExc19605 DtActionInvoke should return better status on failure than returning NUL
+CDExc19606 DtDbReloadNotify needs to return a status cod
+CDExc19614 Man page for DtActionInvoke should define behavior if args are incorrec
+
+Component: DtSvc                Sub-component: datatyping            
+
+CDExc15558 backquote - dynamic - icons do not wor
+CDExc17457 The data typing code doen`t know how to handle the collision
+CDExc19551 Some data types not identified correctl
+CDExc20341 Dts.c needs more thorough error checking; perror() should be replaced
+CDExc20942 The data typing system should allow user/group/other in the MODE fiel
+CDExc23199 CDE data typing mechanism types text files and buffers as application/octe
+
+Component: DtSvc                Sub-component: dragdrop              
+
+CDExc10864 Problems selecting icons using BSelect butto
+CDExc23842 The DtSvc/dragdrop is inconsistant, FocusChange events are being missed
+
+Component: DtSvc                Sub-component: other                 
+
+CDExc12431 Add support of additional implem. of UNX in MsguProp.
+CDExc12434 Add support for additional UNIX in Setlocale.
+CDExc16807 Don`t allocate colors when asked for monochrom
+CDExc16835 Truth and Beauty in DtInitializ
+CDExc17489 The _DtSimple*Error functions do not check msg len before copyin
+CDExc19705 Global variables related to DtInitialize do not allow multiple app_context
+CDExc21287 add function to generate temporary file
+CDExc23065 AIX: remote execution fails because of an authentication erro
+CDExc23266 DtWsm functions can be more permissive about MT lockin
+
+Component: DtTerm               Sub-component:                       
+
+CDExc20523 Need to update TermPrimSetUtmp.c after IBM fixes getpw*_r routine
+CDExc20813 Enhancement: add a resource to change the cursor color in dtter
+CDExc21516 dtterm: new resource needed to support PC and LK401 keyboards on Digita
+CDExc21827 dtterm: proportional fonts should cause error and default to fixe
+CDExc22520 dtterm - F1, F7 keys are intercepted and not available from Terminal apps
+CDExc22590 DtTerm redisplay should discard non-printables ala XmTextFiel
+CDExc23352 dtterm displays jun
+CDExc23658 The TermPrimSetPty.c created for Linux needs to be verified
+CDExc23846 test Keysboard/Keys{2} fails intermittentl
+
+Component: DtTerm               Sub-component: other                 
+
+CDExc21582 DtTerm widget working improperly when certain resources are used/se
+
+Component: DtWidget             Sub-component: DtComboBox            
+
+CDExc17491 DtComboBox does not validate DtNcomboBoxTyp
+CDExc17492 DtComboBoxDeletePos rejects pos == 
+CDExc17493 DtComboBoxSetItem selects the ite
+CDExc17494 DtComboBox selectedPosition is off by on
+CDExc17495 DtComboBox passes garbage arguments when creating a scrolled window
+CDExc17504 Typing a value into a DtComboBox does not generate a callbac
+CDExc22506 widget label field is not updated if the same item is selected
+CDExc22747 DtComboBox prints out annoying warning message when it should not
+
+Component: DtWidget             Sub-component: DtEditor              
+
+CDExc17556 DtEditor widget does not return some Help reasons
+CDExc20485 undo after drag and drop does not delete dro
+CDExc22134 dteditor should have a `fill` butto
+CDExc23023 DtEditor should have left and right margins resourc
+CDExc23095 The undo behavior of DtEditor is non-standard and confusin
+
+Component: DtWidget             Sub-component: DtSpinBox             
+
+CDExc22353 Arrow button does not releas
+
+Component: DtWidget             Sub-component: dttextwidget          
+
+CDExc10706 Widgets must use Motif Widget Binary Compatibility mechanis
+CDExc11211 spell would be so much more useful with a Learn butto
+CDExc12848 Add the ability to find marked tex
+CDExc12852 Undo should handle multiple Undo
+CDExc14500 EUC formatting does not work on HPUX 9.
+CDExc14501 Japanese text formated incorrectly on HPUX 9.
+CDExc15025 first click loses persistent seleciton in click-to-typ
+CDExc15067 Text Editor does not give an err if left margin > right margi
+CDExc15355 New functions to get partial sections of tex
+CDExc15942 `no more occurrences ...` msg after Spell Find + Change wron
+CDExc15990 Cut/Paste/Undo appears not to wor
+CDExc16012 dtpad hangs after initiating multiple pastes typamaticall
+CDExc16042 no error indication when right margin > 1024 is entere
+CDExc16053 Choosing `Options->Status Line` causes right marg to be rese
+CDExc16181 long word is truncated on list of Misspelled Word
+CDExc16932 DtEditor accepts drops of non-text file
+CDExc16985 DtEditor inefficiently reads data from file
+CDExc17162 Usability improvements for spell featur
+CDExc17193 Undo should only undo inserted fil
+CDExc17475 Find/Change should support reverse searches
+CDExc17476 Find/Change should be able to be used via the keyboard only
+
+Component: DtWidget             Sub-component: other                 
+
+CDExc12068 Widget representation types must use Dt prefi
+CDExc12094 Drag curDont drag entire line in Properties view
+CDExc13624 Spin box values are not retained when typed i
+CDExc14018 DtWidget: Icon.c compilation warning
+CDExc14022 DtWidget: TitleBox.c compilation warning
+CDExc14023 DtWidget: Control.c compilation warnin
+CDExc15763 libdtwidget references obsolete Motif functions - currently kep
+CDExc15858 layout in Name view way too wastefu
+CDExc16316 DtNselectedItem doesn`t wor
+
+Component: I18N                 Sub-component: CDE1                  
+
+CDExc21757 /usr/dt/examples/template calls catopen() in the wrong plac
+
+Component: I18N                 Sub-component: OTS                   
+
+CDExc22951 Focus switching between two XmTexts cause wrong display
+
+Component: I18N                 Sub-component: UDC                   
+
+CDExc23054 UDC memory cache is limited to handle less than 100 message
+
+Component: MT                   Sub-component:                       
+
+CDExc22316 XmTabListRemoveTabs test fails to remove the appropriate tab
+CDExc22318 multi-thread XmDropSiteUpdate fails on IB
+CDExc22320 Multithread test for XmClipBoardWithdrawFormat fails on IB
+CDExc22321 Multithread XmGetIconName fails on several platform
+CDExc22332 XmMT test for XmTransferValue fails on UnixWar
+CDExc22334 XmMT test for XmeTraitSet/XmeTraitGet tests fail on Su
+CDExc22350 2 threadsafe/DtSvc test failed for CST8 periodic tes
+CDExc22603 MrmCloseHierarchy should fail if called a second tim
+CDExc23042 DtTerm test SubSend does not succeed in cst9 testin
+
+Component: Printing             Sub-component: libXp                 
+
+CDExc20872 Failure in an attempt to resize the print window to the size of the media
+CDExc21089 need to have session support for printin
+CDExc22705 XpBadContext not calling XpGetDocumentData with correct statu
+CDExc22706 XpBadSequence not calling XpGetDocumentData with correct statu
+CDExc23055 Error XPBadResourceID no longer used - eliminate from Print.
+
+Component: Printing             Sub-component: prserver              
+
+CDExc21600 PCL limitations not documente
+CDExc22356 PCL ddx assumes 300dpi resolution for image outpu
+CDExc22809 remove old ExecCommand function
+CDExc22889 PS printers getting a raster print reqst have faulted status afterwar
+CDExc22897 XpSubmitJob and AppendEntry do not return value
+CDExc22898 XpOidNotifyString does not return a valu
+CDExc22900 Functions that do not return value
+CDExc22976 X11 client `xpr` req`d for default of raster print from dsktop client
+CDExc22978 print server Augment_Printer_List option ignores > 1 argumen
+CDExc23102 All context-dependent calls should check for XPBadContex
+CDExc23103 BadValue should be generated by XpPutDocumentData, not BadMatc
+CDExc23104 XpPutDocumentData - eliminate XPBadResourceID and replace with BadMatc
+
+Component: Runtime              Sub-component: developenv            
+
+CDExc17461 /usr/dt/examples/types needs a READM
+CDExc22894 threaded library binary compatibility on AI
+
+Component: Runtime              Sub-component: runtimeconfig         
+
+CDExc11590 Need to define Print action for each desktop objec
+CDExc13180 Going through dtfile`s tracking form I found that this ite
+CDExc17936 warning: _common.dt.tmsg may contain obsolete message
+CDExc19147 DefConfig: unable to guarrantee exact initial placemen
+CDExc19692 The DttermServer action is undocumente
+
+Component: Runtime              Sub-component: runtimeenv            
+
+CDExc12953 Enhance the way CDE is locally installe
+CDExc22502 DTINFOLIBSEARCHPATH expansion to include file name as provide
+CDExc23281 what is dtdspmsg
+
+Component: Runtime              Sub-component: screen                
+
+CDExc14237 Some window managers have trouble with CDE-linked application
+
+Component: ToolTalk             Sub-component:                       
+
+CDExc12487 Add support for additional UNIX in ttta
+CDExc12488 Add support for additional UNIX in tt/bin/shel
+CDExc12489 Add support for additional UNIX in ttdbserver
+CDExc12490 Add support for additional UNX in tt_options.
+CDExc12491 Add support for additional UNIX in tt/lib/d
+CDExc12493 Add support for additional UNIX in tt/lib/m
+CDExc12494 Add support for additional UNIX in tt/lib/uti
+CDExc12497 Add support for additional UNIX in lib/tt/sli
+CDExc12605 Filename mapping fails on `dual LAN`ed` hos
+CDExc14197 ttmedia_Deposit man page incomplet
+CDExc14557 tttk clients might have a problem when changing X display
+CDExc14720 tttrace ^Z can hang sessio
+CDExc15367 I18N: Bad layout of ttsnoop
+CDExc15771 ttdbck -x -Z does not delete the selected specs
+CDExc16100 CDE hangs if tooltalk not where stated in /etc/inetd.con
+CDExc16917 tt_type_comp should optionally break its lock after a dela
+CDExc16936 direct client use of libtt may interfere with cde messagin
+CDExc17470 libtt: SEGV in tt_pattern_destroy + tt_message_receive rac
+CDExc17573 ToolTalk message argument matching not totally reliabl
+
+Component: ToolTalk             Sub-component: libtt                 
+
+CDExc22508 A completely empty object file mp/mp_mp_utils.o is included in libtt.
+CDExc22632 move tooltalk bin directories apart from li
+CDExc23656 tt_options.h needs to be verified for linu
+
+Component: ToolTalk             Sub-component: rpc.ttdbserver        
+
+CDExc22314 MT ToolTalk test fails on Solari
+CDExc22455 Corrupted TT_DB files prevent login on UX
+
+Component: ToolTalk             Sub-component: tt apps               
+
+CDExc19218 ttsnoop has several compiler warnings that should be fixe
+CDExc22025 tt_type_comp uses a SunSoft specific environment variable. OPENWINHOM
+CDExc22537 ToolTalk clients hang when an incorrect DISPLAY variable is set
+
+Component: other                Sub-component: icons                 
+
+CDExc12954 Need full icon description in the Icon Palett
+
+Component: other                Sub-component: misc                  
+
+CDExc19180 replace echo with printf in shell script
+CDExc20938 DefaultRootWindow calls must be investigated for printing/multi-scree
+CDExc21962 dtlogin not handling expired passwords (?
+CDExc23092 duplicate string constants exis
+CDExc23097 widechar headers are not included properl
+CDExc23185 Maint merge version of programs/types/ibm.dt.src has corrupted messages
+CDExc23368 various implementations of uslee
+CDExc23890 /proj/cde/programs has empty doc director
+
+Component: other                Sub-component: usability             
+
+CDExc20772 Inconsistency in the way CDE files are created (e.g. wrt umask
+CDExc21489 Naming, icon appearance and operation al inconsistencies in CDE Apps
+CDExc21974 Performance degradations need to be investigate
+
+Component: other                Sub-component: visuals               
+
+CDExc12295 some pixmaps get messed up in low/b&w colro mode
+CDExc14662 there should be solid color backdrop
+CDExc14665 scrollbar visuals are terrible on b&
+CDExc21210 Closing application using the menubar inconsitent across application
+
+Component: other                Sub-component: xclients              
+
+CDExc16642 filemgr Check for Floppy window fails to appear in CD
+CDExc20364 Locale problems on HP for DtCal
+CDExc20367 Baseline Memory Leaks in DtCal
+CDExc20368 Runtime Memory Leaks in DtCal
+
+------- Open defects in project cde-doc         -------
+
+
+Component: Applications         Sub-component: dtinfo                
+
+CDExc22045 online doc: Search Scope button should be Rename labe
+
+Component: Book                 Sub-component: program_overview      
+
+CDExc23750 Motif Programmers Reference - Xm Widget Classes missing some widget classe
+
+Component: DtHelp               Sub-component: CDE1                  
+
+CDExc21549 CDE 1.0 documentation typo: makefile should be Imakefil
+
+Component: Funct-Specs          Sub-component: dtstyle               
+
+CDExc19135 useColorOb & enableThinThickness resources require updates to the spec/ma
+
+Component: Help                 Sub-component: dtappmanager          
+
+CDExc12195 No associated frontpanel icon for xter
+CDExc20964 Error found, and clarification needed, in dtcreate online help
+CDExc22191 Incomplete onitem help for File and View pulldown menu
+CDExc22893 Help shows `Nonexistent location I D` msgs for App Mgr `Go To` 
+
+Component: Help                 Sub-component: dtcm                  
+
+CDExc20204 printer options dialog invokes wrong help for value error
+CDExc23275 missing dtcm calendar error dialog help id
+
+Component: Help                 Sub-component: dtfile                
+
+CDExc16129 No Help for Open Actio
+CDExc16289 need more info for changing ownership of file or folde
+CDExc20329 Grahpic in File Manger - Change Permission dialog is incorrec
+
+Component: Help                 Sub-component: dticon                
+
+CDExc21514 DEFAULT setting of NUMBER OF COLORS causes DTICON problem
+
+Component: Help                 Sub-component: dtinfo                
+
+CDExc23121 Infomgr help is not up to dat
+
+Component: Help                 Sub-component: dtmail                
+
+CDExc22192 CDE Mailer onitem online (context-sensitive) help problem
+CDExc23315 `Help` for a dtmail dialog cannot be found
+CDExc23410 Dtmail help and user`s guides need to be updated to reflect func/UI change
+
+Component: Help                 Sub-component: dtstyle               
+
+CDExc21953 CPU impact of screen savers should be documente
+
+Component: Help                 Sub-component: dtterm                
+
+CDExc12857 no help-  - or do-  - action
+CDExc19622 modifications to dtterm man pages & online docs for -title optio
+CDExc20961 dtterm online help is missing how to reset lines stored in scroll memor
+
+Component: Help                 Sub-component: frontpanel            
+
+CDExc22032 IGE: Change Related Topis to See Also to be consistent
+
+Component: Help                 Sub-component: help4help             
+
+CDExc21999 IGE: Selection and menu heading not consistent
+CDExc22033 IGE: same hyperlink links to two different helps
+
+Component: Help                 Sub-component: introCDE              
+
+CDExc21998 IGE: Change selection To Change Window Behavior
+
+Component: Help                 Sub-component: online                
+
+CDExc15063 problems with help topic for `Log out Confirmation` dialo
+CDExc15278 bullets displayed without delimiter
+
+Component: Style Guide          Sub-component: dtstyle               
+
+CDExc18043 Directory Selection dialog unusable as specified in Style Guid
+
+Component: SysAdminGuide        Sub-component: adminapps             
+
+CDExc12684 Can`t specify default header vie
+
+Component: SysAdminGuide        Sub-component: environmentvars       
+
+CDExc22782 Localizing an Infolib section is wron
+
+Component: SysAdminGuide        Sub-component: frontpanel            
+
+CDExc20963 Unclear section in Chapter 13 of SysAdmin book (To Restore a Deleted ...
+CDExc21677 Wrong location for dtwm.fp site
+
+Component: SysAdminGuide        Sub-component: general               
+
+CDExc12838 Provide detailed flow-chart of login process and file
+CDExc13857 dtcm icon does not survive restart of dtw
+
+Component: Translation          Sub-component: de_DE.ISO8859-1       
+
+CDExc20459 Missing message catalog
+CDExc23126 primary sortas needs to be translate
+CDExc23198 The mnemonics in many applications were not translated with the menu strin
+
+Component: Translation          Sub-component: es_ES.ISO8859-1       
+
+CDExc20460 Missing message catalog
+CDExc22623 dtinfo label in Spanish for Search Scope Editor is too lon
+CDExc23127 primary sortas needs to be translate
+
+Component: Translation          Sub-component: fr_FR.ISO8859-1       
+
+CDExc19149 Help screen dumps not all localize
+CDExc20461 Missing message catalog
+CDExc23128 primary sortas needs to be translate
+CDExc23130 a few indexterms commented out of French Infomg
+
+Component: Translation          Sub-component: it_IT.ISO8859-1       
+
+CDExc22713 dtinfo label in Italian for Search Scope Editor needs modificatio
+CDExc23129 primary sortas needs to be translate
+
+Component: Translation          Sub-component: ja_JP.dt-eucJP        
+
+CDExc20462 Missing message catalog
+CDExc22631 missing Japanese dtudcexch.msg fil
+CDExc22779 The localized version of dtlogin.msg need an update for message 3,
+
+Component: Translation          Sub-component: ko_KR.dt-eucKR        
+
+CDExc20463 Missing message catalog
+
+Component: Translation          Sub-component: sv_SE.ISO8859-1       
+
+CDExc20464 Missing message catalog
+
+Component: Translation          Sub-component: zh_CN.dt-eucCN        
+
+CDExc20465 Missing message catalog
+
+Component: Translation          Sub-component: zh_TW.dt-eucTW        
+
+CDExc20466 Missing message catalog
+
+Component: UserGuide            Sub-component: customize             
+
+CDExc20989 Need to document Beep dialog box functions` hardware dependenc
+
+Component: UserGuide            Sub-component: general               
+
+CDExc22162 UIL Built-in Tables is monolithic & needs refinement for onlin
+CDExc22175 dtpad: man pages and User`s Guide need change like this. See description
+CDExc22814 tt guide Table 9 has typos (spaces within 4 words
+CDExc22817 location id`s in CDE: Info Sys Author meaningles
+CDExc24107 The ttsession documentation needs updating to reflect cookie authorization
+
+Component: UserGuide            Sub-component: mailer                
+
+CDExc21271 There are the wrong descriptions of the short cut key
+CDExc21369 Using Mailer-Sending Mail Messages needs updating in response to CDExc2103
+CDExc23519 UserGuide and Help documentation need update to support mail retrieval
+
+Component: UserGuide            Sub-component: onlinehelp            
+
+CDExc22991 A reference to XsetCommand while it should be XSetComman
+
+Component: UserGuide            Sub-component: runningapps           
+
+CDExc16780 add permissions info for App Mg
+
+Component: UserGuide            Sub-component: termemulator          
+
+CDExc16140 new default translation
+
+Component: X/Open               Sub-component:                       
+
+CDExc17733 XmComboBoxAddItem() manpage should cover specifying an invalid pos argumen
+CDExc17735 XmComboBoxDeletePos() manpage should describe passing invalid pos argument
+CDExc17738 XmComboBox[Set,Select]Item should doc behavior when non-unique XmStrings
+CDExc21353 DtPrintSetupBox application resource description misleadin
+CDExc21417 Incorrect documentation for arg4 in DtWsmGetWorkspacesOccupie
+CDExc22290 The dtcm_insert man page does not document the -a optio
+CDExc22362 The csacsa man page needs to update
+CDExc22539 dtsearchpath man page does not describe the -o command line optio
+CDExc22622 dtsearchpath man page is formatted incorrectly and hard to rea
+CDExc23160 CDE is described as XCDE in many place
+CDExc23292 dtsession man page is refers to CDEnex
+CDExc23293 dtsession man page does not document the waitWmTimeout resourc
+CDExc23327 dtsession man page refers to non-existant Xme functio
+CDExc23372 dticonfile references non-existent xmgeticonfilename(3) man pag
+
+Component: X/Open               Sub-component: calendar              
+
+CDExc20200 dtcm_insert manual is missing key informatio
+
+Component: X/Open               Sub-component: dtsession             
+
+CDExc20887 man pages for dtscreen needs to be updated to reflect -xrm command line op
+
+Component: other                Sub-component:                       
+
+CDExc20987 The ksh93 man pages incorrectly implies that ksh is ksh9
+CDExc20994 There are vendor-specific references in some man page
+CDExc20995 Missing man pages and missing needed references in man page
+CDExc21437 In the dtksh man page, change the references to `sh` to `ksh
+CDExc21449 Change `Audio` to `Beep` on dtsyle.1 man pag
+CDExc21511 Need Digital-specific entries in FILES section of dtmail man pag
+CDExc22369 Different tag types -- Cont`
+CDExc22470 Incorrect format of tim
+CDExc23059 Release Notes should list total assertions in Test Execution Result
+CDExc23120 info manager user guide is not up to dat
+CDExc24110 Need man pages for the new ToolTalk API added to support new authority typ
+
+Component: other                Sub-component: misc                  
+
+CDExc21551 In the CDE Programmer`s Guide on page 113
+CDExc21552 GifViewer action example syntax erro
+CDExc22058 dtinfo - change in font scale needs doc chang
+
+------- Open defects in project cde-test        -------
+
+
+Component: Admin                Sub-component:                       
+
+CDExc22971 env vars updated in env.sh are not restored when tests en
+CDExc23387 investigate method to automate killing of hung tests/processes
+CDExc23649 Include expected test assertion count in test result report
+
+Component: Applications         Sub-component: dtaction              
+
+CDExc23350 DefConfig manual test failure
+
+Component: Applications         Sub-component: dtappintegrate        
+
+CDExc18090 dtappintegrate test gives unexpected signal 11 SIGSEGV on SunO
+CDExc23439 dtappintegrate test failures
+
+Component: Applications         Sub-component: dtappmanager          
+
+CDExc23438 dtappgather manual test failure
+CDExc23886 Manual test for dtappgather must be updated to reflect changes for CERT Ad
+
+Component: Applications         Sub-component: dtbuilder             
+
+CDExc14944 Manual test checklist is out of date
+CDExc15667 Functionality of test_suite for dtbuilder needs to be enhance
+CDExc16563 Duplication of tests in manual test suit
+CDExc16750 PRP20 - Cannot execute test as written
+CDExc16923 env.sh -c unsets PATH variable
+CDExc17301 Test documentation is missing
+CDExc17327 CGW3.2 fails, RUN doesn`t recognize changed projec
+
+Component: Applications         Sub-component: dtcalc                
+
+CDExc16922 env.sh -c produces an erro
+CDExc17245 Startiing dtcalc on commandline does not open in default state
+CDExc17288 dtcalc basic manual base tests 1, 4, and 7 failed
+CDExc17319 dtcalc answer in wrong base
+CDExc19198 dtcalc fails due to focus proble
+
+Component: Applications         Sub-component: dtcm                  
+
+CDExc15607 Undocumented function is being used
+CDExc16483 delete_callog script does infinite loo
+CDExc16512 The update_callog script creates a high load on the cp
+CDExc16638 The sigset symbol is unresolved when executing callback0
+CDExc17277 csa_unregister_callback-  - returns incorrected result
+CDExc19344 dtcm has a new dialog for repeating appointment, needs test chang
+CDExc23058 DtClientPrinting tests unable to recognise mapping of Printer options dial
+CDExc24023 dtcm manual test has errors in various test result
+CDExc24144 Update dtcm test titles when dtcm changed to conform to CDE style stds
+CDExc24153 dtcm test script Find02.sh fails causing failure in Find02 2,
+
+Component: Applications         Sub-component: dtdocbook             
+
+CDExc23369 dtdocbook test failure
+
+Component: Applications         Sub-component: dtfile                
+
+CDExc16224 move - multicol05 is a valid test ?
+CDExc20854 dtfile tests should be more robust and not depend on testCD
+CDExc24159 dtfile tests fail to remove the tmp directory in which they are executin
+CDExc24160 dtfile tests require modifications to the setup progra
+CDExc24164 dtfile scripts to setup the NFSNonOwnDir fails to create nonown.fil
+CDExc24173 dtfile tests have intermittent false failures
+
+Component: Applications         Sub-component: dtinfo                
+
+CDExc22762 dtinfo Desktop tests not recovering from errors on Novel
+
+Component: Applications         Sub-component: dtksh                 
+
+CDExc20529 dtksh tests are poorly designed
+
+Component: Applications         Sub-component: dtlogin               
+
+CDExc23477 update README for libcsa and dtlogin manual test
+CDExc23833 dtlogin tests do not logout, because dtaction never exit
+
+Component: Applications         Sub-component: dtlp                  
+
+CDExc20600 Error message dialog does not match
+CDExc20603 dtlp test discards all output on Alph
+CDExc20878 dtlp test generates unique outpu
+CDExc20881 dtlp tests need golden data updat
+CDExc23607 dtlp manual tests need updatin
+
+Component: Applications         Sub-component: dtmail                
+
+CDExc15608 Undocumented function is being used
+CDExc15822 Can not view postscript mail attachmen
+CDExc21726 Dtmail tests fail on Fujistsu because of incorrect keyboard binding
+CDExc23026 Message/openMsg test having trouble with secondary windo
+CDExc23865 Dtmail tests which receive mail need to be updated for POP/IMAP
+CDExc24042 dtmail manual test needs updating
+CDExc24138 dtmail test failure
+
+Component: Applications         Sub-component: dtpad                 
+
+CDExc19858 StatusLine/StsLine5 test gives false failur
+CDExc19860 StatusLine/StsLine1 test gives false failur
+CDExc19861 StatusLine/StsLine4 test gives false failur
+CDExc19863 WordWrap/WrdWrap1 test fails to test assertion on IB
+CDExc21752 dtpad print tests need update due to underlying printing change
+CDExc23524 dtpad test suite failures
+CDExc23859 Dtpad SaveAs1 test fails when run after Print3 in a scenari
+
+Component: Applications         Sub-component: dtscreen              
+
+CDExc16376 No error display when dtscreen.swarm.batchcount isnot se
+CDExc22489 The dtscreen nice test is broken on some platform
+
+Component: Applications         Sub-component: dtsearch-utils        
+
+CDExc23488 test failures in dtsearch - dtsr suit
+
+Component: Applications         Sub-component: dtsearchpath          
+
+CDExc22961 MANPATH setting can affect dtsearchpath test outcom
+
+Component: Applications         Sub-component: dtsession             
+
+CDExc22965 dtsession suite needs larger time-out for logi
+
+Component: Applications         Sub-component: dtstyle               
+
+CDExc13084 dtstyle hard-codes timeout value
+
+Component: Applications         Sub-component: dtterm                
+
+CDExc16774 DtTerm test system has several defect
+CDExc17359 Instructions for dtterm manual test are incorrecte
+CDExc19421 Various escape sequences do not seem to work
+CDExc19678 /test/Geometry/SunEsc hangs on Sun and Digital Platforms
+CDExc20660 stest test core dumps on AI
+CDExc23377 dtterm test suite has many golden image comparison failure
+
+Component: Applications         Sub-component: dttypes               
+
+CDExc16484 Unneeded files are not delete
+
+Component: Applications         Sub-component: dtwm                  
+
+CDExc14722 Appearance of front panel incorrec
+CDExc22338 dtwm does not produce icon box on Digita
+CDExc22347 dtwm test iplacemt1, assertion 3 fails on Fujitsu: probable golden dat
+CDExc22931 dtwm fails to find icon box
+CDExc22944 Icon Box scrolling test failed on IBM platfor
+CDExc23177 dtwm manual tests - updates, correction
+CDExc23810 dtwm postSubPanel routine makes incorrect assumptions about sequenc
+
+Component: Applications         Sub-component: psddx                 
+
+CDExc21989 Configuration file got overwritten wiping out local X printers
+CDExc21992 Local printers were removed from the printers configuration file
+CDExc22917 Golden for all of the tests (including TOUCH) is out of date
+CDExc23072 Presumption that a driver will produce identical output is false
+CDExc23073 Exectool.sh does not function properly on all platforms
+
+Component: Build-Install        Sub-component: build                 
+
+CDExc22499 Test libraries should be built share
+CDExc22602 make all in makedepend fails: using obsolete -Dux
+CDExc23248 makedepend in threadsafe suite on Digital has problem
+
+Component: Build-Install        Sub-component: configure             
+
+CDExc21574 fix reference to DtSearch library when merge config directorie
+CDExc23141 cde-test config dir. needs to be merged with cde`s config dir
+
+Component: Config               Sub-component: configdb              
+
+CDExc24020 Test failur
+
+Component: DtHelp               Sub-component:                       
+
+CDExc19203 dtHelpApi IBM golden data updates neede
+CDExc19211 dtHelpGui Novell has changed window titl
+
+Component: DtHelp               Sub-component: CDE1                  
+
+CDExc19881 Test will not run on platform DEC and Fujits
+
+Component: DtHelp               Sub-component: Canvas/Render         
+
+CDExc22942 CREPrinting seem to be affected by timing issue
+
+Component: DtHelp               Sub-component: GUI                   
+
+CDExc23034 Threadsafe tests fail to run on Digita
+CDExc24131 Intermittent errors in dtHelpApi/QuickApiSetValues due to focus problem
+CDExc24132 dtHelpGui GuiHistTouchAll unresolved due to unexpected SIGSEGV
+
+Component: DtHelp               Sub-component: Graphics              
+
+CDExc24136 Test returns inconsistant height for DtHelp dialog window causing failure
+
+Component: DtMail               Sub-component:                       
+
+CDExc23075 DtClientPrinting tests - some test cases do not leave resul
+
+Component: DtSvc                Sub-component: actioninvoke          
+
+CDExc19856 On DEC all DtSvc/DtAction tests SIGSEG
+CDExc20889 Missing env vars cause 4 UNINITIATED TPs on Fujits
+CDExc23826 DtAction tests should be implemented to look for windows with WaitProc
+
+Component: DtSvc                Sub-component: datatyping            
+
+CDExc17592 Test requires procedure which is not exported from libDtSvc.
+CDExc23263 DtSvc/dtdatatyping and dttypes fail on AIX (see also CDExc19578
+
+Component: DtSvc                Sub-component: dragdrop              
+
+CDExc15609 Undocumented function is being used
+CDExc23380 dragdrop tests coredump when ctrl-move is attempted on Su
+
+Component: DtSvc                Sub-component: other                 
+
+CDExc19259 DtSvc/ICCCM tests access internal functions of DtSvc
+CDExc19432 DtInit built incorrectl
+CDExc21919 DtSvc MT tests need extra code remove
+CDExc23480 test failures in DtSvc/DtWsm suit
+CDExc23823 DtSvc/DtWsm test hangs because dtwm does not exi
+
+Component: DtTerm               Sub-component:                       
+
+CDExc20948 DtTerm not taking keymapping translation
+CDExc20949 dtterm test not passing command line options to dtterm
+
+Component: DtTerm               Sub-component: GUI                   
+
+CDExc23041 Threadsafe tests fail to run on Digita
+
+Component: DtWidget             Sub-component: DtComboBox            
+
+CDExc20917 Fujistu DtWidget golden images need updatin
+CDExc22872 IBM DtWidget golden images need updatin
+
+Component: DtWidget             Sub-component: DtEditor              
+
+CDExc19431 Mouse up events los
+CDExc19868 DnD/DnD01 test has incorrect object location
+CDExc19869 Locale/Lang01/Lang01 test is not platform independen
+CDExc21759 some Dteditor tests give false negative
+CDExc23356 DtEditor test suite failure
+CDExc23919 processes did not exit during DtEditor tes
+
+Component: DtWidget             Sub-component: DtSpinBox             
+
+CDExc20918 4 DtWidget test assertions fail on Digital with Testproc: Child failed
+
+Component: DtWidget             Sub-component: dttextwidget          
+
+CDExc16944 Need test removal of embedded NULLs in incoming dat
+
+Component: DtWidget             Sub-component: other                 
+
+CDExc19330 Xm XmFSB test failure - DtComboBox core dump
+
+Component: I18N                 Sub-component: UDC                   
+
+CDExc23017 Resource comparison testing failed by resource modifying of mapconv
+
+Component: MT                   Sub-component:                       
+
+CDExc21415 DtActionInvoke remains blocked after lock is remove
+CDExc22322 DragDrop/dd12 test fails with signal on all platforms
+CDExc22324 Clipboard/clip10 test fails with signal on all platform
+CDExc22328 XmMT tests do not run to completio
+CDExc22330 XmMT test for XmTransferValues failed on UnixWar
+CDExc22348 Threadsafe/DtMrm FetchSV test hangs on Novel
+CDExc22352 Test SubSend{3} fails on Novell with unexpected signal 2
+CDExc22601 threadsafe/mtDtMrm/OpenHFB test doesn`t notice warnin
+CDExc22604 tet_scen needs cleanup: calls unimplemented test
+CDExc22717 mtDtSvc ActInvok tests need redesign to wait for DtACTION_DON
+CDExc22781 mtDtTerm/.../SubReap should not expect lock
+CDExc22827 Uninitialized memory reads running XmMT/tests/Text/text2
+
+Component: Printing             Sub-component: libXp                 
+
+CDExc20946 The xdppx tests fail to run on an AIX platform
+CDExc23024 Inconclusive test results due to test inconsistencie
+CDExc23025 Questionable test results could be the result of faulty test
+CDExc23086 No test spec for Xp/dtGu
+CDExc23087 Exectool.sh is incorrectly constructed
+CDExc23089 Assertions failed to run
+CDExc23090 No test spec exists
+CDExc23378 Xp/xpApi test failure
+CDExc23379 Xp/xpConfig, Xp/xpddx test failure
+CDExc23484 test failures in Xp/dtGui suit
+CDExc23485 test failures in Xp/dtPdm test suit
+CDExc23486 test failures in Xp/xpdd
+CDExc23545 CREPrinting test suite is not being built
+CDExc23569 Xp/dtGui test failure
+
+Component: Printing             Sub-component: prserver              
+
+CDExc23358 test failures in XmPrinting suit
+
+Component: Runtime              Sub-component: developenv            
+
+CDExc16191 Test suite is incomplet
+CDExc17164 Test suite should write temporary results to TET_TMP_DI
+CDExc17206 Test suite needs to make sure demos compile and link properl
+
+Component: Synlib               Sub-component:                       
+
+CDExc11341 Synlib should keep track of which widgets are activ
+CDExc11342 Synlib should generate focus maps files automaticall
+CDExc11345 Image comparisons should be resolution independen
+CDExc11346 Better tools needed to determine image difference
+CDExc11348 Synlib can`t query widgets for their attribute
+CDExc11349 Provide a choice of test development language
+CDExc11350 Keyboard traversal method has several limitation
+CDExc11354 Correct the limitations on masking images for comparison
+CDExc11721 SynPostWindowMenu doesn`t work on iconic window
+CDExc12313 Currently can`t inactivate focus on selected window
+CDExc14316 Synlib user s guide has many references to Vu
+CDExc14635 Needed a function to capture image of current focus
+CDExc15341 SynCompare*Image does not raise the window first
+CDExc21113 Turning on SynSyncVisual causes SynWaitWindowMap to hang sometime
+CDExc21673 SynNameWindowByProperty() causes unaligned access on Digita
+CDExc22129 SynSelectItem returns SYN_TIME_OUT for valid paths intermittentl
+CDExc23676 auto golden data generation doesn`t work for assertion based image
+CDExc23815 alarm signal handling interferes with X protoco
+CDExc23841 Synlib incorrectly gets selections by waiting for PropertyChange event
+
+Component: Synlib               Sub-component: dtpad                 
+
+CDExc22317 DtTestCompareImage fails with SYN_READ_FAIL code on Novel
+
+Component: ToolTalk             Sub-component: libtt                 
+
+CDExc23047 TT test mt_API fails on IBM with TT_ERR_APPFIRS
+CDExc23048 TT test mt_test fails on Sun and IBM with TT_ERR_TOOLAT
+
+Component: ToolTalk             Sub-component: rpc.ttdbserver        
+
+CDExc22329 Tooltalk tests fail on Digital with error: cannot shif
+CDExc22331 ToolTalk tests failing on Fujitsu with error: rpc.ttdbserver not installe
+CDExc22333 ToolTalk tests fail on IBM with error: Memory fault, coredum
+
+Component: Tooltalk             Sub-component:                       
+
+CDExc16295 tt_message_reject failure in test suit
+CDExc16298 tt_default_file_set failure in test suit
+
+Component: other                Sub-component: testenvironment       
+
+CDExc10870 Change Imake Dependencies Section in the Imake HOW TO Do
+CDExc12812 DtTestCompareImage broken when dynamic and RECOR
+CDExc12814 DtTestCompareImage problems with TET_EXEC_IN_PLACE=Fals
+CDExc12828 DtTestMoveWinAbs  needs to be update
+CDExc13173 DtTest functions fail to support LANG specific dir`
+CDExc15606 Undocumented function in DtTest librar
+CDExc16751 marquee tests omit a ste
+CDExc16764 Items 14 and 15 ar emissing from README scrip
+CDExc16790 frontpanel images incorrect in test case deflt0
+CDExc16797 Test script inconsistent with README fil
+CDExc17623 I18N additions for DtTest functions & directorie
+CDExc19417 DtWidget: obsolete tests need to be removed from ACCEPTANCE scenari
+CDExc19418 Xm: Acceptance test for Dndlabel does not report result for each assertio
+CDExc19499 synlocate: mishandles signals badl
+CDExc19556 Copyright templates for tests should be updated for CDENex
+CDExc19617 mkelems for golden data/obj locs created during cde_main
+CDExc19935 dtperf on Alpha generates `unaligned access` error
+CDExc20446 DtTest must become thread saf
+CDExc20941 DtTestAbortTest doesn`t abort additional assertions
+CDExc22103 NORESULT test code in place of PASS for a valid PASS tes
+CDExc22336 fopen on valid file fails when tests are not run in place on AI
+CDExc23479 go through all test suites, uncomment and fix commented out test
+CDExc24118 DefConfig has intermittent error
+
+Component: other                Sub-component: visuals               
+
+CDExc23035 Threadsafe tests fail to run on Digital for lib DtMr
+
+Component: sys_suites           Sub-component: Intop                 
+
+CDExc21597 Intop object locations file need testin
+
+------- Open defects in project motif-code      -------
+
+
+Component: MWM                  Sub-component: MWM programmatic inter
+
+CDExc02644 mwm doesn`t recognize dynamic changes to MWM_HINT
+CDExc04066 mwm double-click on open window`s icon should minimize it, not raise i
+CDExc04632 Should be able to specify ~user/.mwmrc for configFile, as well as ~/.mwmrc
+CDExc04930 Title text not readable with *cleanTex
+CDExc04966 Application-supplied icon window should be in iconbox even when normalized
+CDExc05431 mwm should monitor changes in its ints.  For example, it ignores adding an
+CDExc05517 .mwmrc should allow shell vars
+CDExc20148 Double clicking on icon to restore client hangs Mwm
+CDExc20150 Mwm resource bitmapDirectory does not support the  key
+CDExc23234 VendorShell XmNmwmDecorations and XmNmwmFunctions are not `CSG
+
+Component: MWM                  Sub-component: MWM user interface    
+
+CDExc00608 Double click on window menu button flashes window menu before         kill
+CDExc01076 If an icon is dragged to the edge of the icon box, the icon box should scr
+CDExc01421 When Btn?Down posts a menu, a click should leave the menu posted. It doesn
+CDExc02474 need to have a mwm functtion which will telll the cuurent running mwm` ver
+CDExc02645 mwm does not handle icon sizes properl
+CDExc03186 More aesthetic Icon box icon with a 3-D look
+CDExc03211 Center all multi-line icon
+CDExc03246 Use XFILESEARCHPATH for configfile if resource not specifie
+CDExc03272 Mwm artifacts not always visible on multiscreen systems with color and mon
+CDExc03998 Window groups iconify together in twm.  Mwm should do the same 
+CDExc04546 Active label should follow pointer focus in iconbox
+CDExc04924 Allow Mwm bindings and window menu as a per-client resourc
+CDExc04926 Add a resource to allow a lowered window to be raised when button1 is pres
+CDExc04927 Add an f.place mwm functio
+CDExc04929 Grabbing colormap focus
+CDExc04935 Can not turn off some Mwm bindings
+CDExc04965 Icon label in iconbox not updated when active
+CDExc05516 Avoid colormap flashing when switching between windows with same colormap
+CDExc05522 icon position not remembered across restar
+CDExc08517 Mwm should make its version number easy to find
+CDExc23207 mwm can exit if app exits while window menu is u
+CDExc23294 [raise,lower] freeFamily does not seem to wor
+
+Component: UIL                  Sub-component: Mrm library           
+
+CDExc01228 UIL creates files with mode 644.  Should take account of umask
+CDExc04723 MrmOpenHierarchy should use 	XFILESEARCHPATH
+CDExc06061 When an unmanaged ScrolledList is fetched, the ScrolledWindow is managed
+CDExc08247 Idb__INX_SearchIndex may be able to return a random valu
+CDExc20407 String and asciz string tables from uil are not null terminate
+CDExc21032 XmIconGadget does not inherit XmNforground from XmGadget
+CDExc23995 float & single_float resources do not wor
+
+Component: UIL                  Sub-component: UIL                   
+
+CDExc01569 Support enumerated exit statuses for - command line - uil, using those ava
+CDExc02298 Need a way to mark in WML and generate appropriate error messages in UIL f
+CDExc03523 Compilation of uil modules with many included files aborts wit with a `too
+CDExc04574 No comment associated with compound string
+CDExc05247 no warnings generated when widget value can`t be converte
+CDExc05276 An attempt to define a character set variable in a UIL value section gener
+CDExc05397 The UIL compiler should have a -c option, allowing the output filename to 
+CDExc05693 uil compiler allows invalid assignments to enum-style resources
+CDExc06415 Mrm fails to make delayed UIL widget attachmen
+CDExc07560 better listing of compound string
+CDExc07572 UIL internal error encountered
+CDExc19729 drag selection in S_MAIN_WIDGET not highlighte
+CDExc20146 some UIL/Mrm hard-coded limits are inconvenient -- 1000 shell
+CDExc20664 UIL compiler needs to flag widget references to be dropped by MR
+CDExc23724 XmNtag Resource of XmRendition Does Not work in Nested UI
+
+Component: UIL                  Sub-component: WML                   
+
+CDExc03311 Wml/uil widget class support is inadequate
+CDExc04716 Some methodology or process needs 	to be defined to keep motif.wml in sync
+
+Component: Xm                   Sub-component:                       
+
+CDExc10593 Enhancement: Round radio button looks square in some size
+CDExc10599 Motif looks for stipple files every time it needs them
+CDExc10733 Drag and Drop Performance on network needs to be fixed
+CDExc11913 regexpI.h does not have extern C declaratio
+CDExc12071 Drag is clipping icons & drop zones
+CDExc12706 Begin & End buttons violate standard
+CDExc12823 Memory leak errors in libx
+CDExc12825 Purify detected memory error
+CDExc12947 Scrollbars: Need single click method to get from top to bot
+CDExc12949 Scrollbar: add repeatability on  positioning in scroll lis
+CDExc12991 Black shadow line in display window upon startup
+CDExc13157 I18N: IM status area has a line
+CDExc13568 Drag&Drop generates XtWarning message
+CDExc13570 text field widget doesn`t handle XmNcursorPositionVisible righ
+CDExc13683 XmStringGetNextSegment skips over blank line
+CDExc13791 Strange keyboard focus cursor while dragging text in Options d
+CDExc13809 Can drag toolbar items, but no dropsite
+CDExc13868 FSB directory text field shouldn t require ente
+CDExc13871 XmText ALWAYs does a full window repain
+CDExc13904 Mouse pointer needs to track the Scrollbar elevato
+CDExc14083 CDE/IBM: I18N:  IM status area has an unnecessary line
+CDExc15129 Motif DnD does not allow button motion event to trigger Dn
+CDExc15132 Uses wide char functions not on all system
+CDExc15679 drag icon shows NOT symbol, when drop would be O
+CDExc15680 dropped icon image should have cursor image remove
+CDExc15739 insert position not displayed correctly after end-of-file acti
+CDExc15795 purify: MLK: VendorShell: catopen-  - with no catclose-  
+CDExc15798 purify: MLK: mem leak in XmCvtXmStringToCT-  
+CDExc15857 can t drag and drop  ahea
+CDExc15944 garbage shows in file name field in Save As dialo
+CDExc16045 cursor disappears when End pressed on long lin
+CDExc16197 man pages for XmText- 3x - does not display table
+CDExc16808 Don`t allocate colors when asked for monochrom
+CDExc16825 certain values for XmNnumColumns fail to give correct # row
+CDExc17354 problem with textField insert cursor when text modified in cal
+CDExc17584 Add FSBSetValuesHook-  - to FileSB.
+
+Component: Xm                   Sub-component: Build issues          
+
+CDExc05909 files in bitmaps are never installed in X-tre
+
+Component: Xm                   Sub-component: C++ .h compile        
+
+CDExc09694 Motif header files use `char *` instead of `const char *
+
+Component: Xm                   Sub-component: Clipboard             
+
+CDExc20705 XmClipboard returns failure during thread-safe tes
+CDExc22486 XmClipboard modifies event-mask on root-windo
+
+Component: Xm                   Sub-component: Color                 
+
+CDExc17531 DefaultThresholds should be attached to a Screen
+CDExc20067 color cache can become filled quickly; should be freed when referring widg
+CDExc20419 Motif color allocation should be changeable
+
+Component: Xm                   Sub-component: Demos                 
+
+CDExc20055 filemanager: in Detail view, expanded subdirectories not sorte
+CDExc21400 panner and wsm are unsupported because they depend on WS
+
+Component: Xm                   Sub-component: Drag and Drop         
+
+CDExc09748 Mixed DragIcon is clipped when using default state and operation icon
+CDExc17548 DYNAMIC D&D leaves pixel trashing in dtfil
+CDExc20050 Before a dialog is managed completely, the application program is hung up 
+CDExc20281 Looks like the _MOTIF_WM_QUERY_%d selection is not use
+CDExc21236 Drag under highlighting is displayed in UnManaged widgets
+CDExc22340 drag&drop does not know about gadget colors
+CDExc23206 Dragging in a 24 bit visual results in X protocol erro
+CDExc23210 Drop site registration does not run in linear tim
+CDExc23765 BackingPixmap functionality needs revie
+CDExc23845 drags do not drop in window according to stacking orde
+CDExc23936 cancel drag zap effect sometimes rooted at incorrect origi
+CDExc23951 Potential memory leak in DropSMgr.
+CDExc24171 UpdateMotionBuffer in DragC.c causes memory leak during drag
+
+Component: Xm                   Sub-component: Draw package          
+
+CDExc09644 Pixels missing in Indeterminate Stat
+
+Component: Xm                   Sub-component: Gadget|Primitive|Manag
+
+CDExc17721 gadgets do not always work in dialog
+CDExc23109 Gadget backgrounds must support BC mod
+
+Component: Xm                   Sub-component: Geometry Management Me
+
+CDExc07196 RCLayout doesn`t handle new widget
+
+Component: Xm                   Sub-component: Geometry Management Po
+
+CDExc17505 XmComboBox geometry handles margin widths incorrectly
+
+Component: Xm                   Sub-component: I18N misc             
+
+CDExc20418 If the VendorShell height is set using XtSetValues() before realize, the a
+CDExc23231 XmImSetValues may be used when XmImSetFocusValues is neede
+
+Component: Xm                   Sub-component: Memory issues         
+
+CDExc23686 XmResolveAllPartOffsets problem with constraint part
+
+Component: Xm                   Sub-component: Menu button interactio
+
+CDExc05044 cancelling option menu selection should revert focus back to widget that h
+CDExc09118 Highlight problem with etch-in torn-off menu
+CDExc20362 after clicking on menu bar (not in gadget) keyboard does not wor
+CDExc20393 other menu (submenu) is selected when the return key is pressed after dr
+
+Component: Xm                   Sub-component: Menu event handling   
+
+CDExc07930 Displaying a menu doesn`t check for pointer already grabbed
+CDExc12566 Possible to select 2 entries in option menu at one time
+CDExc20079 Menu Accelerators Independent of Caps/Num Loc
+CDExc22178 syntax for XmNaccelerator does not support mnemonic abbreviation
+CDExc22964 option menu in stress cond (Novell) can fail on XmRowColumn->XtGrabPointe
+CDExc23212 PopupMenu can be torn off once when XmNpopupEnabled is disable
+CDExc23230 gadgets in menus can be multiple-selecte
+
+Component: Xm                   Sub-component: Menu layout           
+
+CDExc09620 Resizing a tear-off resizes the original men
+CDExc19637 Toolkit/Menus/Menu3 test ./Menu3 widget submenu not selecte
+CDExc19638 Toolkit/Menus/Menu3 test submenu5 widget unexpected selectio
+CDExc19639 Toolkit/Menus/Menu5 test has no selection in "popup5" widge
+CDExc19640 Toolkit/Menus/OptionMenu3 test widget pulldown2 unexpected selectio
+CDExc23232 Tearoff Menu button labels truncated with RIGHT_TO_LEFT Layou
+
+Component: Xm                   Sub-component: OS dependencies       
+
+CDExc05460 SVR4 should use poll-  -, not select-  -, for microsleep
+
+Component: Xm                   Sub-component: PC Style Convergence  
+
+CDExc22770 single Alt should start menuba
+
+Component: Xm                   Sub-component: Pixmap Converters     
+
+CDExc20502 resources esp. MWM`s which name files could handle `` prefixes (was: Hand
+
+Component: Xm                   Sub-component: Printing              
+
+CDExc21823 XmPrintShell does not generate specified warning messag
+
+Component: Xm                   Sub-component: Protocols             
+
+CDExc17356 Problem with focus using the 1.2 mwm
+
+Component: Xm                   Sub-component: Resolution Independenc
+
+CDExc20755 Resolution independence needs more precision for printin
+
+Component: Xm                   Sub-component: Resource Converters   
+
+CDExc01727 Motif should allow dynamic resource modification
+
+Component: Xm                   Sub-component: Right-to-Left layout  
+
+CDExc09039 Window resizing in RtoL layou
+
+Component: Xm                   Sub-component: TearOff Menus         
+
+CDExc20422 Enhancement of tear off menu
+CDExc23868 tear off menus change size to fit titl
+
+Component: Xm                   Sub-component: Translations and Virtu
+
+CDExc04896 Many Motif action procs assume certain kinds of events, usually Button
+CDExc09761 <Shift> modifier sometimes doesn`t work in virtual key binding tabl
+CDExc09763 cannot use xmodmap to program the Alt-Insert key combination on PC kb
+CDExc16136 Problem with assigning multiple key codes to a keysym
+CDExc20452 wants Motif accelerators to have same behavior as translation
+CDExc20666 VirtKeys contains outdated binding
+CDExc23915 virtual bindings mechanism makes customization difficul
+
+Component: Xm                   Sub-component: Traversal/Navigation  
+
+CDExc09517 Navigation16 is getting an extra focus changed callbac
+CDExc23241 add mnemonic traversal capability beyond menu
+CDExc23450 XmGetVisibility does not consider parent/ancester`s sibling`s obocurit
+CDExc23769 keyboard gets stuck when entire menu is insensitiv
+
+Component: Xm                   Sub-component: VendorShell           
+
+CDExc09070 RealizeCallback called twice for TransientShell
+CDExc23685 VendorSE.c function GetMWMFunctionsFromProperty demands round-tri
+CDExc24001 VendorShell use of XmNuseAsyncGeometry sometimes has side effec
+
+Component: Xm                   Sub-component: XmBulletinBoard       
+
+CDExc08395 BulletinB.c changes shell`s XmNmwmFunctions and doesn`t use MWM_FUNC_AL
+CDExc23673 XmBulletinBoard constraint record error
+CDExc23731 RenderTables in BulletinBoard Have No Effect in Childre
+
+Component: Xm                   Sub-component: XmCascadeButton       
+
+CDExc08741 Customer wants warning if CascadeButton is not correctly parente
+CDExc23682 CascadeB (Gadget) loses cache information, forces call to XGetGeometr
+
+Component: Xm                   Sub-component: XmComboBox            
+
+CDExc06814 XmComboBox list accelerators can`t be overridden
+CDExc09729 PComboBox1 test resizes list incorrectl
+
+Component: Xm                   Sub-component: XmContainer           
+
+CDExc09263 XmContainer traversal order is wron
+CDExc09364 Keyboard bindings for expand/collapse needed for detail/outlin
+CDExc09365 Container should take focus sometime
+CDExc09498 Container should drag multiple icon
+CDExc09611 container outline/detail traversal enhancement
+CDExc09674 In Container if selectionTechnique is MARQUEE_EXTEND_* the highlightThickn
+CDExc09680 Wrong geometry in Container
+CDExc20030 would like to get logical entryChildren for an XmContainer nod
+CDExc20057 XmContainer`s handling of XmNdetailColumnHeading offers window of opportun
+CDExc23233 XmContainer loses children with XmNentryParent set when it is in SPATIAL s
+
+Component: Xm                   Sub-component: XmDialogShell         
+
+CDExc02618 Change xmdialogs to support both primary and full application moda
+CDExc09375 DialogShell will fool XtTranslateCoords if both DialogShell and child has 
+
+Component: Xm                   Sub-component: XmDrawingArea         
+
+CDExc20039 Drawing Area`s input handler does not work with Shape Extensio
+CDExc20423 Add the exposed region in XmDrawingAreaCallbackStruc
+
+Component: Xm                   Sub-component: XmFileSelectionBox    
+
+CDExc05592 need a sanity check to maintain a minimum width in FS
+CDExc09781 FileSelectionBox should read the cwd env. var. in cs
+
+Component: Xm                   Sub-component: XmForm                
+
+CDExc09117 XmForm ignores the resize request of its chil
+
+Component: Xm                   Sub-component: XmIconGadget          
+
+CDExc09250 Icon header tab-list troubles in R-to-
+CDExc17500 ShadowThickness counted while shadow not drawn on icons with masks
+
+Component: Xm                   Sub-component: XmIm                  
+
+CDExc20406 trash left when resize status windo
+CDExc20433 The libXm doesn`t shorten the blank of the IM status area
+
+Component: Xm                   Sub-component: XmLabel               
+
+CDExc22586 XmLabel redisplay should discard non-printables ala XmTextFiel
+CDExc23684 Label should support resources for setting pixmap siz
+
+Component: Xm                   Sub-component: XmList                
+
+CDExc04850 Add the ability to attach a user data pointer to XmList items
+CDExc06794 Customer wants extended select version of `XmListSelectionPos
+CDExc09503 List Btn1 actions wrong in integrated mode
+CDExc19641 Toolkit/List/List1 test has gaps in contiguous List1 widget select
+CDExc19727 Wrong justification in ScrollList windo
+CDExc23229 need XmListSelectAll() to select all item
+CDExc23883 ListAddMode action routine deselects selected list item
+
+Component: Xm                   Sub-component: XmMainWindow          
+
+CDExc09739 Problems with MainWindow geometry, when Menubar has more than one row
+CDExc20387 MainWindow scroll bars never disappear; Form doesn`t interact with RowColu
+
+Component: Xm                   Sub-component: XmNotebook            
+
+CDExc08190 Notebook traversal is incomplet
+CDExc08552 Notebook enhancement/redesig
+CDExc09468 Notebook traversal vs style guid
+CDExc20031 would like to adjust Notebook page margin
+CDExc20415 word-wrap performance in XmText (was: Notepad performance poor when editin
+
+Component: Xm                   Sub-component: XmPanedWindow/Sash    
+
+CDExc20032 PanedWindow geometry management overly sensitive to order of childre
+CDExc23079 Pressing Esc should cancel sash-movement operation in paned windo
+
+Component: Xm                   Sub-component: XmPushButton          
+
+CDExc16851 Cant update graphics on button
+CDExc20392 The next FocusIn PushButton border is not highlighted after the current Pu
+
+Component: Xm                   Sub-component: XmPushButtonGadget    
+
+CDExc09609 PushPG redisplay doesn`t call UnHighligh
+CDExc19267 Pushbutton in a torn off menu is redisplayed inconsistentl
+
+Component: Xm                   Sub-component: XmRowColumn WorkArea|R
+
+CDExc02801 menuHistory should be set to the first widget in a radio box. At least bef
+CDExc02826 Additional support for radio boxes would be helpful when using XmVaCreateS
+CDExc03016 XmNmenuPost handles the modifiers incorrectly
+CDExc03268 RowColumn.c inconsistently uses internal convenience macro
+CDExc08305 OptionMenus created from C are too hig
+CDExc08851 The option menu cascade button visuals change between 1.2.2 and 1.2.3 on t
+
+Component: Xm                   Sub-component: XmScale               
+
+CDExc01788 In XmScale, Motif should either set XmNinitDelay & repeatDelay to infinity
+CDExc08754 Scale widget clips display of value and/or scrollbar
+CDExc19630 Incorrect scale indication in Scrollbar/Scale11 tes
+CDExc19631 Toolkit/Scrollbar/Scale8 test "Affected" scrollbar size error
+CDExc20046 XmScale enhancement: function like XmScrollBarSetValues which optionally n
+CDExc20284 Changing scale minimum/maximum does not request new siz
+
+Component: Xm                   Sub-component: XmScrollBar           
+
+CDExc23235 ScrollBar/Menu interaction: lose keyboar
+
+Component: Xm                   Sub-component: XmScrolledWindow      
+
+CDExc23427 need routine to programmatically scroll to an x,
+CDExc23428 XmScrollVisible does not work for unmanaged work windo
+CDExc23659 ScrolledWindow doesn`t implement documentatio
+CDExc23660 Make XmNVisualPolicy resource of ScrolledWindow CSG typ
+CDExc23717 Behaviour differences in Motif 1.2 and 2.1 ScrolledWindo
+
+Component: Xm                   Sub-component: XmString              
+
+CDExc05205 i18n applications, the 64k byte limitation in compound strings is too smal
+CDExc07601 Enhancement: a function from list of tags and rendertable to info about th
+CDExc15898 Text clipping of XmStringDraw- 3X - does not work correctly
+CDExc20074 XmeStringIsValid is not useful; only checks for NUL
+CDExc23251 XmStringGenerate generates `No Font Found` error messag
+CDExc23288 XmCvtCTToXmString does not carry state or handle multiple escape
+CDExc23532 XmString.c/XmStringNCreate has mem lea
+
+Component: Xm                   Sub-component: XmTabList             
+
+CDExc07604 Upgrade _XmTabListGetPosition to Xm or Xme
+
+Component: Xm                   Sub-component: XmText                
+
+CDExc02113 Make _XmTextPosToLine and _XmTextLineInfo public
+CDExc03481 Need way to get Text widget`s text with word-wrap
+CDExc03575 ADD: XmTextSetStringExt- widget, value, topCharacter, cursorPos ition 
+CDExc04733 add Mode should be made a resource in Text widgets
+CDExc04830 Request for block cursor in Text and TextField
+CDExc05842 Suppress Text cursor blink while it is being moved
+CDExc06184 Text highlight should be preserved if temporarily obscured by selection
+CDExc08130 Investigate possibility of sharing code between XmText, XmTextField & XmCS
+CDExc09260 XmText- 3X - doesn`t support the resource for status style
+CDExc09776 Motif had allowed the applic. to share and modify its `private` GCs
+CDExc09778 XmText to have a user defined word delimite
+CDExc16134 Text and TextField widgets miss kbd focus in ptr focus mod
+CDExc19168 Character used in calculating tabular width in XmTex
+CDExc19770 Text selection error in Toolkit/Text/ScrollText3c widge
+CDExc20014 behavior unclear when setting XmNtopCharacter without resetting XmNcursorP
+CDExc20027 Operation of secondary select/move is canceled in the TextWidget
+CDExc20040 would like configurable intra-line spacing in XmTex
+CDExc20215 Tab width should be calculated using FIGURE_WIDTH
+CDExc20388 When Insertion cursor isn`t displayed completely, when the state of the te
+CDExc20390 The insertion cursor of the TextWidget isn`t cleared completely
+CDExc20398 Characters are disappears, when both Japanese character and Tab-code exis
+CDExc20426 Inserting Cntl-J to single line XmText causes multi-line behavio
+CDExc20430 Motif cannot handle font with negative lbearing
+CDExc20437 Underline remaines when SECONDARY selection is operated in Tex
+CDExc22152 XmTextField/XmText: unprintabl
+CDExc22970 OTS SpotLocation not updated properly during preedi
+CDExc23302 easy to mess up secondary selection stat
+CDExc23800 XmText cannot display certain fonts in vertical writin
+
+Component: Xm                   Sub-component: XmTextField           
+
+CDExc04917 There needs to be a visual indication of the `editable` setting of a text 
+CDExc19771 Incorrect value for text field in Text/TextField1 tes
+CDExc20016 page-right and page-left actions support undocumented argument exten
+CDExc20036 XmTextField confuses users by missing kill- actions of XmTex
+CDExc20440 Text and TextF differ in handling highlighted values on deletio
+CDExc20530 XmTextField possible string truncation bu
+CDExc23670 string constants in Transltns.c could become array of character
+
+Component: Xm                   Sub-component: XmToggleButton        
+
+CDExc08045 ToggleButton resize problem
+CDExc09656 In a CDE environment, filed indicator of a toggle button does not look nic
+CDExc23638 Need cleanup in ToggleB.c/ToggleBG.c set_values metho
+CDExc24012 ToggleB in popup menu fails to activate when TearOff menu is present
+
+Component: Xm                   Sub-component: Xme Traversal/VirtualK
+
+CDExc19632 Multiple insertion cursors in Toolkit/Traversal/Navigation
+CDExc19633 Data not entered into text field in Toolkit/Traversal/Navigation
+
+Component: Xm                   Sub-component: Xme Visuals/ImageCache
+
+CDExc20425 Problem using a private colorma
+
+Component: Xm                   Sub-component: other                 
+
+CDExc18227 window buttons don`t work when Num Lock is o
+CDExc20054 problems building debugged libXm_g.
+CDExc20088 XmInstallImage may have hidden dependencies on depth/format matche
+CDExc20133 extraneous file Performance/SpinBox/SpinBoxPerf.default
+CDExc20227 Motif color caching will reuse colors when it should not
+CDExc20553 testing problem with ddt
+CDExc23046 Work-arounds for old X bugs should be re-examined
+CDExc23182 two messages need translatin
+CDExc23213 add an option to xmbind to view osf keyma
+CDExc24051 drop vestigial non-ANSI lines from Xm.h, other file
+
+Component: other                Sub-component: Build issues          
+
+CDExc03489 The patch files ought to have context diffs and write permiss sio
+CDExc06189 Suggested changes to Motif and X to allow builds in a cross compile enviro
+CDExc07908 bad MComplexProgramTarget_1 rul
+CDExc08325 Limit scope of defines and add define macros to Motif.tmp
+CDExc23208 in cross-compilation environment, certain binaries need different handlin
+CDExc23360 why do we build demos automatically
+
+Component: other                Sub-component: Demos                 
+
+CDExc07623 Demos script uses ks
+
+Component: other                Sub-component: Drag and Drop         
+
+CDExc08742 Drag&Drop demo exhibits GC problems in mwm XmEXPLICIT keyboardPolic
+
+Component: other                Sub-component: VendorShell           
+
+CDExc05051 no converters for XmNmwmDecorations XmNmwmFunction
+
+Component: other                Sub-component: XmBulletinBoard       
+
+CDExc07509 tests/Toolkit/Manager/BBoard5 fai
+
+Component: other                Sub-component: other                 
+
+CDExc00810 Implement `clean text` for widgets
+CDExc02768 Motif should choose an optimal tile size when creating pixmaps 
+CDExc09730 Frame drawing problem in postSW1 test
+CDExc23084 workspace demo should be unsupported or remove
+CDExc23849 Motif 2.1.n shouldn`t claim binary compatibility with 1.
+
+------- Open defects in project motif-cts-doc   -------
+
+
+Component: MVTS                 Sub-component: Build issues          
+
+CDExc09090 VTS documentation should be updated
+
+Component: MVTS                 Sub-component: OS dependencies       
+
+CDExc05453 VTS Release Notes should reflect change to Motif1.2Installed #define
+
+Component: MVTS                 Sub-component: Release Notes         
+
+CDExc06458 References to Motif1.2Installed should be removed from the Relase Notes
+
+------- Open defects in project motif-cts-test  -------
+
+
+Component: MVTS                 Sub-component: Automation            
+
+CDExc05733 VTS uses functions that are deprecated in Motif 1.2 and beyond
+
+Component: MVTS                 Sub-component: VTS Mrm tests         
+
+CDExc09319 Error block fails and exits test with cryptic error messag
+
+Component: MVTS                 Sub-component: VTS convenience functi
+
+CDExc07155 FonLiRmE.c compile warning
+CDExc07195 Waiver files missing for new convenience function tests
+CDExc09328 add more tests for XmTextReplace and XmTextFieldReplac
+CDExc09606 Clipboard convenience function test should be more robust in dealing with 
+CDExc21410 Unallocated memory being freed in VTS test library causing SEG
+
+Component: MVTS                 Sub-component: VTS input synthesis   
+
+CDExc05306 VTS test case 3.3.7 is failing the AIX 3.2.3 syste
+
+Component: MVTS                 Sub-component: VTS tools             
+
+CDExc05305 VTS Build Bug
+CDExc05415 Release notes needs to explain VF and VMRM report generation bette
+CDExc05416 VTS is inefficeint at making report files
+CDExc06136 VTS bindings are pseudo-bogu
+CDExc06249 The default value of XmNselectionArray is differs between VTS code and doc
+CDExc06250 Inconsistency between XmNresizeWidth and XmNresizeHeight being set to ResE
+CDExc06257 In XmText VTS tests, behavior which are affected by add mode should have t
+CDExc06258 Behavior test for delete-next-character-  - should check for selection
+CDExc07448 Comparisons of XmFontList types in VTS incorrect
+
+Component: MVTS                 Sub-component: VTS widget tests      
+
+CDExc04736 VTS does support resources that are conditionally on other resources
+CDExc04737 Form widget tests do not support geometry testing
+CDExc04738 Add mode should be converted to be a resource in XmList and XmText. This w
+CDExc04742 VTS does not check callbackk information in the callback data structures
+CDExc04744 VTS references the obsolete resource XmNdefaultFontList
+CDExc04746 There is a bug in the mvsgen code for ListKdbCancel. -  it does not reflec
+CDExc05067 Memory leak in the MVTS
+CDExc05121 vts 2.0 has compiler warnings under gcc -ans
+CDExc05135 VTS contains two functions that are not complete and yet used
+CDExc06171 XmMenuBar `Controls` many Dialog
+CDExc06757 VTS cannot deal with a non-NULL, non-dynamic XmString default valu
+CDExc07295 XtOpenDisplay calls in VTS widget tests use argv[1]
+CDExc07365 VTS test DropDCB does not test correct selection behavio
+CDExc07399 VTS seems to have gotten expected values switched for marginLeft resource 
+CDExc07422 VTS is getting failures in Text and TextF that can`t be reproduced manuall
+CDExc07426 CommandD incorrectly looks for XmNunmapCallback
+CDExc07440 ScrolledW does not know about XmNtraverseObscuredCallback and is giving fa
+CDExc07447 DropDCB test not not getting an error when it should
+CDExc07582 Need to include Xt definitions of XtDefault[Fore,Back]ground
+CDExc07594 Event Responses for SpinBox actions should check value of position
+CDExc07806 type of selectionArray should be XtPointer, not Pointe
+CDExc07808 VTS *Text* behavior tests should test gainPrimary and losePrimary callback
+CDExc08185 Failures reported in ScrolledCST VTS test
+CDExc08902 In SpinBox vts test if initialDelay is 0 and repeatDelay is nonzero, then 
+CDExc09073 Character position reported in CSText callback not matching character posi
+CDExc09086 VTS FAILURES in ComboBox - and DropDownCB and DropDownList - for Selection
+CDExc09094 behavior files need to be updated to use new values for showArrows resourc
+CDExc09189 TextF vts test FAILURES
+CDExc09190 CST vts FAILURES generated
+CDExc09762 WARNING in ComboBox widget tes
+CDExc19348 SpinBox VTS needs to be updated to reflect new implementation
+CDExc19412 Callbacks failures in *Text* tests on UnixWare platform
+CDExc20152 ScaGtVal asks for two args, provides only on
+CDExc20153 vf/GetPixBD.c makes bad call to XCreateImag
+CDExc20154 vf/GetVis suffers from several problem
+CDExc20155 LsStKbIP has some problem
+CDExc20156 VTS vtests/Imakefile refers to -lsocket -lnsl directl
+CDExc20157 vf CSTxGtStr flawed -- UM
+CDExc20158 vfuncs/CvStToCT.c disables several test
+CDExc20159 VTS hard to use for testing; checking failures very difficul
+CDExc20160 VTS scripts should remove output file before writing to i
+CDExc20161 VTS PopupM test fails in 2.0.
+CDExc20162 VTS ScrolledCST test fails in 2.0.
+CDExc20163 VTS ScrolledT fails in 2.0.
+CDExc20164 VTS ComboBox test fails in 2.0.
+CDExc20165 VTS Text test fails in 2.0.
+CDExc20166 VTS TextF test fails in 2.0.
+CDExc20167 VTS CST test fails in 2.0.
+CDExc23303 VTS MenuB grabs fai
+CDExc23304 VTS OptionM grabs fai
+
+Component: MVTS                 Sub-component: XmComboBox            
+
+CDExc09653 Focus isn`t teste
+
+Component: MVTS                 Sub-component: XmList                
+
+CDExc07386 When automaticSelection is set to True, extended selection and browse sele
+CDExc09186 List and ScrolledL vts test has FAILURES
+
+Component: MVTS                 Sub-component: XmSpinBox             
+
+CDExc07369 FAILURE at widget creation after setting different unitType value
+CDExc07389 VTS SpinBox bogus cod
+CDExc07391 VTS SpinBox claims to create a numeric child but is no
+
+Component: MVTS                 Sub-component: XmText                
+
+CDExc06650 VTS conv. func. TxtGtSel logic error
+CDExc09109 Failures sited in VTS run of ScrolledT, Text and TextF
+
+Component: MVTS                 Sub-component: convenience functions 
+
+CDExc20072 error in VT
+
+Component: MVTS                 Sub-component: other                 
+
+CDExc09273 page-left- extend - may not be triggered with curr trans on H
+
+Component: Xm                   Sub-component: Geometry Management Me
+
+CDExc05585 geometry of ToggleButtonGadgets changes while being scrolled in a scroll b
+
+Component: Xm                   Sub-component: Traversal/Navigation  
+
+CDExc05093 When ProcessTraversal is given the parameter TraverseHome it is not always
+
+Component: Xm                   Sub-component: XmComboBox            
+
+CDExc09327 Not receiving callback in ComboBox
+
+Component: Xm                   Sub-component: XmMainWindow          
+
+CDExc09268 XmMainWindowSetAreas doen`t support NULLS as argument
+
+Component: Xm                   Sub-component: XmRenderTable/XmFontLi
+
+CDExc09012 XmFontListRemove entry not properly handling case of multiple entries with
+
+Component: Xm                   Sub-component: XmText                
+
+CDExc05241 A number - 4 - of VTS tests generate failures that didn`t used to
+CDExc09158 VTS Text widget test is not getting the desired motionVerifyCallback when 
+
+------- Open defects in project motif-doc       -------
+
+
+Component: MWM                  Sub-component: Programmer`s Reference
+
+CDExc23374 mwmrc file says that warnings are written to .mwm/errorlo
+
+Component: UIL                  Sub-component: Programmer`s Reference
+
+CDExc23805 XBITMAPFILE can read XPMs, to
+
+Component: Xm                   Sub-component: Menu event handling   
+
+CDExc09256 menu accelerator behavior is not documente
+
+Component: Xm                   Sub-component: Programmer`s Guide    
+
+CDExc20041 List needs to document and be consistent about when keyboard highlight mov
+
+Component: Xm                   Sub-component: Programmer`s Reference
+
+CDExc09710 XmNdirSpec resource of FileSB is not adequately documente
+CDExc17647 Default XmNhighlightThickness for XmCascadeButton and XmCascadeButtonGadge
+CDExc19899 XmStringCreateLocalized man page needs to reflect new implementatio
+CDExc20004 color wrong if a rowcolumn is the togglebutton gadget`s paren
+CDExc20441 Documentation of XmFMT_8_BIT and XmFMT_16_BIT not clea
+CDExc20442 doc on memory management in the modifyVerify callback struc
+CDExc20443 XmText/XmTextField word forward/backward inconsistenc
+CDExc20453 XmTextField: description of clear-selection() ba
+CDExc20454 XmTextField: Description of key-select() ba
+CDExc22421 XmGetPixmap and XmGetPixmapByDepth need to clarify fg and bg usag
+CDExc22618 XmScreen man page menuCursor man page formatted wron
+CDExc22660 XmSpinBox description is referencing twice XmARROWS_FLAT_BEGINNIN
+CDExc22802 RowColumn should document that a menu can be posted with the Menu button
+CDExc22959 dialog man pages should indicate proper parentage rule
+CDExc23301 difficult to determine widget behavior from manual page
+CDExc23465 Update FileSelectionBox default button behavio
+CDExc23621 Missing resource entry from Resource set table of XmToggleButto
+CDExc23622 Incomplete information in XmToggleButton(Gadget) resourc
+CDExc23718 XmDragContext misdescribes XmNconvertProc; memory leak
+CDExc23789 XmSpinBox translation for <Key>Up and <Key>Down are incorrect in man pag
+CDExc23997 XmDrawnButton page describes hierarchy for bulletinboar
+CDExc23998 DrawnButton reference should state that it holds XmQTmenuSavv
+CDExc24002 XmToggleButton & Gadget need to be more specific about pixmap us
+CDExc24068 Translations have changed for Cascade Btn and pulldown menus
+
+Component: Xm                   Sub-component: Style Guide           
+
+CDExc20058 Style Guide demands things which are doc`ed only as Xm feature
+
+Component: Xm                   Sub-component: User`s Guide          
+
+CDExc22633 mtf usersGuide uses rowsep inproperly causing weird online presentatio
+
+Component: Xm                   Sub-component: Widget Writer`s Guide 
+
+CDExc23063 add XmeXpm* reference pages to Widget Writers Guid
+CDExc23634 no description of XmeGetIconControlInfo() function in do
+CDExc23784 XmeGetDefaultPixel should be documented as implemente
+
+Component: Xm                   Sub-component: XmSpinBox             
+
+CDExc09231 description of `value` field in XmSpinBoxCallbackStruct incomplet
+
+Component: Xm                   Sub-component: other                 
+
+CDExc20056 handling of XmStringTable needs documentation in various widget
+CDExc20126 need how QATS works documen
+CDExc20128 QATS docs refer to qauser environmen
+CDExc20131 QATS needs to be more specific about environmen
+
+Component: other                Sub-component: Build issues          
+
+CDExc23762 X11R6 version needs to be referred to in Release Note
+CDExc23763 install notes vs. release note
+
+Component: other                Sub-component: Programmer`s Guide    
+
+CDExc23373 all pixmap documentation should reference new icon searchin
+
+Component: other                Sub-component: Programmer`s Reference
+
+CDExc23370 VirtualBindings searched for in incorrect plac
+
+Component: other                Sub-component: Release Notes         
+
+CDExc24007 Release notes for Motif need to be updated to reflect changes from bugfix
+
+Component: other                Sub-component: User`s Guide          
+
+CDExc07293 User`s Guide section on Notebook should say more about tabs and binding
+
+Component: other                Sub-component: other                 
+
+CDExc02555 The documentation tree could be shipped compressed
+CDExc23764 release notes formatting proble
+
+------- Open defects in project motif-test      -------
+
+
+Component: MT                   Sub-component:                       
+
+CDExc21653 XmMT has some obsolete source
+CDExc23036 DtMrm threadsafe test left lock asserted in cst9 IBM testin
+CDExc23537 Bus error when run tests/Mrm/FetchSV on su
+
+Component: MVTS,other           Sub-component: Automation            
+
+CDExc05709 A font list and an XmString are created in VTS and QATS that may not be ne
+
+Component: MWM                  Sub-component: MWM client-command int
+
+CDExc07139 mwm/PICCI test does not display the submenu entries one two three pretty c
+
+Component: MWM                  Sub-component: MWM programmatic inter
+
+CDExc04383 On Panel4, Icon is suposed to be located at 20,20. It is located at 10,5 a
+CDExc07817 Extra message being printed from PIProto test
+CDExc07992 Screen changing to blac
+CDExc07993 run_PINames script not working on OSF
+CDExc08641 mwm/PI/PICCI test does not behave correctly
+CDExc08889 PICCI not compiling clean on Alph
+
+Component: MWM                  Sub-component: MWM user interface    
+
+CDExc07829 Instructions for MwmUI5 need to be made clearer in Panel1
+CDExc07957 Form1 does raise above other windows with `Raise Within` option
+CDExc07995 MwmUI2 test problem
+CDExc09518 VMwmUI1 - Alt <arrow> does not work if icon has focus
+
+Component: MWM                  Sub-component: Shell                 
+
+CDExc08942 Problems with WMShellGeomM
+
+Component: UIL                  Sub-component: Mrm library           
+
+CDExc00741 When MrmOpenHierarchy fails, it should free all the memory used so far for
+CDExc04880 Get warnings when compiling tests in Mrm directory
+
+Component: UIL                  Sub-component: Translations and Virtu
+
+CDExc08874 run_all script in uil/Manual/dataStructs does not include the Translations
+CDExc08875 TranslationsUil and TranslationsXt should either be defuncted or add instr
+
+Component: UIL                  Sub-component: UIL                   
+
+CDExc05466 UIL XmNvalue for XmText does not handle newline in 16-bit string
+CDExc06947 ProcessCommandArgs in instances of displayUid.c need to be fixed
+CDExc07933 run_all in automated tests/uil directories
+CDExc08010 uil/dataStructs Identifier test failed
+CDExc08632 Problems with uil/Manual/validator tes
+CDExc08636 uil/Manual/callUil test doesn`t create a summary fil
+CDExc09001 .dat and .scr files doesn`t match for uil/widgets/scrollLis
+CDExc09006 Conflicting instructions in scrollLis2.ui
+CDExc09374 README file in tests/uil is obsolete
+CDExc09584 Update validator.uil and possibly other tests to reflect keysym doc change
+CDExc09590 Some errors not issued anymore by the UIL compile
+CDExc23503 Problem with AUTOVPATH in tests/uil/ResInd/RUN.custo
+
+Component: Xm                   Sub-component:                       
+
+CDExc16920 env.sh -c produces an erro
+CDExc17273 Assertions 6, 7, and 11 fail in XmFSB testcase
+
+Component: Xm                   Sub-component: Automation            
+
+CDExc09425 SCRWARNING on Continue command
+CDExc09554 Using LocatePointerXYAbs command in .scr files can make the test device-de
+
+Component: Xm                   Sub-component: Clipboard             
+
+CDExc02868 inefficiency in cutpaste testin
+CDExc02869 bad cutpaste test
+CDExc07738 CutPaste tests directory needs to be updated/improve
+CDExc08008 Cutpaste needs clean up
+
+Component: Xm                   Sub-component: Color                 
+
+CDExc08149 ColorObj needs more 2.0 update
+
+Component: Xm                   Sub-component: Drag and Drop         
+
+CDExc05793 import targets set for Drop Site seems to effect the exportTargets in Scal
+CDExc07625 auto scrolling doesn`t wor
+CDExc07942 DNDProt1 and DNDDrop1 initialize Animation Style differently when Receiver
+CDExc08046 TextField highlight problem in D&D testin
+CDExc08520 Instructions for DNDProt1 need to relfect changes in DNDDrop1 tes
+CDExc08873 Performance DND test does not run on H
+CDExc20086 some stray visual highlights in drag/drop action
+
+Component: Xm                   Sub-component: Geometry Management Me
+
+CDExc04918 cascade buttons first appear truncated when run in automation.  Works okay
+
+Component: Xm                   Sub-component: Geometry Management Po
+
+CDExc09157 realize check in manager:SetValue
+
+Component: Xm                   Sub-component: I18N misc             
+
+CDExc08327 Test using RIGHT_TO_LEFT layout direction should be consistent in the way 
+CDExc08349 Need to test -xnlLanguag
+
+Component: Xm                   Sub-component: Memory issues         
+
+CDExc05149 Remember to free strings created by XmStringCreate, etc
+CDExc05331 Conversion.c in ./tests/lib/Common leake memory
+CDExc05597 _XmStringCharsetCreate leaks memory according to Purify
+
+Component: Xm                   Sub-component: Menu button interactio
+
+CDExc07602 Bad assumptions made in tes
+
+Component: Xm                   Sub-component: Menu event handling   
+
+CDExc04705 test expects whichButton == 2 but never sets it u
+CDExc09577 Test should check the widget before posting the popu
+
+Component: Xm                   Sub-component: Menu layout           
+
+CDExc06133 OptionMenu5 instructions need to be change
+CDExc06935 Segv in RCMenu.c found in OptionMenu
+CDExc08079 PopupMenu7 test needs to be revisite
+CDExc08106 PopupMenu4 and PopupMenu6 scripts are not doing anything usefu
+CDExc09046 MenuBar collapses if its size is more than the size of the scree
+CDExc09625 PMenuBar1 test not working on Su
+CDExc19636 Toolkit/Menus/Menu1 test pulldown1 widget incorrect valu
+
+Component: Xm                   Sub-component: Performance           
+
+CDExc07812 README file in Performance needs to be update
+CDExc07813 tests are missing from Performance/Post/run_al
+CDExc07815 Scrollbars not displayed in postSW
+CDExc07816 Warnings when periodic coming u
+CDExc07821 Performance/DND test core dum
+CDExc09032 lapsed time to scroll is always  0.000000 se
+CDExc09034 Problems with README file in Performance/DN
+CDExc09037 Problems with Performance/Periodi
+CDExc09056 Performance/Post test should support -s and -z option
+CDExc09627 Problem with Performance/Notebook/PNotebook1 tes
+
+Component: Xm                   Sub-component: Protocols             
+
+CDExc04812 XmAddProtocolCallbacks needs more overhead to work that it should
+CDExc23872 Protocol test has intermittent XErro
+
+Component: Xm                   Sub-component: Resolution Independenc
+
+CDExc09464 Y coordinate of parent bulletin board has changed from 2.0S3
+CDExc23947 RIPanedWin{3,M1} golden .prt files in 98x102 directory need updat
+
+Component: Xm                   Sub-component: Resource Converters   
+
+CDExc03126 Conversion of thousandths inches to hundredths points fails be cause of in
+
+Component: Xm                   Sub-component: Right-to-Left layout  
+
+CDExc08231 Menus - layout direction tests need to be reviewed
+CDExc08658 DrawArea2 is not a useful test to be run with RtoL layout directio
+
+Component: Xm                   Sub-component: Shell                 
+
+CDExc08948 XtGetValues in VendorShell doesn`t work for XmNmwmMenu
+CDExc09545 tests/Toolkit/Shells/Visual prints addresses of Visual variables
+CDExc09600 A new SCRWARNING in Shell/Protocol test
+
+Component: Xm                   Sub-component: TearOff Menus         
+
+CDExc08027 SharedTearM1 test does not compile cleanly on OSF/1
+CDExc23867 OptionMenu1 needs to have golden data updat
+
+Component: Xm                   Sub-component: Traits API            
+
+CDExc08694 Compilation warnings in Toolkit/Extensibilit
+CDExc08715 Border color for ButtonGadge
+CDExc09047 Traits1 test needs some rewor
+CDExc09612 Problems with Traits1 tes
+
+Component: Xm                   Sub-component: Traits Other          
+
+CDExc08707 Press/Click in Toolkit/Extensibilit
+
+Component: Xm                   Sub-component: Traversal/Navigation  
+
+CDExc08863 XmNlosingFocusCallback is called twice for XmText when keyboard focus is f
+
+Component: Xm                   Sub-component: Uniform Transfer Model
+
+CDExc09555 Using XmClipboardInquirePending in the Cutpaste1 test
+
+Component: Xm                   Sub-component: VendorShell           
+
+CDExc05059 Functionality of Shell Modality is not tested in the Test Suite- vts, qats
+CDExc08476 Instruction Panel needs to be updated to reflect what the right behavior i
+
+Component: Xm                   Sub-component: XmArrowButton         
+
+CDExc07506 ArrowBtn3 tests fai
+
+Component: Xm                   Sub-component: XmBulletinBoard       
+
+CDExc07241 BulletinBoard flashes a large size during creatio
+
+Component: Xm                   Sub-component: XmComboBox            
+
+CDExc06380 ComboBox1 doesn`t strip argv[0
+CDExc06503 ComboBox3.dat file never use
+CDExc08589 ComboBox1d test needs to be revisite
+
+Component: Xm                   Sub-component: XmCommand             
+
+CDExc19728 Text reversed in Command1 widge
+
+Component: Xm                   Sub-component: XmContainer           
+
+CDExc05642 Change test to reflect new translation for ContainerExtendSelect, which wa
+CDExc23509 Missing golden data for Container test
+
+Component: Xm                   Sub-component: XmDialogShell         
+
+CDExc05906 DiaShellM1 - pushbutton missing from test
+
+Component: Xm                   Sub-component: XmDrawnButton         
+
+CDExc03615 W/ very large shadows and button sized too small for pixmap, random bits o
+
+Component: Xm                   Sub-component: XmFileSelectionBox    
+
+CDExc08531 Due to new 2.0 behavior tests need to be modifie
+CDExc08831 Test needs to be revisite
+
+Component: Xm                   Sub-component: XmForm                
+
+CDExc04783 Form1.c should allow you to reset the border_width, x and y of form childr
+CDExc04859 Dialog description inadequate or possibly a bug. Other children are invisi
+CDExc04861 Unmanaging children of Form followed by a SetValues and remanaging results
+CDExc04865 Test output does not match dialog description. GetValues output for width 
+CDExc05172 lib/Xm fails Form8 test
+CDExc06623 Geometry of the Form widget children is all goofed up
+CDExc06962 ./tests/uil/widgets/scrollLis2 comes up mimimum siz
+CDExc07023 Form17 test should be rewritte
+CDExc07150 Form17.scr is trying to access pushbuttons which are not visable
+CDExc08508 Form1 has some problem with its control panel
+CDExc09500 Form21 crashes when run automate
+
+Component: Xm                   Sub-component: XmList                
+
+CDExc02416 Need test of retrieving XmNitems and using value
+CDExc08986 Problems with ScrollList3a instruction panel
+CDExc19625 Selected_ListSVSW widget displays "dumped" list entrie
+CDExc19626 "Broken-dash" highlight missing from List1 widge
+
+Component: Xm                   Sub-component: XmManager             
+
+CDExc08653 Visual1 is not ready to be run automate
+CDExc08929 RowCol[12] tests should be moved from Menus to Manager
+CDExc08931 RowCol2 fails in Menus
+CDExc09549 Problems with Manager/Visual1 test
+
+Component: Xm                   Sub-component: XmMessageBox templates
+
+CDExc05905 MessageBM1 does not reflect the same contents that the instruction box ref
+CDExc19629 WorkingDialog widget highlight incorrec
+
+Component: Xm                   Sub-component: XmNotebook            
+
+CDExc07328 Notebook seems to have a problem interacing with other widgets in an appli
+CDExc08225 Initial geometry of Notebook when top levelshell is realized early is wron
+CDExc08506 Visual1 XmNotebook usag
+CDExc08850 Notebook1 -u 5 should set both major tabs to 30x30 in order for it to wor
+CDExc09050 Performance/Notebook tests dying on alphas
+CDExc09054 Performance/Notebook doesn`t run automate
+CDExc09614 Notebook3d Panel 8 wron
+
+Component: Xm                   Sub-component: XmPanedWindow/Sash    
+
+CDExc06960 PanelWin12 shows visual difference
+CDExc19635 Toolkit/PanedWin/PanedWin14 test does not move slideba
+
+Component: Xm                   Sub-component: XmPrimitive           
+
+CDExc08825 Motif binary compatibility mechanism has fatal bug in XmResolve[All]PartOf
+
+Component: Xm                   Sub-component: XmPushButton          
+
+CDExc06311 Button tests should excercize SetValues while in visible menu
+CDExc08936 Problem with ToggleM1
+CDExc09716 The push buton widget is created with 0 height in PushBGadM1 test
+
+Component: Xm                   Sub-component: XmPushButtonGadget    
+
+CDExc08934 Bad geometry for PushButton in PushBGadM
+
+Component: Xm                   Sub-component: XmRenderTable/XmFontLi
+
+CDExc08367 Need testcase for XmNfontList and XmNrenderTable in new widgets
+
+Component: Xm                   Sub-component: XmRowColumn WorkArea|R
+
+CDExc08770 RowCol3* tests are not read
+CDExc09565 In RowCol2 test the widget is too tall
+
+Component: Xm                   Sub-component: XmSelectionBox        
+
+CDExc08533 Test need to be updated to be in a window that can be iconifie
+CDExc08834 Test callback wrong - changing width is not workin
+
+Component: Xm                   Sub-component: XmSpinBox             
+
+CDExc23559 XmSpinBox1 test flawe
+
+Component: Xm                   Sub-component: XmString              
+
+CDExc07606 Memory leaks of rendition
+CDExc07873 Wrong size mentioned in StringDraw test
+CDExc07882 Misleading geometry in StringDisp
+CDExc08443 Update StringWidth test for changed in XmStringDirectionCreate
+CDExc08618 font warning in StringDisp tes
+CDExc08638 Need XmString tests that use unoptimized segments
+CDExc09419 StringToCT tests fail
+CDExc20075 StringDisp test fails because of XmeStringIsValid problem
+CDExc23501 Missing golden data for tests/XmString/StringRen
+
+Component: Xm                   Sub-component: XmText                
+
+CDExc05463 Text test, Text2 - Instruction Panel #
+CDExc06607 CSText, Text and TextField tests need to check callbacks for Xm[CS,Text,Te
+CDExc07020 Text is leaking memor
+CDExc08698 cut-primary and copy-primary tests should move pointer away from insertion
+CDExc08842 Ctrl Shift KSelect shouldn`t be tested
+CDExc08968 Problems with TextPerf test
+CDExc09514 Add a testcase for XmSELECT_OUT_LINE for XmText and XmCSText
+CDExc09596 ScrollText1a - Instructions should change for description of vertical scro
+CDExc20514 Text errors in QATS text widget
+
+Component: Xm                   Sub-component: XmToggleButton        
+
+CDExc07025 Panel 2 doesn`t agree with test when ru
+
+Component: Xm                   Sub-component: Xme Gadget/Geometry/Xm
+
+CDExc24139 Impossible to validate border_width test for gadget in XmeConfigureObjec
+
+Component: Xm                   Sub-component: Xme General API       
+
+CDExc08898 Warnings in Extensibility tests on alpha
+
+Component: Xm                   Sub-component: Xme Transfer API      
+
+CDExc08711 In XmeTransfer test window overlaps the control pane
+CDExc08714 Problems with XmeTransfer tes
+
+Component: Xm                   Sub-component: Xme Visuals/ImageCache
+
+CDExc08712 XmeGetDefaultPixel test fails
+
+Component: Xm                   Sub-component: Xme XmString/RenderTab
+
+CDExc08710 XmeString: incorrect XmString component encountere
+
+Component: Xm                   Sub-component: other                 
+
+CDExc20069 the test suite is close to useless due to size, errors, and a terrible U
+CDExc20080 tests/Performance/DND has lex.c depending on y.tab.h which doesn`t yet exi
+CDExc20081 tests/performance/SpinBox warnin
+CDExc20084 Toolkit/Extensibility/XmeTargets behaves contrary to descriptio
+CDExc20091 XmeTargets test fail
+CDExc20092 highlight misdrawn when under unmanaged widge
+CDExc20093 highlight misdrawn, claims tes
+CDExc20094 DNDScale1 test claims CR 4846 is still ope
+CDExc20096 apparently timing-dependent, XmeQueryGeo test fail
+CDExc20097 KHelp on menu item unposts the menu; test claims otherwis
+CDExc20099 modality-of-shells test fail
+CDExc20100 modality focus wrong, test show
+CDExc20102 ColorM1 test naive about contents of rgb.tx
+CDExc20103 test ColorM1 exits on reasonable operation to select colo
+CDExc20105 duplicate symbol pop
+CDExc20106 CommonTest code munges app class so ./binary doesn`t work when XFILESEARCH
+CDExc20107 automated tests need ability to display instructions on alternate displa
+CDExc20108 automated-test recorded pixmap images incomplete and display-specific; dis
+CDExc20119 big big long list of problems with QATS in Motif 2.
+CDExc20120 QATS need to run without initialDelay and repeatDelay possibl
+CDExc20122 QATS automated tests fail in CompareVisual when XGetImage called for off-s
+CDExc20123 QATS automated tests would be less unuseful if shipped with tools to show 
+CDExc20124 QATS docs lie about portability of visual image
+CDExc20125 QATS color-mucking algorithm can result in white-on-whit
+CDExc20129 QATS automated tests call GenerateDiff, not part of Xm releas
+CDExc20130 QATS docs, sources show 2.0.0 recordings not mad
+CDExc20132 QATS automated SpinBox/SpinBox5 spin
+CDExc20134 TextScroll.scr missing from tests/Performance/Tex
+CDExc20136 tests/Performance/SpinBox performance values not usefu
+CDExc20142 QATS results can`t be trusted: record and immediate playback fail
+CDExc23216 Form6 inconsistent instruction
+CDExc23218 Performance/Container/PerfCntnr.defaults uses application names, shouldno
+CDExc23219 use of Wait command in automated QATS scripts fail
+CDExc23220 QATS CompareVisual calls can snap wrong are
+CDExc23221 QATS motifbind needs to bind osfDeselectAl
+CDExc23222 PopupMenu7 doesnot work as advertise
+CDExc23223 typo in test instructions PanedWin
+CDExc23224 QATS occasionally assumes Shift-Esc == Es
+CDExc23226 tests/uil/scaleVert wrong instruction
+CDExc23227 QATS methodology suffers from floating-point round-of
+CDExc23228 timing problems with automated tests and mw
+CDExc23297 MessageDiaM1 app-modal dialogs not workin
+CDExc23298 PanedWin12 does random labels, does not match golden dat
+CDExc23299 QATS assumes Shift-arrow key is same as arrow ke
+CDExc23307 QATS depends on having /usr/include/X11/bitmaps installe
+CDExc23308 RUN in QATS has flaw when run sol
+CDExc23309 Ctrl-KSelect does deselect primar
+CDExc23310 QATS tests which create GCs do not specify color
+CDExc23321 missing callback in Dt Widget tes
+CDExc23324 script to run tests inadequat
+
+Component: other                Sub-component: Automation            
+
+CDExc04832 Automated mwm does not handle certain menu item
+CDExc04963 filenames longer than 14 character
+CDExc05056 Default ClickMB does not work
+CDExc05078 General cleanup of code
+CDExc05079 Performance improvment
+CDExc05080 Enhance suport for template dialo
+CDExc05081 Visual comparison of cursor
+CDExc05082 Add Automation support for new widget
+CDExc05083 Enhancement to visual debugging tool
+CDExc05085 Support for Xt creation routines in Automatio
+CDExc05086 Better visual comparison of Pixmap resources in Automatio
+CDExc05089 Investigate adding I18N testing to Automatio
+CDExc05092 Add a Motif front end for Automatio
+CDExc05094 Keybord support for WindowManager commands in Automatio
+CDExc05095 Enhance WindowItemCheck in Automatio
+CDExc05096 Add support for testing RootMenu in Automatio
+CDExc05097 Add IconBox testing to Automatio
+CDExc05098 Add support for unpostBehavior resource in Automatio
+CDExc05229 DragSliderValue command fail sometimes
+CDExc05524 Document or increase the limit on the number of instructions allowed for a
+CDExc05538 Add ability for QATS to run through tests backwards and possibly fast forw
+CDExc05605 QATS can`t link with any tests that use lex or yacc due to name space conf
+CDExc05732 QATS should not use deprecated Xm functions from 1.
+CDExc06064 pixmap comparison : many visual diffs when comparing pixmaps in OptionMenu
+CDExc06068 BBoard5a_2 and BBoard5a_3 only display 3 arrow buttons when run automated.
+CDExc06077 QATS should optionally dump screen images if a visual diff is foun
+CDExc06078 QATS should not be so dependent on the qauser environmen
+CDExc06090 Automation seeing diffs that don`t exist
+CDExc06099 Provide a mechanism so that adding new widgets to QATS is eas
+CDExc06101 QATS should print panel numbers to the .prt file
+CDExc06107 QATS visual/size diffs windows should indicate widget name
+CDExc06124 When a test is run automated, it sometimes doesnt do a printf
+CDExc06137 Added option to step through the script and display the line being ru
+CDExc06158 Make automation know about window decorations
+CDExc06181 Resource manager in Automation does not recognize Shell
+CDExc06186 Automation should be able to understand a widget hierarch
+CDExc06300 Automation needs to know about Separator Gadget children of Scal
+CDExc06496 regression should have timeouts for when a test hang
+CDExc06510 Notebook1* regression tests faile
+CDExc06516 DragXYRelative Any X Y gives differences in the .prt.err fil
+CDExc06554 Automation should not Manage widget
+CDExc06746 Would be nice to have a count argument added to the ClickKey <Modifier> <K
+CDExc06860 LocatePointer Scrollbar RDownOrRightSliderArea not giving same locatio
+CDExc06927 Automation sometimes doesn`t do printf`s during recordin
+CDExc07083 Menus are not unposted with KCancel in MenuGad
+CDExc07090 Kup not scrolling properly in Menu
+CDExc07138 Black background drawn behind message symbol of information dialogs
+CDExc07147 K<letter> has no effect in Automatio
+CDExc07267 Menus are not unposted after a click on a menu ite
+CDExc07326 Automation seeing lines in ScrollWindow which aren`t ther
+CDExc07461 GetSubObjcts.c needs to be re-designed
+CDExc07514 Could use command to clear text from Text, TextField and CSText widgets
+CDExc07517 Cannot place cursor after last character in Text widgets when character nu
+CDExc07529 Start interactive mode at any point in the scrip
+CDExc07532 Memory leak encountered in mvsExtractString-  -
+CDExc07553 Add option to view playback image without overlapping diffs
+CDExc07622 Memory leaks in mvsExtractStrin
+CDExc07646 events/actions: Visual difference in highlight of pushbutton7
+CDExc07669 ComboBox list is not remaining poped up on MB1 when automated
+CDExc07683 Automation does not perform keys actions when a widget is not traversabl
+CDExc07750 other - test CompareStorePixmap command
+CDExc07758 Automation uses bizarre macro for key handlin
+CDExc07769 events/actions: some menu tests do not post before a CompareVisual is made
+CDExc07838 Automation events bugs : Navigation14b shows spurious visual diffs seeming
+CDExc07857 events/actions - Navigation13 has 1 too many callback printfs on Sun and A
+CDExc07858 events/actions - Navigation9a, Navigation9b, Navigation9c are generating m
+CDExc07867 events/actions - KSelect and <Shift> KSelect not working in automation
+CDExc07886 events/actions : KMenuBar not working in automatio
+CDExc07900 pixmap comparison: Automation shows visual diff when color in recording is
+CDExc07909 events/actions: KCancel not workong in ScrollText3
+CDExc07920 events/actions Menu1 has only the right behavior on Alph
+CDExc07921 events/actions, keyboard binding wrong on DrawArea2 on H
+CDExc07928 event/actions, slider is not being set to correct DragSlider valu
+CDExc07938 Floating point diffs causing visual diffs in slider positio
+CDExc07953 pixmap comparison, handle X Errors more graciousl
+CDExc08025 Interoperability in Automatio
+CDExc08047 events/actions - KEndLine is not working on alpha display in automation
+CDExc08057 auto warnings - Can not access previously hidden itmes in CombBox lis
+CDExc08166 auto warnings: InputString cannot handle `-` character
+CDExc08167 events/actions:  In automation - cannot just press/release modifier keys w
+CDExc08174 events/actions: Container3a not behaving the same way when run automate
+CDExc08205 pixmap comparison - fails for selected IG and on top shado
+CDExc08300 Performance monitor only seems to measure the time for one button click ev
+CDExc08306 2 Exit in the .prt fil
+CDExc08326 QATS should get rid of getopt for parsing a command lin
+CDExc08360 Memory leak in GetSubObjct.c, XmStringComponents not get freed
+CDExc08409 -help option for tests and RUN script
+CDExc08441 CommonTestInit must save a copy of argc and argv before calling XtOpenDisp
+CDExc08512 Help button appears pressed when it should no
+CDExc08556 events/action - KPageDown and KPageUp not always taking effect in Automati
+CDExc08747 events/actions: Traversal highlight not following pointer in menus
+CDExc08861 events/actions: Highlighting of selected text occurs on the Release not on
+CDExc08967 pixmap comparison : Navigation6 gives visual errors which go away in inter
+CDExc08988 Menubar not resizing enough when added in a FileSelectionBox in the CDE en
+CDExc08989 Setting childPlacement to PLACE_TOP is not working in a FileSelectionBox r
+CDExc09141 Scrolling a text widget to the end and back to the beginning - does not re
+CDExc09159 WindowItemCheck command does not cause TRACE line to be printed ou
+CDExc09214 Wait command hangs when HP display is used
+CDExc09429 events/action Dragging slider to Min is not happening correctly in FileSel
+CDExc09453 Automation freeing pixel too many time
+CDExc09478 other - getting toolkit warnings only when test is run automated
+CDExc09504 events/actions : KDeselectAll deletes selected tex
+CDExc09507 Cannot record RowCol1 tes
+CDExc09558 Automated mwm returns wrong contents of transient windo
+CDExc09560 Automation problems on OSF/1 running PopupMenu2a test
+CDExc09641 memory leaks in automated mw
+CDExc09669 auto warnings: LocatePointer scrollbar gives sometimes warnings when in CD
+CDExc19643 Toolkit/List/List2 golden data incorrec
+CDExc19689 Missing golden data in Motif QAT
+CDExc21674 Autoraise of Instruction Panel window spits out errors in the test outpu
+CDExc22481 QATS automation problems on Novel
+CDExc24031 OptionMenu5 needs golden data re-recorde
+CDExc24034 ToggleBtn2 golden data needs re-recordin
+CDExc24039 MessageBox1 golden .prt needs to be re-recorde
+CDExc24053 Notebook5 needs golden data re-recorded
+CDExc24056 Navigation9b golden data needs to be re-recorde
+
+Component: other                Sub-component: Build issues          
+
+CDExc02425 Tests get warnings when compiled with prototypes on. Need to setup #ifdef 
+CDExc07784 Have Makefiles built for Automation, build all three targest at onc
+CDExc08144 README in ./tests/lib/geometry is empt
+CDExc09143 make RUN doesn`t create RUN script running without AUTOMATION
+CDExc09405 tests/Toolkit/Constraint needs to be defuncte
+
+Component: other                Sub-component: Drag and Drop         
+
+CDExc06812 Instruction Panel 11 in DNDProt1 inconsistent with result
+CDExc06833 missing .dat file for DNDtestGad1.
+CDExc06893 Changes to menus do not take effect unless you select option from `Apply C
+CDExc06895 DNDDrop3 test has no instruction panel - have no idea what to test
+CDExc06910 Some Drag and Drop tests should specify that you need a multi-line text wi
+CDExc07125 syntax error in Performance/DN
+CDExc08031 README in tests/Performance/DN
+
+Component: other                Sub-component: MWM programmatic inter
+
+CDExc07371 PICCI test instructions need some minor fixes
+CDExc07403 Windows in PINames test have incorrect window decorations
+
+Component: other                Sub-component: MWM user interface    
+
+CDExc07383 Icon for TestWindow2 is not displayed according to instructions
+
+Component: other                Sub-component: Memory issues         
+
+CDExc05329 GetValuesHook in ResInd.c leaks memory
+CDExc05330 Automation code leaks memory when string returned by mvsExtractString is n
+CDExc05602 DrawArea1 test leaks memory. XmStrings created but not freed
+CDExc05604 test Form1 leaks memory when creating XmStrings which do not get freed
+CDExc07543 Small memory leak in AutoParser.
+
+Component: other                Sub-component: OS dependencies       
+
+CDExc07627 test scripts assume shell is /bin/s
+
+Component: other                Sub-component: Performance           
+
+CDExc07350 Performance/Post/postSW1 displays its scroll bars incorrectl
+CDExc07353 Pressing the `Not Traversable` button of Traversal1 causes SIGBU
+
+Component: other                Sub-component: Shared library        
+
+CDExc08177 Problems with libVisual in shared builds on Sun
+
+Component: other                Sub-component: TearOff Menus         
+
+CDExc07364 tests/Toolkit/Manual/SharedTearM1 instruction panel needs clarification
+
+Component: other                Sub-component: Traits API            
+
+CDExc08650 Toolkit/Extensibility does not have a RUN.custom
+
+Component: other                Sub-component: Traversal/Navigation  
+
+CDExc07181 test issues with Performance/Traversa
+
+Component: other                Sub-component: UIL                   
+
+CDExc04910 callUIl tests are not correc
+
+Component: other                Sub-component: XmBulletinBoard       
+
+CDExc07230 BBoardM1 test prints out values for width, height, x, y and border width -
+
+Component: other                Sub-component: XmContainer           
+
+CDExc08978 Need to review terminology to make sure our tests and docs are all in sync
+
+Component: other                Sub-component: XmForm                
+
+CDExc03525 Reseting Form attachments to add new widgets in the Form works improperly 
+
+Component: other                Sub-component: XmManager             
+
+CDExc06882 When font is changed for test, font of instruction panel changes as well
+
+Component: other                Sub-component: XmMenuShell           
+
+CDExc05390 PopupMenu1 test is broke
+
+Component: other                Sub-component: XmMessageBox templates
+
+CDExc08828 QATS test case and dialog are inconsisten
+
+Component: other                Sub-component: XmNotebook            
+
+CDExc07151 Notebook performance test with XmScrolledText shows output warning
+
+Component: other                Sub-component: XmPanedWindow/Sash    
+
+CDExc07268 Instructions panels says there are two pushbuttons in client window when t
+
+Component: other                Sub-component: XmScrolledWindow      
+
+CDExc02776 Clarify instructions
+CDExc04882 the test ScrollWindow2 expects 10 and a half widgets in the first pane and
+CDExc04883 ScrollWin3 test expects the focus to go one way and yet the focus doesn`
+CDExc04885 scrollwin3 test has vauge wording
+
+Component: other                Sub-component: XmText                
+
+CDExc06085 No end statment at end of test TextField
+CDExc06648 [CS]Text tests do not test whether the [CS]Text API still works then the [
+
+Component: other                Sub-component: XmTrackingLocate/Event
+
+CDExc06054 TrackingLocM2 error - KHelp unposts cascade menu
+
+Component: other                Sub-component: Xme Transfer API      
+
+CDExc08729 XmeTargets - data gets transferred when the test says it shouldn`t
+
+Component: other                Sub-component: other                 
+
+CDExc01424 Complete XmString test suite
+CDExc01426 Write testsuite for Resolution Independence code
+CDExc01429 Add a test- s - for XMGetVisualPixmap
+CDExc01814 Add labels that describe the tab group status of each group
+CDExc02140 Add doc, resize command with small visItem counts, settable resizePolicy a
+CDExc02674 Add a test for multiClick behavior & callback for arrow btns and arrow but
+CDExc02912 Resource conversion tests need to be updated to test all of the allowable 
+CDExc03100 In some envron with two workstations, when mwm restarts it wil l read a .m
+CDExc03112 Test states that sashes should be movable; however they do not move.  Bear
+CDExc03254 tests/Toolkit/Menus tests don`t test shared pulldown menu
+CDExc03352 Button Window state tests in tests/mwm/PI/PIIconSt.c fail dues  to race 
+CDExc03982 CommonTestInit- int argc, char **argv - should be CommonTestInit - int *ar
+CDExc04165 In `REGRESSION` mode, support writing out all relevant test data when user
+CDExc04254 Add a test which creates pulldown menus that have no traversable items - I
+CDExc04318 Need a new test for setting defaultFontList at create time. List2 uses XtS
+CDExc04323 Panel 6: error dialog pops up twice first time. Probably test bug in last_
+CDExc04641 PIColormap doesn`t run on a Static GrayScale display; gives an immediate B
+CDExc04642 bad assumptions in tests/mwm/PI/PIHint
+CDExc05444 Panel 5 in Menu1 gives wrong behavio
+CDExc05855 .dat files in Notebook have ODE headers in Instruction Panel
+CDExc05856 Tab creates funny characters in scrolled list for Notebook test
+CDExc05992 Test is broke
+CDExc06127 No instructions for Manual/DiaShellM
+CDExc06581 Test gives an SCRWARNING after exi
+CDExc06582 Multiple warnings and errors in Text tes
+CDExc06770 Adding Xme function testing coverag
+CDExc06916 Sometimes not all .prt.err files are generate
+CDExc07017 README in Performace needs to be update
+CDExc07021 Performance/TextData2 is not clear as to what it`s testin
+CDExc07022 Performance/MotifData may not be ginving accurate result
+CDExc07099 In Baseline2, after first change in alignment resources, next changes do n
+CDExc07176 Size difference on Panel5 of PanedWin10 after resizing buttons
+CDExc07239 Instruction panel problem
+CDExc07252 Overlapping window causing false diffs in Baseline
+CDExc07253 TRACE diffs caused by using DragXYRelative An
+CDExc07276 uil validator expected error erro
+CDExc07756 mvsExtractString is using bad value
+CDExc07884 GenerateDiff should be smarter about stripping out RCS header
+CDExc08026 run_dir can not find nawk on the Alph
+CDExc08359 CommonGetFontList results aren`t free
+CDExc08429 UserData should be freed only if not NUL
+CDExc08479 Toolkit/manual/SharedTearM1a test in panel 20 through 24 ctrl g behaves co
+CDExc08488 SharedTearM1b test has wrong instructions in some panels
+CDExc08500 Files in Form need to be defuncte
+CDExc08505 -u option seems to confuse code that measures startup tim
+CDExc08568 HP sandboxes build the automation libraries with shared objects directly o
+CDExc08655 run_PINames does not wor
+CDExc08663 Running a manual test onto another display causes messages to be printed o
+CDExc08785 Performance/Post/postText test should be looked at, it does not behave cor
+CDExc08853 SpinBox3a test says that there willbe a seperator between the two children
+CDExc08865 UTMTransfer test has an option menu for secondary, and clipboard and prima
+CDExc08882 PNotebook1 gives error - manually - Pause information exhauste
+CDExc09053 Compiler warnings for Performance/Startup/edito
+CDExc09399 Frame width different between 1.2.4 and 2.0 causing visual diffs in some t
+CDExc09481 Bogus XtGetValues practice
+CDExc09677 Shells/Visual gives warnings when run on HP scree
+CDExc09735 Resize cursor does not appear when moving cursor into horizontal resize ha
+CDExc19627 Incorrect/incomplete Alpha keyboard .xmodmap files for Motif QAT
+CDExc19628 Incorrect/incomplete HPUX keyboard .xmodmap fil
+CDExc20222 Motif QATS does not support new widget type
+CDExc20902 Mrm tests don`t test any of the MrmOpenHierarchyFrom* call
+CDExc23467 XmTextFindString not declared in header file Xm/Xm.
+CDExc23538 Toolkit/Container has Container[4-5][a-c].prt missin
+CDExc24036 ColorM1 fails on Sun due to location of rgb.tx
+CDExc24050 BBoardM1 gives inconsistent results due to a race conditio
+CDExc24052 Notebook1f fail
+CDExc24054 Notebook5 has possible memory corruptio
+CDExc24140 XmeDrawing1 test is incomplet

+ 318 - 0
cde/README-2.1.10

@@ -0,0 +1,318 @@
+
+**********************************************************************
+NOTE: CDE/MOTIF IS LICENSED SOFTWARE.  SOURCE AND OBJECT CODE IS NOT
+TO BE DISTRIBUTED TO THIRD PARTIES EXCEPT AS PROVIDED BY THE TERMS OF
+YOUR LICENSE AGREEMENT.  PASSIVE DISTRIBUTION TO UNIDENTIFIED PARTIES,
+SUCH AS MAKING FILES AVAILABLE FOR UNRESTRICTED ELECTRONIC FILE
+TRANSFER, IS STRICTLY PROHIBITED BY THE LICENSE.
+
+THESE RESTRICTIONS APPLY TO ANY PARTY TO WHOM THE SOFTWARE HAS BEEN
+DISTRIBUTED.
+**********************************************************************
+
+THE PURPOSE OF THIS RELEASE
+
+	This is the first maintenance release for CDE and Motif 2.1.
+	It was designed to resolve as many defects as possible from the
+	project's defect database, with a concentration for CDE on dtmail
+	problems.  This maintenance release resolves 523 problem reports 
+	against CDE and Motif 2.1.
+
+
+	The Open Group encourages the reporting of all bugs found in CDE
+	and Motif regardless of the platform or hardware configuration in 
+	which the bug is found.  However, The Open Group will commit to 
+	accept (and repair according to priority) only those bugs that can 
+	be replicated on the current reference configurations.  
+
+
+
+DOWNLOAD INSTRUCTIIONS
+
+	This section describes how to unload the release archives
+	available at this ftp site, including information about how much 
+	disk space is required.
+
+	The CDE/Motif 2.1.10 release is provided as compressed tar archives.  
+
+
+
+  	README-2.1.10         - this file
+
+  	cde.tar.Z             - a compressed tar file of the 
+			        CDE 2.1.10 source code
+
+  	cde-test.tar.Z        - a compressed tar file of the 
+			        CDE 2.1.10 tests
+
+  	cde-test-misc.tar.Z   - a compressed tar file of 
+			        test results for CDE/Motif 2.1.10
+
+  	motif.tar.Z           - a compressed tar file of the 
+			        MOTIF 2.1.10 source code
+
+  	motif-test-misc.tar.Z - a compressed tar file of 
+			        test results for Motif 2.1.10
+
+
+27 Mb   motif-test-misc
+
+	The CDE/Motif 2.1.10 release is in the form of a sparse tree; that 
+	is, it contains only files that have been modified in either CDE or 
+	Motif since the 2.1 release.  If you are a CDE licensee you will 
+	receive files for both CDE and Motif.  If you are a Motif-only 
+	licensee you will receive files just for Motif.
+
+	To download the archives from the ftp site you will need approximately
+	18.5 megabytes (for CDE licensees) or 9.3 megabytes (for Motif-only 
+	licensees) of disk space to hold just the compressed archives.  Once the 
+	archives have been downloaded they should be first uncompressed and then 
+	untarred (see instructions below).  The uncompressed archives require 
+	approximately 91 (CDE) or 37 (Motif-only) megabytes.  After untarring 
+	the archives, you will need an additional 96 (CDE) or 52 (Motif-only) 
+	megabytes of space to hold the unloaded directories.  Once the tar 
+	operation has completed you may wish to remove the tar archive files 
+	(*tar).
+
+
+	MOTIF-only	CDE/Motif
+	
+  	Mb       	Mb		Files				
+  	--       	--		-----			
+ 	(9.3       	18.5		compressed archives )
+	
+  	37       	91		archives after uncompress
+  	52       	96		untarred archives
+	
+  	89       	187		Total 
+	
+	 
+	After ftp-ing the files to your machine, you should first uncompress
+	the compressed (*.Z) files with the command:
+	
+    		uncompress <filename>.Z
+	
+	Once the tar archives have been uncompressed, you can untar each
+	with the command:
+	
+    		tar xvf <filename>.tar
+	
+	This command will preserve the .tar file while unloading its contents
+	into your current working directory.  If you wish to list a table of
+	contents of the tar file before actually unloading it you can do so
+	with the command:
+	
+    		tar tvf <filename>.tar
+	
+
+INSTALLING THIS RELEASE
+
+	This release is made up of a "sparse tree" of files that have changed
+	since release 2.1. The new versions of the files should replace the
+	corresponding CDE or Motif 2.1 versions of the files in your source 
+	tree. 
+
+
+	After the release is unloaded, you can use, for example, cp -R command
+	to copy the sources from the current directory into your source tree.
+	This release creates several new files.  If you are using a symbolic
+	link tree, you will need to create new links for them.
+
+	Please see the Release Notes from 2.1 for instructions on building
+	a full release tree.
+	
+
+IMPORTANT CHANGES IN THIS RELEASE
+
+
+	The majority of changes in this release are for general defect
+	repair in the code and tests.  Additionally, some focused work
+	was performed in the following areas described below: 
+
+		X11R6.4 and XtMalloc
+		Dtmail maintenance
+		Japanese Translations
+
+
+Defect Repair
+
+	This patch release resolves 523 problem reports against CDE and 
+	Motif 2.1.  Each of these defects were resolved in one of three
+	ways: fixed (problem was recreated and repaired), duplicate 
+	(problem was already reported and recorded in defect database), 
+	or cancelled (problem could not be recreated in current code
+	base).  The breakdown by component and resolution type is:
+
+	FIXED:  Total 326  
+
+		CDE Code: 160		Motif Code: 91
+		    Doc:    2		      Test: 18
+		    Test:  55		
+		-------------		--------------
+		Total:    217		Total:     109
+
+
+	DUPLICATE:  Total 51
+
+		CDE Code:  30		Motif Code: 10
+		    Doc:    4		      Test:  1
+		    Test:   6		
+		-------------		--------------
+		Total:     40		Total:      11
+
+	CANCEL:  Total 146
+
+		CDE Code:  45		Motif Code: 49
+		    Test:  36		      Test: 14
+		    			      Doc:   2
+		-------------		--------------
+		Total:     81		Total:      65
+
+	
+	For more information on the bugs resolved, see the file 
+	CLOSEDBUGS in this release.
+
+
+X11R6.4 and XtMalloc
+
+	The Open Group is comitted to a unified desktop technology
+	(X, Motif and CDE).  Therefore we built and tested CDE and
+	Motif 2.1.10 against a pre-release version of X11R6.4.  Once
+	the final release of X11R6.4 is ready we will build and test
+	with it.  We do not expect to find any problems running with
+	the production version but will provide any fixes if 
+	necessary.
+
+	One important change that went into the X11R6.4 release was 
+	to fix the behavior of XtMalloc.  The specification clearly 
+	state that XtMalloc should behave like the underlying malloc
+	when passed a size of 0 (zero).  The old XtMalloc would
+	allocate space, even if it was passed a size of 0.  In X11R6.4 
+	XtMalloc no longer has this behavior.  On some platforms this
+	can cause failures with faulty code that depends on that 
+	behavior.
+
+	We have found such calls in both the CDE and Motif code through 
+	our test cycle and by visual inspection and have repaired them
+	along the way.  There is the potential for additional problems
+	of this form - developers should be alert to this possibility.
+
+	If developers want the old behavior of XtMalloc then they should 
+	define both MALLOC_0_RETURNS_NULL and XTMALLOC_BC in their
+	site.def file.
+ 
+
+Dtmail maintenance
+
+	In addition to intensive efforts to fix outstanding defects
+	throughout CDE and Motif, we paid special attention to problems
+	in the CDE 2.1.10 Mailer.  These problems include the following:
+
+	- Support for X11R6 Session Management Protocol
+	- Unified mailbox menus
+	- Support for mail aliases
+	- Support for mail retrieval from standard mail servers
+
+
+   Support for X11R6 Session Management Protocol 
+
+	The CDE 2.1.10 Mailer now supports the basic elements of the 
+	X11R6 Session Management Protocol including responding to 
+	interactive and non-interactive SaveYourself requests as well 
+	as Die requests.  For non-interactive SaveYourself requests, 
+	the Mailer simply saves the size and location of all the 
+	mailbox and compose windows.  Deleted messages in mailboxes are 
+	retained.  For interactive SaveYourself requests, the Mailer may 
+	display dialogs asking the user to verify that deleted messages 
+	should be expunged or that the contents of compose windows
+	should be deleted.
+
+
+   Unified file selection menus
+
+	The CDE 2.1.10 Mailer now provides a consistent set of menus 
+	and file selection boxes for all operations involving mailboxes.  
+	These operations include Mailbox->Open, Message->CopyTo, and Move.  
+	Previously, each of these commands had its own file selection box.  
+	Changes made in one FSB were not reflected in any of the others.  
+	In addition, the Mailbox->Open command did not provide users with 
+	the menu of predefined mailboxes as in the Message->CopyTo, and 
+	Move commands.  In the CDE 2.1.10 Mailer the operation of all 
+	three commands has been made completely consistent from the user's
+	perspective.
+
+	Similar fixes were made for all operations involving files 
+	including Message->SaveAsText and Attachments->SaveAs.
+
+
+   Support for mail aliases
+
+	Popup menus containing the user's predefined aliases were added to 
+	the address fields (To:, Cc:, and Bcc:) in the message composer 
+	dialogs.  The user can now add an addressee to one of these fields 
+	simply by selecting from the menu of aliases.
+
+
+   Support for mail retrieval from standard mail servers
+
+	The CDE 2.1.10 Mailer has been fixed to support retrieving mail 
+	from standard mail servers.  Supported Mail Server protocols 
+	include POP2, POP3, APOP, and IMAP.  However, to date, only the 
+	POP3 has been well tested at The Open Group.
+
+
+Japanese Translations
+
+	Deliverables of the CDE 2.1 project included translations of
+	all documentation.  The Japanese translations were not received
+	in time for the 2.1 release but were delivered at the beginning
+	of this year.  They were made available electronically at that
+	time to licensees and have also been included in this 2.1.10 
+	release.  This includes Japanese manual pages and books.
+
+
+BUG LISTS
+
+	In the release archive there are two files, OPENBUGS and 
+	CLOSEDBUGS, which contain, respectively, the list of all bugs 
+	from any version of CDE or Motif not yet closed, and all bugs 
+	from CDE or Motif fixed in this patch release.
+
+
+BUILDING MOTIF FOR YOUR SYSTEM
+
+	This release requires no changes in the build process. Please
+	refer to the Release Notes for more information. 
+
+
+REFERENCE PLATFORMS
+
+	The Open Group has used a number of platforms during the
+	development of the 2.1.10 release.  However, the following
+	reference platforms are the only ones where the complete
+	test cycle was run.  Test results appear below.
+
+
+   CDE and Motif:
+	HP9000/7xx running HP-UX 10.20
+	Digital Alpha 3000 running Digital Unix 4.0
+
+   Motif-only:
+	Sun SPARCstation running Solaris 2.4
+		using the SC 4.0 C compiler and SC 4.1 C++ compilers
+
+
+TEST RESULTS SUMMARY
+
+	Since this is a general availability release, it has undergone 
+	the full quality assurance cycle at The Open Group.  The test
+	cycle includes running the following test suites:
+
+		MVS  - Motif Validation Suite
+		QATS - Motif Quality Assurance Test Suite
+		CDE Regression Tests
+		CDE Performance Tests
+		Memory Tests
+
+	The results of these test runs can be found in the release
+	archive under cde-test-misc/reports/cde2.1.10.

+ 282 - 0
cde/README-2.1.20

@@ -0,0 +1,282 @@
+
+**********************************************************************
+NOTE: CDE/MOTIF IS LICENSED SOFTWARE.  SOURCE AND OBJECT CODE IS NOT
+TO BE DISTRIBUTED TO THIRD PARTIES EXCEPT AS PROVIDED BY THE TERMS OF
+YOUR LICENSE AGREEMENT.  PASSIVE DISTRIBUTION TO UNIDENTIFIED PARTIES,
+SUCH AS MAKING FILES AVAILABLE FOR UNRESTRICTED ELECTRONIC FILE
+TRANSFER, IS STRICTLY PROHIBITED BY THE LICENSE.
+
+THESE RESTRICTIONS APPLY TO ANY PARTY TO WHOM THE SOFTWARE HAS BEEN
+DISTRIBUTED.
+**********************************************************************
+
+THE PURPOSE OF THIS RELEASE
+
+	This is the second maintenance release for CDE and Motif 2.1.
+	It was designed to resolve as many defects as possible from the
+	project's defect database.  This maintenance release resolves 423
+	problem reports against CDE and Motif 2.1.10.
+
+
+	The Open Group encourages the reporting of all bugs found in CDE
+	and Motif regardless of the platform or hardware configuration in 
+	which the bug is found.  However, The Open Group will commit to 
+	accept (and repair according to priority) only those bugs that can 
+	be replicated on the current reference configurations.  
+
+
+DOWNLOAD INSTRUCTIIONS
+
+	This section describes how to unload the release archives
+	available at this ftp site, including information about how much 
+	disk space is required.
+
+	The CDE/Motif 2.1.20 release is provided as compressed tar archives.  
+
+
+  	README-2.1.20         - this file
+
+  	cde.tar.Z             - a compressed tar file of the 
+			        CDE 2.1.20 source code
+
+  	cde-test.tar.Z        - a compressed tar file of the 
+			        CDE 2.1.20 tests
+
+  	cde-test-misc.tar.Z   - a compressed tar file of 
+			        test results for CDE/Motif 2.1.20
+
+  	motif.tar.Z           - a compressed tar file of the 
+			        MOTIF 2.1.20 source code
+
+  	motif-test-misc.tar.Z - a compressed tar file of 
+			        test results for Motif 2.1.20
+
+
+	The CDE/Motif 2.1.20 release is in the form of a sparse tree; that 
+	is, it contains only files that have been modified in either CDE or 
+	Motif since the 2.1.10 release.  If you are a CDE licensee you will 
+	receive files for both CDE and Motif.  If you are a Motif-only 
+	licensee you will receive files just for Motif.
+
+	After ftp-ing the files to your machine, you should first uncompress
+	the compressed (*.Z) files with the command:
+	
+    		uncompress <filename>.Z
+	
+	Once the tar archives have been uncompressed, you can untar each
+	with the command:
+	
+    		tar xvf <filename>.tar
+	
+	This command will preserve the .tar file while unloading its contents
+	into your current working directory.  If you wish to list a table of
+	contents of the tar file before actually unloading it you can do so
+	with the command:
+	
+    		tar tvf <filename>.tar
+	
+
+INSTALLING THIS RELEASE
+
+	This release is made up of a "sparse tree" of files that have changed
+	since release 2.1.10. The new versions of the files should replace the
+	corresponding CDE or Motif 2.1.10 versions of the files in your source 
+	tree. 
+
+
+	After the release is unloaded, you can use, for example, cp -R command
+	to copy the sources from the current directory into your source tree.
+	This release creates several new files.  If you are using a symbolic
+	link tree, you will need to create new links for them.
+
+	Please see the Release Notes from 2.1 for instructions on building
+	a full release tree.
+	
+
+IMPORTANT CHANGES IN THIS RELEASE
+
+Defect Repair
+
+	This patch release resolves 423 problem reports against CDE and 
+	Motif 2.1.10.  Each of these defects were resolved in one of three
+	ways: fixed (problem was recreated and repaired), duplicate 
+	(problem was already reported and recorded in defect database), 
+	or cancelled (problem could not be recreated in current code
+	base).  The breakdown by component and resolution type is:
+
+	FIXED:	Total  298 
+
+		CDE Code:  193 	 	Motif Code:  68
+		CDE Doc:     1 	 	Motif Doc:    0
+		CDE Test:   32 	 	Motif Test:   4
+		--------------		---------------
+		Total:     226 		Total:       72 
+
+	DUPLICATE:	Total  42 
+
+		CDE Code:  19 	 	Motif Code:  11
+		CDE Doc:    0 	 	Motif Doc:    0
+		CDE Test:  11 	 	Motif Test:   1
+		--------------		---------------
+		Total:      30 		Total:       12 
+
+	CANCEL:	Total  83 
+
+		CDE Code:  35 	 	Motif Code:  22
+		CDE Doc:    0 	 	Motif Doc:    1
+		CDE Test:  20 	 	Motif Test:   5
+		--------------		---------------
+		Total:      55 		Total:       28 
+
+
+	For more information on the bugs resolved, see the file 
+	CLOSEDBUGS in this release.
+
+Test Improvements
+
+	Several changes were made for CDE 2.1.20 to streamline the
+	automated testing process.   Included are necessary fixes in
+	order to significantly improve test performance times, as well
+	as to eliminate test hangs.
+
+	Specific fixes include 
+
+	CDExc23856  deiconify tests have logic backwards
+
+	This was a legacy bug in QATS that caused many tests to hang when 
+	doing an iconify/deiconify combination in order to force expose
+	events
+
+	CDExc23824  DtAction tests take extremely long to complete
+
+	Since X events were being processed once every thirty seconds, test
+	performance has been improved from overnight to twenty minutes
+
+	CDExc23843  dtpad tests need speeding up on the printing delays
+
+	When outputting characters to the screen dtpad was incorrectly
+	sleeping for one half second between each one.  The performance
+	of this suite has improved from twelve hours to five hours.
+
+BUG LISTS
+
+	In the release archive there are two files, OPENBUGS and 
+	CLOSEDBUGS, which contain, respectively, the list of all bugs 
+	from any version of CDE or Motif not yet closed, and all bugs 
+	from CDE or Motif fixed in this patch release.
+
+
+BUILDING MOTIF FOR YOUR SYSTEM
+
+	Since X11 is NOT being delivered as part of this release, there
+	are some minor changes in the build process for Motif with respect
+	to the build process described in the 2.1 Release Notes.
+
+	Replace step 2 under the Building Motif subsection of Section 3:
+
+	  2.  If you are building with imports (the default setup in site.def),
+	      construct the necessary links as follows:
+
+	      % cd $CDEBUILDDIR/motif
+	      % mkdir -p imports/x11
+	      % cd imports/x11
+	      % ln -s <X11_bin_directory> bin
+	      % ln -s <X11_includes_directory> includes
+	      % ln -s <X11_libs_directory> libs
+
+
+REFERENCE PLATFORMS
+
+	The Open Group has used a number of platforms during the
+	development of the 2.1.20 release.  However, the following
+	reference platforms are the only ones where the complete
+	test cycle was run.  Test results appear below.
+
+
+   CDE and Motif:
+	HP9000/7xx running HP-UX 10.20
+	Sun SPARCstation running Solaris 2.4
+		using the SC 4.0 C compiler and SC 4.1 C++ compilers
+
+   
+   Changes to X11R6.4:
+
+	CDE and Motif 2.1.20 have been built and tested upon a base of 
+	X11R6.4 patchlevel 3.  During the development of 2.1.20, a 
+	significant defect in the I18N code of X was discovered.  The
+	symptom is that when XMODIFIERS is not set, there is a possibility
+	of memory corruption.   It is recommended that the following patch 
+	be applied:
+
+	*** imInt.c@@/main/5       Sat May 30 21:04:36 1998
+	--- xc/lib/X11/imInt.c       Mon Aug 24 16:17:25 1998
+	***************
+	*** 1,4 ****
+	! /* $TOG: imInt.c /main/5 1998/05/30 21:11:16 kaleb $ */
+	  /******************************************************************
+	  
+	             Copyright 1992, 1993, 1994 by FUJITSU LIMITED
+	--- 1,4 ----
+	! /* $TOG: imInt.c /main/6 1998/08/24 16:22:12 mgreess $ */
+	  /******************************************************************
+	  
+	             Copyright 1992, 1993, 1994 by FUJITSU LIMITED
+	***************
+	*** 166,174 ****
+	  _XimMakeImName(lcd)
+	      XLCd         lcd;
+	  {
+	!     char* begin;
+	!     char* end;
+	!     char* ret;
+	      int       i = 0;
+	      char* ximmodifier = XIMMODIFIER;
+	  
+	--- 166,174 ----
+	  _XimMakeImName(lcd)
+	      XLCd         lcd;
+	  {
+	!     char* begin = NULL;
+	!     char* end = NULL;
+	!     char* ret = NULL;
+	      int       i = 0;
+	      char* ximmodifier = XIMMODIFIER;
+	  
+	***************
+	*** 182,189 ****
+	      }
+	      ret = Xmalloc(end - begin + 2);
+	      if (ret != NULL) {
+	!       (void)strncpy(ret, begin, end - begin + 1);
+	!       ret[end - begin + 1] = '\0';
+	      }
+	      return ret;
+	  }
+	--- 182,192 ----
+	      }
+	      ret = Xmalloc(end - begin + 2);
+	      if (ret != NULL) {
+	!       if (begin != NULL && end != NULL) {
+	!           (void)strncpy(ret, begin, end - begin + 1);
+	!           ret[end - begin + 1] = '\0';
+	!         }
+	!       else *ret = '\0';
+	      }
+	      return ret;
+	  }
+
+
+TEST RESULTS SUMMARY
+
+	Since this is a general availability release, it has undergone 
+	the full quality assurance cycle. The cycle includes running the
+	following test suites:
+
+		QATS - Motif Quality Assurance Test Suite
+		VSM 4.1  - Motif Validation Suite
+		CDE Regression Tests
+
+	The results of these test runs can be found in the release
+	archive under cde-test-misc/reports/cde-2.1.20.  Note that the
+	the journal files (.prt) and other output results generated by
+	QATS have been included for the first time.

+ 280 - 0
cde/README-2.1.30

@@ -0,0 +1,280 @@
+
+**********************************************************************
+NOTE: CDE/MOTIF IS LICENSED SOFTWARE.  SOURCE AND OBJECT CODE IS NOT
+TO BE DISTRIBUTED TO THIRD PARTIES EXCEPT AS PROVIDED BY THE TERMS OF
+YOUR LICENSE AGREEMENT.  PASSIVE DISTRIBUTION TO UNIDENTIFIED PARTIES,
+SUCH AS MAKING FILES AVAILABLE FOR UNRESTRICTED ELECTRONIC FILE
+TRANSFER, IS STRICTLY PROHIBITED BY THE LICENSE.
+
+THESE RESTRICTIONS APPLY TO ANY PARTY TO WHOM THE SOFTWARE HAS BEEN
+DISTRIBUTED.
+**********************************************************************
+
+THE PURPOSE OF THIS RELEASE
+
+	This is the third maintenance release for CDE and Motif 2.1.
+	It was designed to resolve as many defects as possible from the
+	project's defect database.  This maintenance release resolves 515
+	problem reports against CDE and Motif 2.1.20.
+
+
+	The Open Group encourages the reporting of all bugs found in CDE
+	and Motif regardless of the platform or hardware configuration in 
+	which the bug is found.  However, The Open Group will commit to 
+	accept (and repair according to priority) only those bugs that can 
+	be replicated on the current reference configurations.  
+
+
+DOWNLOAD INSTRUCTIONS
+
+	This section describes how to unload the release archives
+	available at this ftp site.
+
+	The CDE/Motif 2.1.30 release is provided as compressed tar archives.  
+
+
+  	README-2.1.30         - this file
+
+  	cde.tar.Z             - a compressed tar file of the 
+			        CDE 2.1.30 source code
+
+  	cde-test.tar.Z        - a compressed tar file of the 
+			        CDE 2.1.30 tests
+
+  	cde-test-misc.tar.Z   - a compressed tar file of 
+			        test results for CDE/Motif 2.1.30
+
+  	motif.tar.Z           - a compressed tar file of the 
+			        MOTIF 2.1.30 source code
+
+  	motif-test-misc.tar.Z - a compressed tar file of 
+			        test results for Motif 2.1.30
+
+
+	The CDE/Motif 2.1.30 release is in the form of a sparse tree; that 
+	is, it contains only files that have been modified in either CDE or 
+	Motif since the 2.1.20 release.  If you are a CDE licensee you will 
+	receive files for both CDE and Motif.  If you are a Motif-only 
+	licensee you will receive files just for Motif.
+
+	After ftp-ing the files to your machine, you should first uncompress
+	the compressed (*.Z) files with the command:
+	
+    		uncompress <filename>.Z
+	
+	Once the tar archives have been uncompressed, you can untar each
+	with the command:
+	
+    		tar xvf <filename>.tar
+	
+	This command will preserve the .tar file while unloading its contents
+	into your current working directory.  If you wish to list a table of
+	contents of the tar file before actually unloading it you can do so
+	with the command:
+	
+    		tar tvf <filename>.tar
+	
+
+INSTALLING THIS RELEASE
+
+	This release is made up of a "sparse tree" of files that have changed
+	since release 2.1.20. The new versions of the files should replace the
+	corresponding CDE or Motif 2.1.20 versions of the files in your source 
+	tree. 
+
+
+	After the release is unloaded, you can use, for example, cp -R command
+	to copy the sources from the current directory into your source tree.
+	This release creates several new files.  If you are using a symbolic
+	link tree, you will need to create new links for them.
+
+	Please see the Release Notes from 2.1 for instructions on building
+	a full release tree.
+	
+
+IMPORTANT CHANGES IN THIS RELEASE
+
+Defect Repair
+
+	This patch release resolves 515 problem reports against CDE and 
+	Motif 2.1.20.  Each of these defects were resolved in one of three
+	ways: fixed (problem was recreated and repaired), duplicate 
+	(problem was already reported and recorded in defect database), 
+	or canceled (problem could not be recreated in current code
+	base).  The breakdown by component and resolution type is:
+
+FIXED:		Total  370 
+
+	CDE Code:   95 	 	Motif Code:  91
+	CDE Doc:     1 	 	Motif Doc:    0
+	CDE Test:  110 	 	Motif Test:  73
+	--------------		---------------
+	Total:     206 		Total:      164 
+
+DUPLICATE:	Total  62 
+
+	CDE Code:   4 	 	Motif Code:  10
+	CDE Doc:    0 	 	Motif Doc:    0
+	CDE Test:  19 	 	Motif Test:  29
+	--------------		---------------
+	Total:     23 		Total:       39 
+
+CANCEL:		Total  83 
+
+	CDE Code:  18 	 	Motif Code:  30
+	CDE Doc:    0 	 	Motif Doc:    0
+	CDE Test:  13 	 	Motif Test:  22
+	--------------		---------------
+	Total:     31 		Total:       52 
+
+
+	For more information on the bugs resolved, see the file 
+	CLOSEDBUGS in this release.
+
+	As of the completion of this maintenance release there are no
+	open defects against the CDE and Motif code and tests that have a
+	priority of 1 or a severity of 1.
+
+Security
+	This release contains changes to address a number of security
+	vulnerabilities in CDE that were reported to CERT during 1999.
+	Those vulnerabilities are described in the CERT Advisory CA-99-11,
+	Four Vulnerabilities in the Common Desktop Environment.  A full
+	description can be found on the CERT Web site at
+	http://www.cert.org/advisories/CA-99-11-CDE.html.
+
+	A subset of those changes were released to the affected vendors
+	via the CERT working group formed to address the reported problems.
+	This release also includes additional changes to various CDE
+	desktop facilities to sense access violations and report them
+	to the user.
+
+BUG LISTS
+
+	In the release archive there are two files, OPENBUGS and 
+	CLOSEDBUGS, which contain, respectively, the list of all bugs 
+	from any version of CDE or Motif not yet closed, and all bugs 
+	from CDE or Motif fixed in this patch release.
+
+
+BUILDING MOTIF FOR YOUR SYSTEM
+
+	Since X11 is NOT being delivered as part of this release, there
+	are some minor changes in the build process for Motif with respect
+	to the build process described in the 2.1 Release Notes.
+
+	Replace step 2 under the Building Motif subsection of Section 3:
+
+	  2.  If you are building with imports (the default setup in site.def),
+	      construct the necessary links as follows:
+
+	      % cd $CDEBUILDDIR/motif
+	      % mkdir -p imports/x11
+	      % cd imports/x11
+	      % ln -s <X11_bin_directory> bin
+	      % ln -s <X11_includes_directory> includes
+	      % ln -s <X11_libs_directory> libs
+
+
+REFERENCE PLATFORMS
+
+	The Open Group has used a number of platforms during the
+	development of the 2.1.30 release.  However, the following
+	reference platforms are the only ones where the complete
+	test cycle was run.  Test results appear below.
+
+
+   CDE and Motif:
+	HP9000/7xx running HP-UX 10.20
+	Sun SPARCstation running Solaris 2.4
+		using the SC 4.0 C compiler and SC 4.1 C++ compilers
+
+	Note that the Validation Suite for Motif (VSM) was also run on a
+	Digital AlphaStation 200 running Digital UNIX 4.0D.  Results were
+	consistent with those on the reference platforms and are included
+	in the test results archives.
+
+   
+   Changes to X11R6.4:
+
+	CDE and Motif 2.1.30 have been built and tested upon a base of 
+	X11R6.4 patchlevel 3.  During the development of 2.1.20, a 
+	significant defect in the I18N code of X was discovered; if you have
+	not yet corrected this problem, you are advised to do so prior
+	to making use of 2.1.30.
+
+	The symptom is that when XMODIFIERS is not set, there is a possibility
+	of memory corruption.   It is recommended that the following patch 
+	be applied:
+
+	*** imInt.c@@/main/5       Sat May 30 21:04:36 1998
+	--- xc/lib/X11/imInt.c       Mon Aug 24 16:17:25 1998
+	***************
+	*** 1,4 ****
+	! /* $TOG: README-2.1.30 /main/1 1999/12/14 14:52:14 devobj $ */
+	  /******************************************************************
+	  
+	             Copyright 1992, 1993, 1994 by FUJITSU LIMITED
+	--- 1,4 ----
+	! /* $TOG: README-2.1.30 /main/1 1999/12/14 14:52:14 devobj $ */
+	  /******************************************************************
+	  
+	             Copyright 1992, 1993, 1994 by FUJITSU LIMITED
+	***************
+	*** 166,174 ****
+	  _XimMakeImName(lcd)
+	      XLCd         lcd;
+	  {
+	!     char* begin;
+	!     char* end;
+	!     char* ret;
+	      int       i = 0;
+	      char* ximmodifier = XIMMODIFIER;
+	  
+	--- 166,174 ----
+	  _XimMakeImName(lcd)
+	      XLCd         lcd;
+	  {
+	!     char* begin = NULL;
+	!     char* end = NULL;
+	!     char* ret = NULL;
+	      int       i = 0;
+	      char* ximmodifier = XIMMODIFIER;
+	  
+	***************
+	*** 182,189 ****
+	      }
+	      ret = Xmalloc(end - begin + 2);
+	      if (ret != NULL) {
+	!       (void)strncpy(ret, begin, end - begin + 1);
+	!       ret[end - begin + 1] = '\0';
+	      }
+	      return ret;
+	  }
+	--- 182,192 ----
+	      }
+	      ret = Xmalloc(end - begin + 2);
+	      if (ret != NULL) {
+	!       if (begin != NULL && end != NULL) {
+	!           (void)strncpy(ret, begin, end - begin + 1);
+	!           ret[end - begin + 1] = '\0';
+	!         }
+	!       else *ret = '\0';
+	      }
+	      return ret;
+	  }
+
+
+TEST RESULTS SUMMARY
+
+	Since this is a general availability release, it has undergone 
+	the full quality assurance cycle. The cycle includes running the
+	following test suites:
+
+		QATS - Motif Quality Assurance Test Suite
+		VSM 4.1  - Motif Validation Suite
+		CDE Regression Tests
+
+	The results of these test runs can be found in the release
+	archive under cde-test-misc/reports/cde-2.1.30 and
+	motif-test-misc/reports/cde-2.1.30.

+ 326 - 0
cde/README-2.1.30.snapshot

@@ -0,0 +1,326 @@
+
+**********************************************************************
+NOTE: CDE/MOTIF IS LICENSED SOFTWARE.  SOURCE AND OBJECT CODE IS NOT
+TO BE DISTRIBUTED TO THIRD PARTIES EXCEPT AS PROVIDED BY THE TERMS OF
+YOUR LICENSE AGREEMENT.  PASSIVE DISTRIBUTION TO UNIDENTIFIED PARTIES,
+SUCH AS MAKING FILES AVAILABLE FOR UNRESTRICTED ELECTRONIC FILE
+TRANSFER, IS STRICTLY PROHIBITED BY THE LICENSE.
+
+THESE RESTRICTIONS APPLY TO ANY PARTY TO WHOM THE SOFTWARE HAS BEEN
+DISTRIBUTED.
+**********************************************************************
+
+THE PURPOSE OF THIS RELEASE
+
+	This is the snapshot release prior to the third and final 
+	maintenance release for CDE and Motif 2.1.  It was designed to
+	resolve as many defects as possible from the project's defect
+	database.  This maintenance release resolves 243 problem reports
+	against CDE and Motif 2.1.20.
+
+	The Open Group encourages the reporting of all bugs found in CDE
+	and Motif regardless of the platform or hardware configuration in 
+	which the bug is found.  However, The Open Group will commit to 
+	accept (and repair according to priority) only those bugs that can 
+	be replicated on the current reference configurations.  
+
+
+DOWNLOAD INSTRUCTIIONS
+
+	This section describes how to unload the release archives
+	available at this ftp site, including information about how much 
+	disk space is required.
+
+	The CDE/Motif 2.1.30 snapshot release is provided as a compressed
+	tar archives consisting of a sparce tree (i.e. only those files
+	which have been added or which have been modified since 2.1.20).
+
+
+  	README-2.1.30.snapshot - this file
+
+  	cde.tar.Z             - a compressed tar file of the 
+			        CDE 2.1.30 snapshot source code
+
+  	cde-test.tar.Z        - a compressed tar file of the 
+			        CDE 2.1.30 snapshot tests
+
+  	cde-test-misc.tar.Z   - a compressed tar file of 
+			        test results for CDE/Motif
+				2.1.30 snapshot
+
+  	motif.tar.Z           - a compressed tar file of the 
+			        MOTIF 2.1.30 snapshot source code
+
+  	motif-test-misc.tar.Z - a compressed tar file of 
+			        test results for Motif 2.1.30
+				snapshot
+
+
+	The CDE/Motif 2.1.30 snapshot release is in the form of a sparse tree;
+	that is, it contains only files that have been added or modified in
+	either CDE or Motif since the 2.1.20 release.  If you are a CDE
+	licensee you will receive files for both CDE and Motif.  If you are
+	a Motif-only licensee you will receive files just for Motif.
+
+	After ftp-ing the files to your machine, you should first uncompress
+	the compressed (*.Z) files with the command:
+	
+    		uncompress <filename>.Z
+	
+	Once the tar archives have been uncompressed, you can untar each
+	with the command:
+	
+    		tar xvf <filename>.tar
+	
+	This command will preserve the .tar file while unloading its contents
+	into your current working directory.  If you wish to list a table of
+	contents of the tar file before actually unloading it you can do so
+	with the command:
+	
+    		tar tvf <filename>.tar
+	
+
+INSTALLING THIS RELEASE
+
+	This release is made up of a "sparse tree" of files that have been
+	added or changed since release 2.1.20. The new versions of the files
+	should replace the corresponding CDE or Motif 2.1.20 versions of the
+	files in your source tree. 
+
+
+	After the release is unloaded, you can use, for example, cp -R command
+	to copy the sources from the current directory into your source tree.
+	This release creates several new files.  If you are using a symbolic
+	link tree, you will need to create new links for them.
+
+	Please see the Release Notes from 2.1 for instructions on building
+	a full release tree.
+	
+
+IMPORTANT CHANGES IN THIS RELEASE
+
+Defect Repair
+
+	This patch release resolves 243 problem reports against CDE and 
+	Motif 2.1.20.  Each of these defects were resolved in one of three
+	ways: fixed (problem was recreated and repaired), duplicate 
+	(problem was already reported and recorded in defect database), 
+	or cancelled (problem could not be recreated in current code
+	base).  The breakdown by component and resolution type is:
+
+        FIXED:		Total  174 
+
+	CDE Code:  40 	 	Motif Code:  51
+	CDE Doc:    1 	 	Motif Doc:    0
+	CDE Test:  43 	 	Motif Test:  39
+	--------------		---------------
+	Total:     84 		Total:       90 
+
+        DUPLICATE:	Total   25 
+
+	CDE Code:   2 	 	Motif Code:   4
+	CDE Doc:    0 	 	Motif Doc:    0
+	CDE Test:   0 	 	Motif Test:  19
+	--------------		---------------
+	Total:      2 		Total:       23 
+
+        CANCEL:		Total   44 
+
+	CDE Code:  13 	 	Motif Code:  19
+	CDE Doc:    0 	 	Motif Doc:    0
+	CDE Test:   2 	 	Motif Test:  10
+	--------------		---------------
+	Total:     15 		Total:       29 
+
+        TOTAL:		Total  243 
+
+	CDE Code:  55 	 	Motif Code:  74
+	CDE Doc:    1 	 	Motif Doc:    0
+	CDE Test:  45 	 	Motif Test:  68
+	--------------		---------------
+	Total:    101 		Total:      142 
+
+
+	For more information on the bugs resolved, see the file 
+	CLOSEDBUGS in this release.
+
+Test Improvements
+
+	A significant number of CDE and Motif test defects were resolved
+	for the CDE/Motif 2.1.30 snapshot release.  For the most part, these
+	represent an ongoing effort to establish a clean baseline in 
+	Motif and reduce the overhead of false negatives in CDE.
+
+BUG LISTS
+
+	In the release archive there are two files, OPENBUGS and 
+	CLOSEDBUGS, which contain, respectively, the list of all bugs 
+	from any version of CDE or Motif not yet closed, and all bugs 
+	from CDE or Motif fixed in this patch release.
+
+
+BUILDING MOTIF FOR YOUR SYSTEM
+
+	Since X11 is NOT being delivered as part of this release, there
+	are some minor changes in the build process for Motif with respect
+	to the build process described in the 2.1 Release Notes.
+
+	Replace step 2 under the Building Motif subsection of Section 3:
+
+	  2.  If you are building with imports (the default setup in site.def),
+	      construct the necessary links as follows:
+
+	      % cd $CDEBUILDDIR/motif
+	      % mkdir -p imports/x11
+	      % cd imports/x11
+	      % ln -s <X11_bin_directory> bin
+	      % ln -s <X11_includes_directory> includes
+	      % ln -s <X11_libs_directory> libs
+
+
+REFERENCE PLATFORMS
+
+	The Open Group has used a number of platforms during the
+	development of the CDE/Motif 2.1.30 snapshot release.  However,
+	the following reference platforms are the only ones where the
+	snapshot test cycle was run.  Test results appear below.
+
+
+   CDE and Motif:
+	HP9000/7xx running HP-UX 10.20
+	Sun SPARCstation running Solaris 2.4
+		using the SC 4.0 C compiler and SC 4.1 C++ compilers
+
+   
+   Changes to X11R6.4:
+
+	Both the 2.1.20 and the 2.1.30 snapshot releases of CDE and Motif
+	have been built and tested upon a base of X11R6.4 patchlevel 3. 
+	During the development of 2.1.20, a significant defect in the I18N
+	code of X was discovered.  The symptom is that when XMODIFIERS is
+	not set, there is a possibility of memory corruption.   It is
+	recommended that the following patch be applied if it has not
+	already been done:
+
+	*** imInt.c@@/main/5       Sat May 30 21:04:36 1998
+	--- xc/lib/X11/imInt.c       Mon Aug 24 16:17:25 1998
+	***************
+	*** 1,4 ****
+	! /* $TOG: README-2.1.30.snapshot /main/1 1999/06/29 12:30:31 devobj $ */
+	  /******************************************************************
+	  
+	             Copyright 1992, 1993, 1994 by FUJITSU LIMITED
+	--- 1,4 ----
+	! /* $TOG: README-2.1.30.snapshot /main/1 1999/06/29 12:30:31 devobj $ */
+	  /******************************************************************
+	  
+	             Copyright 1992, 1993, 1994 by FUJITSU LIMITED
+	***************
+	*** 166,174 ****
+	  _XimMakeImName(lcd)
+	      XLCd         lcd;
+	  {
+	!     char* begin;
+	!     char* end;
+	!     char* ret;
+	      int       i = 0;
+	      char* ximmodifier = XIMMODIFIER;
+	  
+	--- 166,174 ----
+	  _XimMakeImName(lcd)
+	      XLCd         lcd;
+	  {
+	!     char* begin = NULL;
+	!     char* end = NULL;
+	!     char* ret = NULL;
+	      int       i = 0;
+	      char* ximmodifier = XIMMODIFIER;
+	  
+	***************
+	*** 182,189 ****
+	      }
+	      ret = Xmalloc(end - begin + 2);
+	      if (ret != NULL) {
+	!       (void)strncpy(ret, begin, end - begin + 1);
+	!       ret[end - begin + 1] = '\0';
+	      }
+	      return ret;
+	  }
+	--- 182,192 ----
+	      }
+	      ret = Xmalloc(end - begin + 2);
+	      if (ret != NULL) {
+	!       if (begin != NULL && end != NULL) {
+	!           (void)strncpy(ret, begin, end - begin + 1);
+	!           ret[end - begin + 1] = '\0';
+	!         }
+	!       else *ret = '\0';
+	      }
+	      return ret;
+	  }
+
+
+TEST RESULTS SUMMARY
+
+	Since this is a snapshot release, only those components which were
+	modified have undergone quality assurance testing.  The cycle for
+	the 2.1.30 snapshot includes running the following test suites:
+
+		QATS - Motif Quality Assurance Test Suite
+
+		Automated regressions tests in the following directories:
+
+		    Toolkit/Buttons
+		    Toolkit/ComboBox
+		    Toolkit/Container
+		    Toolkit/Converters
+		    Toolkit/Form
+		    Toolkit/IconVC
+		    Toolkit/List
+		    Toolkit/Manager
+		    Toolkit/Menus
+		    Toolkit/Message
+		    Toolkit/Notebook
+		    Toolkit/PanedWin
+		    Toolkit/Primitive
+		    Toolkit/ResInd
+		    Toolkit/Scrollbar
+		    Toolkit/Select
+		    Toolkit/Shells
+		    Toolkit/SpinBox
+		    Toolkit/Text
+		    Toolkit/Traversal
+		    Toolkit/Windows
+		    XmString
+		    uil/EnumVal
+		    uil/ForRef
+		    uil/ResInd
+		    uil/Syntax
+		    uil/widgets
+
+		Manual regression tests in the following directories:
+
+		    Toolkit/Manual
+		    uil/Manual/callUil
+		    uil/Manual/dataStructs
+		    uil/Manual/validator
+		    uil/Manual/Callback
+		    uil/Manual/NL
+
+
+		CDE Regression Tests for the following components:
+
+		    DefConfig
+		    DevEnv
+		    DtHelp
+		    DtSvc
+		    dragdrop
+		    dtcm
+		    dthelp
+		    dtlogin
+		    dtmail
+		    dtsession
+		    dtwm
+
+	The results of these test runs can be found in the release
+	archive under cde-test-misc/reports/cde-2.1.30/.../2.1.30C2.

+ 5595 - 0
cde/ReleaseNotes.ps

@@ -0,0 +1,5595 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: X Consortium PostScript Print Server
+%%EndComments
+%%BeginProlog
+%%BeginProcSet: XServer_PS_Functions
+/d{def}bind def/b{bind}bind d/bd{b d}b d/x{exch}bd/xd{x d}bd/dp{dup}bd/t
+{true}bd/f{false}bd/p{pop}bd/r{roll}bd/c{copy}bd/i{index}bd/rp{repeat}bd
+/n{newpath}bd/w{setlinewidth}bd/lc{setlinecap}bd/lj{setlinejoin}bd/sml{setmiterlimit}bd
+/ds{setdash}bd/ie{ifelse}bd/len{length}bd/m{moveto}bd/l{lineto}bd/rl{rlineto}bd
+/a{arc}bd/an{arcn}bd/st{stroke}bd/fl{fill}bd/ef{eofill}bd/sp{showpage}bd
+/cp{closepath}bd/clp{clippath}bd/cl{clip}bd/pb{pathbbox}bd/tr{translate}bd
+/rt{rotate}bd/dv{div}bd/ml{mul}bd/ad{add}bd/ng{neg}bd/scl{scale}bd/sc{setrgbcolor}bd
+/g{setgray}bd/gs{gsave}bd/gr{grestore}bd/sv{save}bd/rs{restore}bd/mx{matrix}bd
+/cm{currentmatrix}bd/sm{setmatrix}bd/ccm{concatmatrix}bd/cc{concat}bd/ff
+{findfont}bd/mf{makefont}bd/sf{setfont}bd/cft{currentfont}bd/fd{FontDirectory}bd
+/sh{show}bd/stw{stringwidth}bd/ci{colorimage}bd/ig{image}bd/im{imagemask}bd
+/cf{currentfile}bd/rh{readhexstring}bd/str{string}bd/al{aload}bd/wh{where}bd
+/kn{known}bd/stp{stopped}bd/bg{begin}bd/ed{end}bd/fa{forall}bd/pi{putinterval}bd
+/mk{mark}bd/ctm{cleartomark}bd/df{definefont}bd/cd{currentdict}bd/db{20
+ dict dp bg}bd/de{ed}bd/languagelevel wh{p languagelevel}{1}ie 1 eq{/makepattern
+{p}bd/setpattern{p}bd/setpagedevice{p}bd}if/mp{makepattern}bd/spt{setpattern}bd
+/spd{setpagedevice}bd
+/XYr{/currentpagedevice wh {p currentpagedevice dp /HWResolution kn {/HWResolution
+ get al p}{p 300 300}ie}{300 300}ie}bd/Cs{dp 0 eq{0 pHt tr XYr -1 x dv 72
+ ml x 1 x dv 72 ml x scl}if dp 1 eq{90 rt XYr -1 x dv 72 ml x 1 x dv 72
+ ml x scl}if dp 2 eq{pWd 0 tr XYr 1 x dv 72 ml x -1 x dv 72 ml x scl}if
+ 3 eq{pHt pWd tr 90 rt XYr 1 x dv 72 ml x -1 x dv 72 ml x scl}if}bd/P{gs
+ 1 w [] 0 ds 2 c m .1 ad x .1 ad x l st gr}bd/R{4 2 r m 1 i 0 rl 0 x rl
+ ng 0 rl cp}bd/Ac{mx_ cm p 6 -2 r tr 4 2 r ng scl 0 0 .5 5 3 r a mx_ sm}bd
+/An{mx_ cm p 6 -2 r tr 4 2 r ng scl 0 0 .5 5 3 r an mx_ sm}bd/ISO{dp len
+ dict bg{1 i/FID ne{d}{p p}ie}fa /Encoding ISOLatin1Encoding d cd ed df}bd
+/iN{dp len str cvs dp len x 1 i 3 ad str 2 c c p x p dp 3 -1 r(ISO)pi}bd
+/Tp{{x dp iN dp fd x kn{x p dp/f_ x d ff}{dp/f_ x d x ff ISO}ie x} {x dp
+/f_ x d ff x}ie}bd/Tf{Tp[x 0 0 2 i ng 0 0] dp/fm_ x d mf sf}bd/Tfm{Tp 1
+ -1 tm1_ scl tm2_ ccm dp/fm_ x d mf sf}bd/T{m sh}bd/Tb{gs sc f_ ff sf cft
+/FontMatrix get 3 get cft/FontBBox get dp 1 get x 3 get 2 i ml 3 1 r ml
+ 0 0 m 4 i stw p 4 i 4 i m fm_ cc 0 2 i rl dp 0 rl 0 2 i ng rl 0 3 i rl
+ ng 0 rl cp fl p p gr T}bd/Im1{6 4 r tr scl t [3 i 0 0 5 i 0 0]{cf str1
+ rh p} im}bd/Im24{gs 6 4 r tr scl 8 [3 i 0 0 5 i 0 0]{cf str3 rh p} f 3
+ ci}bd/Im1t{6 4 r tr scl t [3 i 0 0 5 i 0 0]{} im}bd/Im24t{gs 6 4 r tr scl
+ 8 [3 i 0 0 5 i 0 0]{} f 3 ci}bd
+%%EndProcSet
+%%EndProlog
+%%BeginSetup
+ /mx_ mx d /im_ mx d /tm1_ mx d /tm2_ mx d /str3 3 str d /str1 1 str d
+%%EndSetup
+/pWd 612 d /pHt 792 d
+{db /Duplex t d /Tumble f d /Orientation 0 /HWResolution [ 600 600 ] d/PageSize [pWd pHt]d de spd}stp p
+gs 0 Cs 100 sml gs
+1 g
+4449 6367 46 82 R fl
+gr gs
+0 6367 606 83 R
+4495 6367 606 83 R
+0 6449 5101 152 R
+cl n
+0.8 g
+1 w
+0 lc
+0 lj
+[ ] 0 ds
+0 0 m 5099 0 l gs 0 g
+[] 0 ds st gr st
+0 1 m 0 6599 l gs 0 g
+[] 0 ds st gr st
+0.6 g
+1 w
+1 6599 m 5099 6599 l gs 0 g
+[] 0 ds st gr st
+5099 1 m 5099 6599 l gs 0 g
+[] 0 ds st gr st
+gr gs
+0 g
+/Times-Roman 66 t Tf
+(CDE Release Notes) 608 6432 T
+1 g
+605 6367 686 1 R fl
+605 6448 686 1 R fl
+605 6367 1 82 R fl
+1290 6367 1 82 R fl
+0 g
+(1) 4452 6432 T
+1 g
+4449 6367 46 1 R fl
+4449 6448 46 1 R fl
+4449 6367 1 82 R fl
+4494 6367 1 82 R fl
+gr gs
+605 605 3890 5317 R
+cl n
+0 g
+/Helvetica-Bold 199 t Tf
+(CDE Release Notes) 622 813 T
+/Helvetica-Bold 149 t Tf
+(CDE 2.1.0 Release Notes) 639 1035 T
+() 639 1035 T
+17 w
+0 lc
+0 lj
+[ ] 0 ds
+639 1054 m 2387 1054 l gs 0 g
+[] 0 ds st gr st
+/Helvetica-Bold 116 t Tf
+(Introduction) 807 1280 T
+807 1299 m 1483 1299 l gs 0 g
+[] 0 ds st gr st
+(Unloading the Distribution) 807 1518 T
+807 1537 m 2263 1537 l gs 0 g
+[] 0 ds st gr st
+(Building CDE) 807 1756 T
+807 1775 m 1549 1775 l gs 0 g
+[] 0 ds st gr st
+(Installing CDE) 807 1994 T
+807 2013 m 1594 2013 l gs 0 g
+[] 0 ds st gr st
+(X Print Services) 807 2232 T
+807 2251 m 1693 2251 l gs 0 g
+[] 0 ds st gr st
+(Documentation) 807 2470 T
+807 2489 m 1652 2489 l gs 0 g
+[] 0 ds st gr st
+(Building Tests) 807 2708 T
+807 2727 m 1607 2727 l gs 0 g
+[] 0 ds st gr st
+(Installing Tests) 807 2946 T
+807 2965 m 1652 2965 l gs 0 g
+[] 0 ds st gr st
+(Running Tests) 807 3184 T
+807 3203 m 1614 3203 l gs 0 g
+[] 0 ds st gr st
+(Compatibility) 807 3422 T
+807 3441 m 1541 3441 l gs 0 g
+[] 0 ds st gr st
+(Pluggable Authentication Module \050PAM\051) 807 3660 T
+807 3679 m 3013 3679 l gs 0 g
+[] 0 ds st gr st
+(New Functionality) 807 3898 T
+807 3917 m 1800 3917 l gs 0 g
+[] 0 ds st gr st
+(Reference Platforms) 807 4136 T
+() 925 4136 T
+807 4155 m 1937 4155 l gs 0 g
+[] 0 ds st gr st
+(Open/Closed Defect Lists) 807 4374 T
+807 4393 m 2214 4393 l gs 0 g
+[] 0 ds st gr st
+(Additional Note) 807 4612 T
+() 922 4612 T
+807 4631 m 1664 4631 l gs 0 g
+[] 0 ds st gr st
+/Helvetica-Bold 149 t Tf
+(CDE 2.1.0 Release Notes) 639 1035 T
+() 671 1035 T
+639 1054 m 2387 1054 l gs 0 g
+[] 0 ds st gr st
+(CDE 2.1.0 Release Notes) 639 1035 T
+() 736 1035 T
+639 1054 m 2387 1054 l gs 0 g
+[] 0 ds st gr st
+/Helvetica-Bold 199 t Tf
+(CDE Release Notes) 622 813 T
+/Helvetica-Bold 149 t Tf
+(CDE 2.1.0 Release Notes) 639 1035 T
+() 755 1035 T
+639 1054 m 2387 1054 l gs 0 g
+[] 0 ds st gr st
+/Helvetica-Bold 116 t Tf
+(Introduction) 807 1280 T
+807 1299 m 1483 1299 l gs 0 g
+[] 0 ds st gr st
+(Unloading the Distribution) 807 1518 T
+807 1537 m 2263 1537 l gs 0 g
+[] 0 ds st gr st
+(Building CDE) 807 1756 T
+807 1775 m 1549 1775 l gs 0 g
+[] 0 ds st gr st
+(Installing CDE) 807 1994 T
+807 2013 m 1594 2013 l gs 0 g
+[] 0 ds st gr st
+(X Print Services) 807 2232 T
+807 2251 m 1693 2251 l gs 0 g
+[] 0 ds st gr st
+(Documentation) 807 2470 T
+807 2489 m 1652 2489 l gs 0 g
+[] 0 ds st gr st
+(Building Tests) 807 2708 T
+807 2727 m 1607 2727 l gs 0 g
+[] 0 ds st gr st
+(Installing Tests) 807 2946 T
+807 2965 m 1652 2965 l gs 0 g
+[] 0 ds st gr st
+(Running Tests) 807 3184 T
+807 3203 m 1614 3203 l gs 0 g
+[] 0 ds st gr st
+(Compatibility) 807 3422 T
+807 3441 m 1541 3441 l gs 0 g
+[] 0 ds st gr st
+(Pluggable Authentication Module \050PAM\051) 807 3660 T
+807 3679 m 3013 3679 l gs 0 g
+[] 0 ds st gr st
+(New Functionality) 807 3898 T
+807 3917 m 1800 3917 l gs 0 g
+[] 0 ds st gr st
+(Reference Platforms) 807 4136 T
+() 807 4136 T
+807 4155 m 1937 4155 l gs 0 g
+[] 0 ds st gr st
+(Open/Closed Defect Lists) 807 4374 T
+807 4393 m 2214 4393 l gs 0 g
+[] 0 ds st gr st
+(Additional Note) 807 4612 T
+() 855 4612 T
+807 4631 m 1664 4631 l gs 0 g
+[] 0 ds st gr st
+/Helvetica-Bold 149 t Tf
+(CDE 2.1.0 Release Notes) 639 1035 T
+() 639 1035 T
+639 1054 m 2387 1054 l gs 0 g
+[] 0 ds st gr st
+gr gr sp
+/pWd 612 d /pHt 792 d
+{db /Duplex t d /Tumble f d /Orientation 0 /HWResolution [ 600 600 ] d/PageSize [pWd pHt]d de spd}stp p
+gs 0 Cs 100 sml gs
+gr gs
+0 6367 606 83 R
+4495 6367 606 83 R
+0 6449 5101 152 R
+cl n
+1 g
+0 6367 605 82 R fl
+4495 6367 605 82 R fl
+0 6449 5100 151 R fl
+gr gs
+1 g
+1291 6367 3158 82 R fl
+605 6367 686 82 R fl
+4449 6367 46 82 R fl
+gr gs
+0 0 5101 606 R
+0 605 606 5318 R
+4495 605 606 5318 R
+0 5922 5101 446 R
+cl n
+1 g
+0 0 5100 605 R fl
+0 605 605 5317 R fl
+4495 605 605 5317 R fl
+0 5922 5100 445 R fl
+gr gs
+1 g
+605 605 3890 5317 R fl
+4449 6367 46 82 R fl
+gr gs
+0 6367 606 83 R
+4495 6367 606 83 R
+0 6449 5101 152 R
+cl n
+0.8 g
+1 w
+0 lc
+0 lj
+[ ] 0 ds
+0 0 m 5099 0 l gs 0 g
+[] 0 ds st gr st
+0 1 m 0 6599 l gs 0 g
+[] 0 ds st gr st
+0.6 g
+1 w
+1 6599 m 5099 6599 l gs 0 g
+[] 0 ds st gr st
+5099 1 m 5099 6599 l gs 0 g
+[] 0 ds st gr st
+gr gs
+0 g
+/Times-Roman 66 t Tf
+(CDE Release Notes) 608 6432 T
+1 g
+605 6367 686 1 R fl
+605 6448 686 1 R fl
+605 6367 1 82 R fl
+1290 6367 1 82 R fl
+0 g
+(2) 4452 6432 T
+1 g
+4449 6367 46 1 R fl
+4449 6448 46 1 R fl
+4449 6367 1 82 R fl
+4494 6367 1 82 R fl
+gr gs
+605 605 3890 5317 R
+cl n
+0 g
+/Times-Bold 199 t Tf
+(CDE 2.1.0 Release Notes) 622 908 T
+() 622 908 T
+/Times-Italic 100 t Tf
+(December 1996) 622 1123 T
+/Times-Roman 100 t Tf
+(Legal Notices) 622 1317 T
+/Courier 83 t Tf
+(\251 Copyright 1993, 1994, 1995, 1996 Hewlett-Packard Company) 790 1421
+T
+(\251 Copyright 1993, 1994, 1995, 1996 International Business Machines Corp.)
+790 1524 T
+(\251 Copyright 1993, 1994, 1995, 1996 Sun Microsystems, Inc.) 790 1627
+T
+(\251 Copyright 1993, 1994, 1995, 1996 Novell, Inc.) 790 1730 T
+() 796 1730 T
+(\251 Copyright 1995, 1996 Digital Equipment Corp.) 790 1833 T
+(\251 Copyright 1995, 1996 Fujitsu Limited) 790 1936 T
+(\251 Copyright 1995, 1996 Hitachi, Ltd.) 790 2039 T
+/Times-Roman 100 t Tf
+(ALL RIGHTS RESERVED) 622 2232 T
+() 633 2232 T
+(All marks are trademarks or registered trademarks of their respective owners.)
+622 2426 T
+gr gr sp
+/pWd 612 d /pHt 792 d
+{db /Duplex t d /Tumble f d /Orientation 0 /HWResolution [ 600 600 ] d/PageSize [pWd pHt]d de spd}stp p
+gs 0 Cs 100 sml gs
+gr gs
+0 6367 606 83 R
+4495 6367 606 83 R
+0 6449 5101 152 R
+cl n
+1 g
+0 6367 605 82 R fl
+4495 6367 605 82 R fl
+0 6449 5100 151 R fl
+gr gs
+1 g
+1291 6367 3158 82 R fl
+605 6367 686 82 R fl
+4449 6367 46 82 R fl
+gr gs
+0 0 5101 606 R
+0 605 606 5318 R
+4495 605 606 5318 R
+0 5922 5101 446 R
+cl n
+1 g
+0 0 5100 605 R fl
+0 605 605 5317 R fl
+4495 605 605 5317 R fl
+0 5922 5100 445 R fl
+gr gs
+1 g
+605 605 3890 5317 R fl
+4449 6367 46 82 R fl
+gr gs
+0 6367 606 83 R
+4495 6367 606 83 R
+0 6449 5101 152 R
+cl n
+0.8 g
+1 w
+0 lc
+0 lj
+[ ] 0 ds
+0 0 m 5099 0 l gs 0 g
+[] 0 ds st gr st
+0 1 m 0 6599 l gs 0 g
+[] 0 ds st gr st
+0.6 g
+1 w
+1 6599 m 5099 6599 l gs 0 g
+[] 0 ds st gr st
+5099 1 m 5099 6599 l gs 0 g
+[] 0 ds st gr st
+gr gs
+0 g
+/Times-Roman 66 t Tf
+(CDE Release Notes) 608 6432 T
+1 g
+605 6367 686 1 R fl
+605 6448 686 1 R fl
+605 6367 1 82 R fl
+1290 6367 1 82 R fl
+0 g
+(3) 4452 6432 T
+1 g
+4449 6367 46 1 R fl
+4449 6448 46 1 R fl
+4449 6367 1 82 R fl
+4494 6367 1 82 R fl
+gr gs
+605 605 3890 5317 R
+cl n
+0 g
+/Times-Bold 149 t Tf
+(Introduction) 622 861 T
+/Times-Roman 100 t Tf
+(This document describes the Common Desktop Environment, CDE version 2.1.0 and Motif)
+622 1066 T
+() 686 1066 T
+(version 2.1.0. Wherever "CDE" is used in this document, it means CDE 2.1.0. Wherever)
+622 1193 T
+("Motif" is used, it means Motif 2.1.0.) 622 1320 T
+(The release of X11 provided with this CDE distribution is based on X11R6.2, which includes)
+622 1514 T
+(additional support for Vertical Writing, User-Defined Characters, and the X Print service.)
+622 1641 T
+(This document and accompanying text files contain important information. Please read them)
+622 1835 T
+(carefully before starting the build and installation procedures.) 622 1962
+T
+(The command line instructions provided here are for ) 622 2160 T
+/Times-Bold 100 t Tf
+(csh) 2751 2160 T
+() 2829 2160 T
+/Times-Roman 100 t Tf
+(. They may vary depending on the) 2890 2160 T
+(particular shell you are using.) 622 2287 T
+() 669 2287 T
+gr gr sp
+/pWd 612 d /pHt 792 d
+{db /Duplex t d /Tumble f d /Orientation 0 /HWResolution [ 600 600 ] d/PageSize [pWd pHt]d de spd}stp p
+gs 0 Cs 100 sml gs
+gr gs
+0 6367 606 83 R
+4495 6367 606 83 R
+0 6449 5101 152 R
+cl n
+1 g
+0 6367 605 82 R fl
+4495 6367 605 82 R fl
+0 6449 5100 151 R fl
+gr gs
+1 g
+1291 6367 3158 82 R fl
+605 6367 686 82 R fl
+4449 6367 46 82 R fl
+gr gs
+0 0 5101 606 R
+0 605 606 5318 R
+4495 605 606 5318 R
+0 5922 5101 446 R
+cl n
+1 g
+0 0 5100 605 R fl
+0 605 605 5317 R fl
+4495 605 605 5317 R fl
+0 5922 5100 445 R fl
+gr gs
+1 g
+605 605 3890 5317 R fl
+4449 6367 46 82 R fl
+gr gs
+0 6367 606 83 R
+4495 6367 606 83 R
+0 6449 5101 152 R
+cl n
+0.8 g
+1 w
+0 lc
+0 lj
+[ ] 0 ds
+0 0 m 5099 0 l gs 0 g
+[] 0 ds st gr st
+0 1 m 0 6599 l gs 0 g
+[] 0 ds st gr st
+0.6 g
+1 w
+1 6599 m 5099 6599 l gs 0 g
+[] 0 ds st gr st
+5099 1 m 5099 6599 l gs 0 g
+[] 0 ds st gr st
+gr gs
+0 g
+/Times-Roman 66 t Tf
+(CDE Release Notes) 608 6432 T
+1 g
+605 6367 686 1 R fl
+605 6448 686 1 R fl
+605 6367 1 82 R fl
+1290 6367 1 82 R fl
+0 g
+(4) 4452 6432 T
+1 g
+4449 6367 46 1 R fl
+4449 6448 46 1 R fl
+4449 6367 1 82 R fl
+4494 6367 1 82 R fl
+gr gs
+605 605 3890 5317 R
+cl n
+0 g
+/Times-Bold 149 t Tf
+(Unloading the Distribution) 622 861 T
+/Times-Roman 100 t Tf
+(If you received this distribution on physical media \050tape or CD\051 rather than electronically, the)
+622 1066 T
+(distribution includes appropriate instructions in hardcopy form. The hardcopy information)
+622 1193 T
+(pertains to your particular distribution format.) 622 1320 T
+(The instructions in this document can be used for unloading from electronic distribution or tape.)
+622 1514 T
+/Times-Bold 149 t Tf
+(Distribution Format) 622 1791 T
+() 736 1791 T
+/Times-Roman 100 t Tf
+(The distribution consists of a single tape that contains nine tar files. These files contain the)
+622 1996 T
+(source code, test code, and documentation of CDE, Motif, and X11R6.2) 622
+2123 T
+(To unpack the distribution, create a directory to hold all of the sources and untar everything into)
+622 2317 T
+() 628 2317 T
+(that directory:) 622 2444 T
+() 622 2444 T
+/Courier 83 t Tf
+(% mkdir $CDESOURCEDIR) 790 2548 T
+(% cd $CDESOURCEDIR) 790 2651 T
+(% tar xf tar-file-name-or-tape-device \050nine times\051) 790 2754 T
+/Times-Roman 100 t Tf
+(where $CDESOURCEDIR designates the CDE master source directory. If you are restoring)
+622 2947 T
+(from a tape, you should choose a device name that will not cause the tape to rewind between )
+622 3078 T
+/Times-Bold 100 t Tf
+(tar) 4345 3078 T
+() 4354 3078 T
+/Times-Roman 100 t Tf
+(commands.) 622 3205 T
+(The directories stored in the nine sections are:) 622 3399 T
+/Courier 83 t Tf
+($CDESOURCEDIR/cde and $CDESOURCEDIR/cde-contrib) 790 3503 T
+() 873 3503 T
+($CDESOURCEDIR/cde-test) 790 3606 T
+($CDESOURCEDIR/cde/doc) 790 3709 T
+($CDESOURCEDIR/motif) 790 3812 T
+() 790 3812 T
+($CDESOURCEDIR/motif/tests) 790 3915 T
+($CDESOURCEDIR/motif/doc) 790 4018 T
+() 906 4018 T
+($CDESOURCEDIR/x11/xc) 790 4121 T
+($CDESOURCEDIR/x11/xc/test) 790 4224 T
+($CDESOURCEDIR/x11/xc/doc) 790 4327 T
+/Times-Roman 100 t Tf
+(If you unpack the entire distribution, you will have the following five subdirectories under)
+622 4520 T
+($CDESOURCEDIR:) 622 4647 T
+/Courier 83 t Tf
+(cde) 790 4751 T
+() 887 4751 T
+(cde-contrib) 790 4854 T
+() 854 4854 T
+(cde-test) 790 4957 T
+(motif) 790 5060 T
+(x11) 790 5163 T
+() 830 5163 T
+/Times-Roman 100 t Tf
+(Note that directory permissions stored in the tar file are generally set world-writable. Make sure)
+622 5356 T
+(your ) 622 5487 T
+/Times-Bold 100 t Tf
+(umask) 830 5487 T
+/Times-Roman 100 t Tf
+( is set the way you want before unpacking the distribution.) 1114 5487
+T
+() 1222 5487 T
+(The ) 622 5681 T
+/Courier 100 t Tf
+(cde-contrib) 802 5681 T
+() 802 5681 T
+/Times-Roman 100 t Tf
+( directory contains some unsupported contributed CDE software.) 1462 5681
+T
+(The DocBook SGML source for these release notes can be found in the file )
+622 5879 T
+gr gr sp
+/pWd 612 d /pHt 792 d
+{db /Duplex t d /Tumble f d /Orientation 0 /HWResolution [ 600 600 ] d/PageSize [pWd pHt]d de spd}stp p
+gs 0 Cs 100 sml gs
+gr gs
+0 6367 606 83 R
+4495 6367 606 83 R
+0 6449 5101 152 R
+cl n
+1 g
+0 6367 605 82 R fl
+4495 6367 605 82 R fl
+0 6449 5100 151 R fl
+gr gs
+1 g
+1291 6367 3158 82 R fl
+605 6367 686 82 R fl
+4449 6367 46 82 R fl
+gr gs
+0 0 5101 606 R
+0 605 606 5318 R
+4495 605 606 5318 R
+0 5922 5101 446 R
+cl n
+1 g
+0 0 5100 605 R fl
+0 605 605 5317 R fl
+4495 605 605 5317 R fl
+0 5922 5100 445 R fl
+gr gs
+1 g
+605 605 3890 5317 R fl
+4449 6367 46 82 R fl
+gr gs
+0 6367 606 83 R
+4495 6367 606 83 R
+0 6449 5101 152 R
+cl n
+0.8 g
+1 w
+0 lc
+0 lj
+[ ] 0 ds
+0 0 m 5099 0 l gs 0 g
+[] 0 ds st gr st
+0 1 m 0 6599 l gs 0 g
+[] 0 ds st gr st
+0.6 g
+1 w
+1 6599 m 5099 6599 l gs 0 g
+[] 0 ds st gr st
+5099 1 m 5099 6599 l gs 0 g
+[] 0 ds st gr st
+gr gs
+0 g
+/Times-Roman 66 t Tf
+(CDE Release Notes) 608 6432 T
+1 g
+605 6367 686 1 R fl
+605 6448 686 1 R fl
+605 6367 1 82 R fl
+1290 6367 1 82 R fl
+0 g
+(5) 4452 6432 T
+1 g
+4449 6367 46 1 R fl
+4449 6448 46 1 R fl
+4449 6367 1 82 R fl
+4494 6367 1 82 R fl
+gr gs
+605 605 3890 5317 R
+cl n
+0 g
+/Courier 100 t Tf
+($CDESOURCEDIR/cde/ReleaseNotes.sgm) 622 693 T
+/Times-Roman 100 t Tf
+(. The PostScript output can be found in ) 2662 693 T
+/Courier 100 t Tf
+($CDESOURCEDIR/cde/ReleaseNotes.ps) 622 824 T
+/Times-Roman 100 t Tf
+(.) 2602 824 T
+/Times-Bold 149 t Tf
+(Disk Space Requirements) 622 1105 T
+() 622 1105 T
+/Times-Roman 100 t Tf
+(The following amounts of disk space are required to unpack the various parts of the CDE)
+622 1310 T
+() 720 1310 T
+(distribution. All amounts are in MB.) 622 1437 T
+/Courier 83 t Tf
+(cde, cde-contrib    93) 790 1541 T
+(cde-test          1361) 790 1644 T
+(cde/doc             91) 790 1747 T
+(motif               19) 790 1850 T
+(motif/tests         39) 790 1953 T
+(motif/doc           15) 790 2056 T
+(x11/xc              90) 790 2159 T
+(x11/xc/test         13) 790 2262 T
+(x11/xc/doc          39) 790 2365 T
+/Times-Roman 100 t Tf
+(Approximately 1Gb of additional disk space is required to build the release.)
+622 2558 T
+(Depending on the platform, approximately 140MB to 160MB of additional disk space is)
+622 2752 T
+() 622 2752 T
+(required to install the release \050C locale only\051. Sample systems that were installed with several)
+622 2879 T
+(locales required between 170MB and 230MB.) 622 3006 T
+gr gr sp
+/pWd 612 d /pHt 792 d
+{db /Duplex t d /Tumble f d /Orientation 0 /HWResolution [ 600 600 ] d/PageSize [pWd pHt]d de spd}stp p
+gs 0 Cs 100 sml gs
+gr gs
+0 6367 606 83 R
+4495 6367 606 83 R
+0 6449 5101 152 R
+cl n
+1 g
+0 6367 605 82 R fl
+4495 6367 605 82 R fl
+0 6449 5100 151 R fl
+gr gs
+1 g
+1291 6367 3158 82 R fl
+605 6367 686 82 R fl
+4449 6367 46 82 R fl
+gr gs
+0 0 5101 606 R
+0 605 606 5318 R
+4495 605 606 5318 R
+0 5922 5101 446 R
+cl n
+1 g
+0 0 5100 605 R fl
+0 605 605 5317 R fl
+4495 605 605 5317 R fl
+0 5922 5100 445 R fl
+gr gs
+1 g
+605 605 3890 5317 R fl
+4449 6367 46 82 R fl
+gr gs
+0 6367 606 83 R
+4495 6367 606 83 R
+0 6449 5101 152 R
+cl n
+0.8 g
+1 w
+0 lc
+0 lj
+[ ] 0 ds
+0 0 m 5099 0 l gs 0 g
+[] 0 ds st gr st
+0 1 m 0 6599 l gs 0 g
+[] 0 ds st gr st
+0.6 g
+1 w
+1 6599 m 5099 6599 l gs 0 g
+[] 0 ds st gr st
+5099 1 m 5099 6599 l gs 0 g
+[] 0 ds st gr st
+gr gs
+0 g
+/Times-Roman 66 t Tf
+(CDE Release Notes) 608 6432 T
+1 g
+605 6367 686 1 R fl
+605 6448 686 1 R fl
+605 6367 1 82 R fl
+1290 6367 1 82 R fl
+0 g
+(6) 4452 6432 T
+1 g
+4449 6367 46 1 R fl
+4449 6448 46 1 R fl
+4449 6367 1 82 R fl
+4494 6367 1 82 R fl
+gr gs
+605 605 3890 5317 R
+cl n
+0 g
+/Times-Bold 149 t Tf
+(Building CDE) 622 861 T
+/Times-Roman 100 t Tf
+(This chapter provides a generic description of the build process for CDE. The x11, motif, and)
+622 1066 T
+(cde libraries and headers must be installed on your system prior to building cde-test. These)
+622 1193 T
+(libraries and headers are included in the CDE Distribution.) 622 1320 T
+() 654 1320 T
+(CDE has been built on the following reference platforms:) 622 1514 T
+/Courier 83 t Tf
+(Digital  AlphaStation 200   Digital UNIX V4.0) 790 1618 T
+(Fujitsu  DS/90 7000         UXP/DS V20L10) 790 1788 T
+(HP       HP9000/7xx         HP-UX 10.01) 790 1958 T
+() 899 1958 T
+(IBM      RS/6000            AIX 4.2) 790 2128 T
+() 822 2128 T
+(Novell   Intel 486/Pentium  UnixWare 2.02) 790 2298 T
+(Sun      SPARCstation       Solaris 2.4) 790 2468 T
+() 822 2468 T
+/Times-Roman 100 t Tf
+(For a detailed definition of the reference platforms, see "Reference Platforms.")
+622 2661 T
+(To build CDE, you must have an ANSI C compiler and a C++ compiler. You must also have )
+622 2855 T
+/Times-Bold 100 t Tf
+(perl) 622 2986 T
+/Times-Roman 100 t Tf
+( version 4.0 or higher for all platforms \050except SUN, which needs version 5.0 or higher\051. )
+794 2986 T
+/Times-Bold 100 t Tf
+(perl) 622 3117 T
+/Times-Roman 100 t Tf
+( is publicly available via anonymous ) 794 3117 T
+/Times-Bold 100 t Tf
+(ftp) 2282 3117 T
+() 2282 3117 T
+/Times-Roman 100 t Tf
+( at ftp.uu.net. ) 2404 3117 T
+/Times-Bold 100 t Tf
+(perl) 2959 3117 T
+/Times-Roman 100 t Tf
+( must be installed on your system) 3131 3117 T
+(and available in your $PATH. You must not have ) 622 3244 T
+() 737 3244 T
+/Courier 100 t Tf
+(/usr/ucb) 2631 3244 T
+/Times-Roman 100 t Tf
+( in your $PATH, or the build may) 3111 3244 T
+(fail.) 622 3375 T
+(If you expect to build the distribution on more than one machine using a shared source tree, or if)
+622 3569 T
+(you just want to keep the binaries out of the source tree, you may want to use the X11 program )
+622 3696 T
+() 732 3696 T
+/Times-Bold 100 t Tf
+(lndir) 622 3827 T
+/Times-Roman 100 t Tf
+( to create a symbolic link tree on each build machine. The links require additional disk)
+834 3827 T
+(space but take less disk space than multiple copies of the source tree.)
+622 3954 T
+() 622 3954 T
+(Create a build directory that is not a subdirectory of the CDE master source directory:)
+622 4148 T
+() 622 4148 T
+/Courier 83 t Tf
+(% mkdir $CDEBUILDDIR) 790 4252 T
+/Times-Roman 100 t Tf
+(Then, create a symbolic link tree:) 622 4445 T
+/Courier 83 t Tf
+(% lndir $CDESOURCEDIR $CDEBUILDDIR) 790 4549 T
+/Times-Roman 100 t Tf
+(where $CDESOURCEDIR is the CDE master source directory. Note that the directory)
+622 4742 T
+() 627 4742 T
+(containing the ) 622 4873 T
+() 710 4873 T
+/Times-Bold 100 t Tf
+(lndir) 1216 4873 T
+/Times-Roman 100 t Tf
+( program must be in your $PATH.) 1428 4873 T
+() 1545 4873 T
+(Note that the builds described below may not be done in parallel; each subsystem depends upon)
+622 5067 T
+(the results of builds in previous subsystems.) 622 5194 T
+/Times-Bold 149 t Tf
+(Building X11) 622 5471 T
+/Times-Roman 100 t Tf
+(1.\240) 622 5609 T
+() 654 5609 T
+(Customize ) 697 5609 T
+/Courier 100 t Tf
+($CDEBUILDDIR/x11/xc/config/cf/site.def) 1150 5609 T
+/Times-Roman 100 t Tf
+( to reflect local) 3430 5609 T
+(preferences for install locations, compilers, paths, etc.) 697 5726 T
+gr gr sp
+/pWd 612 d /pHt 792 d
+{db /Duplex t d /Tumble f d /Orientation 0 /HWResolution [ 600 600 ] d/PageSize [pWd pHt]d de spd}stp p
+gs 0 Cs 100 sml gs
+gr gs
+0 6367 606 83 R
+4495 6367 606 83 R
+0 6449 5101 152 R
+cl n
+1 g
+0 6367 605 82 R fl
+4495 6367 605 82 R fl
+0 6449 5100 151 R fl
+gr gs
+1 g
+1291 6367 3158 82 R fl
+605 6367 686 82 R fl
+4449 6367 46 82 R fl
+gr gs
+0 0 5101 606 R
+0 605 606 5318 R
+4495 605 606 5318 R
+0 5922 5101 446 R
+cl n
+1 g
+0 0 5100 605 R fl
+0 605 605 5317 R fl
+4495 605 605 5317 R fl
+0 5922 5100 445 R fl
+gr gs
+1 g
+605 605 3890 5317 R fl
+4449 6367 46 82 R fl
+gr gs
+0 6367 606 83 R
+4495 6367 606 83 R
+0 6449 5101 152 R
+cl n
+0.8 g
+1 w
+0 lc
+0 lj
+[ ] 0 ds
+0 0 m 5099 0 l gs 0 g
+[] 0 ds st gr st
+0 1 m 0 6599 l gs 0 g
+[] 0 ds st gr st
+0.6 g
+1 w
+1 6599 m 5099 6599 l gs 0 g
+[] 0 ds st gr st
+5099 1 m 5099 6599 l gs 0 g
+[] 0 ds st gr st
+gr gs
+0 g
+/Times-Roman 66 t Tf
+(CDE Release Notes) 608 6432 T
+1 g
+605 6367 686 1 R fl
+605 6448 686 1 R fl
+605 6367 1 82 R fl
+1290 6367 1 82 R fl
+0 g
+(7) 4452 6432 T
+1 g
+4449 6367 46 1 R fl
+4449 6448 46 1 R fl
+4449 6367 1 82 R fl
+4494 6367 1 82 R fl
+gr gs
+605 605 3890 5317 R
+cl n
+0 g
+/Times-Roman 100 t Tf
+(2.\240) 622 693 T
+() 622 693 T
+(Federal law prohibits the X Consortium from shipping Data Encryption Standard \050DES\051)
+697 693 T
+() 798 693 T
+(source code outside the United States. If you have a copy of this source)
+697 806 T
+(\050) 697 923 T
+/Courier 100 t Tf
+(x11/xc/lib/Xdmcp/Wraphelp.c) 730 923 T
+() 794 923 T
+/Times-Roman 100 t Tf
+(\051 and wish to allow use of the ) 2350 923 T
+() 2350 923 T
+/Times-Bold 100 t Tf
+(XDM) 3554 923 T
+() 3586 923 T
+(-AUTHORIZATION-1) 697 1044 T
+/Times-Roman 100 t Tf
+( protocol, enable ) 1734 1044 T
+/Times-Bold 100 t Tf
+(HasXdmAuth) 2427 1044 T
+/Times-Roman 100 t Tf
+( in your ) 3022 1044 T
+/Courier 100 t Tf
+(site.def) 3358 1044 T
+/Times-Roman 100 t Tf
+( file.) 3838 1044 T
+(3.\240) 622 1161 T
+() 622 1161 T
+(Set your current directory as follows:) 697 1161 T
+/Courier 83 t Tf
+(% cd $CDEBUILDDIR/x11/xc) 865 1251 T
+/Times-Roman 100 t Tf
+(4.\240) 622 1377 T
+() 654 1377 T
+(See if there is a BootstrapCFlags mentioned in the comments in the ) 697
+1377 T
+() 697 1377 T
+/Courier 100 t Tf
+(<vendor>.cf) 3418 1377 T
+() 3418 1377 T
+/Times-Roman 100 t Tf
+( file. This) 4078 1377 T
+() 4179 1377 T
+(file is in the directory ) 697 1494 T
+/Courier 100 t Tf
+($CDEBUILDDIR/x11/xc/config/cf) 1582 1494 T
+/Times-Roman 100 t Tf
+(, and the <vendor> string) 3322 1494 T
+(identifies the platform on which you are building. If there isn't a definition for)
+697 1611 T
+(BootstrapCFlags, enter:) 697 1724 T
+() 706 1724 T
+/Courier 83 t Tf
+(% make World >& world.log) 865 1814 T
+/Times-Roman 100 t Tf
+(If there is a BootstrapCFlags definition, take its value and enter:) 697
+2000 T
+() 818 2000 T
+/Courier 83 t Tf
+(% make World BOOTSTRAPCFLAGS="value" >& world.log) 865 2090 T
+/Times-Bold 149 t Tf
+(Building Motif) 622 2366 T
+/Times-Roman 100 t Tf
+(1.\240) 622 2504 T
+() 726 2504 T
+(Customize ) 697 2504 T
+/Courier 100 t Tf
+($CDEBUILDDIR/motif/config/cf/site.def) 1150 2504 T
+/Times-Roman 100 t Tf
+( to reflect local preferences) 3370 2504 T
+(for install locations, compilers, paths, etc.) 697 2621 T
+(2.\240) 622 2734 T
+() 726 2734 T
+(If you are building with imports \050the default setup in ) 697 2734 T
+() 697 2734 T
+/Courier 100 t Tf
+(site.def) 2823 2734 T
+/Times-Roman 100 t Tf
+(\051, construct the necessary) 3303 2734 T
+(links, as follows:) 697 2851 T
+/Courier 83 t Tf
+(% cd $CDEBUILDDIR/motif) 865 2941 T
+() 981 2941 T
+(% mkdir imports) 865 3044 T
+() 986 3044 T
+(% cd imports) 865 3147 T
+(% ln -s ../../x11/xc/exports x11) 865 3250 T
+/Times-Roman 100 t Tf
+(3.\240) 622 3376 T
+() 622 3376 T
+(Set your current directory as follows:) 697 3376 T
+/Courier 83 t Tf
+(% cd $CDEBUILDDIR/motif) 865 3466 T
+() 944 3466 T
+/Times-Roman 100 t Tf
+(4.\240) 622 3592 T
+() 654 3592 T
+(See if there is a BootstrapCFlags mentioned in the comments in the ) 697
+3592 T
+() 697 3592 T
+/Courier 100 t Tf
+(<vendor>.cf) 3418 3592 T
+() 3419 3592 T
+/Times-Roman 100 t Tf
+( file. This) 4078 3592 T
+() 4110 3592 T
+(file is in the directory ) 697 3709 T
+/Courier 100 t Tf
+($CDEBUILDDIR/motif/config/cf) 1582 3709 T
+/Times-Roman 100 t Tf
+(. If there isn't a definition for) 3262 3709 T
+(BootstrapCFlags, enter:) 697 3826 T
+() 794 3826 T
+/Courier 83 t Tf
+(% make World >& world.log) 865 3916 T
+/Times-Roman 100 t Tf
+(If there is a BootstrapCFlags definition, take its value and enter:) 697
+4102 T
+() 700 4102 T
+/Courier 83 t Tf
+(% make World BOOTSTRAPCFLAGS="value" >& world.log) 865 4192 T
+/Times-Bold 149 t Tf
+(Building CDE) 622 4468 T
+/Times-Roman 100 t Tf
+(1.\240) 622 4606 T
+() 727 4606 T
+(Customize ) 697 4606 T
+/Courier 100 t Tf
+($CDEBUILDDIR/cde/config/cf/site.def) 1150 4606 T
+() 1216 4606 T
+/Times-Roman 100 t Tf
+( to reflect local preferences for) 3250 4606 T
+(install locations, compilers, paths, etc.) 697 4723 T
+(2.\240) 622 4836 T
+() 724 4836 T
+(If you are building with imports \050the default setup in ) 697 4836 T
+() 804 4836 T
+/Courier 100 t Tf
+(site.def) 2823 4836 T
+/Times-Roman 100 t Tf
+(\051, construct the necessary) 3303 4836 T
+(links, as follows:) 697 4953 T
+/Courier 83 t Tf
+(% cd $CDEBUILDDIR/cde) 865 5043 T
+(% mkdir imports) 865 5146 T
+() 967 5146 T
+(% cd imports) 865 5249 T
+(% ln -s ../../motif/imports/x11 x11) 865 5352 T
+() 970 5352 T
+(% ln -s ../../motif/exports motif) 865 5455 T
+/Times-Roman 100 t Tf
+(3.\240) 622 5581 T
+() 736 5581 T
+(Set your current directory as follows:) 697 5581 T
+/Courier 83 t Tf
+(% cd $CDEBUILDDIR/motif) 865 5671 T
+() 873 5671 T
+gr gr sp
+/pWd 612 d /pHt 792 d
+{db /Duplex t d /Tumble f d /Orientation 0 /HWResolution [ 600 600 ] d/PageSize [pWd pHt]d de spd}stp p
+gs 0 Cs 100 sml gs
+gr gs
+0 6367 606 83 R
+4495 6367 606 83 R
+0 6449 5101 152 R
+cl n
+1 g
+0 6367 605 82 R fl
+4495 6367 605 82 R fl
+0 6449 5100 151 R fl
+gr gs
+1 g
+1291 6367 3158 82 R fl
+605 6367 686 82 R fl
+4449 6367 46 82 R fl
+gr gs
+0 0 5101 606 R
+0 605 606 5318 R
+4495 605 606 5318 R
+0 5922 5101 446 R
+cl n
+1 g
+0 0 5100 605 R fl
+0 605 605 5317 R fl
+4495 605 605 5317 R fl
+0 5922 5100 445 R fl
+gr gs
+1 g
+605 605 3890 5317 R fl
+4449 6367 46 82 R fl
+gr gs
+0 6367 606 83 R
+4495 6367 606 83 R
+0 6449 5101 152 R
+cl n
+0.8 g
+1 w
+0 lc
+0 lj
+[ ] 0 ds
+0 0 m 5099 0 l gs 0 g
+[] 0 ds st gr st
+0 1 m 0 6599 l gs 0 g
+[] 0 ds st gr st
+0.6 g
+1 w
+1 6599 m 5099 6599 l gs 0 g
+[] 0 ds st gr st
+5099 1 m 5099 6599 l gs 0 g
+[] 0 ds st gr st
+gr gs
+0 g
+/Times-Roman 66 t Tf
+(CDE Release Notes) 608 6432 T
+1 g
+605 6367 686 1 R fl
+605 6448 686 1 R fl
+605 6367 1 82 R fl
+1290 6367 1 82 R fl
+0 g
+(8) 4452 6432 T
+1 g
+4449 6367 46 1 R fl
+4449 6448 46 1 R fl
+4449 6367 1 82 R fl
+4494 6367 1 82 R fl
+gr gs
+605 605 3890 5317 R
+cl n
+0 g
+/Times-Roman 100 t Tf
+(4.\240) 622 693 T
+() 622 693 T
+(See if there is a BootstrapCFlags mentioned in the comments in the ) 697
+693 T
+() 697 693 T
+/Courier 100 t Tf
+(<vendor>.cf) 3418 693 T
+() 3418 693 T
+/Times-Roman 100 t Tf
+( file. This) 4078 693 T
+() 4115 693 T
+(file is in the directory ) 697 810 T
+/Courier 100 t Tf
+($CDEBUILDDIR/cde/config/cf) 1582 810 T
+/Times-Roman 100 t Tf
+(. If there isn't a definition for) 3142 810 T
+(BootstrapCFlags, enter:) 697 927 T
+() 813 927 T
+/Courier 83 t Tf
+(% make -k World >& world.log) 865 1017 T
+/Times-Roman 100 t Tf
+(If there is a BootstrapCFlags definition, take its value and enter:) 697
+1203 T
+() 757 1203 T
+/Courier 83 t Tf
+(% make -k World BOOTSTRAPCFLAGS="value" >& world.log) 865 1293 T
+/Times-Roman 100 t Tf
+(On Solaris, documents build with a large number of SGML errors that can be ignored, as a)
+622 1486 T
+(result of using ) 622 1617 T
+/Times-Bold 100 t Tf
+(sgmls) 1219 1617 T
+/Times-Roman 100 t Tf
+( rather than ) 1458 1617 T
+/Times-Bold 100 t Tf
+(nsgmls) 1937 1617 T
+/Times-Roman 100 t Tf
+(.) 2232 1617 T
+gr gr sp
+/pWd 612 d /pHt 792 d
+{db /Duplex t d /Tumble f d /Orientation 0 /HWResolution [ 600 600 ] d/PageSize [pWd pHt]d de spd}stp p
+gs 0 Cs 100 sml gs
+gr gs
+0 6367 606 83 R
+4495 6367 606 83 R
+0 6449 5101 152 R
+cl n
+1 g
+0 6367 605 82 R fl
+4495 6367 605 82 R fl
+0 6449 5100 151 R fl
+gr gs
+1 g
+1291 6367 3158 82 R fl
+605 6367 686 82 R fl
+4449 6367 46 82 R fl
+gr gs
+0 0 5101 606 R
+0 605 606 5318 R
+4495 605 606 5318 R
+0 5922 5101 446 R
+cl n
+1 g
+0 0 5100 605 R fl
+0 605 605 5317 R fl
+4495 605 605 5317 R fl
+0 5922 5100 445 R fl
+gr gs
+1 g
+605 605 3890 5317 R fl
+4449 6367 46 82 R fl
+gr gs
+0 6367 606 83 R
+4495 6367 606 83 R
+0 6449 5101 152 R
+cl n
+0.8 g
+1 w
+0 lc
+0 lj
+[ ] 0 ds
+0 0 m 5099 0 l gs 0 g
+[] 0 ds st gr st
+0 1 m 0 6599 l gs 0 g
+[] 0 ds st gr st
+0.6 g
+1 w
+1 6599 m 5099 6599 l gs 0 g
+[] 0 ds st gr st
+5099 1 m 5099 6599 l gs 0 g
+[] 0 ds st gr st
+gr gs
+0 g
+/Times-Roman 66 t Tf
+(CDE Release Notes) 608 6432 T
+1 g
+605 6367 686 1 R fl
+605 6448 686 1 R fl
+605 6367 1 82 R fl
+1290 6367 1 82 R fl
+0 g
+(9) 4452 6432 T
+1 g
+4449 6367 46 1 R fl
+4449 6448 46 1 R fl
+4449 6367 1 82 R fl
+4494 6367 1 82 R fl
+gr gs
+605 605 3890 5317 R
+cl n
+0 g
+/Times-Bold 149 t Tf
+(Installing CDE) 622 861 T
+/Times-Roman 100 t Tf
+(CDE should be installed or re-installed in single-user mode.  It may not be sufficient merely to)
+622 1066 T
+(stop the CDE-related processes on a system that already has a CDE version installed.)
+622 1193 T
+(Before installing CDE, check to see if ) 622 1387 T
+() 622 1387 T
+/Courier 100 t Tf
+(/usr/dt) 2164 1387 T
+() 2269 1387 T
+/Times-Roman 100 t Tf
+( exists. If this directory or link already exists) 2584 1387 T
+(and you want a completely new installation \050which is recommended\051, then rename it or back it)
+622 1518 T
+(up and then remove it.) 622 1645 T
+(HP-UX only:) 622 1839 T
+() 736 1839 T
+(If CDE is running, use ) 790 2037 T
+() 790 2037 T
+/Times-Bold 100 t Tf
+(init) 1717 2037 T
+/Times-Roman 100 t Tf
+(\0501M\051 to change the runlevel to a level that will stop ) 1862 2037
+T
+/Times-Bold 100 t Tf
+(dtlogin) 3940 2037 T
+() 3940 2037 T
+/Times-Roman 100 t Tf
+( and) 4241 2037 T
+(other CDE processes \050see ) 790 2164 T
+/Courier 100 t Tf
+(/etc/inittab) 1837 2164 T
+/Times-Roman 100 t Tf
+( for more information\051. For example:) 2557 2164 T
+/Courier 83 t Tf
+(% /sbin/init 2) 958 2272 T
+/Times-Roman 100 t Tf
+(AIX only:) 622 2465 T
+(If "lslpp -h | grep X11.Dt" shows an AIX installation of CDE, use ) 790
+2663 T
+/Times-Bold 100 t Tf
+(smit) 3465 2663 T
+/Times-Roman 100 t Tf
+( to remove the) 3648 2663 T
+(filesets. Otherwise, if a tar installation of CDE was made in ) 790 2790
+T
+/Courier 100 t Tf
+(/usr/dt) 3195 2790 T
+() 3195 2790 T
+/Times-Roman 100 t Tf
+(, remove or rename) 3615 2790 T
+(it.) 790 2921 T
+() 906 2921 T
+(If CDE is running, do the following to stop all of the CDE processes:)
+790 3115 T
+(Kill all running ) 958 3246 T
+/Times-Bold 100 t Tf
+(dtlogin) 1600 3246 T
+() 1600 3246 T
+/Times-Roman 100 t Tf
+( processes) 1901 3246 T
+(Kill the X server) 958 3373 T
+(The installation process creates directory hierarchies rooted at ) 622
+3567 T
+/Courier 100 t Tf
+(/etc/dt) 3121 3567 T
+() 3235 3567 T
+/Times-Roman 100 t Tf
+( and ) 3541 3567 T
+/Courier 100 t Tf
+(/var/dt) 3735 3567 T
+() 3767 3567 T
+/Times-Roman 100 t Tf
+(, but) 4155 3567 T
+(does not install any files there. Delete files in these directories with care. Important)
+622 3698 T
+(customizations made by applications are stored here, and this information may be)
+622 3825 T
+("unrecoverable" if removed.) 622 3952 T
+() 726 3952 T
+/Times-Bold 149 t Tf
+(Installing X11) 622 4229 T
+/Times-Roman 100 t Tf
+(To install X do the following as root:) 622 4434 T
+/Courier 83 t Tf
+(% cd $CDEBUILDDIR/x11/xc) 790 4538 T
+(% make install >& install.log) 790 4641 T
+/Times-Roman 100 t Tf
+(You can install manual pages with:) 622 4834 T
+/Courier 83 t Tf
+(% make install.man >& man.log) 790 4938 T
+/Times-Bold 149 t Tf
+(Installing Motif) 622 5214 T
+/Times-Roman 100 t Tf
+(To install Motif do the following as root:) 622 5419 T
+/Courier 83 t Tf
+(% cd $CDEBUILDDIR/motif) 790 5523 T
+() 906 5523 T
+(% make install.cde >& install.log) 790 5626 T
+/Times-Roman 100 t Tf
+(Note this is NOT the same command used to install Motif without CDE.) 622
+5819 T
+gr gr sp
+/pWd 612 d /pHt 792 d
+{db /Duplex t d /Tumble f d /Orientation 0 /HWResolution [ 600 600 ] d/PageSize [pWd pHt]d de spd}stp p
+gs 0 Cs 100 sml gs
+gr gs
+0 6367 606 83 R
+4495 6367 606 83 R
+0 6449 5101 152 R
+cl n
+1 g
+0 6367 605 82 R fl
+4495 6367 605 82 R fl
+0 6449 5100 151 R fl
+gr gs
+1 g
+1291 6367 3158 82 R fl
+605 6367 686 82 R fl
+4449 6367 46 82 R fl
+gr gs
+0 0 5101 606 R
+0 605 606 5318 R
+4495 605 606 5318 R
+0 5922 5101 446 R
+cl n
+1 g
+0 0 5100 605 R fl
+0 605 605 5317 R fl
+4495 605 605 5317 R fl
+0 5922 5100 445 R fl
+gr gs
+1 g
+605 605 3890 5317 R fl
+gr gs
+1291 6367 3119 83 R
+4455 6367 41 83 R
+cl n
+1 g
+4455 6367 40 82 R fl
+gr gs
+1 g
+4409 6367 86 82 R fl
+4409 6367 86 82 R fl
+gr gs
+0 6367 606 83 R
+4495 6367 606 83 R
+0 6449 5101 152 R
+cl n
+0.8 g
+1 w
+0 lc
+0 lj
+[ ] 0 ds
+0 0 m 5099 0 l gs 0 g
+[] 0 ds st gr st
+0 1 m 0 6599 l gs 0 g
+[] 0 ds st gr st
+0.6 g
+1 w
+1 6599 m 5099 6599 l gs 0 g
+[] 0 ds st gr st
+5099 1 m 5099 6599 l gs 0 g
+[] 0 ds st gr st
+gr gs
+0 g
+/Times-Roman 66 t Tf
+(CDE Release Notes) 608 6432 T
+1 g
+605 6367 686 1 R fl
+605 6448 686 1 R fl
+605 6367 1 82 R fl
+1290 6367 1 82 R fl
+0 g
+(10) 4412 6432 T
+1 g
+4409 6367 86 1 R fl
+4409 6448 86 1 R fl
+4409 6367 1 82 R fl
+4494 6367 1 82 R fl
+gr gs
+605 605 3890 5317 R
+cl n
+0 g
+/Times-Bold 149 t Tf
+(Installing CDE) 622 743 T
+/Times-Roman 100 t Tf
+(To install CDE do the following as root \050since ) 622 952 T
+() 733 952 T
+/Times-Bold 100 t Tf
+(inetd) 2496 952 T
+/Times-Roman 100 t Tf
+( is affected, you should do this at the) 2713 952 T
+() 2814 952 T
+(console, rather than remotely\051:) 622 1079 T
+() 732 1079 T
+/Courier 83 t Tf
+(% cd $CDEBUILDDIR/cde) 790 1183 T
+(% ./admin/IntegTools/dbTools/installCDE -s $CDEBUILDDIR/cde) 790 1286 T
+() 790 1286 T
+/Times-Roman 100 t Tf
+(where $CDEBUILDDIR is the path to the directory where CDE was built. This installs CDE)
+622 1479 T
+(into ) 622 1606 T
+/Courier 100 t Tf
+(/usr/dt/) 803 1606 T
+/Times-Roman 100 t Tf
+(.) 1283 1606 T
+(You must reboot the system after installation.) 622 1804 T
+(This script requires the user to have root permissions.) 622 1998 T
+() 738 1998 T
+(To print the usage message for the script, run:) 622 2192 T
+() 686 2192 T
+/Courier 83 t Tf
+(% installCDE '-?') 790 2296 T
+/Times-Roman 100 t Tf
+(Note that many of the options for ) 622 2493 T
+/Times-Bold 100 t Tf
+(installCDE) 1979 2493 T
+/Times-Roman 100 t Tf
+( have not been tested.) 2452 2493 T
+(You must install into ) 622 2687 T
+/Courier 100 t Tf
+(/usr/dt) 1490 2687 T
+() 1490 2687 T
+/Times-Roman 100 t Tf
+(. You can use the ) 1910 2687 T
+/Times-Italic 100 t Tf
+(-pI) 2625 2687 T
+() 2689 2687 T
+/Times-Roman 100 t Tf
+( option to specify an alternative directory) 2775 2687 T
+() 2775 2687 T
+(for the actual file storage, but ) 622 2818 T
+/Courier 100 t Tf
+(/usr/dt) 1822 2818 T
+() 1822 2818 T
+/Times-Roman 100 t Tf
+( will be created as a symbolic link to that directory) 2242 2818 T
+(because CDE will not operate without that link.) 622 2949 T
+() 738 2949 T
+(To start CDE manually, run the following command as user root:) 622 3143
+T
+/Courier 83 t Tf
+(% /usr/dt/bin/dtlogin) 790 3247 T
+/Times-Bold 149 t Tf
+(Installing Localized Filesets) 622 3523 T
+/Times-Roman 100 t Tf
+(After the base install of CDE, you can install localized filesets. Each locale has three filesets:)
+622 3728 T
+(message catalogs, resource and config files, and on-line help. The filesets for the C locale are)
+622 3855 T
+(installed by default. This section describes how to install filesets for supported locales other)
+622 3982 T
+(than C.) 622 4109 T
+() 686 4109 T
+(To install the localized filesets for a locale, run ) 622 4307 T
+/Times-Bold 100 t Tf
+(installCDE) 2524 4307 T
+/Times-Roman 100 t Tf
+( as root as follows \050the quotes are) 2997 4307 T
+() 2999 4307 T
+(required\051:) 622 4434 T
+/Courier 83 t Tf
+(% $CDEBUILDDIR/cde/admin/IntegTools/dbTools/installCDE \134) 790 4538 T
+(        -s $CDEBUILDDIR/cde \134) 790 4641 T
+(        -f "CDE-<LOCALE> CDE-MSG-<LOCALE> CDE-HELP-<LOCALE>") 790 4744
+T
+/Times-Roman 100 t Tf
+(where "<LOCALE>" is "DE" \050German\051, "ES" \050Spanish\051, "FR" \050French\051, "IT" \050Italian\051, or "JP")
+622 4937 T
+(\050Japanese\051. For example, to install Japanese filesets:) 622 5064
+T
+/Courier 83 t Tf
+(% $CDEBUILDDIR/cde/admin/IntegTools/dbTools/installCDE \134) 790 5168 T
+(        -s $CDEBUILDDIR/cde \134) 790 5271 T
+(        -f "CDE-JP CDE-MSG-JP CDE-HELP-JP") 790 5374 T
+/Times-Bold 149 t Tf
+(Known Installation Problems) 622 5650 T
+() 622 5650 T
+/Times-Roman 100 t Tf
+(Some known installation problems are listed below \050additional information may be found in the)
+622 5855 T
+gr gr sp
+/pWd 612 d /pHt 792 d
+{db /Duplex t d /Tumble f d /Orientation 0 /HWResolution [ 600 600 ] d/PageSize [pWd pHt]d de spd}stp p
+gs 0 Cs 100 sml gs
+gr gs
+0 6367 606 83 R
+4495 6367 606 83 R
+0 6449 5101 152 R
+cl n
+1 g
+0 6367 605 82 R fl
+4495 6367 605 82 R fl
+0 6449 5100 151 R fl
+gr gs
+1 g
+1291 6367 3118 82 R fl
+605 6367 686 82 R fl
+4409 6367 86 82 R fl
+gr gs
+0 0 5101 606 R
+0 605 606 5318 R
+4495 605 606 5318 R
+0 5922 5101 446 R
+cl n
+1 g
+0 0 5100 605 R fl
+0 605 605 5317 R fl
+4495 605 605 5317 R fl
+0 5922 5100 445 R fl
+gr gs
+1 g
+605 605 3890 5317 R fl
+4409 6367 86 82 R fl
+gr gs
+0 6367 606 83 R
+4495 6367 606 83 R
+0 6449 5101 152 R
+cl n
+0.8 g
+1 w
+0 lc
+0 lj
+[ ] 0 ds
+0 0 m 5099 0 l gs 0 g
+[] 0 ds st gr st
+0 1 m 0 6599 l gs 0 g
+[] 0 ds st gr st
+0.6 g
+1 w
+1 6599 m 5099 6599 l gs 0 g
+[] 0 ds st gr st
+5099 1 m 5099 6599 l gs 0 g
+[] 0 ds st gr st
+gr gs
+0 g
+/Times-Roman 66 t Tf
+(CDE Release Notes) 608 6432 T
+1 g
+605 6367 686 1 R fl
+605 6448 686 1 R fl
+605 6367 1 82 R fl
+1290 6367 1 82 R fl
+0 g
+(11) 4412 6432 T
+1 g
+4409 6367 86 1 R fl
+4409 6448 86 1 R fl
+4409 6367 1 82 R fl
+4494 6367 1 82 R fl
+gr gs
+605 605 3890 5317 R
+cl n
+0 g
+/Times-Roman 100 t Tf
+(files ) 622 693 T
+/Courier 100 t Tf
+($CDESOURCEDIR/cde/OPENBUGS) 819 693 T
+/Times-Roman 100 t Tf
+( and ) 2379 693 T
+/Courier 100 t Tf
+($CDESOURCEDIR/motif/OPENBUGS) 2573 693 T
+/Times-Roman 100 t Tf
+(\051:) 4253 693 T
+/Symbol 100 f Tf
+(\267\240) 622 835 T
+/Times-Roman 100 t Tf
+(This problem occurs on Digital only.) 668 824 T
+(Deconfiguration will attempt to undo the installation operations. If it fails or needs to be)
+668 937 T
+(undone manually, you can restore the non-CDE login with:) 668 1050 T
+/Courier 83 t Tf
+(# ln -f -s ../init.d/xdm /sbin/rc3.d/S95xdm) 836 1140 T
+() 836 1140 T
+/Times-Roman 100 t Tf
+(Rebooting will return the workstation to xdm mode.) 668 1326 T
+/Symbol 100 f Tf
+(\267\240) 622 1450 T
+/Times-Roman 100 t Tf
+(If the Japanese filesets are installed, several files are reported as missing during the installation)
+668 1439 T
+(process. The Japanese translations of some documents are not part of the initial release of CDE)
+668 1552 T
+() 744 1552 T
+(2.1.  This is not harmful to the installation.) 668 1665 T
+/Symbol 100 f Tf
+(\267\240) 622 1789 T
+/Times-Roman 100 t Tf
+(On Solaris, the file ) 668 1778 T
+/Courier 100 t Tf
+(/proj/cde/programs/nsgmls/nsgmls) 1448 1778 T
+/Times-Roman 100 t Tf
+( is reported as missing.) 3368 1778 T
+(This is expected.) 668 1895 T
+gr gr sp
+/pWd 612 d /pHt 792 d
+{db /Duplex t d /Tumble f d /Orientation 0 /HWResolution [ 600 600 ] d/PageSize [pWd pHt]d de spd}stp p
+gs 0 Cs 100 sml gs
+gr gs
+0 6367 606 83 R
+4495 6367 606 83 R
+0 6449 5101 152 R
+cl n
+1 g
+0 6367 605 82 R fl
+4495 6367 605 82 R fl
+0 6449 5100 151 R fl
+gr gs
+1 g
+1291 6367 3158 82 R fl
+605 6367 686 82 R fl
+4449 6367 46 82 R fl
+gr gs
+0 0 5101 606 R
+0 605 606 5318 R
+4495 605 606 5318 R
+0 5922 5101 446 R
+cl n
+1 g
+0 0 5100 605 R fl
+0 605 605 5317 R fl
+4495 605 605 5317 R fl
+0 5922 5100 445 R fl
+gr gs
+1 g
+605 605 3890 5317 R fl
+gr gs
+1291 6367 3119 83 R
+4455 6367 41 83 R
+cl n
+1 g
+4455 6367 40 82 R fl
+gr gs
+1 g
+4409 6367 86 82 R fl
+4409 6367 86 82 R fl
+gr gs
+0 6367 606 83 R
+4495 6367 606 83 R
+0 6449 5101 152 R
+cl n
+0.8 g
+1 w
+0 lc
+0 lj
+[ ] 0 ds
+0 0 m 5099 0 l gs 0 g
+[] 0 ds st gr st
+0 1 m 0 6599 l gs 0 g
+[] 0 ds st gr st
+0.6 g
+1 w
+1 6599 m 5099 6599 l gs 0 g
+[] 0 ds st gr st
+5099 1 m 5099 6599 l gs 0 g
+[] 0 ds st gr st
+gr gs
+0 g
+/Times-Roman 66 t Tf
+(CDE Release Notes) 608 6432 T
+1 g
+605 6367 686 1 R fl
+605 6448 686 1 R fl
+605 6367 1 82 R fl
+1290 6367 1 82 R fl
+0 g
+(12) 4412 6432 T
+1 g
+4409 6367 86 1 R fl
+4409 6448 86 1 R fl
+4409 6367 1 82 R fl
+4494 6367 1 82 R fl
+gr gs
+605 605 3890 5317 R
+cl n
+0 g
+/Times-Bold 149 t Tf
+(X Print Services) 622 861 T
+/Times-Roman 100 t Tf
+(To print with CDE, a print server must be running, and the proper name of the server must be)
+622 1066 T
+(supplied to client applications.) 622 1193 T
+(In addition, to enable users to select a printer setup dialog from within client applications, a)
+622 1387 T
+(print dialog manager \050dtpdm\051 daemon must be running.) 622 1514 T
+/Times-Bold 149 t Tf
+(Running an X Print Server) 622 1791 T
+/Times-Roman 100 t Tf
+(Running an X Print Server is identical to running any other X server.)
+622 1996 T
+(Here is a sample command line for use with a typical configuration:) 622
+2190 T
+() 732 2190 T
+/Courier 83 t Tf
+(% Xprt :1 -ac -fp /usr/lib/X11/fonts/misc,\134) 790 2294 T
+() 793 2294 T
+(/usr/lib/X11/fonts/Type1,/usr/lib/X11/fonts/100dpi,\134) 790 2397 T
+(/usr/dt/config/xfonts) 790 2500 T
+/Times-Roman 100 t Tf
+(The following options are available when running the print server:) 622
+2693 T
+(:1) 622 2887 T
+(Use a different display from the default.) 790 3081 T
+(-ac) 622 3275 T
+() 626 3275 T
+(Disable access control, since no simple mechanism for sharing keys is provided.)
+790 3469 T
+() 896 3469 T
+(-fp) 622 3663 T
+() 725 3663 T
+(Point to the standard video fonts. Note that the only reason for doing this is to add the CDE)
+790 3857 T
+(aliases to the default set.) 790 3984 T
+() 790 3984 T
+(In addition, the following new arguments are available:) 622 4178 T
+() 630 4178 T
+(-XpFile) 622 4372 T
+() 622 4372 T
+(Points to file listing of available printers instead of default.) 790 4566
+T
+(XPCONFIGDIR) 622 4760 T
+() 736 4760 T
+(Environment variable specifying alternative location of configuration files.)
+790 4954 T
+(The server can be run within a user's session as an individual command or at boot time. These)
+622 5148 T
+(two methods of invocation represent two distinct styles. The latter style provides a centralized)
+622 5275 T
+(departmental service, while the former style usually serves a single user. However, because an)
+622 5402 T
+(X print server is no different from any other X server, there are many other configuration)
+622 5529 T
+(possibilities available.) 622 5656 T
+gr gr sp
+/pWd 612 d /pHt 792 d
+{db /Duplex t d /Tumble f d /Orientation 0 /HWResolution [ 600 600 ] d/PageSize [pWd pHt]d de spd}stp p
+gs 0 Cs 100 sml gs
+gr gs
+0 6367 606 83 R
+4495 6367 606 83 R
+0 6449 5101 152 R
+cl n
+1 g
+0 6367 605 82 R fl
+4495 6367 605 82 R fl
+0 6449 5100 151 R fl
+gr gs
+1 g
+1291 6367 3118 82 R fl
+605 6367 686 82 R fl
+4409 6367 86 82 R fl
+gr gs
+0 0 5101 606 R
+0 605 606 5318 R
+4495 605 606 5318 R
+0 5922 5101 446 R
+cl n
+1 g
+0 0 5100 605 R fl
+0 605 605 5317 R fl
+4495 605 605 5317 R fl
+0 5922 5100 445 R fl
+gr gs
+1 g
+605 605 3890 5317 R fl
+4409 6367 86 82 R fl
+gr gs
+0 6367 606 83 R
+4495 6367 606 83 R
+0 6449 5101 152 R
+cl n
+0.8 g
+1 w
+0 lc
+0 lj
+[ ] 0 ds
+0 0 m 5099 0 l gs 0 g
+[] 0 ds st gr st
+0 1 m 0 6599 l gs 0 g
+[] 0 ds st gr st
+0.6 g
+1 w
+1 6599 m 5099 6599 l gs 0 g
+[] 0 ds st gr st
+5099 1 m 5099 6599 l gs 0 g
+[] 0 ds st gr st
+gr gs
+0 g
+/Times-Roman 66 t Tf
+(CDE Release Notes) 608 6432 T
+1 g
+605 6367 686 1 R fl
+605 6448 686 1 R fl
+605 6367 1 82 R fl
+1290 6367 1 82 R fl
+0 g
+(13) 4412 6432 T
+1 g
+4409 6367 86 1 R fl
+4409 6448 86 1 R fl
+4409 6367 1 82 R fl
+4494 6367 1 82 R fl
+gr gs
+605 605 3890 5317 R
+cl n
+0 g
+/Times-Bold 149 t Tf
+(Informing Clients) 622 743 T
+/Times-Roman 100 t Tf
+(To select an X Print Server from a client that employs the Xprint server, simply type the name)
+622 948 T
+(of the printer like this:) 622 1075 T
+/Courier 83 t Tf
+(printerName@host:display) 790 1179 T
+/Times-Roman 100 t Tf
+(A default printer can be specified by providing a value for either the XpPrinter resource or the )
+622 1372 T
+/Times-Bold 100 t Tf
+(XPRINTER) 622 1503 T
+/Times-Roman 100 t Tf
+( environment variable.) 1144 1503 T
+(An alternative, and probably the simplest, way to provide an entire set of printers to all clients is)
+622 1697 T
+(to set the ) 622 1828 T
+() 733 1828 T
+/Times-Bold 100 t Tf
+(XPSERVERLIST) 1008 1828 T
+/Times-Roman 100 t Tf
+( variable \050or XpServerList resource\051 to the name of a X Print) 1776
+1828 T
+(Server \050for example, print_host:1\051. The user's default value of )
+622 1959 T
+/Times-Bold 100 t Tf
+(LPDEST) 3130 1959 T
+/Times-Roman 100 t Tf
+( will be combined with) 3520 1959 T
+(the defined value to create a full printer name, allowing the user to use the GUI on the print)
+622 2086 T
+(setup box dialog to access other printers.) 622 2213 T
+(You can set all of the above environment variables in the ) 622 2407 T
+/Courier 100 t Tf
+(.dtprofile) 2926 2407 T
+/Times-Roman 100 t Tf
+( file in a user's home) 3526 2407 T
+(directory.) 622 2538 T
+/Times-Bold 149 t Tf
+(Print Dialog Manager) 622 2815 T
+/Times-Roman 100 t Tf
+(In order for users to access the print setup dialogs, a special client called the Print Dialog)
+622 3020 T
+(Manager must be running. The name of the daemon that implements the Print Dialog Manager)
+622 3147 T
+(is ) 622 3278 T
+() 639 3278 T
+/Times-Bold 100 t Tf
+(dtpdmd) 714 3278 T
+/Times-Roman 100 t Tf
+(. You can invoke ) 1054 3278 T
+/Times-Bold 100 t Tf
+(dtpdmd) 1761 3278 T
+/Times-Roman 100 t Tf
+( in either of two ways:) 2101 3278 T
+() 2212 3278 T
+/Symbol 100 f Tf
+(\267\240) 622 3416 T
+/Times-Roman 100 t Tf
+(Point it at a print server, as follows:) 668 3405 T
+() 782 3405 T
+/Courier 83 t Tf
+(dtpdmd -d print_host:1 &) 836 3495 T
+/Symbol 100 f Tf
+(\267\240) 622 3632 T
+/Times-Roman 100 t Tf
+(Point it at your video display, as follows:) 668 3621 T
+() 770 3621 T
+/Courier 83 t Tf
+(dtpdmd &) 836 3711 T
+/Times-Roman 100 t Tf
+(Note that in this case, the environment variable ) 668 3901 T
+/Times-Bold 100 t Tf
+(XPDMDISPLAY) 2579 3901 T
+() 2579 3901 T
+/Times-Roman 100 t Tf
+( must be set to the value ) 3317 3901 T
+/Times-Italic 100 t Tf
+(video) 668 4014 T
+/Times-Roman 100 t Tf
+(. ) 884 4014 T
+(You can apply either of these methods using the ) 622 4194 T
+/Courier 100 t Tf
+(.dtprofile) 2572 4194 T
+/Times-Roman 100 t Tf
+( file in the user's home) 3172 4194 T
+(directory.) 622 4325 T
+gr gr sp
+/pWd 612 d /pHt 792 d
+{db /Duplex t d /Tumble f d /Orientation 0 /HWResolution [ 600 600 ] d/PageSize [pWd pHt]d de spd}stp p
+gs 0 Cs 100 sml gs
+gr gs
+0 6367 606 83 R
+4495 6367 606 83 R
+0 6449 5101 152 R
+cl n
+1 g
+0 6367 605 82 R fl
+4495 6367 605 82 R fl
+0 6449 5100 151 R fl
+gr gs
+1 g
+1291 6367 3158 82 R fl
+605 6367 686 82 R fl
+4449 6367 46 82 R fl
+gr gs
+0 0 5101 606 R
+0 605 606 5318 R
+4495 605 606 5318 R
+0 5922 5101 446 R
+cl n
+1 g
+0 0 5100 605 R fl
+0 605 605 5317 R fl
+4495 605 605 5317 R fl
+0 5922 5100 445 R fl
+gr gs
+1 g
+605 605 3890 5317 R fl
+gr gs
+1291 6367 3119 83 R
+4455 6367 41 83 R
+cl n
+1 g
+4455 6367 40 82 R fl
+gr gs
+1 g
+4409 6367 86 82 R fl
+4409 6367 86 82 R fl
+gr gs
+0 6367 606 83 R
+4495 6367 606 83 R
+0 6449 5101 152 R
+cl n
+0.8 g
+1 w
+0 lc
+0 lj
+[ ] 0 ds
+0 0 m 5099 0 l gs 0 g
+[] 0 ds st gr st
+0 1 m 0 6599 l gs 0 g
+[] 0 ds st gr st
+0.6 g
+1 w
+1 6599 m 5099 6599 l gs 0 g
+[] 0 ds st gr st
+5099 1 m 5099 6599 l gs 0 g
+[] 0 ds st gr st
+gr gs
+0 g
+/Times-Roman 66 t Tf
+(CDE Release Notes) 608 6432 T
+1 g
+605 6367 686 1 R fl
+605 6448 686 1 R fl
+605 6367 1 82 R fl
+1290 6367 1 82 R fl
+0 g
+(14) 4412 6432 T
+1 g
+4409 6367 86 1 R fl
+4409 6448 86 1 R fl
+4409 6367 1 82 R fl
+4494 6367 1 82 R fl
+gr gs
+605 605 3890 5317 R
+cl n
+0 g
+/Times-Bold 149 t Tf
+(Documentation) 622 861 T
+/Times-Roman 100 t Tf
+(The documentation available with this release consists of:) 622 1066 T
+/Symbol 100 f Tf
+(\267\240) 622 1204 T
+/Times-Roman 100 t Tf
+(CDE and Motif man pages) 668 1193 T
+() 786 1193 T
+/Symbol 100 f Tf
+(\267\240) 622 1350 T
+/Times-Roman 100 t Tf
+(CDE and Motif guides) 668 1339 T
+/Symbol 100 f Tf
+(\267\240) 622 1496 T
+/Times-Roman 100 t Tf
+(CDE online help) 668 1485 T
+() 668 1485 T
+/Times-Bold 149 t Tf
+(Man Pages) 622 1781 T
+/Times-Roman 100 t Tf
+(This release provides English versions of the CDE and Motif man pages in traditional man)
+622 1986 T
+(format. The man pages are generated from DocBook source during the build process. Man)
+622 2113 T
+(pages are also viewable online with ) 622 2244 T
+/Times-Bold 100 t Tf
+(dtinfo) 2069 2244 T
+/Times-Roman 100 t Tf
+( using the English CDE information library.) 2325 2244 T
+() 2374 2244 T
+/Times-Bold 149 t Tf
+(Guides) 622 2521 T
+/Times-Roman 100 t Tf
+(The guides provided with this release include:) 622 2726 T
+/Symbol 100 f Tf
+(\267\240) 622 2864 T
+/Times-Roman 100 t Tf
+(English CDE guides, which have been converted to DocBook. These guides are viewable)
+668 2853 T
+() 700 2853 T
+(online with ) 668 2970 T
+/Times-Bold 100 t Tf
+(dtinfo) 1146 2970 T
+/Times-Roman 100 t Tf
+( using the English CDE information library. The DocBook source is located)
+1402 2970 T
+(in ) 668 3083 T
+() 668 3083 T
+/Courier 100 t Tf
+($CDEBUILDDIR/cde/doc/C/guides) 771 3083 T
+/Times-Roman 100 t Tf
+(. New volumes in this release are the ) 2511 3083 T
+(Information Manager User's Guide) 668 3200 T
+(, ) 2078 3200 T
+(Information System Author's and Programmer's Guide) 2128 3200 T
+(,) 4339 3200 T
+(and ) 668 3313 T
+(Guide to the DocBook DTD) 837 3313 T
+(.) 1969 3313 T
+/Symbol 100 f Tf
+(\267\240) 622 3437 T
+/Times-Roman 100 t Tf
+(English Motif guides, which have been converted to DocBook. These guides are viewable)
+668 3426 T
+(online with ) 668 3543 T
+/Times-Bold 100 t Tf
+(dtinfo) 1146 3543 T
+/Times-Roman 100 t Tf
+( using the English CDE information library. The DocBook source is located)
+1402 3543 T
+(in ) 668 3656 T
+() 778 3656 T
+/Courier 100 t Tf
+($CDEBUILDDIR/motif/doc/C/guides) 771 3656 T
+() 771 3656 T
+/Times-Roman 100 t Tf
+(.) 2631 3656 T
+(With this release, the Motif and CDE style guides have been combined and reworked into three)
+668 3773 T
+(new volumes: ) 668 3886 T
+(Motif and CDE Style Guide) 1251 3886 T
+(, ) 2373 3886 T
+(Motif and CDE Style Guide Reference) 2423 3886 T
+() 2423 3886 T
+(, and ) 3973 3886 T
+(Motif) 4192 3886 T
+(and CDE Style Guide Certification Checklist) 668 3999 T
+() 700 3999 T
+(.) 2470 3999 T
+/Symbol 100 f Tf
+(\267\240) 622 4123 T
+/Times-Roman 100 t Tf
+(Translations of selected CDE and Motif guides, which have been converted to DocBook. The)
+668 4112 T
+(CDE ) 668 4225 T
+(User's Guide) 893 4225 T
+(, ) 1422 4225 T
+(Information Manager User's Guide) 1472 4225 T
+(, and ) 2882 4225 T
+(Advanced User's and System) 3101 4225 T
+(Administrator's Guide) 668 4338 T
+( are available in all languages. Additional guides are available in) 1570
+4338 T
+() 1688 4338 T
+(Japanese. These guides are viewable online with dtinfo using the localized CDE information)
+668 4451 T
+(library. The DocBook source is located in ) 668 4564 T
+/Courier 100 t Tf
+($CDEBUILDDIR/cde/doc/LANG/guides) 2365 4564 T
+/Times-Roman 100 t Tf
+(,) 4285 4564 T
+(where LANG corresponds to one of the following locales:) 668 4681 T
+() 668 4681 T
+(de_DE.ISO8859-1 \050German\051) 836 4861 T
+(es_ES.ISO8859-1 \050Spanish\051) 836 5055 T
+(fr_FR.ISO8859-1 \050French\051) 836 5249 T
+(it_IT.ISO8859-1 \050Italian\051) 836 5443 T
+(ja_JP.dt-eucJP \050Japanese\051) 836 5637 T
+gr gr sp
+/pWd 612 d /pHt 792 d
+{db /Duplex t d /Tumble f d /Orientation 0 /HWResolution [ 600 600 ] d/PageSize [pWd pHt]d de spd}stp p
+gs 0 Cs 100 sml gs
+gr gs
+0 6367 606 83 R
+4495 6367 606 83 R
+0 6449 5101 152 R
+cl n
+1 g
+0 6367 605 82 R fl
+4495 6367 605 82 R fl
+0 6449 5100 151 R fl
+gr gs
+1 g
+1291 6367 3118 82 R fl
+605 6367 686 82 R fl
+4409 6367 86 82 R fl
+gr gs
+0 0 5101 606 R
+0 605 606 5318 R
+4495 605 606 5318 R
+0 5922 5101 446 R
+cl n
+1 g
+0 0 5100 605 R fl
+0 605 605 5317 R fl
+4495 605 605 5317 R fl
+0 5922 5100 445 R fl
+gr gs
+1 g
+605 605 3890 5317 R fl
+4409 6367 86 82 R fl
+gr gs
+0 6367 606 83 R
+4495 6367 606 83 R
+0 6449 5101 152 R
+cl n
+0.8 g
+1 w
+0 lc
+0 lj
+[ ] 0 ds
+0 0 m 5099 0 l gs 0 g
+[] 0 ds st gr st
+0 1 m 0 6599 l gs 0 g
+[] 0 ds st gr st
+0.6 g
+1 w
+1 6599 m 5099 6599 l gs 0 g
+[] 0 ds st gr st
+5099 1 m 5099 6599 l gs 0 g
+[] 0 ds st gr st
+gr gs
+0 g
+/Times-Roman 66 t Tf
+(CDE Release Notes) 608 6432 T
+1 g
+605 6367 686 1 R fl
+605 6448 686 1 R fl
+605 6367 1 82 R fl
+1290 6367 1 82 R fl
+0 g
+(15) 4412 6432 T
+1 g
+4409 6367 86 1 R fl
+4409 6448 86 1 R fl
+4409 6367 1 82 R fl
+4494 6367 1 82 R fl
+gr gs
+605 605 3890 5317 R
+cl n
+0 g
+/Times-Bold 149 t Tf
+(Online Help) 622 743 T
+() 622 743 T
+/Times-Roman 100 t Tf
+(This release contains complete English and translated CDE online help, which has been)
+622 948 T
+(converted to DocBook. The online help is viewable with the Help Manager. New material)
+622 1075 T
+(includes online help for dtinfo and for printing. The English online help source can be found in )
+622 1202 T
+/Courier 100 t Tf
+($CDEBUILDDIR/cde/doc/C/help) 622 1329 T
+() 693 1329 T
+/Times-Roman 100 t Tf
+(. The translated online help can be found in ) 2242 1329 T
+/Courier 100 t Tf
+($CDEBUILDDIR/cde/doc/LANG/help) 622 1460 T
+/Times-Roman 100 t Tf
+(, where LANG corresponds to the locales listed in) 2422 1460 T
+(the "Guides" section.) 622 1591 T
+gr gr sp
+/pWd 612 d /pHt 792 d
+{db /Duplex t d /Tumble f d /Orientation 0 /HWResolution [ 600 600 ] d/PageSize [pWd pHt]d de spd}stp p
+gs 0 Cs 100 sml gs
+gr gs
+0 6367 606 83 R
+4495 6367 606 83 R
+0 6449 5101 152 R
+cl n
+1 g
+0 6367 605 82 R fl
+4495 6367 605 82 R fl
+0 6449 5100 151 R fl
+gr gs
+1 g
+1291 6367 3158 82 R fl
+605 6367 686 82 R fl
+4449 6367 46 82 R fl
+gr gs
+0 0 5101 606 R
+0 605 606 5318 R
+4495 605 606 5318 R
+0 5922 5101 446 R
+cl n
+1 g
+0 0 5100 605 R fl
+0 605 605 5317 R fl
+4495 605 605 5317 R fl
+0 5922 5100 445 R fl
+gr gs
+1 g
+605 605 3890 5317 R fl
+gr gs
+1291 6367 3119 83 R
+4455 6367 41 83 R
+cl n
+1 g
+4455 6367 40 82 R fl
+gr gs
+1 g
+4409 6367 86 82 R fl
+4409 6367 86 82 R fl
+gr gs
+0 6367 606 83 R
+4495 6367 606 83 R
+0 6449 5101 152 R
+cl n
+0.8 g
+1 w
+0 lc
+0 lj
+[ ] 0 ds
+0 0 m 5099 0 l gs 0 g
+[] 0 ds st gr st
+0 1 m 0 6599 l gs 0 g
+[] 0 ds st gr st
+0.6 g
+1 w
+1 6599 m 5099 6599 l gs 0 g
+[] 0 ds st gr st
+5099 1 m 5099 6599 l gs 0 g
+[] 0 ds st gr st
+gr gs
+0 g
+/Times-Roman 66 t Tf
+(CDE Release Notes) 608 6432 T
+1 g
+605 6367 686 1 R fl
+605 6448 686 1 R fl
+605 6367 1 82 R fl
+1290 6367 1 82 R fl
+0 g
+(16) 4412 6432 T
+1 g
+4409 6367 86 1 R fl
+4409 6448 86 1 R fl
+4409 6367 1 82 R fl
+4494 6367 1 82 R fl
+gr gs
+605 605 3890 5317 R
+cl n
+0 g
+/Times-Bold 149 t Tf
+(Building Tests) 622 861 T
+/Times-Roman 100 t Tf
+(This chapter provides a generic description of the build process for the CDE Test Suite.)
+622 1066 T
+(You must build and install CDE \050including X11 and Motif\051 on your system prior to building)
+622 1260 T
+(these tests. Also, the actual CDE build tree must still be accessible.)
+622 1387 T
+(The CDE test suite has been built on the following reference platforms:)
+622 1581 T
+() 622 1581 T
+/Courier 83 t Tf
+(Digital  AlphaStation 200   Digital UNIX V4.0) 706 1685 T
+(Fujitsu  DS/90 7000         UXP/DS V20L10) 706 1855 T
+(HP       HP9000/7xx         HP-UX 10.01) 706 2025 T
+() 822 2025 T
+(IBM      RS/6000            AIX 4.2) 706 2195 T
+() 822 2195 T
+(Novell   Intel 486/Pentium  UnixWare 2.02) 706 2365 T
+(Sun      SPARCstation       Solaris 2.4) 706 2535 T
+() 750 2535 T
+/Times-Roman 100 t Tf
+(For a detailed definition of the reference platforms, see "Reference Platforms.")
+622 2728 T
+/Times-Bold 149 t Tf
+(Configure the CDE Test Suite Build Environment) 622 3005 T
+/Times-Roman 100 t Tf
+(Before building, you must make sure that symbolic links for the ) 622 3210
+T
+/Courier 100 t Tf
+(OSVersion.tmpl) 3204 3210 T
+/Times-Roman 100 t Tf
+( and the ) 4044 3210 T
+/Courier 100 t Tf
+(localtree.tmpl) 622 3341 T
+/Times-Roman 100 t Tf
+( files are created and that these links are correct for your system. You must)
+1462 3341 T
+(also modify the ) 622 3472 T
+/Courier 100 t Tf
+(site.cf) 1269 3472 T
+() 1326 3472 T
+/Times-Roman 100 t Tf
+( file. You can not skip this step, even though you have built CDE for)
+1689 3472 T
+(your system, because the config directory for the CDE Test Suite is separate from the CDE)
+622 3603 T
+(build directory.) 622 3730 T
+(Builds have been performed using the optimized shared library templates for )
+622 3924 T
+/Courier 100 t Tf
+(localtree.tmpl) 622 4051 T
+/Times-Roman 100 t Tf
+(.) 1462 4051 T
+(To create the links, go to the CDE Test config directory in the build directory:)
+622 4249 T
+/Courier 83 t Tf
+(cd $CDEBUILDDIR/cde-test/config) 706 4353 T
+() 772 4353 T
+/Times-Roman 100 t Tf
+(Make sure that cdesrcRoot is defined to point to ) 622 4546 T
+/Courier 100 t Tf
+($CDEBUILDDIR/cde) 2567 4546 T
+/Times-Roman 100 t Tf
+( in the file ) 3527 4546 T
+/Courier 100 t Tf
+(site.cf) 3960 4546 T
+() 4072 4546 T
+/Times-Roman 100 t Tf
+(.) 4380 4546 T
+(For example, if $CDEBUILDDIR is ) 622 4677 T
+/Courier 100 t Tf
+(/proj) 2104 4677 T
+/Times-Roman 100 t Tf
+(, the following lines should appear in the file \050do) 2404 4677 T
+() 2404 4677 T
+(not use environment variables here\051:) 622 4808 T
+/Courier 83 t Tf
+(#ifndef cdesrcRoot) 706 4912 T
+(#define cdesrcRoot /proj/cde) 706 5015 T
+(#endif) 706 5118 T
+/Times-Roman 100 t Tf
+(Create the correct links for your system. For example, if your system is HP-UX 10.01 you will)
+622 5311 T
+(need to execute the following commands to create these links:) 622 5438
+T
+/Courier 83 t Tf
+(% ln -s OSVersiontemplates/10.01 OSVersion.tmpl) 706 5542 T
+() 706 5542 T
+(% ln -s localtemplates/hpux/10.01/optimized.shared localtree.tmpl) 706
+5645 T
+/Times-Roman 100 t Tf
+(The following are the correct links for the other platforms:) 622 5838
+T
+gr gr sp
+/pWd 612 d /pHt 792 d
+{db /Duplex t d /Tumble f d /Orientation 0 /HWResolution [ 600 600 ] d/PageSize [pWd pHt]d de spd}stp p
+gs 0 Cs 100 sml gs
+gr gs
+0 6367 606 83 R
+4495 6367 606 83 R
+0 6449 5101 152 R
+cl n
+1 g
+0 6367 605 82 R fl
+4495 6367 605 82 R fl
+0 6449 5100 151 R fl
+gr gs
+1 g
+1291 6367 3118 82 R fl
+605 6367 686 82 R fl
+4409 6367 86 82 R fl
+gr gs
+0 0 5101 606 R
+0 605 606 5318 R
+4495 605 606 5318 R
+0 5922 5101 446 R
+cl n
+1 g
+0 0 5100 605 R fl
+0 605 605 5317 R fl
+4495 605 605 5317 R fl
+0 5922 5100 445 R fl
+gr gs
+1 g
+605 605 3890 5317 R fl
+4409 6367 86 82 R fl
+gr gs
+0 6367 606 83 R
+4495 6367 606 83 R
+0 6449 5101 152 R
+cl n
+0.8 g
+1 w
+0 lc
+0 lj
+[ ] 0 ds
+0 0 m 5099 0 l gs 0 g
+[] 0 ds st gr st
+0 1 m 0 6599 l gs 0 g
+[] 0 ds st gr st
+0.6 g
+1 w
+1 6599 m 5099 6599 l gs 0 g
+[] 0 ds st gr st
+5099 1 m 5099 6599 l gs 0 g
+[] 0 ds st gr st
+gr gs
+0 g
+/Times-Roman 66 t Tf
+(CDE Release Notes) 608 6432 T
+1 g
+605 6367 686 1 R fl
+605 6448 686 1 R fl
+605 6367 1 82 R fl
+1290 6367 1 82 R fl
+0 g
+(17) 4412 6432 T
+1 g
+4409 6367 86 1 R fl
+4409 6448 86 1 R fl
+4409 6367 1 82 R fl
+4494 6367 1 82 R fl
+gr gs
+605 605 3890 5317 R
+cl n
+0 g
+/Times-Roman 100 t Tf
+(Digital Unix 4.0) 622 693 T
+/Courier 83 t Tf
+(OSVersion.tmpl -> OSVersiontemplates/4.0) 790 797 T
+(localtree.tmpl -> localtemplates/dec/alpha/osf/optimized.sharedlibs) 790
+900 T
+() 790 900 T
+/Times-Roman 100 t Tf
+(Fujitsu UXP/DS V20L10) 622 1093 T
+/Courier 83 t Tf
+(OSVersion.tmpl -> OSVersiontemplates/20.10) 790 1197 T
+(localtree.tmpl -> localtemplates/uxp/optimized.sharedlibs) 790 1300 T
+/Times-Roman 100 t Tf
+(IBM AIX 4.2) 622 1493 T
+() 654 1493 T
+/Courier 83 t Tf
+(OSVersion.tmpl -> OSVersiontemplates/4.2) 790 1597 T
+(localtree.tmpl -> localtemplates/ibm/rs6000/aix4.2/optimized.sharedlibs)
+790 1700 T
+() 901 1700 T
+/Times-Roman 100 t Tf
+(Sun Solaris 2.4) 622 1893 T
+() 622 1893 T
+/Courier 83 t Tf
+(OSVersion.tmpl -> OSVersiontemplates/5.4) 790 1997 T
+(localtree.tmpl -> localtemplates/sun/optimized.sharedlibs) 790 2100 T
+/Times-Roman 100 t Tf
+(UNIXWARE) 622 2293 T
+/Courier 83 t Tf
+(OSVersion.tmpl -> OSVersiontemplates/4.2) 790 2397 T
+(localtree.tmpl -> localtemplates/sun/optimized.sharedlibs) 790 2500 T
+/Times-Bold 149 t Tf
+(Building the CDE Test Suites) 622 2776 T
+/Times-Roman 100 t Tf
+(Change to the directory containing the ) 622 2985 T
+() 632 2985 T
+/Times-Bold 100 t Tf
+(test_build) 2181 2985 T
+/Times-Roman 100 t Tf
+( program:) 2604 2985 T
+/Courier 83 t Tf
+(% cd $CDEBUILDDIR/cde-test/admin/BuildTools/master_build) 706 3089 T
+/Times-Roman 100 t Tf
+(Run ) 622 3286 T
+/Times-Bold 100 t Tf
+(test_build) 814 3286 T
+/Times-Roman 100 t Tf
+( to build the CDE Test Suite on your system:) 1237 3286 T
+/Courier 83 t Tf
+(% ./test_build -build $CDEBUILDDIR/cde-test \134) 706 3390 T
+(        -log $CDEBUILDDIR/cde-test/logs -c) 706 3493 T
+/Times-Roman 100 t Tf
+(The ) 622 3690 T
+/Times-Bold 100 t Tf
+(test_build) 802 3690 T
+/Times-Roman 100 t Tf
+( command makes the Makefiles, includes, depend, and all targets in the specified)
+1225 3690 T
+(build directory and creates build logs in the specified log directory. For a more complete)
+622 3817 T
+(description of the ) 622 3948 T
+() 622 3948 T
+/Times-Bold 100 t Tf
+(test_build) 1346 3948 T
+/Times-Roman 100 t Tf
+( options, see the ) 1769 3948 T
+/Times-Bold 100 t Tf
+(master_build) 2438 3948 T
+/Times-Roman 100 t Tf
+(.1 man page in ) 3005 3948 T
+() 3104 3948 T
+/Courier 100 t Tf
+($CDEBUILDDIR/cde/admin/man/man1) 622 4079 T
+() 622 4079 T
+/Times-Roman 100 t Tf
+( \050) 2482 4079 T
+/Times-Bold 100 t Tf
+(test_build) 2540 4079 T
+/Times-Roman 100 t Tf
+( and ) 2963 4079 T
+/Times-Bold 100 t Tf
+(master_build) 3157 4079 T
+/Times-Roman 100 t Tf
+( support the same) 3724 4079 T
+(set of options\051.) 622 4210 T
+gr gr sp
+/pWd 612 d /pHt 792 d
+{db /Duplex t d /Tumble f d /Orientation 0 /HWResolution [ 600 600 ] d/PageSize [pWd pHt]d de spd}stp p
+gs 0 Cs 100 sml gs
+gr gs
+0 6367 606 83 R
+4495 6367 606 83 R
+0 6449 5101 152 R
+cl n
+1 g
+0 6367 605 82 R fl
+4495 6367 605 82 R fl
+0 6449 5100 151 R fl
+gr gs
+1 g
+1291 6367 3158 82 R fl
+605 6367 686 82 R fl
+4449 6367 46 82 R fl
+gr gs
+0 0 5101 606 R
+0 605 606 5318 R
+4495 605 606 5318 R
+0 5922 5101 446 R
+cl n
+1 g
+0 0 5100 605 R fl
+0 605 605 5317 R fl
+4495 605 605 5317 R fl
+0 5922 5100 445 R fl
+gr gs
+1 g
+605 605 3890 5317 R fl
+gr gs
+1291 6367 3119 83 R
+4455 6367 41 83 R
+cl n
+1 g
+4455 6367 40 82 R fl
+gr gs
+1 g
+4409 6367 86 82 R fl
+4409 6367 86 82 R fl
+gr gs
+0 6367 606 83 R
+4495 6367 606 83 R
+0 6449 5101 152 R
+cl n
+0.8 g
+1 w
+0 lc
+0 lj
+[ ] 0 ds
+0 0 m 5099 0 l gs 0 g
+[] 0 ds st gr st
+0 1 m 0 6599 l gs 0 g
+[] 0 ds st gr st
+0.6 g
+1 w
+1 6599 m 5099 6599 l gs 0 g
+[] 0 ds st gr st
+5099 1 m 5099 6599 l gs 0 g
+[] 0 ds st gr st
+gr gs
+0 g
+/Times-Roman 66 t Tf
+(CDE Release Notes) 608 6432 T
+1 g
+605 6367 686 1 R fl
+605 6448 686 1 R fl
+605 6367 1 82 R fl
+1290 6367 1 82 R fl
+0 g
+(18) 4412 6432 T
+1 g
+4409 6367 86 1 R fl
+4409 6448 86 1 R fl
+4409 6367 1 82 R fl
+4494 6367 1 82 R fl
+gr gs
+605 605 3890 5317 R
+cl n
+0 g
+/Times-Bold 149 t Tf
+(Installing Tests) 622 861 T
+/Times-Roman 100 t Tf
+(Test execution is fully functional inside the cde-test directory structure. No installation is)
+622 1066 T
+(required.) 622 1193 T
+gr gr sp
+/pWd 612 d /pHt 792 d
+{db /Duplex t d /Tumble f d /Orientation 0 /HWResolution [ 600 600 ] d/PageSize [pWd pHt]d de spd}stp p
+gs 0 Cs 100 sml gs
+gr gs
+0 6367 606 83 R
+4495 6367 606 83 R
+0 6449 5101 152 R
+cl n
+1 g
+0 6367 605 82 R fl
+4495 6367 605 82 R fl
+0 6449 5100 151 R fl
+gr gs
+1 g
+1291 6367 3158 82 R fl
+605 6367 686 82 R fl
+4449 6367 46 82 R fl
+gr gs
+0 0 5101 606 R
+0 605 606 5318 R
+4495 605 606 5318 R
+0 5922 5101 446 R
+cl n
+1 g
+0 0 5100 605 R fl
+0 605 605 5317 R fl
+4495 605 605 5317 R fl
+0 5922 5100 445 R fl
+gr gs
+1 g
+605 605 3890 5317 R fl
+gr gs
+1291 6367 3119 83 R
+4455 6367 41 83 R
+cl n
+1 g
+4455 6367 40 82 R fl
+gr gs
+1 g
+4409 6367 86 82 R fl
+4409 6367 86 82 R fl
+gr gs
+0 6367 606 83 R
+4495 6367 606 83 R
+0 6449 5101 152 R
+cl n
+0.8 g
+1 w
+0 lc
+0 lj
+[ ] 0 ds
+0 0 m 5099 0 l gs 0 g
+[] 0 ds st gr st
+0 1 m 0 6599 l gs 0 g
+[] 0 ds st gr st
+0.6 g
+1 w
+1 6599 m 5099 6599 l gs 0 g
+[] 0 ds st gr st
+5099 1 m 5099 6599 l gs 0 g
+[] 0 ds st gr st
+gr gs
+0 g
+/Times-Roman 66 t Tf
+(CDE Release Notes) 608 6432 T
+1 g
+605 6367 686 1 R fl
+605 6448 686 1 R fl
+605 6367 1 82 R fl
+1290 6367 1 82 R fl
+0 g
+(19) 4412 6432 T
+1 g
+4409 6367 86 1 R fl
+4409 6448 86 1 R fl
+4409 6367 1 82 R fl
+4494 6367 1 82 R fl
+gr gs
+605 605 3890 5317 R
+cl n
+0 g
+/Times-Bold 149 t Tf
+(Running Tests) 622 861 T
+/Times-Roman 100 t Tf
+(The following sections give basic instructions for executing the various testing protocols and)
+622 1066 T
+(information on test results.) 622 1193 T
+/Times-Bold 149 t Tf
+(Test Execution) 622 1470 T
+/Times-Bold 116 t Tf
+(Automated Regression Tests) 622 1727 T
+/Times-Roman 100 t Tf
+(The test execution cycle is divided into five phases based on dependencies. The phases are)
+622 1925 T
+(listed below in order of execution. The cycle outlined here is intended to accommodate the)
+622 2052 T
+(testing of multiple test suites automatically.) 622 2179 T
+(1.\240) 622 2306 T
+() 622 2306 T
+(Configure test environment.) 697 2306 T
+() 697 2306 T
+(The test environment requires a complete installation of CDE, a complete test build that)
+697 2419 T
+(includes TET, and a default user environment with the following X resources set:)
+697 2532 T
+/Courier 83 t Tf
+(*enableButtonTab: False) 751 2622 T
+() 859 2622 T
+(*blinkRate: 0) 751 2725 T
+(dtterm*blinkRate: 250) 751 2828 T
+/Times-Roman 100 t Tf
+(The tests can be run either from the test display itself or from a remote display. The following)
+697 3014 T
+(environment variables must be set:) 697 3127 T
+/Courier 83 t Tf
+(TET_ROOT=$CDEBUILDDIR/cde-test) 751 3217 T
+(TET_TMP_DIR=<temporary space dir>) 751 3320 T
+(DISPLAY=<test display>) 751 3423 T
+(PATH=$PATH:.) 751 3526 T
+/Times-Roman 100 t Tf
+(Then, general configuration data must be loaded:) 697 3712 T
+/Courier 83 t Tf
+($ . $TET_ROOT/DTConfig/`uname -s`/dt_env.sh -l) 751 3802 T
+/Times-Roman 100 t Tf
+(2.\240) 622 3928 T
+() 667 3928 T
+(Configure the component-specific test environment.) 697 3928 T
+(Component-specific test environment configuration is set by:) 697 4041
+T
+/Courier 83 t Tf
+($ cd $TET_ROOT/comp_suites/<test suite name>) 751 4131 T
+($ . config/`uname -s`/env.sh -l) 751 4234 T
+() 849 4234 T
+/Times-Roman 100 t Tf
+(where <test suite name> corresponds to the directory under ) 697 4420 T
+() 801 4420 T
+/Courier 100 t Tf
+($TET_ROOT/comp_suites) 3090 4420 T
+/Times-Roman 100 t Tf
+(for a CDE component \050for example, dtfile, DtSvc/dragdrop, dthelp/dtHelpApi\051.)
+697 4537 T
+(Some test suites require additional setup that will have to be done manually. The instructions)
+697 4710 T
+(for additional setup \050if any\051 can be found in) 697 4823 T
+/Courier 83 t Tf
+($TET_ROOT/comp_suites/<test suite name>/README[.test suite name]) 751 4913
+T
+/Times-Roman 100 t Tf
+(3.\240) 622 5039 T
+() 732 5039 T
+(Execute test suite.) 697 5039 T
+() 697 5039 T
+(Tests are organized under "scenarios" \050e.g. REGRESSION, all, TOUCH\051 which are listed in)
+697 5152 T
+() 697 5152 T
+(the file) 697 5265 T
+/Courier 83 t Tf
+($TET_ROOT/comp_suites/<test suite name>/tet_scen) 751 5355 T
+/Times-Roman 100 t Tf
+(The tests are run through TET's ) 697 5545 T
+/Times-Bold 100 t Tf
+(tcc) 2000 5545 T
+() 2116 5545 T
+/Times-Roman 100 t Tf
+( \050test case controller\051:) 2121 5545 T
+/Courier 83 t Tf
+($ tcc -i <output dir> -j <journal file> \134) 751 5635 T
+(      -e comp_suites/<test suite name> <scenario>) 751 5738 T
+gr gr sp
+/pWd 612 d /pHt 792 d
+{db /Duplex t d /Tumble f d /Orientation 0 /HWResolution [ 600 600 ] d/PageSize [pWd pHt]d de spd}stp p
+gs 0 Cs 100 sml gs
+gr gs
+0 6367 606 83 R
+4495 6367 606 83 R
+0 6449 5101 152 R
+cl n
+1 g
+0 6367 605 82 R fl
+4495 6367 605 82 R fl
+0 6449 5100 151 R fl
+gr gs
+1 g
+1291 6367 3118 82 R fl
+605 6367 686 82 R fl
+4409 6367 86 82 R fl
+gr gs
+0 0 5101 606 R
+0 605 606 5318 R
+4495 605 606 5318 R
+0 5922 5101 446 R
+cl n
+1 g
+0 0 5100 605 R fl
+0 605 605 5317 R fl
+4495 605 605 5317 R fl
+0 5922 5100 445 R fl
+gr gs
+1 g
+605 605 3890 5317 R fl
+4409 6367 86 82 R fl
+gr gs
+0 6367 606 83 R
+4495 6367 606 83 R
+0 6449 5101 152 R
+cl n
+0.8 g
+1 w
+0 lc
+0 lj
+[ ] 0 ds
+0 0 m 5099 0 l gs 0 g
+[] 0 ds st gr st
+0 1 m 0 6599 l gs 0 g
+[] 0 ds st gr st
+0.6 g
+1 w
+1 6599 m 5099 6599 l gs 0 g
+[] 0 ds st gr st
+5099 1 m 5099 6599 l gs 0 g
+[] 0 ds st gr st
+gr gs
+0 g
+/Times-Roman 66 t Tf
+(CDE Release Notes) 608 6432 T
+1 g
+605 6367 686 1 R fl
+605 6448 686 1 R fl
+605 6367 1 82 R fl
+1290 6367 1 82 R fl
+0 g
+(20) 4412 6432 T
+1 g
+4409 6367 86 1 R fl
+4409 6448 86 1 R fl
+4409 6367 1 82 R fl
+4494 6367 1 82 R fl
+gr gs
+605 605 3890 5317 R
+cl n
+0 g
+/Times-Roman 100 t Tf
+(where <journal file> is the path name of the file where test journal reports and results are)
+697 693 T
+(stored. Any test data for inspection \050for example, images\051 is stored under <output dir>.)
+697 806 T
+(4.\240) 622 919 T
+() 723 919 T
+(Clean up test suite.) 697 919 T
+(Component-specific test environment configuration cleanup is accomplished by:)
+697 1032 T
+/Courier 83 t Tf
+($ cd $TET_ROOT/comp_suites/<test suite name>) 751 1122 T
+($ . config/`uname -s`/env.sh -c) 751 1225 T
+() 797 1225 T
+/Times-Roman 100 t Tf
+(5.\240) 622 1351 T
+() 737 1351 T
+(Clean up general test environment.) 697 1351 T
+(General test environment configuration cleanup is accomplished by:) 697
+1464 T
+/Courier 83 t Tf
+($ . $TET_ROOT/DTConfig/`uname -s`/dt_env.sh -c) 751 1554 T
+/Times-Roman 100 t Tf
+(Alternatively, the test execution script ) 622 1751 T
+/Times-Bold 100 t Tf
+(testCDE) 2170 1751 T
+() 2286 1751 T
+/Times-Roman 100 t Tf
+(, available in ) 2530 1751 T
+() 2562 1751 T
+/Courier 100 t Tf
+($TET_ROOT/bin) 3068 1751 T
+/Times-Roman 100 t Tf
+(, can be used.) 3848 1751 T
+(Usage of the script is:) 622 1882 T
+() 654 1882 T
+/Courier 83 t Tf
+($ $TET_ROOT/bin/testCDE -tet_root $CDEBUILDDIR/cde-test \134) 676 1986
+T
+(       { -suite <test suite name> | -list <file with list of suites> })
+676 2089 T
+(       [ -scen <test scenario> ] \134) 676 2192 T
+(       [ -engr <email address to notify> ] \134) 676 2295 T
+(       [ -record ]) 676 2398 T
+(       [ -res <directory path name> ]) 676 2501 T
+/Times-Roman 100 t Tf
+(The -record option is used to execute relevant suites in record mode \050to generate golden data\051.)
+622 2694 T
+() 667 2694 T
+(The -res option is used to specify an alternative results directory \050)
+622 2821 T
+/Courier 100 t Tf
+($HOME/test-results) 3265 2821 T
+/Times-Roman 100 t Tf
+( is) 4345 2821 T
+() 4358 2821 T
+(the default\051. When the scenario is not specified using the -scen option, the REGRESSION)
+622 2952 T
+() 622 2952 T
+(scenario is selected by default.) 622 3079 T
+(In addition to performing the configuration setup, test execution, and configuration cleanup)
+622 3273 T
+(steps \050listed above for the first method of running tests\051, this script utilizes setup scripts \050if any\051)
+622 3400 T
+() 723 3400 T
+(found under ) 622 3527 T
+/Courier 100 t Tf
+($TET_ROOT/setup/<test suite name>) 1132 3527 T
+/Times-Roman 100 t Tf
+(. These setup scripts automate) 3112 3527 T
+(additional manual setup required for some test suites.) 622 3658 T
+/Times-Bold 100 t Tf
+(Note: ) 676 3839 T
+/Times-Roman 100 t Tf
+(In many cases these setup scripts use site specific data such as user-ids. Make sure the)
+933 3839 T
+(site-specific data is updated before test execution.) 676 3966 T
+/Times-Bold 116 t Tf
+(Manual Regression Tests) 622 4262 T
+() 706 4262 T
+/Times-Roman 100 t Tf
+(The following CDE components have predefined manual tests, with instructions located in the)
+622 4460 T
+() 622 4460 T
+(specified files. Some suites have a number of instruction files, indicated below with appropriate)
+622 4587 T
+(wildcards.) 622 4714 T
+/Courier 83 t Tf
+( Suite             |  File \050relative to $CDEBUILDDIR/\051) 676 4818
+T
+( --------------------------------------------------------------------)
+676 4921 T
+( DefConfig         | cde-test/comp_suites/DefConfig/manual/*_tests) 676
+5024 T
+( DtSvc/DtMsgLog    | cde-test/comp_suites/DtSvc/DtMsgLog/manual/manualtests)
+676 5127 T
+() 708 5127 T
+( DtSvc/DtWsm       | cde-test/comp_suites/DtSvc/DtWsm/manual/ws*) 676 5230
+T
+( DtSvc/dragdrop    | cde-test/comp_suites/DtSvc/dragdrop/manual/assertion_misctest)
+676 5333 T
+( DtSvc/visuals     | cde-test/comp_suites/DtSvc/visuals/manual/icons) 676
+5436 T
+( RunTime           | cde-test/comp_suites/RunTime/manual/runtime*.des)
+676 5539 T
+( dtaction          | cde-test/comp_suites/dtaction/manual/test.checklist)
+676 5642 T
+( dtappgather       | cde-test/comp_suites/dtappgather/manual/README) 676
+5745 T
+() 685 5745 T
+( dtbuilder         | cde-test/comp_suites/dtbuilder/manual/Instructions)
+676 5848 T
+() 676 5848 T
+gr gr sp
+/pWd 612 d /pHt 792 d
+{db /Duplex t d /Tumble f d /Orientation 0 /HWResolution [ 600 600 ] d/PageSize [pWd pHt]d de spd}stp p
+gs 0 Cs 100 sml gs
+gr gs
+0 6367 606 83 R
+4495 6367 606 83 R
+0 6449 5101 152 R
+cl n
+1 g
+0 6367 605 82 R fl
+4495 6367 605 82 R fl
+0 6449 5100 151 R fl
+gr gs
+1 g
+1291 6367 3118 82 R fl
+605 6367 686 82 R fl
+4409 6367 86 82 R fl
+gr gs
+0 0 5101 606 R
+0 605 606 5318 R
+4495 605 606 5318 R
+0 5922 5101 446 R
+cl n
+1 g
+0 0 5100 605 R fl
+0 605 605 5317 R fl
+4495 605 605 5317 R fl
+0 5922 5100 445 R fl
+gr gs
+1 g
+605 605 3890 5317 R fl
+4409 6367 86 82 R fl
+gr gs
+0 6367 606 83 R
+4495 6367 606 83 R
+0 6449 5101 152 R
+cl n
+0.8 g
+1 w
+0 lc
+0 lj
+[ ] 0 ds
+0 0 m 5099 0 l gs 0 g
+[] 0 ds st gr st
+0 1 m 0 6599 l gs 0 g
+[] 0 ds st gr st
+0.6 g
+1 w
+1 6599 m 5099 6599 l gs 0 g
+[] 0 ds st gr st
+5099 1 m 5099 6599 l gs 0 g
+[] 0 ds st gr st
+gr gs
+0 g
+/Times-Roman 66 t Tf
+(CDE Release Notes) 608 6432 T
+1 g
+605 6367 686 1 R fl
+605 6448 686 1 R fl
+605 6367 1 82 R fl
+1290 6367 1 82 R fl
+0 g
+(21) 4412 6432 T
+1 g
+4409 6367 86 1 R fl
+4409 6448 86 1 R fl
+4409 6367 1 82 R fl
+4494 6367 1 82 R fl
+gr gs
+605 605 3890 5317 R
+cl n
+0 g
+/Courier 83 t Tf
+( dtcalc            | cde-test/comp_suites/dtcalc/manual/*/*) 676 670 T
+() 676 670 T
+( dtcm              | cde-test/comp_suites/dtcm/manual/assertions.all) 676
+773 T
+( dtfp              | cde-test/comp_suites/dtwm/fptests/manual/*/README)
+676 876 T
+( dthelp            | cde-test/comp_suites/dthelp/manual/DtHelpManualTest.mif)
+676 979 T
+( dthelp/CREInline  | cde-test/comp_suites/dthelp/manual/CREInline/README)
+676 1082 T
+( dtinfo            | cde-test/comp_suites/dtinfo/manual/README) 676 1185
+T
+( dtlp              | cde-test/comp_suites/dtlp/manual/README) 676 1288
+T
+( dtmail            | cde-test/comp_suites/dtmail/manual/Assertions.manual)
+676 1391 T
+( dtpad             | cde-test/comp_suites/dtpad/manual/dtpad.manual_checklist)
+676 1494 T
+( dtterm            | cde-test/comp_suites/dtterm/manual/manual) 676 1597
+T
+( dtwm              | cde-test/comp_suites/dtwm/wmtests/manual/*/README)
+676 1700 T
+/Times-Roman 100 t Tf
+(For each suite, simply following the instructions listed in the specified files. Any suite-specific)
+622 1893 T
+() 654 1893 T
+(instructional information is listed below.) 622 2020 T
+(dthelp) 622 2214 T
+(This file is in FrameMaker format.) 676 2408 T
+(dtmail) 622 2602 T
+(There are two other files in the same directory called ) 676 2796 T
+() 792 2796 T
+/Courier 100 t Tf
+(Mailer.assertion) 2809 2796 T
+/Times-Roman 100 t Tf
+( and ) 3769 2796 T
+/Courier 100 t Tf
+(README) 3963 2796 T
+/Times-Roman 100 t Tf
+(,) 4323 2796 T
+(the latter of which explains which file should be used.) 676 2927 T
+() 676 2927 T
+/Times-Bold 116 t Tf
+(Motif Quality Assurance Test Suite Testing) 622 3173 T
+/Times-Roman 100 t Tf
+(Most of the information required to build and run the CDE/QATS can be found in the following)
+622 3371 T
+(files:) 622 3498 T
+/Courier 83 t Tf
+($CDEBUILDDIR/motif/tests/docs/Output/draft/ps/chap1) 676 3602 T
+() 791 3602 T
+($CDEBUILDDIR/motif/tests/docs/Output/draft/ps/chap2) 676 3705 T
+() 721 3705 T
+($CDEBUILDDIR/motif/tests/docs/Output/draft/ps/chap3) 676 3808 T
+() 760 3808 T
+($CDEBUILDDIR/motif/tests/docs/Output/draft/ps/chap4) 676 3911 T
+() 793 3911 T
+($CDEBUILDDIR/motif/tests/environment/README) 676 4014 T
+() 793 4014 T
+/Times-Roman 100 t Tf
+(While these documents describe the original OSF test suite, they are applicable with some)
+622 4207 T
+(minor modifications to CDE.) 622 4334 T
+() 731 4334 T
+/Symbol 100 f Tf
+(\267\240) 622 4472 T
+/Times-Roman 100 t Tf
+(The following environment variables need to be set for running in playback mode:)
+668 4461 T
+/Symbol 100 f Tf
+(\267\240) 668 4585 T
+/Times-Bold 100 t Tf
+(VFA_TOP) 714 4578 T
+() 716 4578 T
+/Times-Roman 100 t Tf
+( to the top of the Motif tree \050) 1175 4578 T
+() 1175 4578 T
+/Courier 100 t Tf
+($CDEBUILDDIR/motif) 2318 4578 T
+/Times-Roman 100 t Tf
+(\051) 3398 4578 T
+/Symbol 100 f Tf
+(\267\240) 668 4731 T
+/Times-Bold 100 t Tf
+(VISUAL_PATH) 714 4724 T
+() 831 4724 T
+/Times-Roman 100 t Tf
+( to the parent of the directories containing the recorded images) 1420
+4724 T
+/Symbol 100 f Tf
+(\267\240) 668 4877 T
+/Times-Bold 100 t Tf
+(VFA_RESULTS_DIR) 714 4870 T
+() 714 4870 T
+/Times-Roman 100 t Tf
+( to the parent of the output directories \050the directories must exist\051)
+1659 4870 T
+/Symbol 100 f Tf
+(\267\240) 622 5023 T
+/Times-Roman 100 t Tf
+(You can run the automated test suite from the top of the test tree by invoking the RUN_auto)
+668 5012 T
+() 668 5012 T
+(located in ) 668 5125 T
+() 668 5125 T
+/Courier 100 t Tf
+($CDEBUILDDIR/motif/tests) 1084 5125 T
+/Times-Roman 100 t Tf
+(.) 2524 5125 T
+/Symbol 100 f Tf
+(\267\240) 622 5253 T
+/Times-Roman 100 t Tf
+(When recording, the ) 668 5246 T
+/Times-Bold 100 t Tf
+(VISUAL_PATH) 1510 5246 T
+() 1510 5246 T
+/Times-Roman 100 t Tf
+( and ) 2216 5246 T
+/Times-Bold 100 t Tf
+(VFA_RESULTS_DIR) 2410 5246 T
+() 2410 5246 T
+/Times-Roman 100 t Tf
+( should be the same.) 3355 5246 T
+(The QATS must be run on a display controlled by a Motif 2.x version of )
+622 5459 T
+() 691 5459 T
+/Times-Bold 100 t Tf
+(mwm) 3547 5459 T
+() 3547 5459 T
+/Times-Roman 100 t Tf
+(, not ) 3785 5459 T
+/Times-Bold 100 t Tf
+(dtwm) 3988 5459 T
+/Times-Roman 100 t Tf
+(. A) 4232 5459 T
+() 4232 5459 T
+(suitable version of ) 622 5590 T
+/Times-Bold 100 t Tf
+(mwm) 1385 5590 T
+() 1421 5590 T
+/Times-Roman 100 t Tf
+( is built in the ) 1623 5590 T
+/Courier 100 t Tf
+($CDEBUILDDIR/motif/clients/mwm) 2199 5590 T
+/Times-Roman 100 t Tf
+( directory.) 3999 5590 T
+() 4065 5590 T
+/Times-Bold 116 t Tf
+(Interplatform Tests) 622 5840 T
+() 622 5840 T
+gr gr sp
+/pWd 612 d /pHt 792 d
+{db /Duplex t d /Tumble f d /Orientation 0 /HWResolution [ 600 600 ] d/PageSize [pWd pHt]d de spd}stp p
+gs 0 Cs 100 sml gs
+gr gs
+0 6367 606 83 R
+4495 6367 606 83 R
+0 6449 5101 152 R
+cl n
+1 g
+0 6367 605 82 R fl
+4495 6367 605 82 R fl
+0 6449 5100 151 R fl
+gr gs
+1 g
+1291 6367 3118 82 R fl
+605 6367 686 82 R fl
+4409 6367 86 82 R fl
+gr gs
+0 0 5101 606 R
+0 605 606 5318 R
+4495 605 606 5318 R
+0 5922 5101 446 R
+cl n
+1 g
+0 0 5100 605 R fl
+0 605 605 5317 R fl
+4495 605 605 5317 R fl
+0 5922 5100 445 R fl
+gr gs
+1 g
+605 605 3890 5317 R fl
+4409 6367 86 82 R fl
+gr gs
+0 6367 606 83 R
+4495 6367 606 83 R
+0 6449 5101 152 R
+cl n
+0.8 g
+1 w
+0 lc
+0 lj
+[ ] 0 ds
+0 0 m 5099 0 l gs 0 g
+[] 0 ds st gr st
+0 1 m 0 6599 l gs 0 g
+[] 0 ds st gr st
+0.6 g
+1 w
+1 6599 m 5099 6599 l gs 0 g
+[] 0 ds st gr st
+5099 1 m 5099 6599 l gs 0 g
+[] 0 ds st gr st
+gr gs
+0 g
+/Times-Roman 66 t Tf
+(CDE Release Notes) 608 6432 T
+1 g
+605 6367 686 1 R fl
+605 6448 686 1 R fl
+605 6367 1 82 R fl
+1290 6367 1 82 R fl
+0 g
+(22) 4412 6432 T
+1 g
+4409 6367 86 1 R fl
+4409 6448 86 1 R fl
+4409 6367 1 82 R fl
+4494 6367 1 82 R fl
+gr gs
+605 605 3890 5317 R
+cl n
+0 g
+/Times-Roman 100 t Tf
+(Interplatform testing is the testing of CDE application functionality between platforms. The)
+622 693 T
+(following CDE capabilities are tested:) 622 820 T
+/Symbol 100 f Tf
+(\267\240) 622 958 T
+/Times-Roman 100 t Tf
+(The ability of CDE applications to execute and interoperate in distributed fashion across a)
+668 947 T
+() 668 947 T
+(network of heterogeneous, interoperating hosts.) 668 1060 T
+() 778 1060 T
+/Symbol 100 f Tf
+(\267\240) 622 1184 T
+/Times-Roman 100 t Tf
+(The ability of CDE users to execute the desktop on different heterogenous platforms in a)
+668 1173 T
+(consistent manner.) 668 1286 T
+(The general process used in the Interplatform tests is to startup CDE components from a client)
+622 1466 T
+(host and a daemon host \050on the same display\051 using ) 622 1597 T
+() 622 1597 T
+/Times-Bold 100 t Tf
+(dtaction) 2709 1597 T
+/Times-Roman 100 t Tf
+( before running actual tests) 3059 1597 T
+(involving drag and drop on/between these components.) 622 1724 T
+(The tests are located in ) 622 1918 T
+/Courier 100 t Tf
+($CDEBUILDDIR/cde-test/sys_suites/Intop/) 1567 1918 T
+() 1567 1918 T
+/Times-Roman 100 t Tf
+(: The) 3907 1918 T
+(information required to initially configure the test systems before a test run is in the following)
+622 2049 T
+(files in the same directory:) 622 2176 T
+/Symbol 100 f Tf
+(\267\240) 622 2314 T
+/Courier 100 t Tf
+(HowToRun.interplatform) 668 2294 T
+/Symbol 100 f Tf
+(\267\240) 622 2460 T
+/Courier 100 t Tf
+(README.interplatform) 668 2440 T
+/Symbol 100 f Tf
+(\267\240) 622 2606 T
+/Courier 100 t Tf
+(README) 668 2586 T
+/Times-Roman 100 t Tf
+(The information in these files includes steps to configure the test machines to use the dtspc)
+622 2808 T
+(protocol, which is required by the tests.) 622 2935 T
+(Once the test machines have been correctly setup, the tests can be executed in a similar fashion)
+622 3129 T
+(to other CDE tests described earlier in this document, with the exception that these tests are)
+622 3256 T
+(located in the ) 622 3383 T
+() 622 3383 T
+/Courier 100 t Tf
+(sys_suites) 1185 3383 T
+/Times-Roman 100 t Tf
+( rather than the ) 1785 3383 T
+/Courier 100 t Tf
+(comp_suites) 2411 3383 T
+() 2521 3383 T
+/Times-Roman 100 t Tf
+( sub-directory and so the) 3071 3383 T
+(pathnames will have to be correspondingly altered.) 622 3514 T
+/Times-Bold 149 t Tf
+(Test Execution Results) 622 3791 T
+/Times-Roman 100 t Tf
+(The following sections give details on the results obtained with the various test protocols on the)
+622 3996 T
+(reference platforms.) 622 4123 T
+/Times-Bold 116 t Tf
+(Automated Regression Tests) 622 4369 T
+/Times-Roman 100 t Tf
+(The following is a partial list of expected results for the six tested platforms. The first number)
+622 4567 T
+(indicates the number of passes for the given test suite and the second number indicates the total)
+622 4694 T
+(number of assertions that were run in that test suite.) 622 4821 T
+(Note that not all results are available on all platforms. Defect reports have been submitted as)
+622 5015 T
+() 654 5015 T
+(appropriate for non-passes.) 622 5142 T
+() 721 5142 T
+/Courier 83 t Tf
+(Suite                   IBM      Sun      Digital  HP       Fujitsu  Unixware)
+676 5246 T
+(=============================================================================)
+676 5349 T
+(CREPrinting             3/7      5/7      3/7      6/7      3/7      6/7      )
+676 5452 T
+(ConfigDB                0/1      1/1      0/1      1/1      1/1      0/1      )
+676 5555 T
+(DefConfig               3/5      3/16     3/23     3/4      2/28     3/4      )
+676 5658 T
+(Desktop                          55/57    55/57    55/57    56/57    38/51    )
+676 5761 T
+(DevEnv                  1/2      1/3      0/0      2/3      0/0      1/3      )
+676 5864 T
+gr gr sp
+/pWd 612 d /pHt 792 d
+{db /Duplex t d /Tumble f d /Orientation 0 /HWResolution [ 600 600 ] d/PageSize [pWd pHt]d de spd}stp p
+gs 0 Cs 100 sml gs
+gr gs
+0 6367 606 83 R
+4495 6367 606 83 R
+0 6449 5101 152 R
+cl n
+1 g
+0 6367 605 82 R fl
+4495 6367 605 82 R fl
+0 6449 5100 151 R fl
+gr gs
+1 g
+1291 6367 3118 82 R fl
+605 6367 686 82 R fl
+4409 6367 86 82 R fl
+gr gs
+0 0 5101 606 R
+0 605 606 5318 R
+4495 605 606 5318 R
+0 5922 5101 446 R
+cl n
+1 g
+0 0 5100 605 R fl
+0 605 605 5317 R fl
+4495 605 605 5317 R fl
+0 5922 5100 445 R fl
+gr gs
+1 g
+605 605 3890 5317 R fl
+4409 6367 86 82 R fl
+gr gs
+0 6367 606 83 R
+4495 6367 606 83 R
+0 6449 5101 152 R
+cl n
+0.8 g
+1 w
+0 lc
+0 lj
+[ ] 0 ds
+0 0 m 5099 0 l gs 0 g
+[] 0 ds st gr st
+0 1 m 0 6599 l gs 0 g
+[] 0 ds st gr st
+0.6 g
+1 w
+1 6599 m 5099 6599 l gs 0 g
+[] 0 ds st gr st
+5099 1 m 5099 6599 l gs 0 g
+[] 0 ds st gr st
+gr gs
+0 g
+/Times-Roman 66 t Tf
+(CDE Release Notes) 608 6432 T
+1 g
+605 6367 686 1 R fl
+605 6448 686 1 R fl
+605 6367 1 82 R fl
+1290 6367 1 82 R fl
+0 g
+(23) 4412 6432 T
+1 g
+4409 6367 86 1 R fl
+4409 6448 86 1 R fl
+4409 6367 1 82 R fl
+4494 6367 1 82 R fl
+gr gs
+605 605 3890 5317 R
+cl n
+0 g
+/Courier 83 t Tf
+(DtAction                97/109   63/77    70/96    103/125  101/117  43/47    )
+676 670 T
+(DtClientPrinting_dtcm            13/26    13/26    13/26    14/26    13/26    )
+676 773 T
+(DtClientPrinting_dtmail          21/28    21/28    20/24    22/25    17/26    )
+676 876 T
+(DtClientPrinting_dtpad           12/14    11/14    12/14    9/10     12/14    )
+676 979 T
+(DtEditor                32/35    41/42    35/42    41/42    17/40    30/35    )
+676 1082 T
+(DtHelp                  0/0               0/0                        0/6      )
+676 1185 T
+(DtInit                  8/8      8/8      8/8      8/8      8/8      8/8      )
+676 1288 T
+(DtMrm                   8/8      8/33                                2/6      )
+676 1391 T
+(DtMsgLog                29/37    27/37    26/35    28/37    31/37    27/35    )
+676 1494 T
+(DtSvc                   12/23    0/43     0/2                        0/43     )
+676 1597 T
+(DtTerm                  1/3      0/7                                 0/8      )
+676 1700 T
+(DtWidget                98/113   113/113  113/113  113/113  98/113   113/113  )
+676 1803 T
+(DtWsm                   9/9      9/9      8/11     9/9      9/9      9/11     )
+676 1906 T
+(Intop                   158/233                                               )
+676 2009 T
+(Dtinfo printing                  19/32    18/32    19/32    3/12     18/27    )
+676 2112 T
+(XmMT                    142/148  138/141  49/50                      83/85    )
+676 2215 T
+(XmPrinting              15/22    16/22    17/22    17/22    7/7      17/22    )
+676 2318 T
+(dragdrop                8/18     12/18    8/18     18/18    11/18    14/18    )
+676 2421 T
+(dtGui                   17/34    21/34    15/21    22/34    0/15     0/21     )
+676 2524 T
+(dtHelpApi               5/104    92/104   67/75    76/104   0/59     77/104   )
+676 2627 T
+(dtHelpCanvas            1/2      2/2      1/2      1/2      2/2      2/2      )
+676 2730 T
+(dtHelpGui               52/100   103/126  27/100   58/126   57/82    51/126   )
+676 2833 T
+(dtPdm                   1/3      1/5      3/5      1/5      3/5      0/5      )
+676 2936 T
+(dtaction                34/36    35/36    33/36    31/36    33/36    32/36    )
+676 3039 T
+(dtappgather             0/4      4/4      4/4      4/4      3/4      3/4      )
+676 3142 T
+(dtappintegrate          16/17    16/17    13/17    17/17    7/17     17/17    )
+676 3245 T
+(dtcalc                  1/2      1/3      1/2      1/2      1/3      1/3      )
+676 3348 T
+(dtcm                                               2/126                      )
+676 3451 T
+(dtdatatyping            21/27    21/27    18/27    21/27    21/27    18/27    )
+676 3554 T
+(dtdocbook               0/3      2/4      2/4      2/4      2/4      2/4      )
+676 3657 T
+(dtfile                  10/228   82/229   30/123   8/226    9/218    6/77     )
+676 3760 T
+(dtfp                    17/23    20/21    2/21     10/21    7/13     15/20    )
+676 3863 T
+(dthelpgen               18/23    20/23    20/23    0/19     19/23    13/19    )
+676 3966 T
+(dthelpprint             2/10     2/10     6/10     0/10     7/10     7/10     )
+676 4069 T
+(dthelptag               9/9      4/9      9/9      4/9      7/9      9/9      )
+676 4172 T
+(dthelpview              20/42    29/42    42/42    33/42    32/42    33/42    )
+676 4275 T
+(dtksh                   43/302   285/302  288/302  285/302  297/302  200/302  )
+676 4378 T
+(dtlp                    13/14    13/14    12/14    13/14    12/14    12/14    )
+676 4481 T
+(dtmail                  60/78    61/82    61/77    67/78    71/78    65/77    )
+676 4584 T
+(dtpad                   128/190  141/157  139/157  141/157  128/145  138/153  )
+676 4687 T
+(dtscreen                49/55    53/55    31/51    53/55    49/55    49/55    )
+676 4790 T
+(dtsearchpath            26/26    26/26    24/26    26/26    0/26     24/26    )
+676 4893 T
+(dtsession               39/40    39/40    41/41    40/41    40/41    41/41    )
+676 4996 T
+(dtspcd                  11/11                      11/11    0/0      9/11     )
+676 5099 T
+(dtsr                    8/12     7/12     8/12     8/12     8/12     7/12     )
+676 5202 T
+(dtstyle                 10/10    10/10    10/10    10/10    0/9      8/10     )
+676 5305 T
+(dtterm                  131/178  63/85    130/181  133/182  100/137  65/82    )
+676 5408 T
+(dttypes                 0/7      0/7      0/0      0/7      0/0      0/7      )
+676 5511 T
+(dtwm                    129/129  122/129  118/138  124/133  90/108   94/101   )
+676 5614 T
+(mtDtHelp                6/6      0/6      0/0                        0/6      )
+676 5717 T
+(mtDtMrm                 69/74    14/67    0/0                        6/58     )
+676 5820 T
+gr gr sp
+/pWd 612 d /pHt 792 d
+{db /Duplex t d /Tumble f d /Orientation 0 /HWResolution [ 600 600 ] d/PageSize [pWd pHt]d de spd}stp p
+gs 0 Cs 100 sml gs
+gr gs
+0 6367 606 83 R
+4495 6367 606 83 R
+0 6449 5101 152 R
+cl n
+1 g
+0 6367 605 82 R fl
+4495 6367 605 82 R fl
+0 6449 5100 151 R fl
+gr gs
+1 g
+1291 6367 3118 82 R fl
+605 6367 686 82 R fl
+4409 6367 86 82 R fl
+gr gs
+0 0 5101 606 R
+0 605 606 5318 R
+4495 605 606 5318 R
+0 5922 5101 446 R
+cl n
+1 g
+0 0 5100 605 R fl
+0 605 605 5317 R fl
+4495 605 605 5317 R fl
+0 5922 5100 445 R fl
+gr gs
+1 g
+605 605 3890 5317 R fl
+4409 6367 86 82 R fl
+gr gs
+0 6367 606 83 R
+4495 6367 606 83 R
+0 6449 5101 152 R
+cl n
+0.8 g
+1 w
+0 lc
+0 lj
+[ ] 0 ds
+0 0 m 5099 0 l gs 0 g
+[] 0 ds st gr st
+0 1 m 0 6599 l gs 0 g
+[] 0 ds st gr st
+0.6 g
+1 w
+1 6599 m 5099 6599 l gs 0 g
+[] 0 ds st gr st
+5099 1 m 5099 6599 l gs 0 g
+[] 0 ds st gr st
+gr gs
+0 g
+/Times-Roman 66 t Tf
+(CDE Release Notes) 608 6432 T
+1 g
+605 6367 686 1 R fl
+605 6448 686 1 R fl
+605 6367 1 82 R fl
+1290 6367 1 82 R fl
+0 g
+(24) 4412 6432 T
+1 g
+4409 6367 86 1 R fl
+4409 6448 86 1 R fl
+4409 6367 1 82 R fl
+4494 6367 1 82 R fl
+gr gs
+605 605 3890 5317 R
+cl n
+0 g
+/Courier 83 t Tf
+(mtDtSvc                 38/43    0/43     0/2                        0/43     )
+676 670 T
+(mtDtTerm                14/19    0/13     0/0                        0/12     )
+676 773 T
+(mtDtWidget              101/107  6/152    6/8                        3/147    )
+676 876 T
+(mttt                             1/2                                          )
+676 979 T
+(sm-wm                            1/6               0/0                        )
+676 1082 T
+(tt                      2/30     27/34    4/31     22/31    4/32     10/13    )
+676 1185 T
+(xpApi                   77/86    75/86    73/86    77/93    73/86    71/82    )
+676 1288 T
+(xpConfig                18/18    8/8      15/18    5/30     15/18    15/18    )
+676 1391 T
+(xpddx                   87/250   187/221  143/243  245/252  209/227  60/252   )
+676 1494 T
+(-----------------------------------------------------------------------------)
+676 1597 T
+/Times-Roman 100 t Tf
+(Because QC/Replay was not available on AIX 4.2, the QC/Replay tests were not run on the)
+622 1790 T
+() 671 1790 T
+(IBM platform.) 622 1917 T
+/Times-Bold 116 t Tf
+(Motif QATS tests) 622 2163 T
+/Times-Roman 100 t Tf
+(The Motif/QATS automated tests and Motif window manager were built as described in an)
+622 2361 T
+(earlier section.) 622 2488 T
+(Automated tests were built and run on all reference platforms. Sun, HP, and SGI displays were)
+622 2682 T
+(used for displaying tests. Motif window managers built on different platforms were used to)
+622 2809 T
+(manage the windows while running the tests. The complete QATS is executed on Sun, HPUX,)
+622 2936 T
+() 654 2936 T
+(and SGI platforms while only the new tests or suites were executed on the remaining reference)
+622 3063 T
+(platforms.) 622 3190 T
+/Times-Bold 116 t Tf
+(Missing Keys WARNINGS) 622 3436 T
+/Times-Roman 100 t Tf
+(The keys on the keyboards used on the HP and Sun platforms are insufficient for the needs of)
+622 3634 T
+(the tests \050keys missing from the keyboard that were expected to be mapped for the tests\051,)
+622 3761 T
+(causing "AUTOWARNING" errors in every one of the tests. The standard report generation)
+622 3888 T
+(scripts detect these benign errors and flag the entire test as an error. Since these were not)
+622 4015 T
+(considered to be fatal errors \050after inspection of the test code\051, the analysis scripts filtered out)
+622 4142 T
+(AUTOWARNING errors that came from missing keys at the very beginning of a test run.)
+622 4269 T
+() 654 4269 T
+/Times-Bold 116 t Tf
+(New Test Clients) 622 4515 T
+/Times-Roman 100 t Tf
+(Several new test clients were added to the QATS during this release, some automated and some)
+622 4713 T
+(manual. Test clients were added to the following directories:) 622 4840
+T
+(Automated:) 622 5034 T
+/Courier 83 t Tf
+(tests/Toolkit/Buttons) 730 5138 T
+(tests/uil/widgets) 730 5241 T
+/Times-Roman 100 t Tf
+(Manual:) 622 5434 T
+() 667 5434 T
+/Courier 83 t Tf
+(tests/Manual/DtWidgets) 730 5538 T
+/Times-Roman 100 t Tf
+(Golden data was generated where necessary.) 622 5731 T
+gr gr sp
+/pWd 612 d /pHt 792 d
+{db /Duplex t d /Tumble f d /Orientation 0 /HWResolution [ 600 600 ] d/PageSize [pWd pHt]d de spd}stp p
+gs 0 Cs 100 sml gs
+gr gs
+0 6367 606 83 R
+4495 6367 606 83 R
+0 6449 5101 152 R
+cl n
+1 g
+0 6367 605 82 R fl
+4495 6367 605 82 R fl
+0 6449 5100 151 R fl
+gr gs
+1 g
+1291 6367 3118 82 R fl
+605 6367 686 82 R fl
+4409 6367 86 82 R fl
+gr gs
+0 0 5101 606 R
+0 605 606 5318 R
+4495 605 606 5318 R
+0 5922 5101 446 R
+cl n
+1 g
+0 0 5100 605 R fl
+0 605 605 5317 R fl
+4495 605 605 5317 R fl
+0 5922 5100 445 R fl
+gr gs
+1 g
+605 605 3890 5317 R fl
+4409 6367 86 82 R fl
+gr gs
+0 6367 606 83 R
+4495 6367 606 83 R
+0 6449 5101 152 R
+cl n
+0.8 g
+1 w
+0 lc
+0 lj
+[ ] 0 ds
+0 0 m 5099 0 l gs 0 g
+[] 0 ds st gr st
+0 1 m 0 6599 l gs 0 g
+[] 0 ds st gr st
+0.6 g
+1 w
+1 6599 m 5099 6599 l gs 0 g
+[] 0 ds st gr st
+5099 1 m 5099 6599 l gs 0 g
+[] 0 ds st gr st
+gr gs
+0 g
+/Times-Roman 66 t Tf
+(CDE Release Notes) 608 6432 T
+1 g
+605 6367 686 1 R fl
+605 6448 686 1 R fl
+605 6367 1 82 R fl
+1290 6367 1 82 R fl
+0 g
+(25) 4412 6432 T
+1 g
+4409 6367 86 1 R fl
+4409 6448 86 1 R fl
+4409 6367 1 82 R fl
+4494 6367 1 82 R fl
+gr gs
+605 605 3890 5317 R
+cl n
+0 g
+/Times-Bold 116 t Tf
+(Golden Data Generation) 622 712 T
+/Times-Roman 100 t Tf
+(Some new QATS test suites, which do not have any previous recordings, were run in record)
+622 910 T
+(mode to generate golden data. The recordings were added to this release. These new automated)
+622 1037 T
+(test suites are:) 622 1164 T
+/Courier 83 t Tf
+(tests/Toolkit/ComboBox) 676 1268 T
+(tests/Toolkit/SpinBox) 676 1371 T
+(tests/Toolkit/Notebook) 676 1474 T
+(tests/Toolkit/IconVC) 676 1577 T
+/Times-Bold 116 t Tf
+(Test Results) 622 1822 T
+/Times-Roman 100 t Tf
+(The results were compared with the recordings made against Motif 2.0. The results are mostly)
+622 2020 T
+(consistent with the previous runs carried out at OSF. There are failures due to both QATS)
+622 2147 T
+(problems and Motif defects. All the errors/failures reported during the run are due to known)
+622 2274 T
+(problems in both QATS and Motif code and have defects already opened against them. Also,)
+622 2401 T
+(the results were consistent across all the platforms on which the tests were executed.)
+622 2528 T
+gr gr sp
+/pWd 612 d /pHt 792 d
+{db /Duplex t d /Tumble f d /Orientation 0 /HWResolution [ 600 600 ] d/PageSize [pWd pHt]d de spd}stp p
+gs 0 Cs 100 sml gs
+gr gs
+0 6367 606 83 R
+4495 6367 606 83 R
+0 6449 5101 152 R
+cl n
+1 g
+0 6367 605 82 R fl
+4495 6367 605 82 R fl
+0 6449 5100 151 R fl
+gr gs
+1 g
+1291 6367 3158 82 R fl
+605 6367 686 82 R fl
+4449 6367 46 82 R fl
+gr gs
+0 0 5101 606 R
+0 605 606 5318 R
+4495 605 606 5318 R
+0 5922 5101 446 R
+cl n
+1 g
+0 0 5100 605 R fl
+0 605 605 5317 R fl
+4495 605 605 5317 R fl
+0 5922 5100 445 R fl
+gr gs
+1 g
+605 605 3890 5317 R fl
+gr gs
+1291 6367 3119 83 R
+4455 6367 41 83 R
+cl n
+1 g
+4455 6367 40 82 R fl
+gr gs
+1 g
+4409 6367 86 82 R fl
+4409 6367 86 82 R fl
+gr gs
+0 6367 606 83 R
+4495 6367 606 83 R
+0 6449 5101 152 R
+cl n
+0.8 g
+1 w
+0 lc
+0 lj
+[ ] 0 ds
+0 0 m 5099 0 l gs 0 g
+[] 0 ds st gr st
+0 1 m 0 6599 l gs 0 g
+[] 0 ds st gr st
+0.6 g
+1 w
+1 6599 m 5099 6599 l gs 0 g
+[] 0 ds st gr st
+5099 1 m 5099 6599 l gs 0 g
+[] 0 ds st gr st
+gr gs
+0 g
+/Times-Roman 66 t Tf
+(CDE Release Notes) 608 6432 T
+1 g
+605 6367 686 1 R fl
+605 6448 686 1 R fl
+605 6367 1 82 R fl
+1290 6367 1 82 R fl
+0 g
+(26) 4412 6432 T
+1 g
+4409 6367 86 1 R fl
+4409 6448 86 1 R fl
+4409 6367 1 82 R fl
+4494 6367 1 82 R fl
+gr gs
+605 605 3890 5317 R
+cl n
+0 g
+/Times-Bold 149 t Tf
+(Compatibility) 622 861 T
+(OSF/Motif 2.0 Compatibility) 622 1149 T
+() 622 1149 T
+/Times-Roman 100 t Tf
+(Compatibility with CDE/Motif 1.2 was given great emphasis in this release, even at the expense)
+622 1354 T
+(of compatibility with OSF/Motif 2.0. Some OSF/Motif 2.0 applications may experience)
+622 1481 T
+() 622 1481 T
+(problems because of the following changes:) 622 1608 T
+/Symbol 100 f Tf
+(\267\240) 622 1746 T
+/Times-Roman 100 t Tf
+(The ) 668 1739 T
+/Times-Bold 100 t Tf
+(XmCSText) 848 1739 T
+/Times-Roman 100 t Tf
+( widget has been withdrawn, as have those APIs added to OSF/Motif 2.0)
+1325 1739 T
+(solely to support it.) 668 1852 T
+/Symbol 100 f Tf
+(\267\240) 622 1976 T
+/Times-Roman 100 t Tf
+(Mrm support for word-size independent ) 668 1965 T
+/Courier 100 t Tf
+(.uid) 2313 1965 T
+/Times-Roman 100 t Tf
+( files has been removed. Existing ) 2553 1965 T
+/Courier 100 t Tf
+(.uid) 3904 1965 T
+/Times-Roman 100 t Tf
+( files) 4144 1965 T
+(compiled with Motif 2.0 ) 668 2086 T
+/Times-Bold 100 t Tf
+(uil) 1671 2086 T
+() 1785 2086 T
+/Times-Roman 100 t Tf
+( may not be readable. As in OSF/Motif 1.2, ) 1783 2086 T
+() 1883 2086 T
+/Courier 100 t Tf
+(.uid) 3543 2086 T
+/Times-Roman 100 t Tf
+( files are portable) 3783 2086 T
+() 3860 2086 T
+(only between machines with the same word size.) 668 2203 T
+/Symbol 100 f Tf
+(\267\240) 622 2327 T
+/Times-Roman 100 t Tf
+(New ) 668 2320 T
+/Times-Bold 100 t Tf
+(XmComboBox) 881 2320 T
+/Times-Roman 100 t Tf
+( ) 1514 2320 T
+/Times-Bold 100 t Tf
+(XmNpositionMode) 1539 2320 T
+() 1654 2320 T
+/Times-Roman 100 t Tf
+( and ) 2350 2320 T
+/Times-Bold 100 t Tf
+(XmSpinBox) 2544 2320 T
+/Times-Roman 100 t Tf
+( ) 3062 2320 T
+/Times-Bold 100 t Tf
+(XmNpositionType) 3087 2320 T
+() 3119 2320 T
+/Times-Roman 100 t Tf
+( resources) 3871 2320 T
+(default to incompatible index values, and should be forced by all applications using these)
+668 2433 T
+(widgets. ) 668 2550 T
+/Times-Bold 100 t Tf
+(XmONE_BASED) 1029 2550 T
+() 1040 2550 T
+/Times-Roman 100 t Tf
+( is recommended for ) 1785 2550 T
+/Times-Bold 100 t Tf
+(XmComboBox) 2633 2550 T
+/Times-Roman 100 t Tf
+( widgets because it lets) 3266 2550 T
+(applications distinguish between new values entered in the text field and the first item in the)
+668 2663 T
+() 668 2663 T
+(list.) 668 2776 T
+/Symbol 100 f Tf
+(\267\240) 622 2900 T
+/Times-Roman 100 t Tf
+(The ) 668 2893 T
+/Times-Bold 100 t Tf
+(_XmStrings) 848 2893 T
+/Times-Roman 100 t Tf
+( array has, on some machines, been split into multiple sub-arrays with the)
+1359 2893 T
+(same techniques used by libXt. This preserves compatibility with Motif 1.2 and permits future)
+668 3006 T
+(expansion.) 668 3119 T
+/Symbol 100 f Tf
+(\267\240) 622 3243 T
+/Times-Roman 100 t Tf
+(In Motif 2.0 there were two distinct ) 668 3236 T
+/Times-Bold 100 t Tf
+(XmREPLACE) 2116 3236 T
+/Times-Roman 100 t Tf
+( constants, with different values. The ) 2749 3236 T
+() 2851 3236 T
+/Times-Bold 100 t Tf
+(XmMergeMode) 668 3353 T
+() 668 3353 T
+/Times-Roman 100 t Tf
+( constant has been renamed ) 1343 3353 T
+() 1444 3353 T
+/Times-Bold 100 t Tf
+(XmMERGE_REPLACE) 2465 3353 T
+() 2470 3353 T
+/Times-Roman 100 t Tf
+(. This is a source) 3526 3353 T
+(compatibility issue; binary compatibility is unaffected.) 668 3466 T
+/Symbol 100 f Tf
+(\267\240) 622 3590 T
+/Times-Roman 100 t Tf
+(A variety of changes to visual appearance may be noticed. See the ) 668
+3579 T
+(Motif 2.1.0 Release Notes) 3336 3579 T
+(for details.) 668 3692 T
+/Times-Bold 149 t Tf
+(CDE Binary Compatability) 622 3955 T
+/Times-Roman 100 t Tf
+(Binary Compatibility testing was carried out using products provided by SunSoft and IBM. In)
+622 4160 T
+() 654 4160 T
+(addition, binary executables built locally for the CDE 1.0.10 release were tested. Some)
+622 4287 T
+() 622 4287 T
+(incompatibilities were found, as described below. Some problems were found that were specific)
+622 4414 T
+(to the tested application and which we do not believe indicate a compatibility problem with the)
+622 4541 T
+() 654 4541 T
+(reference system.) 622 4668 T
+/Symbol 100 f Tf
+(\267\240) 622 4806 T
+/Times-Roman 100 t Tf
+(As with previous major releases of Motif, binary compatibility is not guaranteed for)
+668 4795 T
+(application widgets that subclass Motif widgets without using ) 668 4912
+T
+/Times-Bold 100 t Tf
+(XmResolvePartOffsets) 3168 4912 T
+/Times-Roman 100 t Tf
+( to) 4137 4912 T
+() 4238 4912 T
+(access instance fields. Subclasses that use ) 668 5029 T
+/Times-Bold 100 t Tf
+(XmResolvePartOffsets) 2362 5029 T
+/Times-Roman 100 t Tf
+( \050or ) 3331 5029 T
+/Times-Bold 100 t Tf
+(XmResolveAllPartOffsets) 668 5146 T
+() 765 5146 T
+/Times-Roman 100 t Tf
+(\051 should be unaffected.) 1765 5146 T
+() 1880 5146 T
+/Symbol 100 f Tf
+(\267\240) 622 5270 T
+/Times-Roman 100 t Tf
+(On AIX, the CDE shared libraries are linked with the reentrant C library, )
+668 5259 T
+/Courier 100 t Tf
+(libc_r.a) 3609 5259 T
+/Times-Roman 100 t Tf
+(. Legacy) 4089 5259 T
+(applications that reference the non-reentrant C library, ) 668 5376 T
+/Courier 100 t Tf
+(libc.a) 2885 5376 T
+/Times-Roman 100 t Tf
+(, will experience difficulties) 3245 5376 T
+(because two different copies of data are being referenced. The solution recommended by IBM)
+668 5493 T
+(is to build and install a complete set of CDE libraries with the non-reentrant compiler, giving)
+668 5606 T
+() 765 5606 T
+(them the standard names, and another complete reentrant set, giving them names with the )
+668 5719 T
+/Courier 100 t Tf
+(_r) 4268 5719 T
+/Times-Roman 100 t Tf
+(suffix \050for example, ) 668 5836 T
+/Courier 100 t Tf
+(libXm_r.a) 1488 5836 T
+/Times-Roman 100 t Tf
+(\051. The default configuration files build only the reentrant set.) 2028
+5836 T
+gr gr sp
+/pWd 612 d /pHt 792 d
+{db /Duplex t d /Tumble f d /Orientation 0 /HWResolution [ 600 600 ] d/PageSize [pWd pHt]d de spd}stp p
+gs 0 Cs 100 sml gs
+gr gs
+0 6367 606 83 R
+4495 6367 606 83 R
+0 6449 5101 152 R
+cl n
+1 g
+0 6367 605 82 R fl
+4495 6367 605 82 R fl
+0 6449 5100 151 R fl
+gr gs
+1 g
+1291 6367 3118 82 R fl
+605 6367 686 82 R fl
+4409 6367 86 82 R fl
+gr gs
+0 0 5101 606 R
+0 605 606 5318 R
+4495 605 606 5318 R
+0 5922 5101 446 R
+cl n
+1 g
+0 0 5100 605 R fl
+0 605 605 5317 R fl
+4495 605 605 5317 R fl
+0 5922 5100 445 R fl
+gr gs
+1 g
+605 605 3890 5317 R fl
+4409 6367 86 82 R fl
+gr gs
+0 6367 606 83 R
+4495 6367 606 83 R
+0 6449 5101 152 R
+cl n
+0.8 g
+1 w
+0 lc
+0 lj
+[ ] 0 ds
+0 0 m 5099 0 l gs 0 g
+[] 0 ds st gr st
+0 1 m 0 6599 l gs 0 g
+[] 0 ds st gr st
+0.6 g
+1 w
+1 6599 m 5099 6599 l gs 0 g
+[] 0 ds st gr st
+5099 1 m 5099 6599 l gs 0 g
+[] 0 ds st gr st
+gr gs
+0 g
+/Times-Roman 66 t Tf
+(CDE Release Notes) 608 6432 T
+1 g
+605 6367 686 1 R fl
+605 6448 686 1 R fl
+605 6367 1 82 R fl
+1290 6367 1 82 R fl
+0 g
+(27) 4412 6432 T
+1 g
+4409 6367 86 1 R fl
+4409 6448 86 1 R fl
+4409 6367 1 82 R fl
+4494 6367 1 82 R fl
+gr gs
+605 605 3890 5317 R
+cl n
+0 g
+/Symbol 100 f Tf
+(\267\240) 622 704 T
+/Times-Roman 100 t Tf
+(On AIX, the sample application ) 668 697 T
+() 783 697 T
+/Times-Bold 100 t Tf
+(llenhcapture) 1966 697 T
+/Times-Roman 100 t Tf
+( did not execute. We believe this is due to an) 2505 697 T
+(incompatibility in standard AIX libraries.) 668 810 T
+/Symbol 100 f Tf
+(\267\240) 622 934 T
+/Times-Roman 100 t Tf
+(On AIX, the sample application ) 668 927 T
+() 595 927 T
+/Times-Bold 100 t Tf
+(SDE) 1966 927 T
+() 2039 927 T
+/Times-Roman 100 t Tf
+( did not execute, as it calls the undocumented and) 2161 927 T
+(withdrawn function ) 668 1040 T
+() 732 1040 T
+/Courier 100 t Tf
+(XmStringLoadQueryFont) 1478 1040 T
+/Times-Roman 100 t Tf
+(.) 2738 1040 T
+/Symbol 100 f Tf
+(\267\240) 622 1168 T
+/Times-Roman 100 t Tf
+(The DtHelp library has a dependency on the math library, ) 668 1157 T
+/Courier 100 t Tf
+(libm.a) 2999 1157 T
+/Times-Roman 100 t Tf
+(. On SVR4 systems, any) 3359 1157 T
+(legacy application that does not already reference the math library must be re-linked.)
+668 1274 T
+(We did not use Digital or Fujitsu platforms in the BC testing since they were not reference)
+622 1454 T
+() 723 1454 T
+(platforms for the CDE1.0.10 release.) 622 1581 T
+gr gr sp
+/pWd 612 d /pHt 792 d
+{db /Duplex t d /Tumble f d /Orientation 0 /HWResolution [ 600 600 ] d/PageSize [pWd pHt]d de spd}stp p
+gs 0 Cs 100 sml gs
+gr gs
+0 6367 606 83 R
+4495 6367 606 83 R
+0 6449 5101 152 R
+cl n
+1 g
+0 6367 605 82 R fl
+4495 6367 605 82 R fl
+0 6449 5100 151 R fl
+gr gs
+1 g
+1291 6367 3158 82 R fl
+605 6367 686 82 R fl
+4449 6367 46 82 R fl
+gr gs
+0 0 5101 606 R
+0 605 606 5318 R
+4495 605 606 5318 R
+0 5922 5101 446 R
+cl n
+1 g
+0 0 5100 605 R fl
+0 605 605 5317 R fl
+4495 605 605 5317 R fl
+0 5922 5100 445 R fl
+gr gs
+1 g
+605 605 3890 5317 R fl
+gr gs
+1291 6367 3119 83 R
+4455 6367 41 83 R
+cl n
+1 g
+4455 6367 40 82 R fl
+gr gs
+1 g
+4409 6367 86 82 R fl
+4409 6367 86 82 R fl
+gr gs
+0 6367 606 83 R
+4495 6367 606 83 R
+0 6449 5101 152 R
+cl n
+0.8 g
+1 w
+0 lc
+0 lj
+[ ] 0 ds
+0 0 m 5099 0 l gs 0 g
+[] 0 ds st gr st
+0 1 m 0 6599 l gs 0 g
+[] 0 ds st gr st
+0.6 g
+1 w
+1 6599 m 5099 6599 l gs 0 g
+[] 0 ds st gr st
+5099 1 m 5099 6599 l gs 0 g
+[] 0 ds st gr st
+gr gs
+0 g
+/Times-Roman 66 t Tf
+(CDE Release Notes) 608 6432 T
+1 g
+605 6367 686 1 R fl
+605 6448 686 1 R fl
+605 6367 1 82 R fl
+1290 6367 1 82 R fl
+0 g
+(28) 4412 6432 T
+1 g
+4409 6367 86 1 R fl
+4409 6448 86 1 R fl
+4409 6367 1 82 R fl
+4494 6367 1 82 R fl
+gr gs
+605 605 3890 5317 R
+cl n
+0 g
+/Times-Bold 149 t Tf
+(Pluggable Authentication Module \050PAM\051) 622 861 T
+/Times-Roman 100 t Tf
+(Pluggable Authentication Module \050PAM\051 code supplied by SunSoft is included with the CDE)
+622 1066 T
+() 654 1066 T
+(source. The source is located in the ) 622 1193 T
+/Courier 100 t Tf
+($CDESOURCEDIR/cde/lib/pam) 2052 1193 T
+/Times-Roman 100 t Tf
+( subdirectory.) 3552 1193 T
+(Documentation, manual pages, examples, and a selection of modules \050back-end code for some)
+622 1324 T
+(common authentication technologies\051 are provided in addition to the front-end pam library.)
+622 1451 T
+(PAM is built and installed automatically on Sun platforms. The ) 622 1649
+T
+() 622 1649 T
+/Times-Bold 100 t Tf
+(dtlogin) 3186 1649 T
+() 3186 1649 T
+/Times-Roman 100 t Tf
+( source contains) 3487 1649 T
+(conditionally compiled code to invoke the PAM front-end API.) 622 1776
+T
+gr gr sp
+/pWd 612 d /pHt 792 d
+{db /Duplex t d /Tumble f d /Orientation 0 /HWResolution [ 600 600 ] d/PageSize [pWd pHt]d de spd}stp p
+gs 0 Cs 100 sml gs
+gr gs
+0 6367 606 83 R
+4495 6367 606 83 R
+0 6449 5101 152 R
+cl n
+1 g
+0 6367 605 82 R fl
+4495 6367 605 82 R fl
+0 6449 5100 151 R fl
+gr gs
+1 g
+1291 6367 3158 82 R fl
+605 6367 686 82 R fl
+4449 6367 46 82 R fl
+gr gs
+0 0 5101 606 R
+0 605 606 5318 R
+4495 605 606 5318 R
+0 5922 5101 446 R
+cl n
+1 g
+0 0 5100 605 R fl
+0 605 605 5317 R fl
+4495 605 605 5317 R fl
+0 5922 5100 445 R fl
+gr gs
+1 g
+605 605 3890 5317 R fl
+gr gs
+1291 6367 3119 83 R
+4455 6367 41 83 R
+cl n
+1 g
+4455 6367 40 82 R fl
+gr gs
+1 g
+4409 6367 86 82 R fl
+4409 6367 86 82 R fl
+gr gs
+0 6367 606 83 R
+4495 6367 606 83 R
+0 6449 5101 152 R
+cl n
+0.8 g
+1 w
+0 lc
+0 lj
+[ ] 0 ds
+0 0 m 5099 0 l gs 0 g
+[] 0 ds st gr st
+0 1 m 0 6599 l gs 0 g
+[] 0 ds st gr st
+0.6 g
+1 w
+1 6599 m 5099 6599 l gs 0 g
+[] 0 ds st gr st
+5099 1 m 5099 6599 l gs 0 g
+[] 0 ds st gr st
+gr gs
+0 g
+/Times-Roman 66 t Tf
+(CDE Release Notes) 608 6432 T
+1 g
+605 6367 686 1 R fl
+605 6448 686 1 R fl
+605 6367 1 82 R fl
+1290 6367 1 82 R fl
+0 g
+(29) 4412 6432 T
+1 g
+4409 6367 86 1 R fl
+4409 6448 86 1 R fl
+4409 6367 1 82 R fl
+4494 6367 1 82 R fl
+gr gs
+605 605 3890 5317 R
+cl n
+0 g
+/Times-Bold 149 t Tf
+(New Functionality) 622 861 T
+/Times-Roman 100 t Tf
+(The following paragraphs summarize the new functionality of this release relative to CDE1.0.)
+622 1066 T
+(Please refer to the specific on-line documentation for more detailed information.)
+622 1193 T
+/Times-Bold 149 t Tf
+(Printing) 622 1470 T
+/Times-Roman 100 t Tf
+(Starting with this release ) 622 1679 T
+() 719 1679 T
+/Times-Bold 100 t Tf
+(dtpad) 1638 1679 T
+/Times-Roman 100 t Tf
+(, ) 1889 1679 T
+/Times-Bold 100 t Tf
+(dtmail) 1939 1679 T
+/Times-Roman 100 t Tf
+( and ) 2217 1679 T
+/Times-Bold 100 t Tf
+(dtcm) 2411 1679 T
+/Times-Roman 100 t Tf
+( are using the X protocol based print server.) 2627 1679 T
+(This print server produces output in three formats: PCL, Postscript and Raster.)
+622 1806 T
+() 622 1806 T
+/Times-Bold 149 t Tf
+(Thread-Safe Libraries) 622 2083 T
+/Times-Roman 100 t Tf
+(The following libraries are thread-safe enabled: Xm, tt, DtHelp, DtSvc, DtTerm, DtWidget, and)
+622 2288 T
+(Mrm. This means that the libraries themselves are thread safe and a multithreaded application)
+622 2415 T
+(need not do explicit locking when accessing these libraries. This is supported only for platforms)
+622 2542 T
+(that support multithreaded programming.) 622 2669 T
+() 731 2669 T
+/Times-Bold 149 t Tf
+(X11R6.2) 622 2946 T
+() 726 2946 T
+/Times-Roman 100 t Tf
+(This release is based on X11R6.2, which includes additional support for Vertical Writing, User)
+622 3151 T
+(-Defined Characters \050UDCs\051 and the X Print Service.) 622 3278 T
+() 730 3278 T
+(In addition, session management using the X11R6 XSMP is provided and supported by )
+622 3472 T
+/Times-Bold 100 t Tf
+(dtsession) 622 3603 T
+/Times-Roman 100 t Tf
+( and ) 1006 3603 T
+/Times-Bold 100 t Tf
+(dtwm) 1200 3603 T
+/Times-Roman 100 t Tf
+(.) 1444 3603 T
+/Times-Bold 149 t Tf
+(Internationalization) 622 3880 T
+/Times-Roman 100 t Tf
+(There are several new features that support the internationalization of CDE and developing)
+622 4085 T
+(applications for international markets. CDE now supports the On-The-Spot input method for )
+622 4212 T
+/Times-Bold 100 t Tf
+(Xm) 622 4343 T
+/Times-Roman 100 t Tf
+( and ) 777 4343 T
+/Times-Bold 100 t Tf
+(dtterm) 971 4343 T
+/Times-Roman 100 t Tf
+(. Based on the session start-up locale, users can select their preferred Input)
+1264 4343 T
+(method server either at startup time \050using the new Input method server selection and launch\051 or)
+622 4470 T
+(during the session \050via ) 622 4601 T
+/Times-Bold 100 t Tf
+(dtstyle) 1549 4601 T
+() 1549 4601 T
+/Times-Roman 100 t Tf
+(\051. They can also select their preferred input method style \050Off)
+1832 4601 T
+() 1896 4601 T
+(-The-Spot, On-The-Spot, etc.\051 via ) 622 4732 T
+/Times-Bold 100 t Tf
+(dtstyle) 2092 4732 T
+() 2092 4732 T
+/Times-Roman 100 t Tf
+(. Users may use and define their own fonts with the) 2375 4732 T
+() 2489 4732 T
+(User Definable Character \050UDC\051 feature. Also, Vertical Writing is now supported.)
+622 4859 T
+/Times-Bold 149 t Tf
+(On-Line Information Access) 622 5136 T
+/Times-Roman 100 t Tf
+(This release provides a standard set of online documentation that covers the various CDE and)
+622 5341 T
+(Motif components. The CDE desktop includes the Information Manager which can be used to)
+622 5468 T
+() 727 5468 T
+(access, read, and search through this documentation.) 622 5595 T
+(The Information Manager replaces the the Help Manager on the Front Panel. Additional)
+622 5789 T
+gr gr sp
+/pWd 612 d /pHt 792 d
+{db /Duplex t d /Tumble f d /Orientation 0 /HWResolution [ 600 600 ] d/PageSize [pWd pHt]d de spd}stp p
+gs 0 Cs 100 sml gs
+gr gs
+0 6367 606 83 R
+4495 6367 606 83 R
+0 6449 5101 152 R
+cl n
+1 g
+0 6367 605 82 R fl
+4495 6367 605 82 R fl
+0 6449 5100 151 R fl
+gr gs
+1 g
+1291 6367 3118 82 R fl
+605 6367 686 82 R fl
+4409 6367 86 82 R fl
+gr gs
+0 0 5101 606 R
+0 605 606 5318 R
+4495 605 606 5318 R
+0 5922 5101 446 R
+cl n
+1 g
+0 0 5100 605 R fl
+0 605 605 5317 R fl
+4495 605 605 5317 R fl
+0 5922 5100 445 R fl
+gr gs
+1 g
+605 605 3890 5317 R fl
+4409 6367 86 82 R fl
+gr gs
+0 6367 606 83 R
+4495 6367 606 83 R
+0 6449 5101 152 R
+cl n
+0.8 g
+1 w
+0 lc
+0 lj
+[ ] 0 ds
+0 0 m 5099 0 l gs 0 g
+[] 0 ds st gr st
+0 1 m 0 6599 l gs 0 g
+[] 0 ds st gr st
+0.6 g
+1 w
+1 6599 m 5099 6599 l gs 0 g
+[] 0 ds st gr st
+5099 1 m 5099 6599 l gs 0 g
+[] 0 ds st gr st
+gr gs
+0 g
+/Times-Roman 66 t Tf
+(CDE Release Notes) 608 6432 T
+1 g
+605 6367 686 1 R fl
+605 6448 686 1 R fl
+605 6367 1 82 R fl
+1290 6367 1 82 R fl
+0 g
+(30) 4412 6432 T
+1 g
+4409 6367 86 1 R fl
+4409 6448 86 1 R fl
+4409 6367 1 82 R fl
+4494 6367 1 82 R fl
+gr gs
+605 605 3890 5317 R
+cl n
+0 g
+/Times-Roman 100 t Tf
+(information about using Information Manager is available on-line in the )
+622 693 T
+(CDE: Information) 3547 693 T
+(Manager User's Guide) 622 824 T
+( and in the ) 1530 824 T
+/Times-Bold 100 t Tf
+(dtinfo) 1974 824 T
+/Times-Roman 100 t Tf
+( man page. Information about authoring on-line) 2230 824 T
+(documentation for use with the Information Manager is also available on-line in the )
+622 951 T
+(CDE:) 4015 951 T
+(Information System Author's and Programmer's Guide) 622 1082 T
+( and in the ) 2833 1082 T
+/Times-Bold 100 t Tf
+(dtinfogen) 3277 1082 T
+/Times-Roman 100 t Tf
+( man page.) 3683 1082 T
+(The Information Manager includes a general purpose text search and retrieval system. This)
+622 1276 T
+(functionality is provided by the DtSearch library and by the dtsr* programs.  Applications can)
+622 1403 T
+(also directly access on-line information using the DtInfo Database Engine API provided by the)
+622 1530 T
+(DtMmdb library.) 622 1657 T
+() 640 1657 T
+/Times-Bold 149 t Tf
+(Tests) 622 1934 T
+/Times-Roman 100 t Tf
+(Several new test suites have been added for this release.) 622 2139 T
+/Symbol 100 f Tf
+(\267\240) 622 2277 T
+/Times-Roman 100 t Tf
+(Threadsafe Motif, Tooltalk and Dt libraries) 668 2266 T
+() 778 2266 T
+/Symbol 100 f Tf
+(\267\240) 622 2423 T
+/Times-Roman 100 t Tf
+(Postscript and PCL ddx) 668 2412 T
+/Symbol 100 f Tf
+(\267\240) 622 2569 T
+/Times-Roman 100 t Tf
+(Printing: API, PDM, XmPrinting, C/RE, and Dt clients) 668 2558 T
+/Symbol 100 f Tf
+(\267\240) 622 2715 T
+/Times-Roman 100 t Tf
+(Dtinfo Desktop and Printing \050QC/Replay based\051) 668 2704 T
+/Symbol 100 f Tf
+(\267\240) 622 2861 T
+/Times-Roman 100 t Tf
+(DtSearch) 668 2850 T
+/Symbol 100 f Tf
+(\267\240) 622 3007 T
+/Times-Roman 100 t Tf
+(Error Message API) 668 2996 T
+/Symbol 100 f Tf
+(\267\240) 622 3153 T
+/Times-Roman 100 t Tf
+(X11R6 session management) 668 3142 T
+/Symbol 100 f Tf
+(\267\240) 622 3299 T
+/Times-Roman 100 t Tf
+(Standalone Window Manager \050QC/Replay based\051) 668 3288 T
+() 784 3288 T
+/Symbol 100 f Tf
+(\267\240) 622 3445 T
+/Times-Roman 100 t Tf
+(Motif 2.0 changes \050Motif QATS\051) 668 3434 T
+/Symbol 100 f Tf
+(\267\240) 622 3591 T
+/Times-Roman 100 t Tf
+(dtimsstart) 668 3580 T
+/Symbol 100 f Tf
+(\267\240) 622 3737 T
+/Times-Roman 100 t Tf
+(I18N features \050Vertical Writing, UDCs, on-the-spot IM\051) 668 3726
+T
+/Symbol 100 f Tf
+(\267\240) 622 3883 T
+/Times-Roman 100 t Tf
+(SDL Converter) 668 3872 T
+gr gr sp
+/pWd 612 d /pHt 792 d
+{db /Duplex t d /Tumble f d /Orientation 0 /HWResolution [ 600 600 ] d/PageSize [pWd pHt]d de spd}stp p
+gs 0 Cs 100 sml gs
+gr gs
+0 6367 606 83 R
+4495 6367 606 83 R
+0 6449 5101 152 R
+cl n
+1 g
+0 6367 605 82 R fl
+4495 6367 605 82 R fl
+0 6449 5100 151 R fl
+gr gs
+1 g
+1291 6367 3158 82 R fl
+605 6367 686 82 R fl
+4449 6367 46 82 R fl
+gr gs
+0 0 5101 606 R
+0 605 606 5318 R
+4495 605 606 5318 R
+0 5922 5101 446 R
+cl n
+1 g
+0 0 5100 605 R fl
+0 605 605 5317 R fl
+4495 605 605 5317 R fl
+0 5922 5100 445 R fl
+gr gs
+1 g
+605 605 3890 5317 R fl
+gr gs
+1291 6367 3119 83 R
+4455 6367 41 83 R
+cl n
+1 g
+4455 6367 40 82 R fl
+gr gs
+1 g
+4409 6367 86 82 R fl
+4409 6367 86 82 R fl
+gr gs
+0 6367 606 83 R
+4495 6367 606 83 R
+0 6449 5101 152 R
+cl n
+0.8 g
+1 w
+0 lc
+0 lj
+[ ] 0 ds
+0 0 m 5099 0 l gs 0 g
+[] 0 ds st gr st
+0 1 m 0 6599 l gs 0 g
+[] 0 ds st gr st
+0.6 g
+1 w
+1 6599 m 5099 6599 l gs 0 g
+[] 0 ds st gr st
+5099 1 m 5099 6599 l gs 0 g
+[] 0 ds st gr st
+gr gs
+0 g
+/Times-Roman 66 t Tf
+(CDE Release Notes) 608 6432 T
+1 g
+605 6367 686 1 R fl
+605 6448 686 1 R fl
+605 6367 1 82 R fl
+1290 6367 1 82 R fl
+0 g
+(31) 4412 6432 T
+1 g
+4409 6367 86 1 R fl
+4409 6448 86 1 R fl
+4409 6367 1 82 R fl
+4494 6367 1 82 R fl
+gr gs
+605 605 3890 5317 R
+cl n
+0 g
+/Times-Bold 149 t Tf
+(Reference Platforms) 622 861 T
+() 622 861 T
+/Times-Roman 100 t Tf
+(This chapter defines the reference platforms for this release. A reference platform is a system)
+622 1066 T
+() 654 1066 T
+(configuration on which the shipped CDE source has been verified to build and execute.)
+622 1193 T
+/Times-Bold 149 t Tf
+(Digital) 622 1470 T
+() 623 1470 T
+/Times-Roman 100 t Tf
+(Component) 622 1675 T
+/Courier 83 t Tf
+(Model                   AlphaStation 200) 790 1779 T
+(RAM                     64 MB) 790 1882 T
+(Graphics                1280x1024 8 plane) 790 1985 T
+/Times-Roman 100 t Tf
+(Software) 622 2178 T
+/Courier 83 t Tf
+(OS Version              Digital UNIX V4.0 \050Rev. 386\051) 790 2282 T
+(Patches to OS           none) 790 2452 T
+(Network Communications  NIS, NFS) 790 2622 T
+(Compiler\050s\051             DEC C V5.2-023) 790 2792 T
+(                        DEC C++ V5.4-006) 790 2895 T
+/Times-Bold 149 t Tf
+(Fujitsu) 622 3171 T
+() 733 3171 T
+/Times-Roman 100 t Tf
+(Component) 622 3376 T
+/Courier 83 t Tf
+(Model                   DS/90 7000) 790 3480 T
+(RAM                     64 MB) 790 3583 T
+(Graphics                1280x1024 8 plane \050CF1 or CF3 display) 790 3686
+T
+(                        adapter required\051) 790 3789 T
+/Times-Roman 100 t Tf
+(Software) 622 3982 T
+/Courier 83 t Tf
+(OS Version              UXP/DS V20L10) 790 4086 T
+(Patches to OS           PTF Y96021) 790 4256 T
+(                        and see below) 790 4359 T
+(Network Communications  NIS, NFS) 790 4529 T
+(Compiler\050s\051             C Development Set \050CDS\051:) 790 4699
+T
+(                        CC Driver UXP/DS R2.6) 790 4802 T
+(                        C++ V12L20) 790 4905 T
+(X Window System Server  UXP/DS X11R6 XServer V10L10) 790 5075 T
+() 717 5075 T
+/Times-Roman 100 t Tf
+(Comments) 622 5268 T
+(The following patches are currently available directly from Fujitsu:) 706
+5462 T
+(OS patch PEF TY12846 is required to repair some RPC problems. This fix will be included)
+790 5589 T
+() 790 5589 T
+(in V20L10 Y96111.) 790 5716 T
+(OS patch TY13126 may be required to fix some problems in building the release using)
+790 5843 T
+() 889 5843 T
+gr gr sp
+/pWd 612 d /pHt 792 d
+{db /Duplex t d /Tumble f d /Orientation 0 /HWResolution [ 600 600 ] d/PageSize [pWd pHt]d de spd}stp p
+gs 0 Cs 100 sml gs
+gr gs
+0 6367 606 83 R
+4495 6367 606 83 R
+0 6449 5101 152 R
+cl n
+1 g
+0 6367 605 82 R fl
+4495 6367 605 82 R fl
+0 6449 5100 151 R fl
+gr gs
+1 g
+1291 6367 3118 82 R fl
+605 6367 686 82 R fl
+4409 6367 86 82 R fl
+gr gs
+0 0 5101 606 R
+0 605 606 5318 R
+4495 605 606 5318 R
+0 5922 5101 446 R
+cl n
+1 g
+0 0 5100 605 R fl
+0 605 605 5317 R fl
+4495 605 605 5317 R fl
+0 5922 5100 445 R fl
+gr gs
+1 g
+605 605 3890 5317 R fl
+4409 6367 86 82 R fl
+gr gs
+0 6367 606 83 R
+4495 6367 606 83 R
+0 6449 5101 152 R
+cl n
+0.8 g
+1 w
+0 lc
+0 lj
+[ ] 0 ds
+0 0 m 5099 0 l gs 0 g
+[] 0 ds st gr st
+0 1 m 0 6599 l gs 0 g
+[] 0 ds st gr st
+0.6 g
+1 w
+1 6599 m 5099 6599 l gs 0 g
+[] 0 ds st gr st
+5099 1 m 5099 6599 l gs 0 g
+[] 0 ds st gr st
+gr gs
+0 g
+/Times-Roman 66 t Tf
+(CDE Release Notes) 608 6432 T
+1 g
+605 6367 686 1 R fl
+605 6448 686 1 R fl
+605 6367 1 82 R fl
+1290 6367 1 82 R fl
+0 g
+(32) 4412 6432 T
+1 g
+4409 6367 86 1 R fl
+4409 6448 86 1 R fl
+4409 6367 1 82 R fl
+4494 6367 1 82 R fl
+gr gs
+605 605 3890 5317 R
+cl n
+0 g
+/Times-Roman 100 t Tf
+(NFS.) 790 693 T
+(The listen daemon needs a non-public patch to prevent a core dump when )
+790 824 T
+() 891 824 T
+/Times-Bold 100 t Tf
+(rpc.ttdbserverd) 3782 824 T
+() 3890 824 T
+/Times-Roman 100 t Tf
+(is started.) 790 951 T
+() 887 951 T
+(A non-public patch is needed to solve an NFS locking problem seen at the X Consortium)
+790 1078 T
+(while attempting to perform CDE builds.) 790 1205 T
+() 906 1205 T
+(A non-public patch must be applied to the C++ compilation utilities \050package name)
+790 1332 T
+(uxpcplus\051.) 790 1459 T
+(A non-public patch is needed to enter Japanese text; this lets the input server )
+790 1590 T
+/Times-Bold 100 t Tf
+(xfeoak) 3897 1590 T
+/Times-Roman 100 t Tf
+( run) 4180 1590 T
+(using X11R6.) 790 1717 T
+/Times-Bold 149 t Tf
+(Hewlett Packard) 622 1994 T
+() 689 1994 T
+/Times-Roman 100 t Tf
+(Component) 622 2199 T
+/Courier 83 t Tf
+(Model                   HP9000/7xx) 790 2303 T
+(RAM                     64 MB) 790 2406 T
+(Graphics                Artist \050HP208LC1280\051 1280x1024 8 plane) 790
+2509 T
+/Times-Roman 100 t Tf
+(Software) 622 2702 T
+/Courier 83 t Tf
+(OS Version              HP-UX 10.01) 790 2806 T
+() 790 2806 T
+(Patches to OS           see below) 790 2909 T
+(Network Communications  NIS, NFS) 790 3012 T
+(Compiler\050s\051             HP C/ANSI C Developer's Bundle for HP-UX 10.0)
+790 3182 T
+(                        HP C++ Compiler Bundle) 790 3285 T
+(                        Patches PHSS_9138 \050compiler\051 and PHSS_8831 \050ld\051)
+790 3388 T
+() 888 3388 T
+(Additional components   see below) 790 3491 T
+/Times-Roman 100 t Tf
+(Comments) 622 3684 T
+(The following additional patches should be applied. Patches listed are those available as of 11)
+706 3878 T
+() 738 3878 T
+(December, 1996. All HP patches are subject to being superseded from time to time; all new)
+706 4005 T
+(patches list the old ones that they replace. Current replacement patches may be substituted for)
+706 4132 T
+() 776 4132 T
+(those listed below.) 706 4259 T
+() 738 4259 T
+(The platforms at the X Consortium have some patches that have been superseded by those)
+706 4453 T
+(listed.) 706 4580 T
+() 807 4580 T
+(Some of these patches are needed for correct operation of ClearCase release 2.0.3. They may)
+706 4774 T
+() 706 4774 T
+(not be necessary to build and run CDE from a locally installed tree.) 706
+4901 T
+/Courier 83 t Tf
+(PHCO_5803       fsck_hfs\0501M\051 patch for possible corruption) 790 5005
+T
+(PHKL_5812       Fix panic when opening some fix partition disks) 790 5108
+T
+() 790 5108 T
+(PHKL_9114       fix for process hangs in semop\0502\051) 790 5211 T
+(PHKL_9404       JFS, LVM, UFS, pstat cumulative patch) 790 5314 T
+(PHNE_6419       cumulative STREAMS patch) 790 5417 T
+(PHNE_6527       LAN products Patch) 790 5520 T
+(PHNE_7514       cumulative telnet\0501\051 patch) 790 5623 T
+(PHNE_7553       telnetd\0501M\051 cumulative patch) 790 5726 T
+(PHNE_8114       NFS/NIS Runtime cumulative patch) 790 5829 T
+gr gr sp
+/pWd 612 d /pHt 792 d
+{db /Duplex t d /Tumble f d /Orientation 0 /HWResolution [ 600 600 ] d/PageSize [pWd pHt]d de spd}stp p
+gs 0 Cs 100 sml gs
+gr gs
+0 6367 606 83 R
+4495 6367 606 83 R
+0 6449 5101 152 R
+cl n
+1 g
+0 6367 605 82 R fl
+4495 6367 605 82 R fl
+0 6449 5100 151 R fl
+gr gs
+1 g
+1291 6367 3118 82 R fl
+605 6367 686 82 R fl
+4409 6367 86 82 R fl
+gr gs
+0 0 5101 606 R
+0 605 606 5318 R
+4495 605 606 5318 R
+0 5922 5101 446 R
+cl n
+1 g
+0 0 5100 605 R fl
+0 605 605 5317 R fl
+4495 605 605 5317 R fl
+0 5922 5100 445 R fl
+gr gs
+1 g
+605 605 3890 5317 R fl
+4409 6367 86 82 R fl
+gr gs
+0 6367 606 83 R
+4495 6367 606 83 R
+0 6449 5101 152 R
+cl n
+0.8 g
+1 w
+0 lc
+0 lj
+[ ] 0 ds
+0 0 m 5099 0 l gs 0 g
+[] 0 ds st gr st
+0 1 m 0 6599 l gs 0 g
+[] 0 ds st gr st
+0.6 g
+1 w
+1 6599 m 5099 6599 l gs 0 g
+[] 0 ds st gr st
+5099 1 m 5099 6599 l gs 0 g
+[] 0 ds st gr st
+gr gs
+0 g
+/Times-Roman 66 t Tf
+(CDE Release Notes) 608 6432 T
+1 g
+605 6367 686 1 R fl
+605 6448 686 1 R fl
+605 6367 1 82 R fl
+1290 6367 1 82 R fl
+0 g
+(33) 4412 6432 T
+1 g
+4409 6367 86 1 R fl
+4409 6448 86 1 R fl
+4409 6367 1 82 R fl
+4494 6367 1 82 R fl
+gr gs
+605 605 3890 5317 R
+cl n
+0 g
+/Courier 83 t Tf
+(PHNE_8168       ARPA Transport cumulative patch) 790 670 T
+() 790 670 T
+(PHNE_9089       Cumulative Mux and Pty Patch) 790 773 T
+/Times-Roman 100 t Tf
+(The kernel parameter ) 706 966 T
+/Times-Italic 100 t Tf
+(maxuprc) 1583 966 T
+() 1583 966 T
+/Times-Roman 100 t Tf
+( \050maximum processes per user\051 should be increased from its) 1932
+966 T
+(default value of 50 to 100.) 706 1093 T
+() 801 1093 T
+/Times-Bold 149 t Tf
+(IBM) 622 1370 T
+() 622 1370 T
+/Times-Roman 100 t Tf
+(Component) 622 1575 T
+/Courier 83 t Tf
+(Model                   RS/6000) 790 1679 T
+() 822 1679 T
+(RAM                     64 MB) 790 1782 T
+(graphics                1280x1024 8 plane) 790 1885 T
+/Times-Roman 100 t Tf
+(Software) 622 2078 T
+/Courier 83 t Tf
+(OS Version              AIX 4.2) 790 2182 T
+() 889 2182 T
+(Patches to OS           PTF 446072) 790 2285 T
+(Network Communications  NIS, NFS) 790 2388 T
+(Compiler\050s\051             xlC.C     3.1.4.0) 790 2558 T
+(                        xlC.C++.* 3.1.4.0 \050several filesets\051) 790
+2661 T
+(                        xlC.cpp   3.1.4.0) 790 2764 T
+(                        xlC.rts   3.1.4.0) 790 2867 T
+(Additional components   See below) 790 2970 T
+/Times-Roman 100 t Tf
+(Comments) 622 3163 T
+(Version 3.1.4.0 of the C Programming Information filesets should also be installed.)
+706 3357 T
+() 817 3357 T
+(All platforms require the standard X11 filesets. At the X Consortium, we have found that the)
+706 3551 T
+(original standard installs did not have the following required fileset:)
+706 3678 T
+() 816 3678 T
+/Courier 83 t Tf
+(X11.samples.lib.Core) 790 3782 T
+/Times-Roman 100 t Tf
+(Performance testing using a software technique of removing memory requires the fileset)
+706 3975 T
+(perfagent.tools \050Performance Analysis and Control Commands\051, version 2.1.3.0, to enable)
+706 4102 T
+() 825 4102 T
+(artificial memory degradation.) 706 4229 T
+/Times-Bold 149 t Tf
+(Novell) 622 4506 T
+/Times-Roman 100 t Tf
+(Component) 622 4711 T
+/Courier 83 t Tf
+(Model                   Intel 486/Pentium) 790 4815 T
+(RAM                     64 MB) 790 4918 T
+(Graphics                1280x1024 8 plane) 790 5021 T
+/Times-Roman 100 t Tf
+(Software) 622 5214 T
+/Courier 83 t Tf
+(OS Version              UnixWare 2.02) 790 5318 T
+(Patches to OS           PTF2094 - TCP/IP Recovery) 790 5421 T
+(Network Communications  NIS, NFS) 790 5524 T
+(Compiler\050s\051             CCS Optimizing C Compilation System 3.0)
+790 5694 T
+() 790 5694 T
+(                        C++ Compilation System 2.0) 790 5797 T
+gr gr sp
+/pWd 612 d /pHt 792 d
+{db /Duplex t d /Tumble f d /Orientation 0 /HWResolution [ 600 600 ] d/PageSize [pWd pHt]d de spd}stp p
+gs 0 Cs 100 sml gs
+gr gs
+0 6367 606 83 R
+4495 6367 606 83 R
+0 6449 5101 152 R
+cl n
+1 g
+0 6367 605 82 R fl
+4495 6367 605 82 R fl
+0 6449 5100 151 R fl
+gr gs
+1 g
+1291 6367 3118 82 R fl
+605 6367 686 82 R fl
+4409 6367 86 82 R fl
+gr gs
+0 0 5101 606 R
+0 605 606 5318 R
+4495 605 606 5318 R
+0 5922 5101 446 R
+cl n
+1 g
+0 0 5100 605 R fl
+0 605 605 5317 R fl
+4495 605 605 5317 R fl
+0 5922 5100 445 R fl
+gr gs
+1 g
+605 605 3890 5317 R fl
+4409 6367 86 82 R fl
+gr gs
+0 6367 606 83 R
+4495 6367 606 83 R
+0 6449 5101 152 R
+cl n
+0.8 g
+1 w
+0 lc
+0 lj
+[ ] 0 ds
+0 0 m 5099 0 l gs 0 g
+[] 0 ds st gr st
+0 1 m 0 6599 l gs 0 g
+[] 0 ds st gr st
+0.6 g
+1 w
+1 6599 m 5099 6599 l gs 0 g
+[] 0 ds st gr st
+5099 1 m 5099 6599 l gs 0 g
+[] 0 ds st gr st
+gr gs
+0 g
+/Times-Roman 66 t Tf
+(CDE Release Notes) 608 6432 T
+1 g
+605 6367 686 1 R fl
+605 6448 686 1 R fl
+605 6367 1 82 R fl
+1290 6367 1 82 R fl
+0 g
+(34) 4412 6432 T
+1 g
+4409 6367 86 1 R fl
+4409 6448 86 1 R fl
+4409 6367 1 82 R fl
+4494 6367 1 82 R fl
+gr gs
+605 605 3890 5317 R
+cl n
+0 g
+/Courier 83 t Tf
+(Additional components   See below) 790 670 T
+/Times-Roman 100 t Tf
+(Comments) 622 863 T
+(It is necessary to increase some kernel limits, as follows:) 706 1057 T
+() 807 1057 T
+/Courier 83 t Tf
+(SDATLIM 0x8000000) 790 1161 T
+(HDATLIM 0x8000000) 790 1264 T
+(SSTKLIM 0x8000000) 790 1367 T
+(HSTKLIM 0x8000000) 790 1470 T
+(SVMMLIM 0x10000000) 790 1573 T
+(HVMMLIM 0x10000000) 790 1676 T
+/Times-Roman 100 t Tf
+(The following optional packages should be installed \050this is pkginfo format\051:)
+706 1869 T
+/Courier 83 t Tf
+(application SDKdocs        Software Development Kit Documentation) 790
+1973 T
+(graphics    desksup        Desktop Manager Development) 790 2076 T
+(application ihvkit         IHV Development Kit) 790 2179 T
+(system      nmsdk          Network Management SDK) 790 2282 T
+(system      softint        Software Packaging Tools) 790 2385 T
+() 857 2385 T
+(system      stdcomps       Standard Components) 790 2488 T
+/Times-Bold 149 t Tf
+(Silicon Graphics) 622 2764 T
+/Times-Roman 100 t Tf
+(This is a Motif-only platform.) 622 2969 T
+(Component) 622 3163 T
+/Courier 83 t Tf
+(Model                   Indigo2) 790 3267 T
+() 854 3267 T
+(RAM                     64 MB) 790 3370 T
+(Graphics                1280x1024 8 plane) 790 3473 T
+/Times-Roman 100 t Tf
+(Software) 622 3666 T
+/Courier 83 t Tf
+(OS Version              SC4-W4DI2-6.2: 6.2 with Indigo2 R10000 Impact)
+790 3770 T
+(Patches to OS           None) 790 3873 T
+(Network Communications  SC4-NFS-6.2.1: NFS software) 790 3976 T
+() 878 3976 T
+(Compiler\050s\051             SC4-IDO-7.0: IRIX Development Option) 790
+4146 T
+(                        SC4-C++-7.0: C++ compiler) 790 4249 T
+/Times-Roman 100 t Tf
+(Comments) 622 4442 T
+(In addition, there are three patches that apply to the compilers: patches 1451, 1453 and 1463.)
+706 4636 T
+/Times-Bold 149 t Tf
+(Sun) 622 4913 T
+() 622 4913 T
+/Times-Roman 100 t Tf
+(Component) 622 5118 T
+/Courier 83 t Tf
+(Model                   SPARCstation) 790 5222 T
+(RAM                     64 MB) 790 5325 T
+(Graphics                1152x900 8 plane) 790 5428 T
+/Times-Roman 100 t Tf
+(Software) 622 5621 T
+/Courier 83 t Tf
+(OS Version              Solaris 2.4) 790 5725 T
+() 792 5725 T
+(Patches to OS           see below) 790 5828 T
+gr gr sp
+/pWd 612 d /pHt 792 d
+{db /Duplex t d /Tumble f d /Orientation 0 /HWResolution [ 600 600 ] d/PageSize [pWd pHt]d de spd}stp p
+gs 0 Cs 100 sml gs
+gr gs
+0 6367 606 83 R
+4495 6367 606 83 R
+0 6449 5101 152 R
+cl n
+1 g
+0 6367 605 82 R fl
+4495 6367 605 82 R fl
+0 6449 5100 151 R fl
+gr gs
+1 g
+1291 6367 3118 82 R fl
+605 6367 686 82 R fl
+4409 6367 86 82 R fl
+gr gs
+0 0 5101 606 R
+0 605 606 5318 R
+4495 605 606 5318 R
+0 5922 5101 446 R
+cl n
+1 g
+0 0 5100 605 R fl
+0 605 605 5317 R fl
+4495 605 605 5317 R fl
+0 5922 5100 445 R fl
+gr gs
+1 g
+605 605 3890 5317 R fl
+4409 6367 86 82 R fl
+gr gs
+0 6367 606 83 R
+4495 6367 606 83 R
+0 6449 5101 152 R
+cl n
+0.8 g
+1 w
+0 lc
+0 lj
+[ ] 0 ds
+0 0 m 5099 0 l gs 0 g
+[] 0 ds st gr st
+0 1 m 0 6599 l gs 0 g
+[] 0 ds st gr st
+0.6 g
+1 w
+1 6599 m 5099 6599 l gs 0 g
+[] 0 ds st gr st
+5099 1 m 5099 6599 l gs 0 g
+[] 0 ds st gr st
+gr gs
+0 g
+/Times-Roman 66 t Tf
+(CDE Release Notes) 608 6432 T
+1 g
+605 6367 686 1 R fl
+605 6448 686 1 R fl
+605 6367 1 82 R fl
+1290 6367 1 82 R fl
+0 g
+(35) 4412 6432 T
+1 g
+4409 6367 86 1 R fl
+4409 6448 86 1 R fl
+4409 6367 1 82 R fl
+4494 6367 1 82 R fl
+gr gs
+605 605 3890 5317 R
+cl n
+0 g
+/Courier 83 t Tf
+(Network Communications  NIS, NFS) 790 670 T
+(Compiler\050s\051             SPARCompiler C 2.0.1) 790 840 T
+(                        SPARCompiler C++ 3.0.1) 790 943 T
+(Additional components   See below) 790 1113 T
+/Times-Roman 100 t Tf
+(Comments) 622 1306 T
+(The Solaris Common Build Environment is required.) 706 1500 T
+(The following patches are required. This list reflects patch numbers available as of 30)
+706 1694 T
+() 817 1694 T
+(October, 1995. From time to time, replacement patches may be issued with changed suffix)
+706 1821 T
+() 811 1821 T
+(values; the current replacement patches may be substituted for those listed below.)
+706 1948 T
+/Courier 83 t Tf
+(100962-01       C++ patch for USL Cfront, release 3.0.2.) 790 2052 T
+(100974-02       dbx/ld scoped libs) 790 2155 T
+(101880-08       Mime message conversion field error) 790 2258 T
+() 887 2258 T
+(101907-05       volume management fixes) 790 2361 T
+() 822 2361 T
+(101925-02       Header file fixes) 790 2464 T
+(101933-01       /dev/mouse open causes cursor to freeze) 790 2567 T
+() 901 2567 T
+(101945-32       Kernel jumbo patch) 790 2670 T
+(102057-20       Xserver jumbo patch) 790 2773 T
+() 854 2773 T
+(102303-05       link editors require to provide for dynamic interfaces)
+790 2876 T
+(102330-03       WABI fixes) 790 2979 T
+(102450-02       Docviewer will not start with full colormap) 790 3082 T
+() 873 3082 T
+(102650-02       New Tooltalk) 790 3185 T
+(103250-01       fd recalculate fix) 790 3288 T
+gr gr sp
+/pWd 612 d /pHt 792 d
+{db /Duplex t d /Tumble f d /Orientation 0 /HWResolution [ 600 600 ] d/PageSize [pWd pHt]d de spd}stp p
+gs 0 Cs 100 sml gs
+gr gs
+0 6367 606 83 R
+4495 6367 606 83 R
+0 6449 5101 152 R
+cl n
+1 g
+0 6367 605 82 R fl
+4495 6367 605 82 R fl
+0 6449 5100 151 R fl
+gr gs
+1 g
+1291 6367 3158 82 R fl
+605 6367 686 82 R fl
+4449 6367 46 82 R fl
+gr gs
+0 0 5101 606 R
+0 605 606 5318 R
+4495 605 606 5318 R
+0 5922 5101 446 R
+cl n
+1 g
+0 0 5100 605 R fl
+0 605 605 5317 R fl
+4495 605 605 5317 R fl
+0 5922 5100 445 R fl
+gr gs
+1 g
+605 605 3890 5317 R fl
+gr gs
+1291 6367 3119 83 R
+4455 6367 41 83 R
+cl n
+1 g
+4455 6367 40 82 R fl
+gr gs
+1 g
+4409 6367 86 82 R fl
+4409 6367 86 82 R fl
+gr gs
+0 6367 606 83 R
+4495 6367 606 83 R
+0 6449 5101 152 R
+cl n
+0.8 g
+1 w
+0 lc
+0 lj
+[ ] 0 ds
+0 0 m 5099 0 l gs 0 g
+[] 0 ds st gr st
+0 1 m 0 6599 l gs 0 g
+[] 0 ds st gr st
+0.6 g
+1 w
+1 6599 m 5099 6599 l gs 0 g
+[] 0 ds st gr st
+5099 1 m 5099 6599 l gs 0 g
+[] 0 ds st gr st
+gr gs
+0 g
+/Times-Roman 66 t Tf
+(CDE Release Notes) 608 6432 T
+1 g
+605 6367 686 1 R fl
+605 6448 686 1 R fl
+605 6367 1 82 R fl
+1290 6367 1 82 R fl
+0 g
+(36) 4412 6432 T
+1 g
+4409 6367 86 1 R fl
+4409 6448 86 1 R fl
+4409 6367 1 82 R fl
+4494 6367 1 82 R fl
+gr gs
+605 605 3890 5317 R
+cl n
+0 g
+/Times-Bold 149 t Tf
+(Open/Closed Defect Lists) 622 861 T
+/Times-Roman 100 t Tf
+(The following files listing defect reports are provided in the directories )
+622 1066 T
+() 654 1066 T
+/Courier 100 t Tf
+($CDESOURCEDIR/cde) 622 1193 T
+/Times-Roman 100 t Tf
+( and ) 1642 1193 T
+/Courier 100 t Tf
+($CDESOURCEDIR/motif) 1836 1193 T
+() 1868 1193 T
+/Times-Roman 100 t Tf
+(:) 2976 1193 T
+/Courier 100 t Tf
+(OPENBUGS) 622 1382 T
+/Times-Roman 100 t Tf
+(Lists the currently known unresolved defects reported against CDE or Motif components)
+790 1580 T
+(respectively.) 790 1707 T
+/Courier 100 t Tf
+(CLOSEDBUGS) 622 1892 T
+/Times-Roman 100 t Tf
+(Lists the defects that have been resolved since CDE 1.0.10 or Motif 2.0.)
+790 2090 T
+gr gr sp
+/pWd 612 d /pHt 792 d
+{db /Duplex t d /Tumble f d /Orientation 0 /HWResolution [ 600 600 ] d/PageSize [pWd pHt]d de spd}stp p
+gs 0 Cs 100 sml gs
+gr gs
+0 6367 606 83 R
+4495 6367 606 83 R
+0 6449 5101 152 R
+cl n
+1 g
+0 6367 605 82 R fl
+4495 6367 605 82 R fl
+0 6449 5100 151 R fl
+gr gs
+1 g
+1291 6367 3158 82 R fl
+605 6367 686 82 R fl
+4449 6367 46 82 R fl
+gr gs
+0 0 5101 606 R
+0 605 606 5318 R
+4495 605 606 5318 R
+0 5922 5101 446 R
+cl n
+1 g
+0 0 5100 605 R fl
+0 605 605 5317 R fl
+4495 605 605 5317 R fl
+0 5922 5100 445 R fl
+gr gs
+1 g
+605 605 3890 5317 R fl
+gr gs
+1291 6367 3119 83 R
+4455 6367 41 83 R
+cl n
+1 g
+4455 6367 40 82 R fl
+gr gs
+1 g
+4409 6367 86 82 R fl
+4409 6367 86 82 R fl
+gr gs
+0 6367 606 83 R
+4495 6367 606 83 R
+0 6449 5101 152 R
+cl n
+0.8 g
+1 w
+0 lc
+0 lj
+[ ] 0 ds
+0 0 m 5099 0 l gs 0 g
+[] 0 ds st gr st
+0 1 m 0 6599 l gs 0 g
+[] 0 ds st gr st
+0.6 g
+1 w
+1 6599 m 5099 6599 l gs 0 g
+[] 0 ds st gr st
+5099 1 m 5099 6599 l gs 0 g
+[] 0 ds st gr st
+gr gs
+0 g
+/Times-Roman 66 t Tf
+(CDE Release Notes) 608 6432 T
+1 g
+605 6367 686 1 R fl
+605 6448 686 1 R fl
+605 6367 1 82 R fl
+1290 6367 1 82 R fl
+0 g
+(37) 4412 6432 T
+1 g
+4409 6367 86 1 R fl
+4409 6448 86 1 R fl
+4409 6367 1 82 R fl
+4494 6367 1 82 R fl
+gr gs
+605 605 3890 5317 R
+cl n
+0 g
+/Times-Bold 149 t Tf
+(Additional Note) 622 861 T
+() 622 861 T
+/Times-Roman 100 t Tf
+(The ) 622 1070 T
+/Times-Bold 100 t Tf
+(mapconv) 802 1070 T
+() 847 1070 T
+/Times-Roman 100 t Tf
+( utility function is available in the ) 1191 1070 T
+/Courier 100 t Tf
+(cde-contrib) 2566 1070 T
+() 2568 1070 T
+/Times-Roman 100 t Tf
+( directory. It provides a) 3226 1070 T
+(method for converting a string of characters from one codeset type to another type.)
+622 1201 T
+() 622 1201 T
+gr gr sp
+%%EOF

+ 1601 - 0
cde/ReleaseNotes.sgm

@@ -0,0 +1,1601 @@
+<!-- $XConsortium: ReleaseNotes.sgm /main/13 1996/12/23 17:14:32 dbrooks $ -->
+<!DOCTYPE BOOK PUBLIC "-//HaL and O'Reilly//DTD DocBook//EN" [
+<!ENTITY % ISOpublishing PUBLIC "ISO 8879-1986//ENTITIES Publishing//EN">
+%ISOpublishing;
+<!ENTITY % ISOnumeric PUBLIC "ISO 8879-1986//ENTITIES Numeric and Special Graphic//EN">
+%ISOnumeric;
+]>
+<!-- (c) Copyright 1996 Digital Equipment Corporation. -->
+<!-- (c) Copyright 1996 Hewlett-Packard Company. -->
+<!-- (c) Copyright 1996 International Business Machines Corp. -->
+<!-- (c) Copyright 1996 Sun Microsystems, Inc. -->
+<!-- (c) Copyright 1996 Novell, Inc. -->
+<!-- (c) Copyright 1996 FUJITSU LIMITED. -->
+<!-- (c) Copyright 1996 Hitachi. -->
+<book>
+<title>CDE 2.1.0 Release Notes</title>
+<bookinfo>
+<bookbiblio>
+<authorgroup>
+<author><firstname> </firstname></author>
+</authorgroup>
+</bookbiblio>
+<legalnotice>
+<title>Legal Notices</title>
+<programlisting>&copy; Copyright 1993, 1994, 1995, 1996 Hewlett-Packard Company
+&copy; Copyright 1993, 1994, 1995, 1996 International Business Machines Corp.
+&copy; Copyright 1993, 1994, 1995, 1996 Sun Microsystems, Inc.
+&copy; Copyright 1993, 1994, 1995, 1996 Novell, Inc.
+&copy; Copyright 1995, 1996 Digital Equipment Corp.
+&copy; Copyright 1995, 1996 Fujitsu Limited
+&copy; Copyright 1995, 1996 Hitachi, Ltd.</programlisting>
+<para>ALL RIGHTS RESERVED</para>
+<para>All marks are trademarks or registered trademarks of their respective
+owners.</para>
+</legalnotice>
+</bookinfo>
+<chapter id=CDERelNotes>
+<title>CDE 2.1.0 Release Notes</title>
+<para><emphasis>December 1996</emphasis></para>
+<para>Legal Notices</para>
+<programlisting>&copy; Copyright 1993, 1994, 1995, 1996 Hewlett-Packard Company
+&copy; Copyright 1993, 1994, 1995, 1996 International Business Machines Corp.
+&copy; Copyright 1993, 1994, 1995, 1996 Sun Microsystems, Inc.
+&copy; Copyright 1993, 1994, 1995, 1996 Novell, Inc.
+&copy; Copyright 1995, 1996 Digital Equipment Corp.
+&copy; Copyright 1995, 1996 Fujitsu Limited
+&copy; Copyright 1995, 1996 Hitachi, Ltd.</programlisting>
+<para>ALL RIGHTS RESERVED</para>
+<para>All marks are trademarks or registered trademarks of their respective
+owners.</para>
+<sect1 id=chap1>
+<title>Introduction</title>
+<para>This document describes the Common Desktop Environment,
+CDE version 2.1.0 and Motif version 2.1.0.
+Wherever "CDE" is used in this document, it means CDE 2.1.0.
+Wherever "Motif" is used, it means Motif 2.1.0.
+</para>
+<para>The release of X11 provided with this CDE distribution is based on
+X11R6.2, which includes additional support for Vertical Writing,
+User-Defined Characters, and the X Print service.</para>
+<para>This document and accompanying text files contain important information.
+Please read them carefully before starting the build and installation procedures.
+</para>
+<para>The command line instructions provided here are for <command>csh</command>.
+They may vary depending on the particular shell you are using.</para>
+</sect1>
+<sect1 id=chap2>
+<title>Unloading the Distribution</title>
+<para>
+If you received this distribution on physical media (tape or CD)
+rather than electronically, the distribution includes
+appropriate instructions in hardcopy form.
+The hardcopy information pertains to your
+particular distribution format.</para>
+<para>The instructions in this document can be used for unloading from electronic
+distribution or tape.</para>
+<sect2 id=sect1>
+<title>Distribution Format</title>
+<para>The distribution consists of a single tape that contains nine tar files.
+These files contain the source code, test code, and documentation of CDE,
+Motif, and X11R6.2</para>
+<para>To unpack the distribution, create a directory to hold all of the sources
+and untar everything into that directory:</para>
+<programlisting>% mkdir $CDESOURCEDIR
+% cd $CDESOURCEDIR
+% tar xf tar-file-name-or-tape-device (nine times)</programlisting>
+<para>where $CDESOURCEDIR designates the CDE master source directory. If you
+are restoring from a tape, you should choose a device name that will not cause
+the tape to rewind between <command>tar</command> commands.</para>
+<para>The directories stored in the nine sections are:</para>
+<programlisting>$CDESOURCEDIR/cde and $CDESOURCEDIR/cde-contrib
+$CDESOURCEDIR/cde-test
+$CDESOURCEDIR/cde/doc
+$CDESOURCEDIR/motif
+$CDESOURCEDIR/motif/tests
+$CDESOURCEDIR/motif/doc
+$CDESOURCEDIR/x11/xc
+$CDESOURCEDIR/x11/xc/test
+$CDESOURCEDIR/x11/xc/doc</programlisting>
+<para>
+If you unpack the entire distribution, you will have the following
+five subdirectories under $CDESOURCEDIR:
+</para>
+<programlisting>cde
+cde-contrib
+cde-test
+motif
+x11</programlisting>
+<para>Note that directory permissions stored in the tar file are generally
+set world-writable. Make sure your <command>umask</command> is set the way
+you want before unpacking the distribution.</para>
+<para>The <filename>cde-contrib</filename> directory contains some unsupported
+contributed CDE software.</para>
+<para>The DocBook SGML source for these release notes can be found in the
+file <filename>$CDESOURCEDIR/cde/ReleaseNotes.sgm</filename>. The PostScript
+output can be found in <filename>$CDESOURCEDIR/cde/ReleaseNotes.ps</filename>.
+</para>
+</sect2>
+<sect2 id=sect2>
+<title>Disk Space Requirements</title>
+<para>The following amounts of disk space are required to unpack the various
+parts of the CDE distribution. All amounts are in MB.</para>
+<programlisting>cde, cde-contrib    93
+cde-test          1361
+cde/doc             91
+motif               19
+motif/tests         39
+motif/doc           15
+x11/xc              90
+x11/xc/test         13
+x11/xc/doc          39</programlisting>
+<para>Approximately 1Gb of additional disk space is required to build the
+release.</para>
+<para>Depending on the platform, approximately 140MB to 160MB of additional
+disk space is required to install the release (C locale only). Sample
+systems that were installed with several locales required between
+170MB and 230MB.</para>
+</sect2>
+</sect1>
+<sect1 id=chap3>
+<title>Building CDE</title>
+<para>This chapter provides a generic description of the build process for
+CDE. The x11, motif, and cde libraries and headers must be installed on your
+system prior to building cde-test. These libraries and headers
+are included in the CDE Distribution.
+</para>
+<para>CDE has been built on the following reference platforms:</para>
+<programlisting>Digital  AlphaStation 200   Digital UNIX V4.0
+
+Fujitsu  DS/90 7000         UXP/DS V20L10
+
+HP       HP9000/7xx         HP-UX 10.01
+
+IBM      RS/6000            AIX 4.2
+
+Novell   Intel 486/Pentium  UnixWare 2.02
+
+Sun      SPARCstation       Solaris 2.4</programlisting>
+<para>For a detailed definition of the reference platforms, see
+"Reference Platforms."</para>
+<para>To build CDE, you must have an ANSI C compiler and a C++ compiler.
+You must also have <command>perl</command> version 4.0 or higher for all platforms
+(except SUN, which needs version 5.0 or higher). <command>perl</command>
+is publicly available via anonymous <command>ftp</command> at ftp.uu.net.
+<command>perl</command> must be installed on your system and available in your $PATH.
+You must not have <filename>/usr/ucb</filename> in your $PATH, or the build
+may fail.
+</para>
+<para>
+If you expect to build the distribution on more than one machine using
+a shared source tree, or if you just want to keep the binaries out of the
+source tree, you may want to use the X11 program <command>lndir</command>
+to create a symbolic link tree on each build machine. The links require additional
+disk space but take less disk space than multiple copies of the source tree.
+</para>
+<para>Create a build directory that is not a subdirectory of the CDE master
+source directory:</para>
+<programlisting>% mkdir $CDEBUILDDIR</programlisting>
+<para>Then, create a symbolic link tree:</para>
+<programlisting>% lndir $CDESOURCEDIR $CDEBUILDDIR</programlisting>
+<para>where $CDESOURCEDIR is the CDE master source directory. Note that the
+directory containing the <command>lndir</command> program must be in your
+$PATH.</para>
+<para>Note that the builds described below may not be done in parallel; each
+subsystem depends upon the results of builds in previous subsystems.</para>
+<sect2 id=sect3>
+<title>Building X11</title>
+<orderedlist>
+<listitem><para>Customize <filename>$CDEBUILDDIR/x11/xc/config/cf/site.def
+</filename> to reflect local preferences for install locations, compilers,
+paths, etc.</para>
+</listitem>
+<listitem><para>Federal law prohibits the X Consortium from shipping Data
+Encryption Standard (DES) source code outside the United States. If you
+have a copy of this source
+(<filename>x11/xc/lib/Xdmcp/Wraphelp.c</filename>) and wish to allow use of
+the <symbol>XDM-AUTHORIZATION-1</symbol> protocol, enable
+<symbol>HasXdmAuth</symbol> in your <filename>site.def</filename>
+file.</para>
+</listitem>
+<listitem><para>Set your current directory as follows:</para>
+<programlisting>% cd $CDEBUILDDIR/x11/xc</programlisting>
+</listitem>
+<listitem><para>See if there is a BootstrapCFlags mentioned in the comments
+in the <filename>&lt;vendor>.cf</filename> file. This file is in the directory <filename>
+$CDEBUILDDIR/x11/xc/config/cf</filename>, and the &lt;vendor> string identifies
+the platform on which you are building. If there isn't a definition for BootstrapCFlags,
+enter:</para>
+<programlisting>% make World >&amp; world.log</programlisting>
+<para>If there is a BootstrapCFlags definition, take its value and enter:</para>
+<programlisting>% make World BOOTSTRAPCFLAGS="value" >&amp; world.log</programlisting>
+</listitem>
+</orderedlist>
+</sect2>
+<sect2 id=sect4>
+<title>Building Motif</title>
+<orderedlist>
+<listitem><para>Customize <filename>$CDEBUILDDIR/motif/config/cf/site.def
+</filename> to reflect local preferences for install locations, compilers,
+paths, etc.</para>
+</listitem>
+<listitem><para>If you are building with imports (the default setup in <filename>
+site.def</filename>), construct the necessary links, as follows:</para>
+<programlisting>% cd $CDEBUILDDIR/motif
+% mkdir imports
+% cd imports
+% ln -s ../../x11/xc/exports x11</programlisting>
+</listitem>
+<listitem><para>Set your current directory as follows:</para>
+<programlisting>% cd $CDEBUILDDIR/motif</programlisting>
+</listitem>
+<listitem><para>See if there is a BootstrapCFlags mentioned in the comments
+in the <filename>&lt;vendor>.cf</filename> file. This file is in the directory <filename>
+$CDEBUILDDIR/motif/config/cf</filename>. If there isn't a definition for
+BootstrapCFlags, enter:</para>
+<programlisting>% make World >&amp; world.log</programlisting>
+<para>If there is a BootstrapCFlags definition, take its value and enter:</para>
+<programlisting>% make World BOOTSTRAPCFLAGS="value" >&amp; world.log</programlisting>
+</listitem>
+</orderedlist>
+</sect2>
+<sect2 id=sect5>
+<title>Building CDE</title>
+<orderedlist>
+<listitem><para>Customize <filename>$CDEBUILDDIR/cde/config/cf/site.def</filename>
+to reflect local preferences for install locations, compilers, paths, etc.
+</para>
+</listitem>
+<listitem><para>If you are building with imports (the default setup in <filename>
+site.def</filename>), construct the necessary links, as follows:</para>
+<programlisting>% cd $CDEBUILDDIR/cde
+% mkdir imports
+% cd imports
+% ln -s ../../motif/imports/x11 x11
+% ln -s ../../motif/exports motif</programlisting>
+</listitem>
+<listitem><para>Set your current directory as follows:</para>
+<programlisting>% cd $CDEBUILDDIR/motif</programlisting>
+</listitem>
+<listitem><para>See if there is a BootstrapCFlags mentioned in the comments
+in the <filename>&lt;vendor>.cf</filename> file. This file is in the directory <filename>
+$CDEBUILDDIR/cde/config/cf</filename>. If there isn't a definition for BootstrapCFlags,
+enter:</para>
+<programlisting>% make -k World >&amp; world.log</programlisting>
+<para>If there is a BootstrapCFlags definition, take its value and enter:</para>
+<programlisting>% make -k World BOOTSTRAPCFLAGS="value" >&amp; world.log</programlisting>
+</listitem>
+</orderedlist>
+<para>On Solaris, documents build with a large number of SGML errors that
+can be ignored, as a result of using <command>sgmls</command> rather than
+<command>nsgmls</command>.</para>
+</sect2>
+</sect1>
+<sect1 id=chap4>
+<title>Installing CDE</title>
+<para>CDE should be installed or re-installed in single-user mode.  It may
+not be sufficient merely to stop the CDE-related processes on a system that
+already has a CDE version installed.</para>
+<para>Before installing CDE, check to see if <filename>/usr/dt</filename>
+exists. If this directory or link already exists and you want a completely
+new installation (which is recommended), then rename it or back it up and
+then remove it.</para>
+<variablelist>
+<varlistentry><term>HP-UX only:</term>
+<listitem>
+<para>If CDE is running, use <command>init</command>(1M) to change the runlevel
+to a level that will stop <command>dtlogin</command> and other CDE processes (see <filename>
+/etc/inittab</filename> for more information). For example:</para>
+<programlisting>% /sbin/init 2</programlisting>
+</listitem>
+</varlistentry>
+<varlistentry><term>AIX only:</term>
+<listitem>
+<para>If "lslpp -h | grep X11.Dt" shows an AIX installation of CDE, use <command>
+smit</command> to remove the filesets. Otherwise, if a tar installation of
+CDE was made in <filename>/usr/dt</filename>, remove or rename it.</para>
+<para>If CDE is running, do the following to stop all of the CDE processes:
+</para>
+<orderedlist>
+<listitem><para>Kill all running <command>dtlogin</command> processes</para>
+</listitem>
+<listitem><para>Kill the X server</para>
+</listitem>
+</orderedlist>
+</listitem>
+</varlistentry>
+</variablelist>
+<para>The installation process creates directory hierarchies rooted at <filename>
+/etc/dt</filename> and <filename>/var/dt</filename>, but does not install
+any files there. Delete files in these directories with care. Important
+customizations made by applications are stored here, and this information
+may be "unrecoverable" if removed.</para>
+<sect2 id=sect6>
+<title>Installing X11</title>
+<para>To install X do the following as root:</para>
+<programlisting>% cd $CDEBUILDDIR/x11/xc
+% make install >&amp; install.log</programlisting>
+<para>You can install manual pages with:</para>
+<programlisting>% make install.man >&amp; man.log</programlisting>
+</sect2>
+<sect2 id=sect7>
+<title>Installing Motif</title>
+<para>To install Motif do the following as root:</para>
+<programlisting>% cd $CDEBUILDDIR/motif
+% make install.cde >&amp; install.log</programlisting>
+<para>Note this is NOT the same command used to install
+Motif without CDE.</para>
+</sect2>
+<sect2 id=sect8>
+<title>Installing CDE</title>
+<para>To install CDE do the following as root (since <command>inetd</command>
+is affected, you
+should do this at the console, rather than remotely):</para>
+<programlisting>% cd $CDEBUILDDIR/cde
+% ./admin/IntegTools/dbTools/installCDE -s $CDEBUILDDIR/cde</programlisting>
+<para>where $CDEBUILDDIR is the path to the directory where CDE was built.
+This installs CDE into <filename>/usr/dt/</filename>.</para>
+<para>
+You must reboot the system after installation.
+</para>
+<para>This script requires the user to have root permissions.</para>
+<para>To print the usage message for the script, run:</para>
+<programlisting>% installCDE '-?'</programlisting>
+<para>Note that many of the options for <command>installCDE</command> have not been
+tested.</para>
+<para>You must install into <filename>/usr/dt</filename>.
+You can use the <literal>-pI</literal> option to specify an alternative
+directory for the actual file storage, but <filename>/usr/dt</filename>
+will be created as a symbolic link to that directory because
+CDE will not operate without that link.
+</para>
+<para>To start CDE manually, run the following command as user root:</para>
+<programlisting>% /usr/dt/bin/dtlogin</programlisting>
+</sect2>
+<sect2 id=sect9>
+<title>Installing Localized Filesets</title>
+<para>After the base install of CDE, you can install localized filesets.
+Each locale has three filesets: message catalogs, resource and config files,
+and on-line help. The filesets for the C locale are installed by default.
+This section describes how to install filesets for supported locales other
+than C.
+</para>
+<para>To install the localized filesets for a locale, run
+<command>installCDE</command> as root as follows (the quotes are required):</para>
+<programlisting>% $CDEBUILDDIR/cde/admin/IntegTools/dbTools/installCDE \
+        -s $CDEBUILDDIR/cde \
+        -f "CDE-&lt;LOCALE> CDE-MSG-&lt;LOCALE> CDE-HELP-&lt;LOCALE>"</programlisting>
+<para>where "&lt;LOCALE>" is "DE" (German), "ES" (Spanish), "FR" (French),
+"IT" (Italian), or "JP" (Japanese). For example, to install Japanese filesets:
+</para>
+<programlisting>% $CDEBUILDDIR/cde/admin/IntegTools/dbTools/installCDE \
+        -s $CDEBUILDDIR/cde \
+        -f "CDE-JP CDE-MSG-JP CDE-HELP-JP"</programlisting>
+</sect2>
+<sect2 id=sect10>
+<title>Known Installation Problems</title>
+<para>Some known installation problems are listed below (additional information
+may be found in the files <filename>$CDESOURCEDIR/cde/OPENBUGS</filename>
+and <filename>$CDESOURCEDIR/motif/OPENBUGS</filename>):</para>
+<itemizedlist>
+<listitem><para>This problem occurs on Digital only.</para>
+<para>Deconfiguration will attempt to undo the installation operations. If
+it fails or needs to be undone manually, you can restore the non-CDE login
+with:</para>
+<programlisting># ln -f -s ../init.d/xdm /sbin/rc3.d/S95xdm</programlisting>
+<para>Rebooting will return the workstation to xdm mode.</para>
+</listitem>
+<listitem><para>If the Japanese filesets are installed, several files are reported as missing
+during the installation process. The Japanese translations of some
+documents are not part of the initial release of CDE 2.1.  This is not
+harmful to the installation.</para>
+</listitem>
+<listitem><para>On Solaris, the file
+<filename>/proj/cde/programs/nsgmls/nsgmls</filename> is reported as
+missing. This is expected.</para></listitem>
+</itemizedlist>
+</sect2>
+</sect1>
+<sect1 id=chap5>
+<title>X Print Services</title>
+<para>To print with CDE, a print server must be running, and the proper name
+of the server must be supplied to client applications.</para>
+<para>In addition, to enable users to select a printer setup dialog
+from within client applications, a print dialog manager (dtpdm) daemon
+must be running.</para>
+<sect2 id=sect11>
+<title>Running an X Print Server</title>
+<para>Running an X Print Server is identical to running any other X server.
+</para>
+<para>Here is a sample command line for use with a typical configuration:
+</para>
+<programlisting>% Xprt :1 -ac -fp /usr/lib/X11/fonts/misc,\
+/usr/lib/X11/fonts/Type1,/usr/lib/X11/fonts/100dpi,\
+/usr/dt/config/xfonts</programlisting>
+<para>
+The following options are available when running the print server:
+</para>
+<variablelist>
+<varlistentry><term>:1</term>
+<listitem>
+<para>
+Use a different display from the default.
+</para>
+</listitem>
+</varlistentry>
+<varlistentry><term>-ac</term>
+<listitem>
+<para>
+Disable access control, since no simple mechanism
+for sharing keys is provided.
+</para>
+</listitem>
+</varlistentry>
+<varlistentry><term>-fp</term>
+<listitem>
+<para>
+Point to the standard video fonts. Note that the only reason
+for doing this is to add the CDE aliases to the default set.
+</para>
+</listitem>
+</varlistentry>
+</variablelist>
+<para>
+In addition, the following new arguments are available:
+</para>
+<variablelist>
+<varlistentry><term>-XpFile</term>
+<listitem>
+<para>
+Points to file listing of available printers instead
+of default.
+</para>
+</listitem>
+</varlistentry>
+<varlistentry><term>XPCONFIGDIR</term>
+<listitem>
+<para>
+Environment variable specifying alternative location of
+configuration files.
+</para>
+</listitem>
+</varlistentry>
+</variablelist>
+<para>The server can be run within a user's session as an individual
+command or at boot time. These two methods of invocation
+represent two distinct styles. The latter style provides a centralized
+departmental service, while the former style usually serves a single
+user. However, because an X print server is no different from any other
+X server, there are many other configuration possibilities available.
+</para>
+</sect2>
+<sect2 id=sect12>
+<title>Informing Clients</title>
+<para>To select an X Print Server from a client that employs the Xprint server,
+simply type the name of the printer like this:</para>
+<programlisting>printerName@host:display</programlisting>
+<para>
+A default printer can be specified by providing a value for either the
+XpPrinter resource or the <systemitem class="environvar">XPRINTER</systemitem>
+environment variable.
+</para>
+<para>
+An alternative, and probably the simplest, way to provide an entire
+set of printers to all clients is to set the
+<systemitem class="environvar">XPSERVERLIST</systemitem> variable (or XpServerList
+resource) to the name of a X Print Server (for example, print_host:1). The
+user's default value of <systemitem class="environvar">LPDEST</systemitem>
+will be combined with the defined value to create a full printer name, allowing
+the user to use the GUI on the print setup box dialog to access other printers.
+</para>
+<para>
+You can set all of the above environment variables in the
+<filename>.dtprofile</filename> file in a user's home directory.
+</para>
+</sect2>
+<sect2 id=sect12point1>
+<title>Print Dialog Manager</title>
+<para>In order for users to access the print setup dialogs, a special
+client called the Print Dialog Manager must be running. The name of
+the daemon that implements the Print Dialog Manager is
+<command>dtpdmd</command>. You can invoke <command>dtpdmd</command>
+in either of two ways:
+</para>
+<itemizedlist>
+<listitem><para>
+Point it at a print server, as follows:
+</para>
+<programlisting>dtpdmd -d print_host:1 &</programlisting>
+</listitem>
+<listitem>
+<para>
+Point it at your video display, as follows:
+</para>
+<programlisting>dtpdmd &</programlisting>
+<para>Note that in this case, the environment variable
+<systemitem class="environvar">XPDMDISPLAY</systemitem>
+must be set to the value <literal>video</literal>. 
+</para>
+</listitem>
+</itemizedlist>
+<para>
+You can apply either of these methods using the
+<filename>.dtprofile</filename> file in
+the user's home directory.
+</para>
+</sect2>
+</sect1>
+<sect1 id=chap6>
+<title>Documentation</title>
+<para>The documentation available with this release consists of:
+</para>
+<itemizedlist>
+<listitem><para>CDE and Motif man pages</para>
+</listitem>
+<listitem><para>CDE and Motif guides</para>
+</listitem>
+<listitem><para>CDE online help</para>
+</listitem>
+</itemizedlist>
+<sect2 id=sect13>
+<title>Man Pages</title>
+<para>This release provides English versions of the CDE and Motif man
+pages in traditional man format. The man pages are generated
+from DocBook source during the build process. Man pages are also
+viewable online with <command>dtinfo</command> using the English CDE information library.</para>
+</sect2>
+<sect2 id=sect14>
+<title>Guides</title>
+<para>The guides provided with this release include:</para>
+<itemizedlist>
+<listitem><para>English CDE guides, which have been converted to DocBook.
+These guides are viewable online with <command>dtinfo</command> using the English CDE
+information library. The DocBook source is located in
+<filename>$CDEBUILDDIR/cde/doc/C/guides</filename>. New volumes in this
+release are the <citetitle>Information Manager User's Guide</citetitle>,
+<citetitle>Information System Author's and Programmer's Guide</citetitle>, and
+<citetitle>Guide to the DocBook DTD</citetitle>.
+</para>
+</listitem>
+<listitem><para>English Motif guides, which have been converted to DocBook.
+These guides are viewable online with <command>dtinfo</command> using the
+English CDE information library. The DocBook source is located in
+<filename>$CDEBUILDDIR/motif/doc/C/guides</filename>.</para>
+<para>With this release, the Motif and CDE style guides have been combined
+and reworked into three new volumes:
+<citetitle>Motif and CDE Style Guide</citetitle>,
+<citetitle>Motif and CDE Style Guide Reference</citetitle>, and
+<citetitle>Motif and CDE Style Guide Certification Checklist</citetitle>.
+</para>
+</listitem>
+<listitem><para>Translations of selected CDE and Motif guides, which have
+been converted to DocBook. The CDE
+<citetitle>User's Guide</citetitle>,
+<citetitle>Information Manager User's Guide</citetitle>, and
+<citetitle>Advanced User's and System Administrator's Guide</citetitle>
+are available in all languages.
+Additional guides are available in Japanese.
+These guides are viewable online with dtinfo
+using the localized CDE information library.
+The DocBook source is located in
+<filename>$CDEBUILDDIR/cde/doc/LANG/guides</filename>, where LANG
+corresponds to one of the following locales:</para>
+<simplelist>
+<member>de_DE.ISO8859-1 (German)</member>
+<member>es_ES.ISO8859-1 (Spanish)</member>
+<member>fr_FR.ISO8859-1 (French)</member>
+<member>it_IT.ISO8859-1 (Italian)</member>
+<member>ja_JP.dt-eucJP (Japanese)</member>
+</simplelist></listitem>
+</itemizedlist>
+</sect2>
+<sect2 id=sect15>
+<title>Online Help</title>
+<para>This release contains complete English and translated CDE online
+help, which has been converted to DocBook. The online help is viewable with
+the Help Manager. New material includes online help for dtinfo and for
+printing. The English online help source can be found in
+<filename>$CDEBUILDDIR/cde/doc/C/help</filename>.
+The translated online help can be found in
+<filename>$CDEBUILDDIR/cde/doc/LANG/help</filename>,
+where LANG corresponds to the locales listed in the "Guides"
+section.</para>
+</sect2>
+</sect1>
+<sect1 id=chap7>
+<title>Building Tests</title>
+<para>This chapter provides a generic description of the build process for
+the CDE Test Suite.</para>
+<para>You must build and install CDE (including X11 and Motif) on your system
+prior to building these tests. Also, the actual CDE build tree must still
+be accessible.</para>
+<para>The CDE test suite has been built on the following reference platforms:
+</para>
+<programlisting>Digital  AlphaStation 200   Digital UNIX V4.0
+
+Fujitsu  DS/90 7000         UXP/DS V20L10
+
+HP       HP9000/7xx         HP-UX 10.01
+
+IBM      RS/6000            AIX 4.2
+
+Novell   Intel 486/Pentium  UnixWare 2.02
+
+Sun      SPARCstation       Solaris 2.4</programlisting>
+<para>For a detailed definition of the reference platforms, see
+"Reference Platforms."</para>
+<sect2 id=sect16>
+<title>Configure the CDE Test Suite Build Environment</title>
+<para>Before building, you must make sure that symbolic links for the <filename>
+OSVersion.tmpl</filename> and the <filename>localtree.tmpl</filename> files
+are created and that these links are correct for your system. You must also
+modify the <filename>site.cf</filename> file. You can not skip this step,
+even though you have built CDE for your system, because the config directory for
+the CDE Test Suite is separate from the CDE build directory.</para>
+<para>Builds have been performed using the optimized shared library templates
+for <filename>localtree.tmpl</filename>.</para>
+<para>To create the links, go to the CDE Test config directory in the build
+directory:</para>
+<programlisting>cd $CDEBUILDDIR/cde-test/config</programlisting>
+<para>Make sure that cdesrcRoot is defined to point to <filename>$CDEBUILDDIR/cde
+</filename> in the file <filename>site.cf</filename>. For example, if $CDEBUILDDIR
+is <filename>/proj</filename>, the following lines should appear in the file
+(do not use environment variables here):</para>
+<programlisting>#ifndef cdesrcRoot
+#define cdesrcRoot /proj/cde
+#endif</programlisting>
+<para>Create the correct links for your system. For example, if your system
+is HP-UX 10.01 you will need to execute the following commands to create these
+links:</para>
+<programlisting>% ln -s OSVersiontemplates/10.01 OSVersion.tmpl
+% ln -s localtemplates/hpux/10.01/optimized.shared localtree.tmpl</programlisting>
+<para>The following are the correct links for the other platforms:</para>
+<variablelist>
+<varlistentry><term>Digital Unix 4.0</term>
+<listitem>
+<programlisting>OSVersion.tmpl -> OSVersiontemplates/4.0
+localtree.tmpl -> localtemplates/dec/alpha/osf/optimized.sharedlibs</programlisting>
+</listitem>
+</varlistentry>
+<varlistentry><term>Fujitsu UXP/DS V20L10</term>
+<listitem>
+<programlisting>OSVersion.tmpl -> OSVersiontemplates/20.10
+localtree.tmpl -> localtemplates/uxp/optimized.sharedlibs</programlisting>
+</listitem>
+</varlistentry>
+<varlistentry><term>IBM AIX 4.2</term>
+<listitem>
+<programlisting>OSVersion.tmpl -> OSVersiontemplates/4.2
+localtree.tmpl -> localtemplates/ibm/rs6000/aix4.2/optimized.sharedlibs</programlisting>
+</listitem>
+</varlistentry>
+<varlistentry><term>Sun Solaris 2.4</term>
+<listitem>
+<programlisting>OSVersion.tmpl -> OSVersiontemplates/5.4
+localtree.tmpl -> localtemplates/sun/optimized.sharedlibs</programlisting>
+</listitem>
+</varlistentry>
+<varlistentry><term>UNIXWARE</term>
+<listitem>
+<programlisting>OSVersion.tmpl -> OSVersiontemplates/4.2
+localtree.tmpl -> localtemplates/sun/optimized.sharedlibs</programlisting>
+</listitem>
+</varlistentry>
+</variablelist>
+</sect2>
+<sect2 id=sect17>
+<title>Building the CDE Test Suites</title>
+<para>Change to the directory containing the
+<command>test_build</command> program:</para>
+<programlisting>% cd $CDEBUILDDIR/cde-test/admin/BuildTools/master_build</programlisting>
+<para>Run <command>test_build</command> to build the CDE Test Suite on your
+system:</para>
+<programlisting>% ./test_build -build $CDEBUILDDIR/cde-test \
+        -log $CDEBUILDDIR/cde-test/logs -c</programlisting>
+<para>
+The <command>test_build</command> command makes the Makefiles, includes,
+depend, and all targets in the specified build directory and creates build
+logs in the specified log directory. For a more complete description of the <command>
+test_build</command> options, see the <command>master_build</command>.1 man
+page in <filename>$CDEBUILDDIR/cde/admin/man/man1</filename> (<command>test_build
+</command> and <command>master_build</command> support the same set of options).
+</para>
+</sect2>
+</sect1>
+<sect1 id=chap8>
+<title>Installing Tests</title>
+<para>Test execution is fully functional inside the cde-test directory structure.
+No installation is required.</para>
+</sect1>
+<sect1 id=chap9>
+<title>Running Tests</title>
+<para>The following sections give basic instructions for executing the various
+testing protocols and information on test results.</para>
+<sect2 id=sect18>
+<title>Test Execution</title>
+<sect3>
+<title>Automated Regression Tests</title>
+<para>The test execution cycle is divided into five phases based on
+dependencies.
+The phases are listed below in order of execution. The cycle outlined
+here
+is intended to accommodate the testing of multiple test suites
+automatically.</para>
+<orderedlist>
+<listitem><para>Configure test environment.</para>
+<para>The test environment requires a complete installation of CDE, a
+complete
+test build that includes TET, and a default user environment with the
+following
+X resources set:</para>
+<programlisting>*enableButtonTab: False
+*blinkRate: 0
+dtterm*blinkRate: 250</programlisting>
+<para>The tests can be run either from the test display itself or from a
+remote
+display. The following environment variables must be set:</para>
+<programlisting>TET_ROOT=$CDEBUILDDIR/cde-test
+TET_TMP_DIR=&lt;temporary space dir>
+DISPLAY=&lt;test display>
+PATH=$PATH:.</programlisting>
+<para>Then, general configuration data must be loaded:</para>
+<programlisting>$ . $TET_ROOT/DTConfig/`uname -s`/dt_env.sh -l</programlisting>
+</listitem>
+<listitem><para>Configure the component-specific test environment.</para>
+<para>Component-specific test environment configuration is set
+by:</para>
+<programlisting>$ cd $TET_ROOT/comp_suites/&lt;test suite name>
+$ . config/`uname -s`/env.sh -l</programlisting>
+<para>where &lt;test suite name> corresponds to the directory under
+<filename>$TET_ROOT/comp_suites</filename> for a CDE component
+(for example, dtfile, DtSvc/dragdrop, dthelp/dtHelpApi).
+</para>
+<para>Some test suites require additional setup that will have to be
+done
+manually. The instructions for additional setup (if any) can
+be found in</para>
+<programlisting>$TET_ROOT/comp_suites/&lt;test suite name>/README[.test suite name]
+</programlisting>
+</listitem>
+<listitem><para>Execute test suite.</para>
+<para>Tests are organized under "scenarios" (e.g. REGRESSION, all,
+TOUCH)
+which are listed in the file</para>
+<programlisting>$TET_ROOT/comp_suites/&lt;test suite name>/tet_scen</programlisting>
+<para>The tests are run through TET's <command>tcc</command> (test case
+controller):
+</para>
+<programlisting>$ tcc -i &lt;output dir> -j &lt;journal file> \
+      -e comp_suites/&lt;test suite name> &lt;scenario></programlisting>
+<para>where &lt;journal file> is the path name of the file where test
+journal reports and results are stored. Any test data for inspection
+(for example, images) is stored under &lt;output dir>.</para>
+</listitem>
+<listitem><para>Clean up test suite.</para>
+<para>Component-specific test environment configuration cleanup is
+accomplished
+by:</para>
+<programlisting>$ cd $TET_ROOT/comp_suites/&lt;test suite name>
+$ . config/`uname -s`/env.sh -c</programlisting>
+</listitem>
+<listitem><para>Clean up general test environment.</para>
+<para>General test environment configuration cleanup is accomplished
+by:</para>
+<programlisting>$ . $TET_ROOT/DTConfig/`uname -s`/dt_env.sh -c</programlisting>
+</listitem>
+</orderedlist>
+<para>Alternatively, the test execution script <command>testCDE</command>,
+available in <filename>$TET_ROOT/bin</filename>, can be used. Usage of the
+script is:</para>
+<programlisting>$ $TET_ROOT/bin/testCDE -tet_root $CDEBUILDDIR/cde-test \
+       { -suite &lt;test suite name&gt; | -list &lt;file with list of suites&gt; }
+       [ -scen &lt;test scenario&gt; ] \
+       [ -engr &lt;email address to notify&gt; ] \
+       [ -record ]
+       [ -res &lt;directory path name&gt; ]
+</programlisting>
+<para>The -record option is used to execute relevant suites in record mode (to
+generate golden data). The -res option is used to specify
+an alternative results directory (<filename>$HOME/test-results</filename> is the default).
+When the scenario is not specified using the -scen option, the REGRESSION
+scenario is selected by default.</para>
+<para>In addition to performing the configuration setup, test execution,
+and configuration cleanup steps (listed above for the first method of
+running tests), this script utilizes setup scripts (if any) found under
+<filename>$TET_ROOT/setup/&lt;test suite name&gt;</filename>. These setup scripts automate
+additional manual setup required for some test suites.
+</para>
+<Note>
+<Para>
+In many cases these setup scripts use site specific data such as user-ids.
+Make sure the site-specific data is updated before test execution.
+</Para>
+</Note>
+</sect3>
+<sect3>
+<title>Manual Regression Tests</title>
+<para>The following CDE components have predefined manual tests, with instructions
+located in the specified files. Some suites have a number of instruction
+files, indicated below with appropriate wildcards.</para>
+<programlisting> Suite             |  File (relative to $CDEBUILDDIR/)
+ --------------------------------------------------------------------
+ DefConfig         | cde-test/comp_suites/DefConfig/manual/*_tests
+ DtSvc/DtMsgLog    | cde-test/comp_suites/DtSvc/DtMsgLog/manual/manualtests
+ DtSvc/DtWsm       | cde-test/comp_suites/DtSvc/DtWsm/manual/ws*
+ DtSvc/dragdrop    | cde-test/comp_suites/DtSvc/dragdrop/manual/assertion_misctest
+ DtSvc/visuals     | cde-test/comp_suites/DtSvc/visuals/manual/icons
+ RunTime           | cde-test/comp_suites/RunTime/manual/runtime*.des
+ dtaction          | cde-test/comp_suites/dtaction/manual/test.checklist
+ dtappgather       | cde-test/comp_suites/dtappgather/manual/README
+ dtbuilder         | cde-test/comp_suites/dtbuilder/manual/Instructions
+ dtcalc            | cde-test/comp_suites/dtcalc/manual/*/*
+ dtcm              | cde-test/comp_suites/dtcm/manual/assertions.all
+ dtfp              | cde-test/comp_suites/dtwm/fptests/manual/*/README
+ dthelp            | cde-test/comp_suites/dthelp/manual/DtHelpManualTest.mif
+ dthelp/CREInline  | cde-test/comp_suites/dthelp/manual/CREInline/README
+ dtinfo            | cde-test/comp_suites/dtinfo/manual/README
+ dtlp              | cde-test/comp_suites/dtlp/manual/README
+ dtmail            | cde-test/comp_suites/dtmail/manual/Assertions.manual
+ dtpad             | cde-test/comp_suites/dtpad/manual/dtpad.manual_checklist
+ dtterm            | cde-test/comp_suites/dtterm/manual/manual
+ dtwm              | cde-test/comp_suites/dtwm/wmtests/manual/*/README</programlisting>
+<para>For each suite, simply following the instructions listed in the specified
+files. Any suite-specific instructional information is listed below.</para>
+<variablelist>
+<varlistentry><term>dthelp</term>
+<listitem>
+<para>This file is in FrameMaker format.</para>
+</listitem>
+</varlistentry>
+<varlistentry><term>dtmail</term>
+<listitem>
+<para>There are two other files in the same directory called <filename>Mailer.assertion
+</filename> and <filename>README</filename>, the latter of which explains
+which file should be used.</para>
+</listitem>
+</varlistentry>
+</variablelist>
+</sect3>
+<sect3>
+<title>Motif Quality Assurance Test Suite Testing</title>
+<para>Most of the information required to build and run the CDE/QATS can be
+found in the following files:</para>
+<programlisting>$CDEBUILDDIR/motif/tests/docs/Output/draft/ps/chap1
+$CDEBUILDDIR/motif/tests/docs/Output/draft/ps/chap2
+$CDEBUILDDIR/motif/tests/docs/Output/draft/ps/chap3
+$CDEBUILDDIR/motif/tests/docs/Output/draft/ps/chap4
+$CDEBUILDDIR/motif/tests/environment/README</programlisting>
+<para>While these documents describe the original OSF test suite, they are
+applicable with some minor modifications to CDE.</para>
+<itemizedlist>
+<listitem><para>The following environment variables need to be set for running
+in playback mode:</para>
+<itemizedlist>
+<listitem><para><systemitem class="environvar">VFA_TOP</systemitem> to the
+top of the Motif tree (<filename>$CDEBUILDDIR/motif</filename>)</para>
+</listitem>
+<listitem><para><systemitem class="environvar">VISUAL_PATH</systemitem> to
+the parent of the directories containing the recorded images</para>
+</listitem>
+<listitem><para><systemitem class="environvar">VFA_RESULTS_DIR</systemitem>
+to the parent of the output directories (the directories must exist)</para>
+</listitem>
+</itemizedlist>
+</listitem>
+<listitem><para>You can run the automated test suite from the top of the test
+tree by invoking the RUN_auto located in <filename>$CDEBUILDDIR/motif/tests
+</filename>.</para>
+</listitem>
+<listitem><para>When recording, the <systemitem class="environvar">VISUAL_PATH
+</systemitem> and <systemitem class="environvar">VFA_RESULTS_DIR</systemitem>
+should be the same.</para>
+</listitem>
+</itemizedlist>
+<para>The QATS must be run on a display controlled by a Motif 2.x version
+of <command>mwm</command>, not <command>dtwm</command>. A suitable version
+of <command>mwm</command> is built in the
+<filename>$CDEBUILDDIR/motif/clients/mwm</filename> directory.</para>
+</sect3>
+<sect3>
+<title>Interplatform Tests</title>
+<para>Interplatform testing is the testing of CDE application functionality
+between platforms. The following CDE capabilities are tested:</para>
+<itemizedlist>
+<listitem><para>The ability of CDE applications to execute and interoperate
+in distributed fashion across a network of heterogeneous, interoperating
+hosts.</para>
+</listitem>
+<listitem><para>The ability of CDE users to execute the desktop on
+different heterogenous platforms in a consistent manner.</para>
+</listitem>
+</itemizedlist>
+<para>The general process used in the Interplatform tests is to startup CDE
+components from a client host and a daemon host (on the same display) using
+<command>dtaction</command> before running actual tests involving drag and drop on/between
+these components.</para>
+<para>The tests are located in
+<filename>$CDEBUILDDIR/cde-test/sys_suites/Intop/</filename>:
+The information required to initially configure the test systems before a test run
+is in the following files in the same directory:</para>
+<itemizedlist>
+<listitem><para><filename>HowToRun.interplatform</filename></para></listitem>
+<listitem><para><filename>README.interplatform</filename></para></listitem>
+<listitem><para><filename>README</filename></para></listitem>
+</itemizedlist>
+<para>The information in these files includes steps to configure the test
+machines to use the dtspc protocol, which is required by the tests.</para>
+<para>Once the test machines have been correctly setup, the tests can be
+executed in
+a similar fashion to other CDE tests described earlier in this document,
+with the exception that these tests are located in the
+<filename>sys_suites</filename> rather
+than the <filename>comp_suites</filename> sub-directory and so the
+pathnames will have to be correspondingly altered.</para>
+</sect3>
+</sect2>
+<sect2 id=sect19>
+<title>Test Execution Results</title>
+<para>The following sections give details on the results obtained with the
+various test protocols on the reference platforms.</para>
+<sect3>
+<title>Automated Regression Tests</title>
+<para>The following is a partial list of expected results for the six tested
+platforms. The first number indicates the number of passes for the given
+test suite
+and the second number indicates the total number of assertions that were
+run in that test suite.</para>
+<para>Note that not all results are available on all platforms. Defect reports
+have been submitted as appropriate for non-passes.</para>
+<?Pub _newpage>
+<programlisting>Suite                   IBM      Sun      Digital  HP       Fujitsu  Unixware
+=============================================================================
+CREPrinting             3/7      5/7      3/7      6/7      3/7      6/7      
+ConfigDB                0/1      1/1      0/1      1/1      1/1      0/1      
+DefConfig               3/5      3/16     3/23     3/4      2/28     3/4      
+Desktop                          55/57    55/57    55/57    56/57    38/51    
+DevEnv                  1/2      1/3      0/0      2/3      0/0      1/3      
+DtAction                97/109   63/77    70/96    103/125  101/117  43/47    
+DtClientPrinting_dtcm            13/26    13/26    13/26    14/26    13/26    
+DtClientPrinting_dtmail          21/28    21/28    20/24    22/25    17/26    
+DtClientPrinting_dtpad           12/14    11/14    12/14    9/10     12/14    
+DtEditor                32/35    41/42    35/42    41/42    17/40    30/35    
+DtHelp                  0/0               0/0                        0/6      
+DtInit                  8/8      8/8      8/8      8/8      8/8      8/8      
+DtMrm                   8/8      8/33                                2/6      
+DtMsgLog                29/37    27/37    26/35    28/37    31/37    27/35    
+DtSvc                   12/23    0/43     0/2                        0/43     
+DtTerm                  1/3      0/7                                 0/8      
+DtWidget                98/113   113/113  113/113  113/113  98/113   113/113  
+DtWsm                   9/9      9/9      8/11     9/9      9/9      9/11     
+Intop                   158/233                                               
+Dtinfo printing                  19/32    18/32    19/32    3/12     18/27    
+XmMT                    142/148  138/141  49/50                      83/85    
+XmPrinting              15/22    16/22    17/22    17/22    7/7      17/22    
+dragdrop                8/18     12/18    8/18     18/18    11/18    14/18    
+dtGui                   17/34    21/34    15/21    22/34    0/15     0/21     
+dtHelpApi               5/104    92/104   67/75    76/104   0/59     77/104   
+dtHelpCanvas            1/2      2/2      1/2      1/2      2/2      2/2      
+dtHelpGui               52/100   103/126  27/100   58/126   57/82    51/126   
+dtPdm                   1/3      1/5      3/5      1/5      3/5      0/5      
+dtaction                34/36    35/36    33/36    31/36    33/36    32/36    
+dtappgather             0/4      4/4      4/4      4/4      3/4      3/4      
+dtappintegrate          16/17    16/17    13/17    17/17    7/17     17/17    
+dtcalc                  1/2      1/3      1/2      1/2      1/3      1/3      
+dtcm                                               2/126                      
+dtdatatyping            21/27    21/27    18/27    21/27    21/27    18/27    
+dtdocbook               0/3      2/4      2/4      2/4      2/4      2/4      
+dtfile                  10/228   82/229   30/123   8/226    9/218    6/77     
+dtfp                    17/23    20/21    2/21     10/21    7/13     15/20    
+dthelpgen               18/23    20/23    20/23    0/19     19/23    13/19    
+dthelpprint             2/10     2/10     6/10     0/10     7/10     7/10     
+dthelptag               9/9      4/9      9/9      4/9      7/9      9/9      
+dthelpview              20/42    29/42    42/42    33/42    32/42    33/42    
+dtksh                   43/302   285/302  288/302  285/302  297/302  200/302  
+dtlp                    13/14    13/14    12/14    13/14    12/14    12/14    
+dtmail                  60/78    61/82    61/77    67/78    71/78    65/77    
+dtpad                   128/190  141/157  139/157  141/157  128/145  138/153  
+dtscreen                49/55    53/55    31/51    53/55    49/55    49/55    
+dtsearchpath            26/26    26/26    24/26    26/26    0/26     24/26    
+dtsession               39/40    39/40    41/41    40/41    40/41    41/41    
+dtspcd                  11/11                      11/11    0/0      9/11     
+dtsr                    8/12     7/12     8/12     8/12     8/12     7/12     
+dtstyle                 10/10    10/10    10/10    10/10    0/9      8/10     
+dtterm                  131/178  63/85    130/181  133/182  100/137  65/82    
+dttypes                 0/7      0/7      0/0      0/7      0/0      0/7      
+dtwm                    129/129  122/129  118/138  124/133  90/108   94/101   
+mtDtHelp                6/6      0/6      0/0                        0/6      
+mtDtMrm                 69/74    14/67    0/0                        6/58     
+mtDtSvc                 38/43    0/43     0/2                        0/43     
+mtDtTerm                14/19    0/13     0/0                        0/12     
+mtDtWidget              101/107  6/152    6/8                        3/147    
+mttt                             1/2                                          
+sm-wm                            1/6               0/0                        
+tt                      2/30     27/34    4/31     22/31    4/32     10/13    
+xpApi                   77/86    75/86    73/86    77/93    73/86    71/82    
+xpConfig                18/18    8/8      15/18    5/30     15/18    15/18    
+xpddx                   87/250   187/221  143/243  245/252  209/227  60/252   
+-----------------------------------------------------------------------------</programlisting><!--emacsbug -->
+<para>Because QC/Replay was not available on AIX 4.2, the QC/Replay tests
+were not run on the IBM platform.</para>
+</sect3>
+<sect3>
+<title>Motif QATS tests</title>
+<para>The Motif/QATS automated tests and Motif window manager were built as
+described in an earlier section.</para>
+<para>Automated tests were built and run on all reference platforms.
+Sun, HP, and SGI displays were used for displaying tests. Motif window
+managers built on different platforms were used to manage the windows
+while running the tests. The complete QATS is executed on Sun, HPUX, and
+SGI platforms
+while only the new tests or suites were executed on the remaining reference
+platforms.</para>
+<sect4>
+<title>Missing Keys WARNINGS</title>
+<para>The keys on the keyboards used on the HP and Sun platforms are insufficient
+for the needs of the tests (keys missing from the keyboard that were expected
+to be mapped for the tests), causing "AUTOWARNING" errors in every one of
+the tests. The standard report generation scripts detect these benign errors
+and flag the entire test as an error. Since these were not considered to be
+fatal errors (after inspection of the test code), the analysis scripts filtered
+out AUTOWARNING errors that came from missing keys at the very beginning of
+a test run.</para>
+</sect4>
+<sect4>
+<title>New Test Clients</title>
+<para>Several new test clients were added to the QATS during this release, some
+automated and some manual. Test clients were added to the following
+directories:</para>
+<variablelist>
+<varlistentry><term>Automated:</term>
+<listitem><programlisting><filename>tests/Toolkit/Buttons</filename>
+<filename>tests/uil/widgets</filename></programlisting></listitem>
+</varlistentry>
+<varlistentry><term>Manual:</term>
+<listitem><programlisting><filename>tests/Manual/DtWidgets</filename></programlisting></listitem>
+</varlistentry>
+</variablelist>
+<para>Golden data was generated where necessary.</para>
+</sect4>
+<sect4>
+<title>Golden Data Generation</title>
+<para>Some new QATS test suites, which do not have any previous recordings,
+were run in record mode to generate golden data. The recordings were added
+to this release. These new automated test suites are:</para>
+<programlisting>tests/Toolkit/ComboBox
+tests/Toolkit/SpinBox
+tests/Toolkit/Notebook
+tests/Toolkit/IconVC</programlisting>
+</sect4>
+<sect4>
+<title>Test Results</title>
+<para>The results were compared with the recordings made against Motif 2.0.
+The results are mostly consistent with the previous runs carried out at OSF.
+There are failures due to both QATS problems and Motif defects. All the errors/failures
+reported during the run are due to known problems in both QATS and Motif code
+and have defects already opened against them. Also, the results were consistent
+across all the platforms on which the tests were executed.</para>
+</sect4>
+</sect3>
+</sect2>
+</sect1>
+<sect1 id=chap10>
+<title>Compatibility</title>
+<sect2 id=ch10s1>
+<title>OSF/Motif 2.0 Compatibility</title>
+<para>Compatibility with CDE/Motif 1.2 was given great emphasis in this
+release, even at the expense of compatibility with OSF/Motif 2.0.
+Some OSF/Motif 2.0 applications may experience problems because of the
+following changes:</para>
+<itemizedlist>
+<listitem><para>The <symbol>XmCSText</symbol> widget has been withdrawn, as
+have those APIs added to OSF/Motif 2.0 solely to support it.</para>
+</listitem>
+<listitem><para>Mrm support for word-size independent
+<filename>.uid</filename> files has been removed.
+Existing <filename>.uid</filename> files compiled with Motif 2.0
+<command>uil</command> may not be readable.
+As in OSF/Motif 1.2, <filename>.uid</filename> files are portable only
+between machines with the same word size.</para>
+</listitem>
+<listitem><para>New <symbol>XmComboBox</symbol>
+<symbol>XmNpositionMode</symbol> and <symbol>XmSpinBox</symbol>
+<symbol>XmNpositionType</symbol>
+resources default to incompatible index values, and should be forced
+by all applications using these widgets. <symbol>XmONE_BASED</symbol> is
+recommended for <symbol>XmComboBox</symbol> widgets because it lets applications
+distinguish between new values entered in the text field and the first item
+in the list.</para>
+</listitem>
+<listitem><para>The <symbol>_XmStrings</symbol> array has, on some
+machines, been split into multiple sub-arrays with the same techniques used
+by libXt. This preserves compatibility with Motif 1.2 and permits future
+expansion.</para>
+</listitem>
+<listitem><para>In Motif 2.0 there were two distinct
+<symbol>XmREPLACE</symbol> constants, with different values. The
+<symbol>XmMergeMode</symbol> constant has been renamed
+<symbol>XmMERGE_REPLACE</symbol>. This is a source compatibility issue;
+binary compatibility is unaffected.</para>
+</listitem>
+<listitem><para>A variety of changes to visual appearance may be noticed.
+See the <citetitle>Motif 2.1.0 Release Notes</citetitle> for details.</para>
+</listitem>
+</itemizedlist>
+</sect2>
+<sect2 id=ch10s2>
+<title>CDE Binary Compatability</title>
+<para>Binary Compatibility testing was carried out using products provided
+by SunSoft and IBM. In addition, binary executables built locally for the
+CDE 1.0.10 release were tested. Some incompatibilities were found, as
+described below. Some problems were found that were specific
+to the tested application and which we do not believe indicate a compatibility
+problem with the reference system.</para>
+<itemizedlist><listitem>
+<para>As with previous major releases of Motif, binary compatibility is not
+guaranteed for application widgets that subclass Motif widgets without
+using <symbol>XmResolvePartOffsets</symbol> to access instance fields.
+Subclasses that use <symbol>XmResolvePartOffsets</symbol>
+(or <symbol>XmResolveAllPartOffsets</symbol>) should be unaffected.</para>
+</listitem>
+<listitem>
+<para>On AIX, the CDE shared libraries are linked with the reentrant C
+library, <filename>libc_r.a</filename>.
+Legacy applications that reference the non-reentrant
+C library, <filename>libc.a</filename>, will experience difficulties
+because two different copies of data are being referenced. The
+solution recommended by IBM is to build and install a complete set of CDE
+libraries with the non-reentrant compiler, giving them the standard names,
+and another complete reentrant set, giving them names with the <filename>
+_r</filename> suffix (for example, <filename>libXm_r.a</filename>). The default
+configuration files build only the reentrant set.</para>
+</listitem>
+<listitem>
+<para>On AIX, the sample application <command>llenhcapture</command> did
+not execute. We believe this is due to an incompatibility in standard AIX
+libraries.</para>
+</listitem>
+<listitem>
+<para>On AIX, the sample application <command>SDE</command> did not execute,
+as it calls the undocumented and withdrawn function
+<filename>XmStringLoadQueryFont</filename>.</para>
+</listitem><listitem>
+<para>The DtHelp library has a dependency on the math library,
+<filename>libm.a</filename>. On SVR4 systems, any legacy application that
+does not already reference the math library must be re-linked.
+</para>
+</listitem></itemizedlist>
+<para>We did not use Digital or Fujitsu platforms in the BC testing
+since they were not reference platforms for the CDE1.0.10 release.</para>
+</sect2>
+</sect1>
+<sect1 id=chap11>
+<title>Pluggable Authentication Module (PAM)</title>
+<para>Pluggable Authentication Module (PAM) code supplied by SunSoft is included
+with the CDE source. The source is located in the <filename>$CDESOURCEDIR/cde/lib/pam
+</filename> subdirectory. Documentation, manual pages, examples, and a selection
+of modules (back-end code for some common authentication technologies) are
+provided in addition to the front-end pam library.</para>
+<para>PAM is built and installed automatically on Sun platforms. The <command>
+dtlogin</command> source contains conditionally compiled code to invoke the
+PAM front-end API.</para>
+</sect1>
+<sect1 id=chap12>
+<title>New Functionality</title>
+<para>The following paragraphs summarize the new functionality of this release relative
+to CDE1.0. Please refer to the specific on-line documentation for more detailed
+information.</para>
+<sect2 id=sect20>
+<title>Printing</title>
+<para>Starting with this release <command>dtpad</command>, <command>dtmail
+</command> and <command>dtcm</command> are using the X protocol based print
+server. This print server produces output in three formats: PCL, Postscript and
+Raster.</para>
+</sect2>
+<sect2 id=sect21>
+<title>Thread-Safe Libraries</title>
+<para>The following libraries are thread-safe enabled: Xm, tt, DtHelp,
+DtSvc, DtTerm, DtWidget, and Mrm. This means that the libraries themselves
+are thread safe and a multithreaded application need not do explicit
+locking when accessing these libraries. This is supported only for
+platforms that support multithreaded programming.</para>
+</sect2>
+<sect2 id=sect22>
+<title>X11R6.2</title>
+<para>This release is based on X11R6.2, which includes additional support
+for Vertical Writing, User-Defined Characters (UDCs) and the X Print
+Service.</para>
+<para>In addition, session management using the X11R6 XSMP is provided
+and supported by <command>dtsession</command> and
+<command>dtwm</command>.</para>
+</sect2>
+<sect2 id=sect23>
+<title>Internationalization</title>
+<para>There are several new features that support the internationalization
+of CDE and developing applications for international markets. CDE now supports
+the On-The-Spot input method for <command>Xm</command> and <command>dtterm
+</command>.
+Based on the session start-up locale, users can select their preferred
+Input method server either at startup time (using the new Input method
+server selection and launch) or during the session (via
+<command>dtstyle</command>). They can also select
+their preferred input method style (Off-The-Spot, On-The-Spot, etc.)
+via <command>dtstyle</command>.
+Users may use and define their own fonts with the User Definable
+Character (UDC) feature. Also, Vertical Writing is now supported.</para>
+</sect2>
+<sect2 id=sect24>
+<title>On-Line Information Access</title>
+<para>This release provides a standard set of online documentation that
+covers the various CDE and Motif components. The CDE desktop includes the
+Information Manager which can be used to access, read, and search through
+this documentation.</para>
+<para>The Information Manager replaces the the Help Manager on the Front
+Panel. Additional information about using Information Manager is available
+on-line in the <citetitle>CDE: Information Manager User's
+Guide</citetitle> and in the <command>dtinfo</command>
+man page. Information about authoring on-line documentation for use with
+the Information Manager is also available on-line in the
+<citetitle>CDE: Information System Author's and Programmer's
+Guide</citetitle> and in the <command>dtinfogen</command> man page.</para>
+<para>The Information Manager includes a general purpose text
+search and retrieval system. This functionality is provided
+by the DtSearch library and by the dtsr* programs. 
+Applications can also directly access on-line information using
+the DtInfo Database Engine API provided by the DtMmdb library.</para>
+</sect2>
+<sect2 id=sect25>
+<title>Tests</title>
+<para>Several new test suites have been added for this release.
+</para>
+<itemizedlist>
+<listitem><para>Threadsafe Motif, Tooltalk and Dt libraries</para>
+</listitem>
+<listitem><para>Postscript and PCL ddx</para>
+</listitem>
+<listitem><para>Printing: API, PDM, XmPrinting, C/RE, and Dt clients</para>
+</listitem>
+<listitem><para>Dtinfo Desktop and Printing (QC/Replay based)</para>
+</listitem>
+<listitem><para>DtSearch</para>
+</listitem>
+<listitem><para>Error Message API</para>
+</listitem>
+<listitem><para>X11R6 session management</para>
+</listitem>
+<listitem><para>Standalone Window Manager (QC/Replay based)</para>
+</listitem>
+<listitem><para>Motif 2.0 changes (Motif QATS)</para>
+</listitem>
+<listitem><para>dtimsstart</para>
+</listitem>
+<listitem><para>I18N features (Vertical Writing, UDCs, on-the-spot IM)</para>
+</listitem>
+<listitem><para>SDL Converter</para>
+</listitem>
+</itemizedlist>
+</sect2>
+</sect1>
+<sect1 id=chap13>
+<title>Reference Platforms</title>
+<para>This chapter defines the reference platforms for this release. A reference
+platform is a system configuration on which the shipped CDE source has been
+verified to build and execute.</para>
+<sect2 id=sect26>
+<title>Digital</title>
+<variablelist>
+<varlistentry><term>Component</term>
+<listitem>
+<programlisting>Model                   AlphaStation 200
+RAM                     64 MB
+Graphics                1280x1024 8 plane</programlisting>
+</listitem>
+</varlistentry>
+<varlistentry><term>Software</term>
+<listitem>
+<programlisting>OS Version              Digital UNIX V4.0 (Rev. 386)
+
+Patches to OS           none
+
+Network Communications  NIS, NFS
+
+Compiler(s)             DEC C V5.2-023
+                        DEC C++ V5.4-006</programlisting>
+</listitem>
+</varlistentry>
+</variablelist>
+</sect2>
+<sect2 id=sect27>
+<title>Fujitsu</title>
+<variablelist>
+<varlistentry><term>Component</term>
+<listitem>
+<programlisting>Model                   DS/90 7000
+RAM                     64 MB
+Graphics                1280x1024 8 plane (CF1 or CF3 display
+                        adapter required)</programlisting>
+</listitem>
+</varlistentry>
+<varlistentry><term>Software</term>
+<listitem>
+<programlisting>OS Version              UXP/DS V20L10
+
+Patches to OS           PTF Y96021
+                        and see below
+
+Network Communications  NIS, NFS
+
+Compiler(s)             C Development Set (CDS):
+                        CC Driver UXP/DS R2.6
+                        C++ V12L20
+
+X Window System Server  UXP/DS X11R6 XServer V10L10</programlisting>
+</listitem>
+</varlistentry>
+<varlistentry><term>Comments</term>
+<listitem>
+<para>The following patches are currently available directly from Fujitsu:
+</para>
+<itemizedlist>
+<listitem><para>OS patch PEF TY12846 is required to repair some RPC
+problems. This fix will be included in V20L10 Y96111.</para>
+</listitem>
+<listitem><para>OS patch TY13126 may be required to fix some problems in
+building the release using NFS.</para></listitem>
+<listitem><para>The listen daemon needs a non-public patch to prevent a core
+dump when <command>rpc.ttdbserverd</command> is started.</para>
+</listitem>
+<listitem><para>A non-public patch is needed to solve an NFS locking problem
+seen at the X Consortium while attempting to perform CDE builds.</para>
+</listitem>
+<listitem><para>A non-public patch must be applied to the C++ compilation
+utilities (package name uxpcplus).</para>
+</listitem>
+<listitem><para>A non-public patch is needed to enter Japanese text; this
+lets the input server <command>xfeoak</command> run using X11R6.</para>
+</listitem>
+</itemizedlist>
+</listitem>
+</varlistentry>
+</variablelist>
+</sect2>
+<sect2 id=sect28>
+<title>Hewlett Packard</title>
+<variablelist>
+<varlistentry><term>Component</term>
+<listitem>
+<programlisting>Model                   HP9000/7xx
+RAM                     64 MB
+Graphics                Artist (HP208LC1280) 1280x1024 8 plane</programlisting>
+</listitem>
+</varlistentry>
+<varlistentry><term>Software</term>
+<listitem>
+<programlisting>OS Version              HP-UX 10.01
+Patches to OS           see below
+Network Communications  NIS, NFS
+
+Compiler(s)             HP C/ANSI C Developer's Bundle for HP-UX 10.0
+                        HP C++ Compiler Bundle
+                        Patches PHSS_9138 (compiler) and PHSS_8831 (ld)
+Additional components   see below</programlisting>
+</listitem>
+</varlistentry>
+<varlistentry><term>Comments</term>
+<listitem>
+<para>The following additional patches should be applied. Patches listed are
+those available as of 11 December, 1996. All HP patches are subject to being
+superseded from time to time; all new patches list the old ones that they
+replace. Current replacement patches may be substituted for those listed below.
+</para>
+<para>The platforms at the X Consortium have some patches that have been
+superseded by those listed.
+</para>
+<para>Some of these patches are needed for correct operation of ClearCase
+release 2.0.3. They may not be necessary to build and run CDE from a locally
+installed tree.</para>
+<programlisting>PHCO_5803       fsck_hfs(1M) patch for possible corruption
+PHKL_5812       Fix panic when opening some fix partition disks
+PHKL_9114       fix for process hangs in semop(2)
+PHKL_9404       JFS, LVM, UFS, pstat cumulative patch
+PHNE_6419       cumulative STREAMS patch
+PHNE_6527       LAN products Patch
+PHNE_7514       cumulative telnet(1) patch
+PHNE_7553       telnetd(1M) cumulative patch
+PHNE_8114       NFS/NIS Runtime cumulative patch
+PHNE_8168       ARPA Transport cumulative patch
+PHNE_9089       Cumulative Mux and Pty Patch</programlisting>
+<para>The kernel parameter <symbol role="Variable">maxuprc</symbol> (maximum
+processes per user) should be increased from its default value of 50 to 100.
+</para>
+</listitem>
+</varlistentry>
+</variablelist>
+</sect2>
+<sect2 id=sect29>
+<title>IBM</title>
+<variablelist>
+<varlistentry><term>Component</term>
+<listitem>
+<programlisting>Model                   RS/6000
+RAM                     64 MB
+graphics                1280x1024 8 plane</programlisting>
+</listitem>
+</varlistentry>
+<varlistentry><term>Software</term>
+<listitem>
+<programlisting>OS Version              AIX 4.2
+Patches to OS           PTF 446072
+Network Communications  NIS, NFS
+
+Compiler(s)             xlC.C     3.1.4.0
+                        xlC.C++.* 3.1.4.0 (several filesets)
+                        xlC.cpp   3.1.4.0
+                        xlC.rts   3.1.4.0
+Additional components   See below</programlisting>
+</listitem>
+</varlistentry>
+<varlistentry><term>Comments</term>
+<listitem>
+<para>Version 3.1.4.0 of the C Programming Information filesets should also
+be installed.</para>
+<para>All platforms require the standard X11 filesets. At the X Consortium,
+we have found that the original standard installs did not have the following
+required fileset:</para>
+<programlisting>X11.samples.lib.Core</programlisting>
+<para>Performance testing using a software technique of removing memory
+requires the fileset perfagent.tools (Performance Analysis and Control
+Commands), version 2.1.3.0, to enable artificial memory degradation.</para>
+</listitem>
+</varlistentry>
+</variablelist>
+</sect2>
+<sect2 id=sect30>
+<title>Novell</title>
+<variablelist>
+<varlistentry><term>Component</term>
+<listitem>
+<programlisting>Model                   Intel 486/Pentium
+RAM                     64 MB
+Graphics                1280x1024 8 plane</programlisting>
+</listitem>
+</varlistentry>
+<varlistentry><term>Software</term>
+<listitem>
+<programlisting>OS Version              UnixWare 2.02
+Patches to OS           PTF2094 - TCP/IP Recovery
+Network Communications  NIS, NFS
+
+Compiler(s)             CCS Optimizing C Compilation System 3.0
+                        C++ Compilation System 2.0
+
+Additional components   See below</programlisting>
+</listitem>
+</varlistentry>
+<varlistentry><term>Comments</term>
+<listitem>
+<para>It is necessary to increase some kernel limits, as follows:</para>
+<programlisting>SDATLIM 0x8000000
+HDATLIM 0x8000000
+SSTKLIM 0x8000000
+HSTKLIM 0x8000000
+SVMMLIM 0x10000000
+HVMMLIM 0x10000000
+</programlisting>
+<para>The following optional packages should be installed (this is pkginfo
+format):</para>
+<programlisting>application SDKdocs        Software Development Kit Documentation
+graphics    desksup        Desktop Manager Development
+application ihvkit         IHV Development Kit
+system      nmsdk          Network Management SDK
+system      softint        Software Packaging Tools
+system      stdcomps       Standard Components
+</programlisting>
+</listitem>
+</varlistentry>
+</variablelist>
+</sect2>
+<sect2 id=sect31>
+<title>Silicon Graphics</title>
+<para>This is a Motif-only platform.</para>
+<variablelist>
+<varlistentry><term>Component</term>
+<listitem>
+<programlisting>Model                   Indigo2
+RAM                     64 MB
+Graphics                1280x1024 8 plane</programlisting>
+</listitem>
+</varlistentry>
+<varlistentry><term>Software</term>
+<listitem>
+<programlisting>OS Version              SC4-W4DI2-6.2: 6.2 with Indigo2 R10000 Impact
+Patches to OS           None
+Network Communications  SC4-NFS-6.2.1: NFS software
+
+Compiler(s)             SC4-IDO-7.0: IRIX Development Option
+                        SC4-C++-7.0: C++ compiler</programlisting>
+</listitem>
+</varlistentry>
+<varlistentry><term>Comments</term>
+<listitem>
+<para>In addition, there are three patches that apply to the compilers:
+patches 1451, 1453 and 1463.</para>
+</listitem>
+</varlistentry>
+</variablelist>
+</sect2>
+<sect2 id=sect32>
+<title>Sun</title>
+<variablelist>
+<varlistentry><term>Component</term>
+<listitem>
+<programlisting>Model                   SPARCstation
+RAM                     64 MB
+Graphics                1152x900 8 plane</programlisting>
+</listitem>
+</varlistentry>
+<varlistentry><term>Software</term>
+<listitem>
+<programlisting>OS Version              Solaris 2.4
+Patches to OS           see below
+Network Communications  NIS, NFS
+
+Compiler(s)             SPARCompiler C 2.0.1
+                        SPARCompiler C++ 3.0.1
+
+Additional components   See below</programlisting>
+</listitem>
+</varlistentry>
+<varlistentry><term>Comments</term>
+<listitem>
+<para>The Solaris Common Build Environment is required.</para>
+<para>The following patches are required. This list reflects patch numbers
+available as of 30 October, 1995. From time to time, replacement patches may
+be issued with changed suffix values; the current replacement patches may
+be substituted for those listed below.</para>
+<programlisting>100962-01       C++ patch for USL Cfront, release 3.0.2.
+100974-02       dbx/ld scoped libs
+101880-08       Mime message conversion field error
+101907-05       volume management fixes
+101925-02       Header file fixes
+101933-01       /dev/mouse open causes cursor to freeze
+101945-32       Kernel jumbo patch
+102057-20       Xserver jumbo patch
+102303-05       link editors require to provide for dynamic interfaces
+102330-03       WABI fixes
+102450-02       Docviewer will not start with full colormap
+102650-02       New Tooltalk
+103250-01       fd recalculate fix</programlisting>
+</listitem>
+</varlistentry>
+</variablelist>
+</sect2>
+</sect1>
+<sect1 id=chap14>
+<title>Open/Closed Defect Lists</title>
+<para>The following files listing defect reports are provided in the directories <filename>
+$CDESOURCEDIR/cde</filename> and <filename>$CDESOURCEDIR/motif</filename>:
+</para>
+<variablelist>
+<varlistentry><term><filename>OPENBUGS</filename></term>
+<listitem>
+<para>Lists the currently known unresolved defects reported against CDE or
+Motif components respectively.</para>
+</listitem>
+</varlistentry>
+<varlistentry><term><filename>CLOSEDBUGS</filename></term>
+<listitem>
+<para>Lists the defects that have been resolved since CDE 1.0.10 or
+Motif 2.0.</para>
+</listitem>
+</varlistentry>
+</variablelist>
+</sect1>
+<sect1 id=chap15>
+<title>Additional Note</title>
+<para>The <command>mapconv</command> utility function is available in the <filename>
+cde-contrib</filename> directory. It provides a method for converting a string
+of characters from one codeset type to another type.</para>
+</sect1>
+</chapter>
+</book>
+

+ 95 - 0
cde/admin/BuildTools/fnrclone/Makefile

@@ -0,0 +1,95 @@
+# $XConsortium: Makefile /main/3 1996/05/13 11:41:59 drk $
+# use the load* target to force building
+
+all::
+
+findnewrcs.700.90:findnewrcs.c
+	rm -f $@
+	cc +DA1.0 +O1 -o $@ findnewrcs.c
+loadfindnewrcs.700.90:
+	rm -f findnewrcs.700.90
+	cc +DA1.0 +O1 -o findnewrcs.700.90 findnewrcs.c
+
+findnewrcs.700.807:findnewrcs.c
+	rm -f $@
+	cc +O1 -o $@ findnewrcs.c
+loadfindnewrcs.700.807:
+	rm -f findnewrcs.700.807
+	cc +O1 -o findnewrcs.700.807 findnewrcs.c
+
+findnewrcs.800.90:findnewrcs.c
+	rm -f $@
+	cc +DA1.0 +O1 -o $@ findnewrcs.c
+loadfindnewrcs.800.90:
+	rm -f findnewrcs.800.90
+	cc +DA1.0 +O1 -o findnewrcs.800.90 findnewrcs.c
+
+findnewrcs.800.80:findnewrcs.c
+	rm -f $@
+	cc +O1 -o $@ findnewrcs.c
+loadfindnewrcs.800.80:
+	rm -f findnewrcs.800.80
+	cc +O1 -o findnewrcs.800.80 findnewrcs.c
+
+findnewrcs.800.70:findnewrcs.c
+	rm -f $@
+	cc +O1 -o $@ findnewrcs.c
+loadfindnewrcs.800.70:
+	rm -f findnewrcs.800.70
+	cc +O1 -o findnewrcs.800.70 findnewrcs.c
+
+findnewrcs.300.90:findnewrcs.c
+	rm -f $@
+	cc +O1 -o $@ findnewrcs.c
+loadfindnewrcs.300.90:
+	rm -f findnewrcs.300.90
+	cc +O1 -o findnewrcs.300.90 findnewrcs.c
+
+findnewrcs.300.80:findnewrcs.c
+	rm -f $@
+	cc +O1 -o $@ findnewrcs.c
+loadfindnewrcs.300.80:
+	rm -f findnewrcs.300.80
+	cc +O1 -o findnewrcs.300.80 findnewrcs.c
+
+findnewrcs.SunOS:findnewrcs.c
+	rm -f $@
+	cc -o $@ findnewrcs.c
+loadfindnewrcs.SunOS:
+	rm -f findnewrcs.SunOS
+	cc -o findnewrcs.SunOS findnewrcs.c
+
+findnewrcs.SunOS_PPC:findnewrcs.c
+	rm -f $@
+	cc -o $@ findnewrcs.c
+loadfindnewrcs.SunOS_PPC:
+	rm -f findnewrcs.SunOS_PPC
+	cc -o findnewrcs.SunOS_PPC findnewrcs.c
+
+findnewrcs.AIX:findnewrcs.c
+	rm -f $@
+	cc -o $@ findnewrcs.c
+loadfindnewrcs.AIX:
+	rm -f findnewrcs.AIX
+	cc -o findnewrcs.AIX findnewrcs.c
+
+findnewrcs.UNIX_SV:findnewrcs.c
+	rm -f $@
+	cc -DUSL -o $@ findnewrcs.c
+loadfindnewrcs.UNIX_SV:
+	rm -f findnewrcs.UNIX_SV
+	cc -o findnewrcs.UNIX_SV findnewrcs.c
+
+findnewrcs.UNIX_System_V:findnewrcs.c
+	rm -f $@
+	cc -DUSL -o $@ findnewrcs.c
+loadfindnewrcs.UNIX_System_V:
+	rm -f findnewrcs.UNIX_System_V
+	cc -o findnewrcs.UNIX_System_V findnewrcs.c
+
+findnewrcs.HP-UX:findnewrcs.c
+	rm -f $@
+	cc +O1 -o $@ findnewrcs.c
+loadfindnewrcs.HP-UX:
+	rm -f findnewrcs.HP-UX
+	cc +O1 -o findnewrcs.HP-UX findnewrcs.c

BIN
cde/admin/BuildTools/fnrclone/findnewrcs.300.80


BIN
cde/admin/BuildTools/fnrclone/findnewrcs.300.90


BIN
cde/admin/BuildTools/fnrclone/findnewrcs.700.100


BIN
cde/admin/BuildTools/fnrclone/findnewrcs.700.807


BIN
cde/admin/BuildTools/fnrclone/findnewrcs.700.90


BIN
cde/admin/BuildTools/fnrclone/findnewrcs.800.100


BIN
cde/admin/BuildTools/fnrclone/findnewrcs.800.80


BIN
cde/admin/BuildTools/fnrclone/findnewrcs.800.90


BIN
cde/admin/BuildTools/fnrclone/findnewrcs.AIX


BIN
cde/admin/BuildTools/fnrclone/findnewrcs.HP-UX


BIN
cde/admin/BuildTools/fnrclone/findnewrcs.SunOS


+ 179 - 0
cde/admin/BuildTools/fnrclone/findnewrcs.UNIX_SV

@@ -0,0 +1,179 @@
+ELF 4q4 (44  Ô\ÿ\ÿ]]ð	X````�/usr/lib/ld.so.1C_7EWT5Z1%[K\N;]LJ S6?Q:X3D2^IA4M8)/HUPCO#V+"&$,*90'->!BF<G=(@YR.Ôèx	h˜Ô N°	N¼
+OÀ]_t
_à`\```ð`ð@^à8"]Ø@^8"N°	#Ø
+T(b02_(H"7]œ`>`ð@!CfXÿñH]ÀèODd˜[_d8"a^ÔD"f xmb4v^¼8"|˜@‚]„\"‰^ŒT�^ø˜"•^t"�]ü\¢^\°©\ÿÿñ°]0�·^È8"¿^Px"Å^D"Êb4!Ò`ðÿñÙ]l8"à]Hæ^°8"ì_8"ò^˜8"øb8]<,+8^,|_4H"]äp%]ÌD"+b<2b@8^ì˜"?]´@FN¼
+S^8HY]Täa]�ðh_T"mbDt_,"{fD‚`\ÿñ˜_Xx"¡fH®_L8"´^¤8"»]¨|Ã]`0Ë^€ "Ô^DÌÛ]ðôâ``ÿñë_@8"ñ^ ¬ù]x<"fL^hä"__iobopenstrrchrreadlink_finimainSourceLenreadmalloc_iob_endstrcatResolveLinkchownfork_start_environcreatUsagegetcwdfflushdup2readdirfreeperror_etextatexitsymlinkchdirstatenviron_edatamktemp_exitutimeclosermdirWorkingDirCmpexitGetNewfopenwritestrcmplstatoptinderrnofilenostrcpy_lib_versionfgetsfprintfstrlenwaitBufferexeclpoptarg_GLOBAL_OFFSET_TABLE_getgrnamSourceDirCmpmkdirunlinksprintfsetvbufclosedirfcloseprintf_DYNAMICchmodstrncmpgetoptWorkingLen_initopendirlibc.so.1/usr/ucblibb4&`ð fDMb<Bb@C]00]<<]H7]TH]`T]l6]x[]„)]�I]œ]¨S]´E]À!]ÌA]Ø]ä@]ðW]ü-^3^^ Z^,>^8G^DV^P2^\.^h^^t,^€U^Œ*^˜:^¤R^°8^¼'^È1^Ô$^à^ìD^ø+_L_J_9_(_4?_@Y_LQ_XO_d#�ã¿ �Çà�è¼ à @¢ D¥, ¤ ¤@'˜ä$â4œ#  €�€�@S¸S�"°@S´ÿÿë�’”–@@S­@S®?ÿÿ‚c �ã€ð' D˜�!S’cÀÔ D@S¦� @S��Çà�è?ÿÿ‚c�ã€ð' Dò' HÀ'¿üÀ'¿øÀ'¿ô˜�!’ ” @–$@S•—Ð#Ø@S”—Ð"cØРDÒ H˜” @S�º€¢?ÿ€ã€É™Ô¢DÔ'¿ü€Ú™ÖâDÖ'¿ø€Õ™ø"DÚO€�
€P€=—Þã°žà!—Þ$#°#—âc´¢`%—â$£´'—æ㼦à)—æ%#¼+—êc¸ª`-—ê%£¸€5/—îã°®à1—î&#°€.3—òc´²`5—ò&£´€'7—ö㼶à—ö"#¼€ —Òc¸’`—Ò"£¸€Ö HÐÀÿÿ‰� @S/€ÐO€¢ A¿ÿÀ¢ a¿ÿ×€¢ m¿ÿꀢ o¿ÿÚ€¢ x¿ÿß¿ÿë¸ ¿ÿ°€—Úc¤š`—Ú#㤀x!—à#   #—à$c €q%—䣨¤ '—ä$㨀j¨ +—è%cÈ€e¬ /—ì%ãЀ`° 3—ð&cÄ€[5—ô£¬´ 7—ô&㬀T—Ð#˜� —Ð"c˜€M—Ô£�” —Ô"ã�€F—Ø#”˜ —Ø#c”€?—Þ㜞à!—Þ$#œ€8#™âbD%—â$£Ô€2'™æâD)—æ%#Ø€,+—À%cÌ€(-—죌¬ /—ì%㌀!ð HÐÿÿ� @Rµ€��" C€¢ ;¿ÿôS”¢À“2 ²@	²@	³.`’@¶
+`’™*`Ö
+€¢À¿ÿç˜
+Ð �¿ÿØ¿ü€�€Ú¿üÞK@€�€à¿üâL€¤`/€A˜�"D’$@Rš¸€¢ €
ä HÔ€U’`ˆ˜�!@R‚� @Ryæ¿ü€�€è¿üêM€�€Ð¿ü@R‚¶�@R~�� @R}Ð'¿hпhU’`´”Ö¿ü@Rxì¿hì'¿ü€
�@Rk� @RkÐ'¿üпü’@Rlî¿ø€�€ð¿øòN€�€@пü@RW� @RWÐ'¿øпøÒ¿ü@RXпøU’`¼@RV’¿lпø@RU€�€ô¿€7<�€(€¢	€Ð¿ø’ @íÐ'¿øпø’ /@RE¸ÔO€�
+€�U’`Ä@R>€�€À/˜�!U’`ÌÔ¿ø@R€0Ö¿øØJÀ€£ /€+˜�"D’$@R¸€¢ €
Ú HÔ@U’`è˜�!@Q÷� @Qîпø@R¶�@Qü�� @QûÐ'¿hпhU’a”Ö¿ø@QöÞ¿hÞ'¿øпøÒ¿ü@Qÿ€�€à¿ô  à'¿ôпü@Qá� @Qá#˜Ð$b8˜Ð"8Ò¿ü@Qà˜Ð"8U’a@QÝпø@QÎ� @QÎ%™Ð$¢H™Ð"HÒ¿ø@QÍ™Ð"HU’a @QʘÐ"8@Qº'™Ð$âL™Ð"H@Q´)˜Ð%"0+—êcÄ€�€-—죜€�€
+—Ð#Ø@ÿ—Ð#Ø@b€%U�!$@Q²U�!0@Q®U�!`Ò¿ü@Q©U�!|Ò¿ø@Q¤/—î㜀�€
+U�!˜—ÒcØ—Ô£Ø@Q—U�!°@Q“1˜ð"<ò D€¦€R5˜ô¢<ö D€¦€€J˜Ð"<“* Ô HЀ	@Qh¶Ð¿ø@Qd�� @QcÐ'¿h˜Öâ<™*àÚ HÖ@U’a´Ð¿hÔ¿ø@QZ˜Þâ<¡+àâ HÐ@@QM¶Ð¿ü@QI�� @QHÐ'¿d%˜ä¢<§, è HÖU’a¼Ð¿dÔ¿ü@Q?пdÒ¿hÔ¿ô@пd@QLпh@QI+˜êb<ª`-˜ê%¢<¿ÿ´€Ð¿üÒ¿øÔ¿ô@� @Q�Çà�è?ÿþ‚bÈ�ã€ð' Dò' Hô' LÀ'»@À'»<À'»8—Ð#”€�€	˜�!U’aÄÔ H@P÷—ÒcŒ€¢`€
+˜�!U’aàÔ DÖ H@PêU�!ø@PõºÐ D@Pñ�� @PðÐ'¿ðпðU’bÔ D@Pì—Ô£Œ€�
+€	˜�!U’bÔ¿ð@PË’¿Pпð@Pô€�€¦’»Dпð”$@Pï€�€žU�"@PǺРH@PÃ�� @PÂÐ'¿HпHU’b Ô H@P¾U�"(@P´ºÐ H@P°�� @P¯Ð'¿DпDU’b0Ô H@P«Ð¿H’ @
+VÐ'¿H—Ö㌀�€	˜�!U’b8Ô¿H@P…’¿PпH@P®€�€
+’»DпD”$@P©€�€S—Ø#¤€�€N—Úc�€�
€Ô¿ð™ÞâL”€U’bL˜�!@Pb!—à#Ä€�€Ð¿ð@¸Ð¿HÒ¿ð@=€1Ò¿ð#™âbL’@U�"d@PsпHÒ H˜Ô¢0@Py€�€	ä¿H'˜æâ0èL€€¥ /€
Ô¿ð+™êbL”€Ò¿HU�"t@PZ€Ò¿H-˜ì¢0’@Ô¿ð/™îâL”€U�"ˆ@PLпð@PLð¿Hð'¿ð² 
+ò'¿Lô¿L€�€`’¿Pпð@P4€�€Rö¿d9<ºÀ(€§@€	пð’ @	ÌÐ'¿ð€BÒ¿d<–
+@
+ €¢À€9пðU’b @P/Ð'¿ü€�€.˜�"D’$Ô¿ü@P(˜�"D@Oú˜šbCÀ*
пð@P˜�"D@Oð� @OðÐ'¿ðпð˜’bD@Oð—Þ㌀�€	˜�!U’b¤Ô¿ð@OÌпü@P€€€€à¿L $ à'¿L¿ÿ â¿L€�€%—ä£�€�€	˜�!U’bÀÔ¿ð@O¬À'»8пð@Oç€�€'˜æâ@€¤à€Ð¿ð@O߀¬U�"Ø@OÜÐ'¿Ü€�€¤Ð¿Ü@OØÐ'¿Ø€�€šÐ¿Ø� 
+@O—€¢ €¿ÿòпØ� 
+@OŽè¿Ø�� U’bÜ@Oœ€�€¿ÿâ˜�"DÒ¿ð@O†˜�"DU’bà@OƒÒ¿Ø’`
+˜�"D@O}пØ� 
+’¿P@OŠ€�€˜�"D@O˜¿ÿÃê»8€�€�!,@O_ì»,Ð%¡(î»,ðá(ð'»,€�!,@OUÐ'»8ò»8ò'»,ô»,À&¡(ö»,À&à˜�"D@OG� @OGø»,Ð'ú»,Ð@˜’bD@OEпØ� 
+@O8Ò¿Ø”`
+–€À*ÿþпØ� 
+@O0� @O0Ø»,Ð# Ú»,Ð`Ò¿Ø’`
+@O.п� 
+@O!Þ»,Ð#àà»,¢ ¤¿Pè „è$`„è €è$`€¬ €¬% è€è$@¬% è€è$@¬% è€è$@¬¥ è€¿ÿõè$@î»,° ð%à˜ò»,À&a$¿ÿcпÜ@O<À'»@РD@O,€�€5˜ô¢@€¦ €Ð D@O$€ÍU�"ä@O!Ð'¿Ü€�€ÅпÜ@OÐ'¿Ø€�€»ö¿ØøNà
+€§ .€Ð¿Ø� 
+U’bè@Nê€�€¿ÿë˜�"DÒ D@NÔ˜�"DU’bì@NÑÒ¿Ø’`
+˜�"D@NËпØ� 
+’¿P@NØ€�€Ò¿Ø’`
+U�"ð@NÆ€�€˜�"D@NÝ¿ÿÃú»@€�€�!,@N¤Ò»4Ð"a(Ô»4Ö¡(Ö'»4€�!,@NšÐ'»@Ø»@Ø'»4Ú»4À#a(Þ»4À#à˜�"D@NŒ� @NŒà»4Ð$â»4Ð@˜’bD@NŠÐ¿Ø� 
+@N}� @N}ä»4Ð$ æ»4ÐàÒ¿Ø’`
+@N{п� 
+@Nnè»4Ð% ê»4¬`®¿Pðà„ð% „ðà€ð% €´ €´& ðÀð%€´& ðÀð%€´& ðÀð%€´¦ ðÀ¿ÿõð%€ö»4¸ ø&à˜ú¿d<’@€¢@
+€$пØ� 
+’¿P@NW€�€Ö»4˜àœš¿Pà`„à# „à`€à# €¤ €¤$ à@à#¤$ à@à#¤$ à@à#¤¤ à@¿ÿõà#æ»4¨ è$á$€ê»4À%a$¿ÿBпÜ@N`À'»<ì L€�€ÍРH@NL€�€/˜îâ@€¥à€Ð H@ND€½U�"ô@NAÐ'¿Ü€�€µÐ¿Ü@N=Ð'¿Ø€�€«ð¿ØòN 
+€¦`.€Ð¿Ø� 
+U’bø@N
+€�€¿ÿë˜�"DÒ H@Mô˜�"DU’bü@MñÒ¿Ø’`
+˜�"D@MëпØ� 
+’¿P@Mé€�€˜�"D@N¿ÿÌô»<€�€�!,@MÍö»0Ð&á(ø»0ú!(ú'»0€�!,@MÃÐ'»<л<Ð'»0Ò»0À"a(Ô»0À" ˜�"D@Mµ� @MµÖ»0Ð"ÀØ»0И’bD@M³Ð¿Ø� 
+@M¦� @M¦Ú»0Ð#`Þ»0ÐàÒ¿Ø’`
+@M¤Ð¿Ø� 
+@M—à»0Ð$ â»0¤`œ¦¿Pèà„è$ „èà€è$ €¬ €¬% èÀè$€¬% èÀè$€¬% èÀè$€¬¥ èÀ¿ÿõè$€î»0° ð%á$ò¿d5<¶@9(€¦À€Ð¿Ø� 
+’¿P@M�ú»0�`’¿PÔ`„Ô" „Ô`€Ô" €˜ €˜# Ô@Ô"˜# Ô@Ô"˜# Ô@Ô"˜£ Ô@¿ÿõÔ"Ú»0ž Þ#`˜¿ÿRпÜ@M�!—à#Œ€�€	˜�!U’cÔ D@M9â»@â'»4ä»4€�€ó'—æ㌀¤à€è»4Ô ê»4Ö@U’c(˜�!@M$À'»(ì»4î ð»4ò ´@¶& ö'¿Hø»4ú €§`€<пHU’cL@M6€�€Ð»(� Ð'»(—Òc´€�	€—Ô£Œ€¢ €˜�!U’cP@Lü€µÐ¿HU’cd@M€�€Ö»(–àÖ'»(—Ø#°€�€—ÚcŒ€£`€˜�!U’ch@L߀˜—Ð#Ü@Lè”Þ»4Ðà—ÒcÜ@M€�€à»(  à'»(#—âc¸€�€%—䣌€¤ €˜�!U’c|@L¼€uæ»4ÐàU’c˜@LØ€�€)—è#Œ€¥ €˜�!U’cœ@L¦€_+—êcЀ�€ì»4РU’c´@L½€�€/—î㌀¥à€˜�!U’c¼@L‹€D1—ð#¼€�€"ò»4ô`˜€�€ö»4øà$;<� €¢	€Ô»4Ö $˜
+àI€£ I€—ÚcŒ€£`€˜�!U’cÔ@Lf€Þ»<Þ'»0à»0€�€â»0ä`æ»4èà€¥€ê»4Ð`ì»0Ò @Lu€�€î»0ðà° ð%à€ò»0ôa(ô'»0¿ÿã7—ö㌀¦à€ø»0€�€ú»0Ô`л0ÖU’cð˜�!@L0€˜�!V’`@L(Ò»4Ô`˜€�
+€8Ö»4Øà$<ž
!€£À€0#—âcÈ€�€ä»4æ¡$€�€
+è»4ê °-<®
@1(€¥À€3—òcŒ€¦`€˜�!V’`,@Kþô»4Ѐһ0€�	€ö»0ÒÀ€ø»4ÒÔ Lÿú倨ú»8ú'»,л,€�€Ò»,Ô`Ö»4Øà€£
+€Ú»4Ð`Þ»,Òà@Kþ€�€à»,â ¢`â$ €ä»,æ¡(æ'»,¿ÿã)—è#Œ€¥ €ê»,€�€ì»,Ô î»,ÖÀV’`<˜�!@K¹€˜�!V’`d@K±ð»,€�€/ò»0€�€+ô»4ö €¦à€ø»4ú л4Ð ��" V’`t@K¾€�€Ò»(’`Ò'»(—Ô£”€�
+€Ö»(€�€
Ø»4Ô™ÚbL”€
V’`|˜�!@K€Þ»,€�€à»,â ˜€�€ä»0€�€	æ»,èàPê»0ì`P€¥€€/—îã €�€Qð»0€�€M3—òcŒ€¦`€˜�!V’`˜@KXô»0€�€1ö»0øàPú»4Ð`P€¢€*—ÒcŒ€¢`€˜�!V’`´@KBÔ»4Ö $€Šà’€—Ø#�€�€
Ú»4Ô@™ÞâL”€V’`Ô˜�!@K-€æ!—à#�€�€
â»4Ô@%™ä¢L”€V’`ô˜�!@K'—æãÌ€�€è»0ê!$€�€ì»0î °1<²
À5(€¦@€ö»0ÐÀ’ @ÈÐ'¿ì¸ ø'¿ä€ú»0Ð@Ð'¿ì€Ò»0Ô@Ô'¿ì—Ö㜀�€>—Ø#Ä€�€Ú»4Ô@—ÒcÔ� Ö¿ì—Ø#Ø@Û€-пì™ÒbH˜Ô¢0@K
€�€Þ»4ÔÀ!™à"L”€—ÒcÔV�!Ö¿ì—Ø#Ø@Jð€â»4Ô@%™ä¢L”€Ö¿ì'˜æâ0–ÀV�! —ÒcÔ—Ø#Ø@JÝ)—è#Ä€�€ê»4Ð@@-—죬€�€	î»4ÒÀпì@Š€ð»4Òпì@€Mпì™ÒbH˜Ô¢0@JÆ€�€"ò»4Ò@5™ô¢L’@V�!@@J®ö»4ÖÀ9™ø"L–À—Òc¬€�	€˜’` €˜’`(V�!PÔ¿ì@J™€#ú»4Ò@™Ð"L’@V�!`@JŽÔ¿ì˜Òb0”€	Ö»4ÖÀ™Ø"L–À—Òc¬€�	€˜’`,€˜’`4V�!p@Jv—Úc¬€�
€—ÞãÄ€�€à»0Ò $’
+om’a$â»4Ð@@€ä»0Ò $’
+om’a$æ»4ÔÀ)™è"L”€V�!ˆ@JUê¿ä€�€Ð¿ì@JQ€
-—죌€¥ €˜�!V’a @J€Ó/—î㌀¥à€˜�!V’aÀ@J
ð»,€�€¹ò»,ô`Pö»4øàP€§€²;—úcŒ€§`€˜�!V’aÜ@I÷л4Ò $€Š`’€—Ô£�€�
+€
Ö»4ÔÀ™Ø"L”€V’aü˜�!@I‛—Úc�€�
€
Þ»4ÔÀ!™à"L”€V’b˜�!@IÐ#—âcÄ€�€ä»,Ô æ»4ÖÀпð—ÒcÔ—Ø#Ø@¸)—è#¨€�€ê»4Ò@пð@œ€bпðÒ H˜Ô¢0@Iá€�€	ì¿ð/˜îâ0ðM€€¦ /€(3—òcœ€�€ô»,Ö ö»4ØÀ9™ø"L˜Ò¿ð—Ô£ÔV�"0—ÚcØ@I¶;—úc¨€�€л4Ô™ÒbL”€	Ò¿ðV�"X@I§€,—Ô£œ€�
+€Ö»,ÖàÒ¿ð˜Ø"0’@Ú»4Ø@™ÞâL˜—Ô£ÔV�"t—ÚcØ@I�!—à#¨€�€Ò¿ð#˜âb0’@ä»4Ô€'™æâL”€V�" @I{€
)—è#Œ€¥ €˜�!V’bÀ@IGê»4ìa(ì'»4¿ü
/—î㌀�€	˜�!V’bàÔ H@I6ð»<ð'»0ò»0€�€"ô»0ö €�€€ø»0Ð V’c@IG€�€€;—úcЀ�€Ð»0Ð V’c@I7€�€—ÒcŒ€¢`€˜�!V’c@I€ðÔ»8Ô'»,Ö»,€�€Ø»,Ú Þ»0àà€¤
€
â»0Ð`ä»,Ò @I€�€€æ»,èá(è'»,¿ÿçê»,€�€-—죠€�€î»,ðàPò»0ô`P€¦€€€Áö»,øà¸ ø&àú»0Ð`Ò»0Ô`–€˜"àØ'¿HÚ»0Þ`€£à€&пHV’c(@Hã€�€à»(  à'»(#—âc´€�€€ŸÐ¿HV’c,@HÑ€�€ä»(¤ ä'»('—æã°€�€€�)—è#¸€�€—Ð#Ü@H¦”ê»0Ð`—ÒcÜ@HÀ�€€xРD@H—ì»0î �� @H”Ð'¿èпèÒ D@H•Ð¿èV’c0@H“ð»0Ò Ð¿è@HŽò»0ô`$7<¸€;€§€®Ð L€�€¨—Òc˜€�	€”—Ô£�€�
+€Ô¿è™ÖâL”€V’c4˜�!@HS—Ø#È€�€OÚ»0Þa$€�€Jà»0â °%<¦@)(€¤À€B+—êcÌ€�€
+ì»0Ѐ’ @ûÐ'¿ì€î»0ðÀð'¿ì3—òcÄ€�€Ð¿ìÒ¿è@€"пìÒ H˜Ô¢0@HS€�€
Ô¿è5™ô¢L”€Ò¿ìV�#L@H;€Ò¿ì7˜öâ0’@Ô¿è9™ø"L”€V�#`@H-пì@H-€1;—úcÄ€�€Ð¿è@cпè@пè’!í@Ç€Ò¿è™Ð"L’@V�#x@HÒ¿è™Ô¢L’@
+V�#ˆ@HÒ¿è™ÖâL’@V�#˜@GÿØ»0ÒпèÔ LÿöÈ€—Úc�€�
€Ô¿è™ÞâL”€V’c°˜�!@GÁ€©!—à#Ì€�€â»0äa$€�€æ»0èà°+<¬
/(€¥€€ð»0Ð’ @lÐ'¿ì² ò'¿ä€ô»0ö€ö'¿ìÀ'¿ä€ø»0úú'¿ìÀ'¿ä—Ð#�€�€Ô¿è™ÒbL”€	V’cȘ�!@GŠ—ԣĀ�
+€—Ö㬀�€Ð¿ìÒ¿è@c€Ð¿ìÒ¿è@ë€8пìÒ H˜Ô¢0@G¡€�€Ö¿è™Ø"L–À—Òc¬€�	€˜’`8€˜’`@V�#ØÔ¿ì@G~€Ô¿ì˜Úb0”€
Ö¿è™ÞâL–À—Òc¬€�	€˜’`D€˜’`LV�#è@Ge!—à#¬€�€#—âcÄ€�€ä»0Ò $’
+om’a$пè@€æ»0Òà$’
+om’a$Ô¿è)™è"L”€V�#ü@GFê¿ä€�€Ð¿ì@GBпè@G?ì»0î¡(î'»0¿ýÞ1—ð#Œ€�€	˜�!W’`Ô¿ð@Gò»8ò'»,ô»,€�€yö»,øà€�€€mРD@Gú»,Ò`�	� @GÐ'¿èпèÒ D@GпèW’`0@FÿÔ»,Ҡпè@Fú—Öã�€�€Ô¿è™Ø"L”€W’`4˜�!@FЗÚcÄ€�
€
—Þ㨀�€Ð¿ðÒ¿è@¨€3пðÒ H˜Ô¢0@Fí€�€	à¿ð#˜âb0äL€¤ /€'—æ㨀�€Ô¿è)™è"L”€Ò¿ðW� H@FÉ€+—êc¨€�€Ò¿ð-˜ì¢0’@Ô¿è/™îâL”€W� `@F¶Ð¿è@F¶ð»,ò!(ò'»,¿ÿ‡ô»@€�€ö»@ö'»4ø»4ú!(ú'»@л4Ð@F¤Ò»4Ð`@F Ð»4@F�¿ÿìÔ»<€�
+€Ö»<Ö'»0Ø»0Ú!(Ú'»<Þ»0ÐÀ@FŽà»0Ð @FŠÐ»0@F‡¿ÿìâ»8€�€ä»8ä'»,æ»,èá(è'»8ê»,Ð@@Fxì»,Р@Ftл,@Fq¿ÿìпð@Fl€�Çà�è?ÿÿ‚c��ã€ð' Dò' HРDÐ'¿ð—ÒcŒ€�	€
˜�!W’`xÔ¿ð@F+˜�!@FuÀ'¿øÔ¿ø€¢ 
+€eпð˜’bD”$@FLÐ'¿ü€�€€YÖ¿ü˜˜"DÀ*À˜ÚKbD€£`/€2пð’ /@F*Ð'¿ô€�€Þ¿ôÀ+À˜�"D@FºÐ¿ð@F
+�� @F	Ð'¿ôпôW’`ŒÔ¿ð˜–âD@F€˜�"D@E÷� @E÷Ð'¿ôпô˜’bD@E÷€˜�"D@Eè� @EèÐ'¿ôпô˜’bD@Eèà H  à' H¢$ €�€Ð¿ð@Eðä¿ôä'¿ðæ¿ø¦àæ'¿ø¿ÿ›è H€�€Ð¿ð@EÇ� @EÇÐ'¿ôпôÒ¿ð@EÈê¿ôê'¿ð-—죌€�€
˜�!W’`”Ô¿ð@E¢˜�!@Eìпð€°�Çà�è?ÿÿ‚c�ã€ð' D’¿tРD@E®€¢?ÿ€\пˆ<”
+	€¢€€RРD@EÈÐ'¿pØ¿p€�€Hпp@EÃÐ'¿l€�€;пl� 
+W’`˜@E•€�€0пl� 
+W’`œ@EŒ€�€'пl� 
+@EpºÐ D@El�� @EkÐ'¿üÚ¿ü€�
€Ð¿üÒ D@EhпüW’` @EfÒ¿l’`
+пü@Eaпüÿÿ­Ð¿ü@Ej¿ÿÂпp@E†Ð D@E‰€Ð D@E‡�Çà�è?ÿÿ‚c �ã€ð' DРD’ @E€€¢?ÿ€˜Ð"@€¢ €Ð D’!ÿ@Ew�Çà�è?ÿÿ‚c �ã€ð' Dò' HРDÒ H@Eo€¢?ÿ€Ð H@EN�Çà�è?ÿÿ‚c��ã€ð' Dò' Hô' Lö' Pø' T@E`Ð'¿üпü€¢?ÿ€W� ¤@E9€QÒ¿ü€�	€?Ô D€�
+€Ð D@E)€¢?ÿ€W� ´@E%€,РT’!	”!ÿ@E?Ð'¿ôÖ¿ô€¢ÿÿ€Ð T@E� @D˘�!@E3’пô@E2˜�!@E+’пô@E*РHÒ HÔ LÖ P˜ @E&РH@Dù� @D®� @E Ð'¿øØ¿ü€¢€Ú¿ø€£ÿ€¿ÿô�Çà�è?ÿÿ‚c�ã€ð' D’¿xРD@Dº€¢?ÿ€пŒ<”
+	€¢€€Ð D@Dã�Çà�è?ÿþ‚c��ã€ð' Dò' HРD’ @DçÐ'¿ôпô€¢?ÿ€Ð D@D¾€MРH’!”!ÿ@DØÐ'¿ðÒ¿ð€¢ÿ€
+РH@D¯Ð¿ô@DÜ€;’»ðпô”$@DØÐ'¿ü€�€’»ðпðÔ¿ü@DÒÐ'¿ø€�€Ô¿øÖ¿ü–"À
+Ö'¿ü€�€¿ÿðØ¿ø€£?ÿ€€¿ÿßÚ¿ü€£ÿ€Ð D@D€€	Þ¿ø€£ÿÿ€Ð H@Dwпô@D¤Ð¿ð@D¡�Çà�è?ÿÿ‚c �ã€ð' Dò' HРDÒ H@DŸ€¢?ÿ€Ð D@D`�Çà�è?ÿÿ‚c˜�ã€ð' Dò' H@DuÐ'¿üпü€¢?ÿ€W� ¼@DN€1Ò¿ü€�	€Ð D@DB€¢?ÿ€W� Ì@D>€˜� P˜’`T˜” XÖ H˜ @D\W� Ô@D.� @Cã� @DUÐ'¿øÔ¿ü€¢
+€Ö¿ø€¢ÿÿ€¿ÿô�Çà�è?ÿÿ‚c �ã€ð' DРD’!ÿ@DO€¢?ÿ€Ð D@D
�Çà�è?ÿÿ‚c˜�ã€ð' Dò' HРH@DBÐ'¿üпü€�€˜�!W’`ìÔ H@Cµ€Ò¿üÔ`’?ÿРD@D1�Çà�è�ã¿ �Çà�èD)l*ˆÿÿÿÿT,ÿÿÿÿT.¤ÿÿÿÿT0(	øÿÿÿÿT3ÀÿÿÿÿTÿÿÿÿTÜpÿÿÿÿTÿÿÿÿT;8\XÿÿÿÿTÿÿÿÿT ø!ÜÿÿÿÿT#0ÿÿÿÿTÿÿÿÿT&„ÿÿÿÿTusage: %s [options] [-W <working dir>] [-S <RCS dir>] [subdir ...] 
+
+options:
+    -i[Aaoxm]
+        clone:  A - all the following
+            a - "*.a" files
+            o - "*.o" files
+            x - executables ('x' mode bits set)
+            m - "Makefile*" files
+    -v  verbose (the more, the verboser)
+        source files
+    -L  take checked out source over RCS regardless of time
+    -O  don't check out new files, Only create symbolic links to exiting files
+          (this option is for cloning build trees from controlled source trees)
+    -R  don't create any RCS links
+    -l  symbolicly link files instead of copying them
+    -m  make any missing directories
+    -q  quiet
+    -d  diff new versions of existing files
+    -c<cmd> use <cmd> to do diffs (default is diffc)
+    -o<out> write diffs to <out> instead of /tmp/,out??????
+    -W<dir> use working directory <dir> (default is ".")
+    -S<dir> use RCS/source directory <dir>
+        (default is /RCS directories of working tree)
+    -f  follow source-tree links to non-RCS dirs (old behavior)
+    -X  execute instead of generating shell script
+    -C  process SCCS directories if present
+    -s  do not resolve symbolic links for files. use file name
+%s: can't get current working directory
+%s/%s/RCS/RCSusing sourcedir of "%s"
+%s: can't get current working directory
+%s/%s//#!/bin/sh
+#
+# the following makes things more readeable
+
+w='%s'	# Working directory
+s='%s'	# Source directory
+rm -rf %s; touch %s
+
+%s/%s%s/%sScanning directory "%s"
+>> GetNew("%s", "%s")
+/RCS%s/RCS>> RcsDir="%s"
+/RCS%s/RCS/RCS%s/RCS>> RCS RcsDir="%s"
+%s: creating symlink
+rm -f ${w}/%s
+ln -s %s ${w}/%s
+ln -s ${s}/%s ${w}/%s
+r>> soft link RcsDir="%s"
+%s: >10 "soft" links
+.,v/.../RCS.../>> Pass 1: scanning WorkingDir "%s"
+>>  keyname="%s", fullname="%s"
+.o>>   .o -- ignored
+.a>>   .a -- ignored
+>>   Makefile* -- ignored
+RCS>>   RCS -- ignored
+SCCS>>   SCCS -- ignored
+>>   executable -- ignored
+   source: keyname="%s"  fullname="%s"
+   no source file
+>>   directory
+   rcs: keyname="%s"  fullname="%s"
+   no rcs file
+.snf%s: no source or RCS file
+>>   source newer than rcs
+>>   source newer than working
+%s: writable -- not updated
+%s: newer file
+%s ${w}/%s %s >>%s 2>&1
+%s ${w}/%s ${s}/%s >>%s 2>&1
+rm -f ${w}/%s
+	%s %s ${w}/%s
+rm -f ${w}/%s
+	%s ${s}/%s ${w}/%s
+	chmod 0%03o ${w}/%s
+>>   source older than working
+>>   rcs newer than source
+>>   rcs newer than working
+%s: writable -- not updated
+%s: newer RCS file
+	 (cd %s; %s %s ${w}/%s  >>%s 2>&1)
+(cd %s; co -q ${w}/%s) 
+	 (cd ${s}/%s; %s %s ${w}/%s  >>%s 2>&1)
+(cd ${s}/%s; co -q ${w}/%s) 
+>>   source older than working
+>> Pass 2: scanning SourceDir "%s"
+RCSSCCS>>   SCCS -- ignored
+.o.a/%s: building directory
+ln -s %s ${w}/%s
+ln -s ${s}/%s ${w}/%s
+rm -rf ${w}/%s
+	mkdir ${w}/%s
+	chmod 0755 ${w}/%s
+%s: missing directory
+%s: new file
+%s %s ${w}/%s
+%s ${s}/%s ${w}/%s
+	chmod 0%03o ${w}/%s
+>> scanning RcsDir "%s"
+/%s: new RCS file
+(cd %s; co -q ${w}/%s)
+(cd %s; co -q ${w}/%s)
+ResolveLink %s->%s/%s%s
+.../fork() faileddirnamefork() faileddirnamefailed to exec co(1)%s: no such group
+00¿ÿó<0¿ÿðH0¿ÿíT0¿ÿê`0¿ÿçl0¿ÿäx0¿ÿá„0¿ÿÞ�0¿ÿÛœ0¿ÿب0¿ÿÕ´0¿ÿÒÀ0¿ÿÏÌ0¿ÿÌØ0¿ÿÉä0¿ÿÆð0¿ÿÃü0¿ÿÀ0¿ÿ½0¿ÿº 0¿ÿ·,0¿ÿ´80¿ÿ±D0¿ÿ®P0¿ÿ«\0¿ÿ¨h0¿ÿ¥t0¿ÿ¢€0¿ÿŸŒ0¿ÿœ˜0¿ÿ™¤0¿ÿ–°0¿ÿ“¼0¿ÿ�È0¿ÿ�Ô0¿ÿŠà0¿ÿ‡ì0¿ÿ„ø0¿ÿ�0¿ÿ~0¿ÿ{0¿ÿx(0¿ÿu40¿ÿr@0¿ÿoL0¿ÿlX0¿ÿid0¿ÿf@(#) $Revision$_à_è_ødiff/tmp/,outXXXXXXMakefile-S:-W:i:OLRXflsCmqvd~c:o:ln -scpln -scpln -scpln -scpcoco-q``
N°#è	hx
+/]@Ô˜|	ÿñÔèx	h˜Ô N°	N¼
+OÀ]_t
_à`\```ðX!ÿñ(ÿñ4ÿñA_Ì
R_À
XL¨DaFüœjH˜XsN8x|Mø@…_Ð
•_¬
Ÿ_¼
°K(€¶_°
À_´
Ê_Ä
Ô_¸
â_�
è_”
ð_t
ø_¤
_Ü
_˜
_È
$_ 
3_Ô
?I4˜GJÌ\OLìWHðD__œ
g_¨
s_Ø
{_Œ
�ÿñˆ`ð@Ž^à8"“]Ø@›^8"¤N°	ªØ
+T¯b0¹_(H"¾]œ`Å`ð@!ÊfXÿñÏ]ÀèÖDd˜â_d8"è^ÔD"í xôb4ý^¼8"˜@	]„\"^ŒT^ø˜"^t"$]ü\)^\°0\ÿÿñ7]0�>^È8"F^Px"L^D"Qb4!Y`ðÿñ`]l8"g]Hm^°8"s_8"y^˜8"b8�]<’,+8™^,|Ÿ_4H"¥]äp¬]ÌD"²b<¹b@¿^ì˜"Æ]´@ÍN¼

+ 179 - 0
cde/admin/BuildTools/fnrclone/findnewrcs.UNIX_System_V

@@ -0,0 +1,179 @@
+ELF4q4 (44  Ô\ó\ó\ô\ôè	T`T`Tˆ/usr/lib/ld.so.1C_7EWT5Z1%[K\N;]LJ S6?Q:X3D2^IA4M8)/HUPCO#V+"&$,*90'->!BF<G=(@YR.Ôèx	hŒÈN¤	N°
+O´\ô_h
_Ô`P`T`à`à@^Ô8"]Ì@^8"N¤	#Ì
+T(b 2_H"7]�`>`à@!CfHÿñH]´èODX˜[_X8"a^ÈD"fxmb$v^°8"|Œ@‚]x\"‰^€T�^ì˜"•^h"�]ð\¢^P°©\óÿñ°]$�·^¼8"¿^Dx"Å]üD"Êb$!Ò`ÜÿñÙ]`8"à]<æ^¤8"ì_8"ò^Œ8"øb(]0 +8^ |_(H"]Øp%]ÀD"+b,2b08^à˜"?]¨@FN°
+S^,HY]Häa]„ðh_T"mb4t^ø,"{f4‚`Pÿñ˜_Lx"¡f8®_@8"´^˜8"»]œ|Ã]T0Ë^t "Ô^8ÌÛ]äôâ`Tÿñë_48"ñ^¬ù]l<"f<^\ä"__iobopenstrrchrreadlink_finimainSourceLenreadmalloc_iob_endstrcatResolveLinkchownfork_start_environcreatUsagegetcwdfflushdup2readdirfreeperror_etextatexitsymlinkchdirstatenviron_edatamktemp_exitutimeclosermdirWorkingDirCmpexitGetNewfopenwritestrcmplstatoptinderrnofilenostrcpy_lib_versionfgetsfprintfstrlenwaitBufferexeclpoptarg_GLOBAL_OFFSET_TABLE_getgrnamSourceDirCmpmkdirunlinksprintfsetvbufclosedirfcloseprintf_DYNAMICchmodstrncmpgetoptWorkingLen_initopendirlibc.so.1b$&`à f4Mb,Bb0C]$0]0<]<7]HH]TT]`6]l[]x)]„I]�]œS]¨E]´!]ÀA]Ì]Ø@]äW]ð-]ü3^^Z^ >^,G^8V^D2^P.^\^^h,^tU^€*^Œ:^˜R^¤8^°'^¼1^È$^Ô^àD^ì+^øL_J_9__(?_4Y_@Q_LO_X#�ã¿ �Çà�è¼ à @¢ D¥, ¤ ¤@'˜ä$â$œ#  €�€�@S¸S�"¤@S´ÿÿë�’”–@@S­@S®?ÿÿ‚c �ã€ð' D˜�!S’c´Ô D@S¦� @S��Çà�è?ÿÿ‚c�ã€ð' Dò' HÀ'¿üÀ'¿øÀ'¿ô˜� ð’ ” @–$@S•—Ð#Ì@S”—Ð"cÌРDÒ H—”£ø@S�º€¢?ÿ€ã€É™Ô¢4Ô'¿ü€Ú™Öâ4Ö'¿ø€Õ™ø"4ÚO€�
€P€=—Þ㤞à!—Þ$#¤#—âc¨¢`%—â$£¨'—æã°¦à)—æ%#°+—êc¬ª`-—ê%£¬€5/—î㤮à1—î&#¤€.3—òc¨²`5—ò&£¨€'7—öã°¶à—ö"#°€ —Òc¬’`—Ò"£¬€Ö HÐÀÿÿ‰� @S/€ÐO€¢ A¿ÿÀ¢ a¿ÿ×€¢ m¿ÿꀢ o¿ÿÚ€¢ x¿ÿß¿ÿë¸ ¿ÿ°€—Úc˜š`—Ú#㘀x!—à#”  #—à$c”€q%—䣜¤ '—ä$㜀j¨ +—è%c¼€e¬ /—ì%ãÄ€`° 3—ð&c¸€[5—ô£ ´ 7—ô&ã €T—Ð#Œ� —Ð"cŒ€M—Ô£„” —Ô"ã„€F—Ø#ˆ˜ —Ø#cˆ€?—Þã�žà!—Þ$#�€8#™âb4%—â$£È€2'™æâ4)—æ%#Ì€,+—À%cÀ€(-—죀¬ /—ì% !ð HÐÿÿ� @Rµ€��" C€¢ ;¿ÿôS”¢´“2 ²@	²@	³.`’@¶
+`’™*`Ö
+€¢À¿ÿç˜
+Ð �¿ÿØ¿ü€�€Ú¿üÞK@€�€à¿üâL€¤`/€A˜�"4’$@Rš¸€¢ €
ä HÔ€U’`|˜�!@R‚� @Ryæ¿ü€�€è¿üêM€�€Ð¿ü@R‚¶�@R~�� @R}Ð'¿hпhU’`¨”Ö¿ü@Rxì¿hì'¿ü€
�@Rk� @RkÐ'¿üпü’@Rlî¿ø€�€ð¿øòN€�€@пü@RW� @RWÐ'¿øпøÒ¿ü@RXпøU’`°@RV’¿lпø@RU€�€ô¿€7<�€(€¢	€Ð¿ø’ @íÐ'¿øпø’ /@RE¸ÔO€�
+€�U’`¸@R>€�€À/˜�!U’`ÀÔ¿ø@R€0Ö¿øØJÀ€£ /€+˜�"4’$@R¸€¢ €
Ú HÔ@U’`ܘ�!@Q÷� @Qîпø@R¶�@Qü�� @QûÐ'¿hпhU’a”Ö¿ø@QöÞ¿hÞ'¿øпøÒ¿ü@Qÿ€�€à¿ô  à'¿ôпü@Qá� @Qá#˜Ð$b(˜Ð"(Ò¿ü@Qà˜Ð"(U’a@QÝпø@QÎ� @QÎ%™Ð$¢8™Ð"8Ò¿ø@QÍ™Ð"8U’a@QʘÐ"(@Qº'™Ð$â<™Ð"8@Q´)˜Ð%" +—êc¸€�€-—ì£�€�€
+—Ð#Ì@ÿ—Ð#Ì@b€%U�!@Q²U�!$@Q®U�!TÒ¿ü@Q©U�!pÒ¿ø@Q¤/—îã�€�€
+U�!Œ—ÒcÌ—Ô£Ì@Q—U�!¤@Q“1˜ð",ò D€¦€R5˜ô¢,ö D€¦€€J˜Ð",“* Ô HЀ	@Qh¶Ð¿ø@Qd�� @QcÐ'¿h˜Öâ,™*àÚ HÖ@U’a¨Ð¿hÔ¿ø@QZ˜Þâ,¡+àâ HÐ@@QM¶Ð¿ü@QI�� @QHÐ'¿d%˜ä¢,§, è HÖU’a°Ð¿dÔ¿ü@Q?пdÒ¿hÔ¿ô@пd@QLпh@QI+˜êb,ª`-˜ê%¢,¿ÿ´€Ð¿üÒ¿øÔ¿ô@� @Q�Çà�è?ÿþ‚bÈ�ã€ð' Dò' Hô' LÀ'»@À'»<À'»8—Ð#ˆ€�€	˜�!U’a¸Ô H@P÷—Òc€€¢`€
+˜�!U’aÔÔ DÖ H@PêU�!ì@PõºÐ D@Pñ�� @PðÐ'¿ðпðU’aôÔ D@Pì—Ô£€€�
+€	˜�!U’aüÔ¿ð@PË’¿Pпð@Pô€�€¦’»Dпð”$@Pï€�€žU�"@PǺРH@PÃ�� @PÂÐ'¿HпHU’bÔ H@P¾U�"@P´ºÐ H@P°�� @P¯Ð'¿DпDU’b$Ô H@P«Ð¿H’ @
+VÐ'¿H—Ö �€	˜�!U’b,Ô¿H@P…’¿PпH@P®€�€
+’»DпD”$@P©€�€S—Ø#˜€�€N—Úc„€�
€Ô¿ð™Þâ<”€U’b@˜�!@Pb!—à#¸€�€Ð¿ð@¸Ð¿HÒ¿ð@=€1Ò¿ð#™âb<’@U�"X@PsпHÒ H˜Ô¢ @Py€�€	ä¿H'˜æâ èL€€¥ /€
Ô¿ð+™êb<”€Ò¿HU�"h@PZ€Ò¿H-˜ì¢ ’@Ô¿ð/™îâ<”€U�"|@PLпð@PLð¿Hð'¿ð² 
+ò'¿Lô¿L€�€`’¿Pпð@P4€�€Rö¿d9<ºÀ(€§@€	пð’ @	ÌÐ'¿ð€BÒ¿d<–
+@
+ €¢À€9пðU’b”@P/Ð'¿ü€�€.˜�"4’$Ô¿ü@P(˜�"4@Oú˜šb3À*
пð@P˜�"4@Oð� @OðÐ'¿ðпð˜’b4@Oð—Þ �€	˜�!U’b˜Ô¿ð@OÌпü@P€€€€à¿L $ à'¿L¿ÿ â¿L€�€%—䣄€�€	˜�!U’b´Ô¿ð@O¬À'»8пð@Oç€�€'˜æâ0€¤à€Ð¿ð@O߀¬U�"Ì@OÜÐ'¿Ü€�€¤Ð¿Ü@OØÐ'¿Ø€�€šÐ¿Ø� 
+@O—€¢ €¿ÿòпØ� 
+@OŽè¿Ø�� U’bÐ@Oœ€�€¿ÿâ˜�"4Ò¿ð@O†˜�"4U’bÔ@OƒÒ¿Ø’`
+˜�"4@O}пØ� 
+’¿P@OŠ€�€˜�"4@O˜¿ÿÃê»8€�€�!,@O_ì»,Ð%¡(î»,ðá(ð'»,€�!,@OUÐ'»8ò»8ò'»,ô»,À&¡(ö»,À&à˜�"4@OG� @OGø»,Ð'ú»,Ð@˜’b4@OEпØ� 
+@O8Ò¿Ø”`
+–€À*ÿþпØ� 
+@O0� @O0Ø»,Ð# Ú»,Ð`Ò¿Ø’`
+@O.п� 
+@O!Þ»,Ð#àà»,¢ ¤¿Pè „è$`„è €è$`€¬ €¬% è€è$@¬% è€è$@¬% è€è$@¬¥ è€¿ÿõè$@î»,° ð%à˜ò»,À&a$¿ÿcпÜ@O<À'»@РD@O,€�€5˜ô¢0€¦ €Ð D@O$€ÍU�"Ø@O!Ð'¿Ü€�€ÅпÜ@OÐ'¿Ø€�€»ö¿ØøNà
+€§ .€Ð¿Ø� 
+U’bÜ@Nê€�€¿ÿë˜�"4Ò D@NÔ˜�"4U’bà@NÑÒ¿Ø’`
+˜�"4@NËпØ� 
+’¿P@NØ€�€Ò¿Ø’`
+U�"ä@NÆ€�€˜�"4@NÝ¿ÿÃú»@€�€�!,@N¤Ò»4Ð"a(Ô»4Ö¡(Ö'»4€�!,@NšÐ'»@Ø»@Ø'»4Ú»4À#a(Þ»4À#à˜�"4@NŒ� @NŒà»4Ð$â»4Ð@˜’b4@NŠÐ¿Ø� 
+@N}� @N}ä»4Ð$ æ»4ÐàÒ¿Ø’`
+@N{п� 
+@Nnè»4Ð% ê»4¬`®¿Pðà„ð% „ðà€ð% €´ €´& ðÀð%€´& ðÀð%€´& ðÀð%€´¦ ðÀ¿ÿõð%€ö»4¸ ø&à˜ú¿d<’@€¢@
+€$пØ� 
+’¿P@NW€�€Ö»4˜àœš¿Pà`„à# „à`€à# €¤ €¤$ à@à#¤$ à@à#¤$ à@à#¤¤ à@¿ÿõà#æ»4¨ è$á$€ê»4À%a$¿ÿBпÜ@N`À'»<ì L€�€ÍРH@NL€�€/˜îâ0€¥à€Ð H@ND€½U�"è@NAÐ'¿Ü€�€µÐ¿Ü@N=Ð'¿Ø€�€«ð¿ØòN 
+€¦`.€Ð¿Ø� 
+U’bì@N
+€�€¿ÿë˜�"4Ò H@Mô˜�"4U’bð@MñÒ¿Ø’`
+˜�"4@MëпØ� 
+’¿P@Mé€�€˜�"4@N¿ÿÌô»<€�€�!,@MÍö»0Ð&á(ø»0ú!(ú'»0€�!,@MÃÐ'»<л<Ð'»0Ò»0À"a(Ô»0À" ˜�"4@Mµ� @MµÖ»0Ð"ÀØ»0И’b4@M³Ð¿Ø� 
+@M¦� @M¦Ú»0Ð#`Þ»0ÐàÒ¿Ø’`
+@M¤Ð¿Ø� 
+@M—à»0Ð$ â»0¤`œ¦¿Pèà„è$ „èà€è$ €¬ €¬% èÀè$€¬% èÀè$€¬% èÀè$€¬¥ èÀ¿ÿõè$€î»0° ð%á$ò¿d5<¶@9(€¦À€Ð¿Ø� 
+’¿P@M�ú»0�`’¿PÔ`„Ô" „Ô`€Ô" €˜ €˜# Ô@Ô"˜# Ô@Ô"˜# Ô@Ô"˜£ Ô@¿ÿõÔ"Ú»0ž Þ#`˜¿ÿRпÜ@M�!—à#€€�€	˜�!U’bôÔ D@M9â»@â'»4ä»4€�€ó'—æ ¤à€è»4Ô ê»4Ö@U’c˜�!@M$À'»(ì»4î ð»4ò ´@¶& ö'¿Hø»4ú €§`€<пHU’c@@M6€�€Ð»(� Ð'»(—Òc¨€�	€—Ô£€€¢ €˜�!U’cD@Lü€µÐ¿HU’cX@M€�€Ö»(–àÖ'»(—Ø#¤€�€—Úc€€£`€˜�!U’c\@L߀˜—Ð#Ð@Lè”Þ»4Ðà—ÒcÐ@M€�€à»(  à'»(#—âc¬€�€%—䣀€¤ €˜�!U’cp@L¼€uæ»4ÐàU’cŒ@LØ€�€)—è#€€¥ €˜�!U’c�@L¦€_+—êcÄ€�€ì»4РU’c¨@L½€�€/—î ¥à€˜�!U’c°@L‹€D1—ð#°€�€"ò»4ô`˜€�€ö»4øà$;<� €¢	€Ô»4Ö $˜
+àI€£ I€—Úc€€£`€˜�!U’cÈ@Lf€Þ»<Þ'»0à»0€�€â»0ä`æ»4èà€¥€ê»4Ð`ì»0Ò @Lu€�€î»0ðà° ð%à€ò»0ôa(ô'»0¿ÿã7—ö ¦à€ø»0€�€ú»0Ô`л0ÖU’cä˜�!@L0€˜�!V’`@L(Ò»4Ô`˜€�
+€8Ö»4Øà$<ž
!€£À€0#—âc¼€�€ä»4æ¡$€�€
+è»4ê °-<®
@1(€¥À€3—òc€€¦`€˜�!V’` @Kþô»4Ѐһ0€�	€ö»0ÒÀ€ø»4ÒÔ Lÿú倨ú»8ú'»,л,€�€Ò»,Ô`Ö»4Øà€£
+€Ú»4Ð`Þ»,Òà@Kþ€�€à»,â ¢`â$ €ä»,æ¡(æ'»,¿ÿã)—è#€€¥ €ê»,€�€ì»,Ô î»,ÖÀV’`0˜�!@K¹€˜�!V’`X@K±ð»,€�€/ò»0€�€+ô»4ö €¦à€ø»4ú л4Ð ��" V’`h@K¾€�€Ò»(’`Ò'»(—Ô£ˆ€�
+€Ö»(€�€
Ø»4Ô™Úb<”€
V’`p˜�!@K€Þ»,€�€à»,â ˜€�€ä»0€�€	æ»,èàPê»0ì`P€¥€€/—î㔀�€Qð»0€�€M3—òc€€¦`€˜�!V’`Œ@KXô»0€�€1ö»0øàPú»4Ð`P€¢€*—Òc€€¢`€˜�!V’`¨@KBÔ»4Ö $€Šà’€—Ø#„€�€
Ú»4Ô@™Þâ<”€V’`Ș�!@K-€æ!—à#„€�€
â»4Ô@%™ä¢<”€V’`è˜�!@K'—æãÀ€�€è»0ê!$€�€ì»0î °1<²
À5(€¦@€ö»0ÐÀ’ @ÈÐ'¿ì¸ ø'¿ä€ú»0Ð@Ð'¿ì€Ò»0Ô@Ô'¿ì—Öã�€�€>—Ø#¸€�€Ú»4Ô@—ÒcÈ� Ö¿ì—Ø#Ì@Û€-пì™Òb8˜Ô¢ @K
€�€Þ»4ÔÀ!™à"<”€—ÒcÈV� øÖ¿ì—Ø#Ì@Jð€â»4Ô@%™ä¢<”€Ö¿ì'˜æâ –ÀV�!—ÒcÈ—Ø#Ì@JÝ)—è#¸€�€ê»4Ð@@-—죠€�€	î»4ÒÀпì@Š€ð»4Òпì@€Mпì™Òb8˜Ô¢ @JÆ€�€"ò»4Ò@5™ô¢<’@V�!4@J®ö»4ÖÀ9™ø"<–À—Òc €�	€˜’`€˜’`V�!DÔ¿ì@J™€#ú»4Ò@™Ð"<’@V�!T@JŽÔ¿ì˜Òb ”€	Ö»4ÖÀ™Ø"<–À—Òc €�	€˜’` €˜’`(V�!d@Jv—Úc €�
€—Þ㸀�€à»0Ò $’
+om’a$â»4Ð@@€ä»0Ò $’
+om’a$æ»4ÔÀ)™è"<”€V�!|@JUê¿ä€�€Ð¿ì@JQ€
-—죀€¥ €˜�!V’a”@J€Ó/—î ¥à€˜�!V’a´@J
ð»,€�€¹ò»,ô`Pö»4øàP€§€²;—úc€€§`€˜�!V’aÐ@I÷л4Ò $€Š`’€—Ô£„€�
+€
Ö»4ÔÀ™Ø"<”€V’að˜�!@I‛—Úc„€�
€
Þ»4ÔÀ!™à"<”€V’b˜�!@IÐ#—âc¸€�€ä»,Ô æ»4ÖÀпð—ÒcÈ—Ø#Ì@¸)—è#œ€�€ê»4Ò@пð@œ€bпðÒ H˜Ô¢ @Iá€�€	ì¿ð/˜îâ ðM€€¦ /€(3—òc�€�€ô»,Ö ö»4ØÀ9™ø"<˜Ò¿ð—Ô£ÈV�"$—ÚcÌ@I¶;—úcœ€�€л4Ô™Òb<”€	Ò¿ðV�"L@I§€,—Ô£�€�
+€Ö»,ÖàÒ¿ð˜Ø" ’@Ú»4Ø@™Þâ<˜—Ô£ÈV�"h—ÚcÌ@I�!—à#œ€�€Ò¿ð#˜âb ’@ä»4Ô€'™æâ<”€V�"”@I{€
)—è#€€¥ €˜�!V’b´@IGê»4ìa(ì'»4¿ü
/—î �€	˜�!V’bÔÔ H@I6ð»<ð'»0ò»0€�€"ô»0ö €�€€ø»0Ð V’bø@IG€�€€;—úcÄ€�€Ð»0Ð V’bü@I7€�€—Òc€€¢`€˜�!V’c@I€ðÔ»8Ô'»,Ö»,€�€Ø»,Ú Þ»0àà€¤
€
â»0Ð`ä»,Ò @I€�€€æ»,èá(è'»,¿ÿçê»,€�€-—죔€�€î»,ðàPò»0ô`P€¦€€€Áö»,øà¸ ø&àú»0Ð`Ò»0Ô`–€˜"àØ'¿HÚ»0Þ`€£à€&пHV’c@Hã€�€à»(  à'»(#—âc¨€�€€ŸÐ¿HV’c @HÑ€�€ä»(¤ ä'»('—æ㤀�€€�)—è#¬€�€—Ð#Ð@H¦”ê»0Ð`—ÒcÐ@HÀ�€€xРD@H—ì»0î �� @H”Ð'¿èпèÒ D@H•Ð¿èV’c$@H“ð»0Ò Ð¿è@HŽò»0ô`$7<¸€;€§€®Ð L€�€¨—ÒcŒ€�	€”—Ô£„€�
+€Ô¿è™Öâ<”€V’c(˜�!@HS—Ø#¼€�€OÚ»0Þa$€�€Jà»0â °%<¦@)(€¤À€B+—êcÀ€�€
+ì»0Ѐ’ @ûÐ'¿ì€î»0ðÀð'¿ì3—òc¸€�€Ð¿ìÒ¿è@€"пìÒ H˜Ô¢ @HS€�€
Ô¿è5™ô¢<”€Ò¿ìV�#@@H;€Ò¿ì7˜öâ ’@Ô¿è9™ø"<”€V�#T@H-пì@H-€1;—úc¸€�€Ð¿è@cпè@пè’!í@Ç€Ò¿è™Ð"<’@V�#l@HÒ¿è™Ô¢<’@
+V�#|@HÒ¿è™Öâ<’@V�#Œ@GÿØ»0ÒпèÔ LÿöÈ€—Úc„€�
€Ô¿è™Þâ<”€V’c¤˜�!@GÁ€©!—à#À€�€â»0äa$€�€æ»0èà°+<¬
/(€¥€€ð»0Ð’ @lÐ'¿ì² ò'¿ä€ô»0ö€ö'¿ìÀ'¿ä€ø»0úú'¿ìÀ'¿ä—Ð#„€�€Ô¿è™Òb<”€	V’c¼˜�!@GŠ—Ô£¸€�
+€—Öã €�€Ð¿ìÒ¿è@c€Ð¿ìÒ¿è@ë€8пìÒ H˜Ô¢ @G¡€�€Ö¿è™Ø"<–À—Òc €�	€˜’`,€˜’`4V�#ÌÔ¿ì@G~€Ô¿ì˜Úb ”€
Ö¿è™Þâ<–À—Òc €�	€˜’`8€˜’`@V�#Ü@Ge!—à# €�€#—âc¸€�€ä»0Ò $’
+om’a$пè@€æ»0Òà$’
+om’a$Ô¿è)™è"<”€V�#ð@GFê¿ä€�€Ð¿ì@GBпè@G?ì»0î¡(î'»0¿ýÞ1—ð#€€�€	˜�!W’`Ô¿ð@Gò»8ò'»,ô»,€�€yö»,øà€�€€mРD@Gú»,Ò`�	� @GÐ'¿èпèÒ D@GпèW’`$@FÿÔ»,Ҡпè@Fú—Öã„€�€Ô¿è™Ø"<”€W’`(˜�!@FЗÚc¸€�
€
—Þ㜀�€Ð¿ðÒ¿è@¨€3пðÒ H˜Ô¢ @Fí€�€	à¿ð#˜âb äL€¤ /€'—æ㜀�€Ô¿è)™è"<”€Ò¿ðW� <@FÉ€+—êcœ€�€Ò¿ð-˜ì¢ ’@Ô¿è/™îâ<”€W� T@F¶Ð¿è@F¶ð»,ò!(ò'»,¿ÿ‡ô»@€�€ö»@ö'»4ø»4ú!(ú'»@л4Ð@F¤Ò»4Ð`@F Ð»4@F�¿ÿìÔ»<€�
+€Ö»<Ö'»0Ø»0Ú!(Ú'»<Þ»0ÐÀ@FŽà»0Ð @FŠÐ»0@F‡¿ÿìâ»8€�€ä»8ä'»,æ»,èá(è'»8ê»,Ð@@Fxì»,Р@Ftл,@Fq¿ÿìпð@Fl€�Çà�è?ÿÿ‚c��ã€ð' Dò' HРDÐ'¿ð—Òc€€�	€
˜�!W’`lÔ¿ð@F+˜�!@FuÀ'¿øÔ¿ø€¢ 
+€eпð˜’b4”$@FLÐ'¿ü€�€€YÖ¿ü˜˜"4À*À˜ÚKb4€£`/€2пð’ /@F*Ð'¿ô€�€Þ¿ôÀ+À˜�"4@FºÐ¿ð@F
+�� @F	Ð'¿ôпôW’`€Ô¿ð˜–â4@F€˜�"4@E÷� @E÷Ð'¿ôпô˜’b4@E÷€˜�"4@Eè� @EèÐ'¿ôпô˜’b4@Eèà H  à' H¢$ €�€Ð¿ð@Eðä¿ôä'¿ðæ¿ø¦àæ'¿ø¿ÿ›è H€�€Ð¿ð@EÇ� @EÇÐ'¿ôпôÒ¿ð@EÈê¿ôê'¿ð-—죀€�€
˜�!W’`ˆÔ¿ð@E¢˜�!@Eìпð€°�Çà�è?ÿÿ‚c�ã€ð' D’¿tРD@E®€¢?ÿ€\пˆ<”
+	€¢€€RРD@EÈÐ'¿pØ¿p€�€Hпp@EÃÐ'¿l€�€;пl� 
+W’`Œ@E•€�€0пl� 
+W’`�@EŒ€�€'пl� 
+@EpºÐ D@El�� @EkÐ'¿üÚ¿ü€�
€Ð¿üÒ D@EhпüW’`”@EfÒ¿l’`
+пü@Eaпüÿÿ­Ð¿ü@Ej¿ÿÂпp@E†Ð D@E‰€Ð D@E‡�Çà�è?ÿÿ‚c �ã€ð' DРD’ @E€€¢?ÿ€˜Ð"0€¢ €Ð D’!ÿ@Ew�Çà�è?ÿÿ‚c �ã€ð' Dò' HРDÒ H@Eo€¢?ÿ€Ð H@EN�Çà�è?ÿÿ‚c��ã€ð' Dò' Hô' Lö' Pø' T@E`Ð'¿üпü€¢?ÿ€W� ˜@E9€QÒ¿ü€�	€?Ô D€�
+€Ð D@E)€¢?ÿ€W� ¨@E%€,РT’!	”!ÿ@E?Ð'¿ôÖ¿ô€¢ÿÿ€Ð T@E� @D˘� ð@E3’пô@E2˜�!@E+’пô@E*РHÒ HÔ LÖ P˜ @E&РH@Dù� @D®� @E Ð'¿øØ¿ü€¢€Ú¿ø€£ÿ€¿ÿô�Çà�è?ÿÿ‚c�ã€ð' D’¿xРD@Dº€¢?ÿ€пŒ<”
+	€¢€€Ð D@Dã�Çà�è?ÿþ‚c��ã€ð' Dò' HРD’ @DçÐ'¿ôпô€¢?ÿ€Ð D@D¾€MРH’!”!ÿ@DØÐ'¿ðÒ¿ð€¢ÿ€
+РH@D¯Ð¿ô@DÜ€;’»ðпô”$@DØÐ'¿ü€�€’»ðпðÔ¿ü@DÒÐ'¿ø€�€Ô¿øÖ¿ü–"À
+Ö'¿ü€�€¿ÿðØ¿ø€£?ÿ€€¿ÿßÚ¿ü€£ÿ€Ð D@D€€	Þ¿ø€£ÿÿ€Ð H@Dwпô@D¤Ð¿ð@D¡�Çà�è?ÿÿ‚c �ã€ð' Dò' HРDÒ H@DŸ€¢?ÿ€Ð D@D`�Çà�è?ÿÿ‚c˜�ã€ð' Dò' H@DuÐ'¿üпü€¢?ÿ€W� °@DN€1Ò¿ü€�	€Ð D@DB€¢?ÿ€W� À@D>€˜� D˜’`H˜” LÖ H˜ @D\W� È@D.� @Cã� @DUÐ'¿øÔ¿ü€¢
+€Ö¿ø€¢ÿÿ€¿ÿô�Çà�è?ÿÿ‚c �ã€ð' DРD’!ÿ@DO€¢?ÿ€Ð D@D
�Çà�è?ÿÿ‚c˜�ã€ð' Dò' HРH@DBÐ'¿üпü€�€˜�!W’`àÔ H@Cµ€Ò¿üÔ`’?ÿРD@D1�Çà�è�ã¿ �Çà�è8)`*|ÿÿÿÿH,ÿÿÿÿH.˜ÿÿÿÿH0	ìÿÿÿÿH3´ÿÿÿÿHÿÿÿÿHÐdÿÿÿÿHÿÿÿÿH;,PLÿÿÿÿHÿÿÿÿH ì!ÐÿÿÿÿH#$ÿÿÿÿHÿÿÿÿH&xÿÿÿÿHusage: %s [options] [-W <working dir>] [-S <RCS dir>] [subdir ...] 
+
+options:
+    -i[Aaoxm]
+        clone:  A - all the following
+            a - "*.a" files
+            o - "*.o" files
+            x - executables ('x' mode bits set)
+            m - "Makefile*" files
+    -v  verbose (the more, the verboser)
+        source files
+    -L  take checked out source over RCS regardless of time
+    -O  don't check out new files, Only create symbolic links to exiting files
+          (this option is for cloning build trees from controlled source trees)
+    -R  don't create any RCS links
+    -l  symbolicly link files instead of copying them
+    -m  make any missing directories
+    -q  quiet
+    -d  diff new versions of existing files
+    -c<cmd> use <cmd> to do diffs (default is diffc)
+    -o<out> write diffs to <out> instead of /tmp/,out??????
+    -W<dir> use working directory <dir> (default is ".")
+    -S<dir> use RCS/source directory <dir>
+        (default is /RCS directories of working tree)
+    -f  follow source-tree links to non-RCS dirs (old behavior)
+    -X  execute instead of generating shell script
+    -C  process SCCS directories if present
+    -s  do not resolve symbolic links for files. use file name
+%s: can't get current working directory
+%s/%s/RCS/RCSusing sourcedir of "%s"
+%s: can't get current working directory
+%s/%s//#!/bin/sh
+#
+# the following makes things more readeable
+
+w='%s'	# Working directory
+s='%s'	# Source directory
+rm -rf %s; touch %s
+
+%s/%s%s/%sScanning directory "%s"
+>> GetNew("%s", "%s")
+/RCS%s/RCS>> RcsDir="%s"
+/RCS%s/RCS/RCS%s/RCS>> RCS RcsDir="%s"
+%s: creating symlink
+rm -f ${w}/%s
+ln -s %s ${w}/%s
+ln -s ${s}/%s ${w}/%s
+r>> soft link RcsDir="%s"
+%s: >10 "soft" links
+.,v/.../RCS.../>> Pass 1: scanning WorkingDir "%s"
+>>  keyname="%s", fullname="%s"
+.o>>   .o -- ignored
+.a>>   .a -- ignored
+>>   Makefile* -- ignored
+RCS>>   RCS -- ignored
+SCCS>>   SCCS -- ignored
+>>   executable -- ignored
+   source: keyname="%s"  fullname="%s"
+   no source file
+>>   directory
+   rcs: keyname="%s"  fullname="%s"
+   no rcs file
+.snf%s: no source or RCS file
+>>   source newer than rcs
+>>   source newer than working
+%s: writable -- not updated
+%s: newer file
+%s ${w}/%s %s >>%s 2>&1
+%s ${w}/%s ${s}/%s >>%s 2>&1
+rm -f ${w}/%s
+	%s %s ${w}/%s
+rm -f ${w}/%s
+	%s ${s}/%s ${w}/%s
+	chmod 0%03o ${w}/%s
+>>   source older than working
+>>   rcs newer than source
+>>   rcs newer than working
+%s: writable -- not updated
+%s: newer RCS file
+	 (cd %s; %s %s ${w}/%s  >>%s 2>&1)
+(cd %s; co -q ${w}/%s) 
+	 (cd ${s}/%s; %s %s ${w}/%s  >>%s 2>&1)
+(cd ${s}/%s; co -q ${w}/%s) 
+>>   source older than working
+>> Pass 2: scanning SourceDir "%s"
+RCSSCCS>>   SCCS -- ignored
+.o.a/%s: building directory
+ln -s %s ${w}/%s
+ln -s ${s}/%s ${w}/%s
+rm -rf ${w}/%s
+	mkdir ${w}/%s
+	chmod 0755 ${w}/%s
+%s: missing directory
+%s: new file
+%s %s ${w}/%s
+%s ${s}/%s ${w}/%s
+	chmod 0%03o ${w}/%s
+>> scanning RcsDir "%s"
+/%s: new RCS file
+(cd %s; co -q ${w}/%s)
+(cd %s; co -q ${w}/%s)
+ResolveLink %s->%s/%s%s
+.../fork() faileddirnamefork() faileddirnamefailed to exec co(1)%s: no such group
+00¿ÿó<0¿ÿðH0¿ÿíT0¿ÿê`0¿ÿçl0¿ÿäx0¿ÿá„0¿ÿÞ�0¿ÿÛœ0¿ÿب0¿ÿÕ´0¿ÿÒÀ0¿ÿÏÌ0¿ÿÌØ0¿ÿÉä0¿ÿÆð0¿ÿÃü0¿ÿÀ0¿ÿ½0¿ÿº 0¿ÿ·,0¿ÿ´80¿ÿ±D0¿ÿ®P0¿ÿ«\0¿ÿ¨h0¿ÿ¥t0¿ÿ¢€0¿ÿŸŒ0¿ÿœ˜0¿ÿ™¤0¿ÿ–°0¿ÿ“¼0¿ÿ�È0¿ÿ�Ô0¿ÿŠà0¿ÿ‡ì0¿ÿ„ø0¿ÿ�0¿ÿ~0¿ÿ{0¿ÿx(0¿ÿu40¿ÿr@0¿ÿoL0¿ÿlX0¿ÿid0¿ÿf@(#) $Revision$_Ô_Ü_ìdiff/tmp/,outXXXXXXMakefile-S:-W:i:OLRXflsCmqvd~c:o:ln -scpln -scpln -scpln -scpcoco-q`T
N¤è	hx
+#\ô@ÈŒ|	ÿñÔèx	hŒÈN¤	N°
+O´\ô_h
_Ô`P`T`àL'ÿñ.ÿñ:ÿñG_À
X_´
^LœDgFðœpHŒXyN,x‚Mì@‹_Ä
›_ 
¥_°
¶K€¼_¤
Æ_¨
Ð_¸
Ú_¬
è_„
î_ˆ
ö_h
þ_˜
	_Ð
_Œ
_¼
*_”
9_È
EI(˜MJÀ\ULà]HäDe_�
m_œ
y_Ì
�_€
‡ÿñŽ`à@”^Ô8"™]Ì@¡^8"ªN¤	°Ì
+Tµb ¿_H"Ä]�`Ë`à@!ÐfHÿñÕ]´èÜDX˜è_X8"î^ÈD"óxúb$^°8"	Œ@]x\"^€T^ì˜""^h"*]ð\/^P°6\óÿñ=]$�D^¼8"L^Dx"R]üD"Wb$!_`Üÿñf]`8"m]<s^¤8"y_8"^Œ8"…b(“]0˜ +8Ÿ^ |¥_(H"«]Øp²]ÀD"¸b,¿b0Å^à˜"Ì]¨@ÓN°

BIN
cde/admin/BuildTools/fnrclone/findnewrcs.apollo.binary


+ 1674 - 0
cde/admin/BuildTools/fnrclone/findnewrcs.c

@@ -0,0 +1,1674 @@
+/***************************************************************************
+*
+* File:         findnewrcs.c
+* RCS:          $XConsortium: findnewrcs.c /main/3 1995/10/30 13:42:46 rswiston $
+* Description:  The 'findnewrcs' command is used to descend a tree, checking
+*               out the newest version of any RCS file which has been updated.
+*               It can also be used to create a clone of a source tree using
+*               symbolic links.
+* Author:       Dave Serisky, Corvallis Workstation Operation
+* Created:      Tue Jun  7 09:39:47 1988
+* Modified:     Brian Cripe, (bcripe@hpcvlx) bcripe@hpcvxbc
+* Modified:     Marc Ayotte, (marca@hpcvlx)
+* Language:     C
+* Package:      N/A
+* Status:       Experimental (Do Not Distribute)
+*
+* (c) Copyright 1988, Hewlett-Packard Company, all rights reserved.
+*
+********************************************************************************
+*/
+
+static char version[] = "@(#) $XConsortium: findnewrcs.c /main/3 1995/10/30 13:42:46 rswiston $";
+
+#include <stdio.h>
+#include <string.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+
+#ifdef apollo
+#ifndef S_ISLNK
+#define S_ISLNK(m) (((m) & 0170000) == 0120000)
+#endif
+#ifndef S_ISDIR
+#define S_ISDIR(m) (((m) & 0170000) == 0040000)
+#endif
+#ifndef S_ISREG
+#define S_ISREG(m) (((m) & 0170000) == 0100000)
+#endif
+#define UID_NO_CHANGE -1
+#include <sys/dir.h>
+#else
+# if defined(USL) && !defined(S_ISLNK)
+# define S_ISLNK(m) ((m&0xF000) == S_IFLNK)
+# endif
+#include <dirent.h>
+#endif
+
+#ifndef __hpux
+#define UID_NO_CHANGE -1
+#endif
+
+#include <errno.h>
+#include <fcntl.h>
+#include <grp.h>
+#ifdef apollo
+#include <sys/time.h>
+#else
+#include <utime.h>
+#endif
+
+extern char *getcwd();
+extern char *malloc();
+extern DIR *opendir();
+#ifdef apollo
+extern struct direct *readdir();
+#else
+extern struct dirent *readdir();
+#endif
+extern long telldir();
+extern char *mktemp();
+
+char Buffer[BUFSIZ];
+char *WorkingDirCmp;
+int WorkingLen;
+char *SourceDirCmp;
+int SourceLen;
+
+void GetNew();
+char *ResolveLink();
+
+static int Debug = 0;
+static int Quiet = 0;
+static int Verbose = 0;
+static int MakeDirs = 0;
+static int DoDiffs = 0;
+static int SourcePriority = 0;
+static int NoRcsLinks = 0;
+static int NoRealFiles = 0;
+static int LinkFiles = 0;
+static int CloneDotA = 0;
+static int CloneDotO = 0;
+static int CloneMakefile = 0;
+static int CloneExecutables = 0;
+static int Check = 0;
+static int DoExecute = 0;
+static int FollowDirLinks = 0;
+static int ResolveFileLinks = 1;
+static int ProcessSCCSdirs = 0;
+static char *DiffCommand = "diff";
+
+static char *OutFile = "/tmp/,outXXXXXX";
+static char *Makefile = "Makefile";
+
+typedef struct _flist {
+    char *fullname;
+    char *keyname;
+    int keylen;
+    int used;
+    struct stat st;
+    int st_valid;
+    struct stat lst;
+    int lst_valid;
+    struct _flist *next;
+} flist;
+
+void
+Usage(ProgName)
+char *ProgName;
+{
+    (void) fprintf(stderr, "\
+usage: %s [options] [-W <working dir>] [-S <RCS dir>] [subdir ...] \n\
+\n\
+options:\n\
+    -i[Aaoxm]\n\
+        clone:  A - all the following\n\
+            a - \"*.a\" files\n\
+            o - \"*.o\" files\n\
+            x - executables ('x' mode bits set)\n\
+            m - \"Makefile*\" files\n\
+    -v  verbose (the more, the verboser)\n\
+        source files\n\
+    -L  take checked out source over RCS regardless of time\n\
+    -O  don't check out new files, Only create symbolic links to exiting files\n\
+          (this option is for cloning build trees from controlled source trees)\n\
+    -R  don't create any RCS links\n\
+    -l  symbolicly link files instead of copying them\n\
+    -m  make any missing directories\n\
+    -q  quiet\n\
+    -d  diff new versions of existing files\n\
+    -c<cmd> use <cmd> to do diffs (default is diffc)\n\
+    -o<out> write diffs to <out> instead of /tmp/,out??????\n\
+    -W<dir> use working directory <dir> (default is \".\")\n\
+    -S<dir> use RCS/source directory <dir>\n\
+        (default is /RCS directories of working tree)\n\
+    -f  follow source-tree links to non-RCS dirs (old behavior)\n\
+    -X  execute instead of generating shell script\n\
+    -C  process SCCS directories if present\n\
+    -s  do not resolve symbolic links for files. use file name\n\
+", ProgName);
+    (void) exit(1);
+}
+
+static void do_rm_rf(), do_touch(), do_ln_s(), do_diff(), do_rm_f();
+static void do_cp(), do_chmod(), do_co_q(), do_mkdir(), do_chgrp();
+
+main(argc, argv)
+int argc;
+char **argv;
+{
+    char *WorkingDir = (char *) 0;
+    char *SourceDir = (char *) 0;
+    register int i;
+    register char *c;
+    int same = 0;
+    struct stat st;
+
+    extern int getopt();
+    extern char *optarg;
+    extern int optind;
+    extern int opterr;
+
+    (void) setvbuf(stdout, (char *) 0, _IOLBF, BUFSIZ);
+    OutFile = mktemp(OutFile);
+
+    while ((i = getopt(argc, argv, "-S:-W:i:OLRXflsCmqvd~c:o:")) != EOF) {
+    switch (i) {
+    case 'W' :
+        /* Working directory.  Default is current directory */
+        WorkingDir = optarg;
+        break;
+
+    case 'S' :
+        /* Source directory.  Default is to use working directories
+        ** /RCS directories.
+        */
+        SourceDir = optarg;
+        break;
+
+    case 'i' :
+        /* Parse off no ignore options */
+        for (c = optarg; *c; c++) {
+        switch (*c) {
+        case 'A' :
+            /* don't ignore any... */
+            (void) CloneDotA++;
+            (void) CloneDotO++;
+            (void) CloneExecutables++;
+            (void) CloneMakefile++;
+            break;
+
+        case 'a' :
+            /* don't ignore *.a files */
+            (void) CloneDotA++;
+            break;
+
+        case 'o' :
+            /* don't ignore *.o files */
+            (void) CloneDotO++;
+            break;
+
+        case 'x' :
+            /* don't ignore executables */
+            (void) CloneExecutables++;
+            break;
+
+        case 'm' :
+            /* don't ignore Makefiles */
+            (void) CloneMakefile++;
+            break;
+
+        default :
+            (void) Usage(argv[0]);
+            (void) exit(1);
+            break;
+        }
+        }
+        break;
+
+    case 'R' :
+        /* dont create any links for "/RCS" */
+        (void) NoRcsLinks++;
+        break;
+
+    case 'L' :
+        /* Take existing checked out files even if they are older than
+        ** the RCS copy.
+        */
+        (void) SourcePriority++;
+        break;
+    
+    case 'O' :
+        /* Don't check out new files, just create sym links to existing files.
+        ** This is to protect controlled source/build trees from having
+	** files bypass the crt process.
+        */
+        (void) NoRealFiles++;
+        break;
+    
+    case 'f' :
+        FollowDirLinks = 1;
+        break;
+
+    case 'C' :
+        ProcessSCCSdirs = 1;
+        break;
+
+    case 'X' :
+        DoExecute = 1;
+        break;
+
+    case 'l' :
+        /* Link files (when possible) instead of creating them. */
+        (void) LinkFiles++;
+        break;
+
+    case 'm' :
+        /* Make any directories necessary. */
+        (void) MakeDirs++;
+        break;
+
+    case 'q' :
+        /* Be quiet. */
+        (void) Quiet++;
+        break;
+
+    case 'v' :
+        /* Increase verbosity. */
+        (void) Verbose++;
+        break;
+
+    case 'd' :
+        /* Diff out new files. */
+        (void) DoDiffs++;
+        break;
+
+    case 'c' :
+        /* Alternative diff command. */
+        DiffCommand = optarg;
+        break;
+
+    case 'o' :
+        /* Output file name for diffs */
+        OutFile = optarg;
+        break;
+
+    case 's' :
+        /* don't resolve symbolic links for files */
+        ResolveFileLinks = 0;
+        break;
+
+    case '~' :
+        /* Increment debug switch */
+        (void) Debug++;
+        break;
+    
+    default:
+        (void) Usage(argv[0]);
+        (void) exit(1);
+        break;
+    }
+    }
+
+    /* no WorkingDir specified or not root relative? */
+    if (!WorkingDir || !*WorkingDir || ('/' != *WorkingDir)) {
+    /* get the current directory */
+    if (NULL == (c = getcwd(Buffer, sizeof(Buffer)))) {
+        (void) fprintf(stderr, "%s: can't get current working directory\n",
+            argv[0]);
+        (void) exit(1);
+    }
+
+    /* did they specify a partial path? */
+    if (WorkingDir && *WorkingDir) {
+        /* prepend the path to the working dir */
+        char *c2;
+
+        c2 = malloc((unsigned) (strlen(c) + strlen(WorkingDir) + 2));
+        (void) sprintf(c2, "%s/%s", c, WorkingDir);
+        WorkingDir = c2;
+    } else {
+        /* working dir is current path */
+        WorkingDir = malloc((unsigned) (strlen(c) + 1));
+        (void) strcpy(WorkingDir, c);
+    }
+    }
+
+    /* SourceDir specified? */
+    if (!SourceDir || !*SourceDir) {
+    /* Let's see if there is an /RCS dir in WorkingDir */
+    SourceDir = malloc((unsigned) (strlen(WorkingDir) + 5));
+    (void) strcpy(SourceDir, WorkingDir);
+    (void) strcat(SourceDir, "/RCS");
+    if (!lstat(SourceDir, &st)) {
+        if (S_ISLNK(st.st_mode)) {
+        SourceDir = ResolveLink(SourceDir, 1);
+        }
+    }
+    /* strip off the "/RCS" portion of it */
+    c = strrchr(SourceDir, '/');
+    if (*c && !strcmp(c, "/RCS"))
+        *c = '\0';
+    (void) fprintf(stderr, "using sourcedir of \"%s\"\n", SourceDir);
+    } else {
+    /* is it root relative? */
+    if ('/' != *SourceDir) {
+        /* get the current directory */
+        char *c2;
+
+        if (NULL == (c = getcwd(Buffer, sizeof(Buffer)))) {
+        (void) fprintf(stderr,
+            "%s: can't get current working directory\n",
+            argv[0]);
+        (void) exit(1);
+        }
+
+        c2 = malloc((unsigned) (strlen(c) + strlen(SourceDir) + 2));
+        (void) sprintf(c2, "%s/%s", c, SourceDir);
+        SourceDir = c2;
+    }
+    }
+
+    /* are the 2 directories the same name?
+    */
+    if (!strcmp(SourceDir, WorkingDir)) {
+    (void) same++;
+    }
+
+    WorkingDirCmp = malloc((unsigned) (strlen(WorkingDir) + 2));
+    (void) strcpy(WorkingDirCmp, WorkingDir);
+    (void) strcat(WorkingDirCmp, "/");
+
+    SourceDirCmp = malloc((unsigned) (strlen(SourceDir) + 2));
+    (void) strcpy(SourceDirCmp, SourceDir);
+    (void) strcat(SourceDirCmp, "/");
+
+    WorkingLen = strlen(WorkingDirCmp);
+    SourceLen = strlen(SourceDirCmp);
+
+    if (DoExecute)
+    {
+    if (DoDiffs)
+    {
+        do_rm_rf(OutFile);
+        do_touch(OutFile);
+    }
+    }
+    else
+    {
+    printf("#!/bin/sh\n");
+    printf("#\n# the following makes things more readeable\n\n");
+    printf("w='%s'\t# Working directory\n", WorkingDir);
+    printf("s='%s'\t# Source directory\n", SourceDir);
+    if (DoDiffs)
+        printf("rm -rf %s; touch %s\n", OutFile, OutFile);
+    printf("\n");
+    }
+
+    if (optind < argc) {
+    char *SubSourceDir;
+    char *SubWorkingDir;
+
+    for (; optind < argc; optind++) {
+        SubSourceDir = malloc((unsigned) (strlen(SourceDir) +
+            strlen(argv[optind]) + 2));
+        (void) sprintf(SubSourceDir, "%s/%s", SourceDir, argv[optind]);
+        SubWorkingDir = malloc((unsigned) (strlen(WorkingDir) +
+            strlen(argv[optind]) + 2));
+        (void) sprintf(SubWorkingDir, "%s/%s", WorkingDir, argv[optind]);
+        (void) GetNew(SubWorkingDir, SubSourceDir, same);
+        (void) free(SubWorkingDir);
+        (void) free(SubSourceDir);
+    }
+    } else {
+    (void) GetNew(WorkingDir, SourceDir, same);
+    }
+    (void) exit(0);
+/*NOTREACHED*/
+}
+
+void
+GetNew(WorkingDir, SourceDir, same)
+char *WorkingDir;
+char *SourceDir;
+int same;
+{
+    FILE *f;
+    char *NextSourceDir;
+    char *NextWorkingDir;
+    char *RcsDir;
+    char *SourceFile;
+    char *WorkingFile;
+    int FreeSourceFile;
+    int FreeWorkingFile;
+    DIR *D;
+#ifdef apollo
+    struct direct *dir;
+#else
+    struct dirent *dir;
+#endif
+    struct stat st;
+    int Tries;
+    char *c,*d;
+    char buf[BUFSIZ];
+    flist *WorkingHead = (flist *) 0;
+    flist *SourceHead = (flist *) 0;
+    flist *RcsHead = (flist *) 0;
+    flist *WorkingPtr;
+    flist *SourcePtr;
+    flist *RcsPtr;
+    int shouldnt_have_source;
+
+    if (Verbose)
+    (void) fprintf(stderr, "Scanning directory \"%s\"\n", SourceDir);
+    if (Debug > 1)
+    (void) fprintf(stderr, ">> GetNew(\"%s\", \"%s\")\n", WorkingDir,
+        SourceDir);
+
+    /* set up the working directory's RCS directory name */
+    RcsDir = malloc((unsigned char *) strlen(WorkingDir) + strlen("/RCS") + 1);
+    (void) sprintf(RcsDir, "%s/RCS", WorkingDir);
+    if (Debug > 0) 
+    (void) fprintf(stderr, ">> RcsDir=\"%s\"\n", RcsDir);
+
+    /* check to see if the working dir's RCS directory exists */
+    /* if you can't stat it and it is a symlink to nowhere, do not
+     * recreate the link. The cde source server works on RCS symlinks
+     * to nowhere.
+     */
+    if (stat(RcsDir, &st)) { 
+    /* if not a symlink, create the RCS directory */
+        if (readlink(RcsDir, buf, sizeof(buf)) < 0) {
+            /* no -- create one off of the SourceDir */
+            c = malloc((unsigned char *) strlen(SourceDir) +
+                strlen("/RCS") + 1);
+            (void) sprintf(c, "%s/RCS", SourceDir);
+            d = malloc((unsigned char *) strlen(SourceDir) +
+                strlen("/RCS") + 1);
+            (void) sprintf(d, "%s/RCS", SourceDir);
+            /* resolve out symbolic links */
+            c = ResolveLink(c, 1);
+            if (Debug > 0)
+                (void) fprintf(stderr, ">> RCS RcsDir=\"%s\"\n", c);
+
+            /* do we want RCS links? */
+            /* If Rcsdir points to a symlink, recreate the link
+            * even if no destination directory exists.
+            */
+            if ((!stat(c, &st) || (readlink(d, buf, sizeof(buf)) > 0)) 
+                && !NoRcsLinks) {
+                /* yes -- since the WorkingDir didn't have an /RCS directory,
+                ** let's make one.
+                */
+                if (!Quiet)
+                    (void) fprintf(stderr, "%s: creating symlink\n",
+                        RcsDir + WorkingLen);
+                /* check and see if the RCS dir is in the SourceDir */
+                if (DoExecute)
+                {
+                    do_rm_f(RcsDir);
+                    do_ln_s(c, RcsDir);
+                }
+                else
+                {
+                    /* remove the link before linking */
+                    (void) printf("rm -f ${w}/%s\n",
+                            RcsDir + WorkingLen);
+                    if (strncmp(c, SourceDir, SourceLen) ||
+                        (c[SourceLen] != '/')) {
+                        /* need full RCS path */
+                        (void) printf("ln -s %s ${w}/%s\n",
+                            c, RcsDir + WorkingLen);
+                    } 
+                    else {
+                        /* RCS path is relative to SourceDir */
+                        (void) printf("ln -s ${s}/%s ${w}/%s\n",
+                            c + SourceLen, RcsDir + WorkingLen);
+                    }
+                }
+            }
+            (void) free(RcsDir);
+            RcsDir = c;
+        }
+    }
+
+    /* resolve "fake" symbolic links to get a real directory */
+    for (Tries = 10; Tries > 0; Tries--) {
+    if (!lstat(RcsDir, &st)) {
+        if (S_ISLNK(st.st_mode)) {
+        RcsDir = ResolveLink(RcsDir, 1);
+        } else if (S_ISREG(st.st_mode)) {
+        /* open the file... */
+        if (f = fopen(RcsDir, "r")) {
+            /* read it... */
+            (void) fgets(Buffer, sizeof(Buffer), f);
+            Buffer[strlen(Buffer) - 1] = '\0';
+            (void) free(RcsDir);
+
+            /* RcsDir is the contents of the file... */
+            RcsDir = malloc((unsigned) strlen(Buffer) + 1);
+            (void) strcpy(RcsDir, Buffer);
+            if (Debug)
+            (void) fprintf(stderr, ">> soft link RcsDir=\"%s\"\n",
+                RcsDir);
+
+            /* we are done, close it... */
+            (void) fclose(f);
+        }
+        } else {
+        /* not a symlink or "soft" link */
+        break;
+        }
+    } else {
+        /* directory does not exist */
+        break;
+    }
+    }
+    if (Tries <= 0) {
+    if (!Quiet)
+        (void) fprintf(stderr, "%s: >10 \"soft\" links\n", RcsDir);
+    }
+
+    /* cd to the RcsDir, and scan it */
+    RcsHead = (flist *) 0;
+    if (chdir(RcsDir)) {
+    if (errno != ENOENT)
+        (void) perror(RcsDir);
+    } else {
+    if (D = opendir(".")) {
+        while (dir = readdir(D)) {
+        /* all RCS files have a length > 2 */
+#ifndef apollo
+        if (strlen(dir->d_name) < 3)
+#else
+        if (dir->d_namlen < 3)
+#endif
+            continue;
+        
+        /* all RCS files have a name ending in ",v" */
+#ifndef apollo
+        if (strcmp(dir->d_name + strlen(dir->d_name) - 2, ",v"))
+#else
+        if (strcmp(dir->d_name + dir->d_namlen - 2, ",v"))
+#endif
+            continue;
+
+        /* build the full name of the file */
+        (void) strcpy(Buffer, RcsDir);
+        (void) strcat(Buffer, "/");
+        (void) strcat(Buffer, dir->d_name);
+
+        /* stat the file */
+        if (stat(dir->d_name, &st)) {
+            (void) perror(Buffer);
+            continue;
+        }
+
+        /* Valid entry.  It's time to stuff it away */
+        if (RcsHead) {
+            RcsPtr->next = (flist *) malloc(sizeof(flist));
+            RcsPtr = RcsPtr->next;
+        } else {
+            RcsHead = (flist *) malloc(sizeof(flist));
+            RcsPtr = RcsHead;
+        }
+        /* null out link */
+        RcsPtr->next = (flist *) 0;
+
+        /* this entry is new */
+        RcsPtr->used =0;
+
+        /* stuff away full path */
+        RcsPtr->fullname = malloc((unsigned) (strlen(Buffer) + 1));
+        (void) strcpy(RcsPtr->fullname, Buffer);
+
+        /* drop ",v" of dir->d_name */
+        /* stuff away key path */
+#ifndef apollo
+                dir->d_name[strlen(dir->d_name) - 2] = '\0';
+                RcsPtr->keyname = malloc((unsigned) (strlen(dir->d_name) + 1));
+                (void) strcpy(RcsPtr->keyname, dir->d_name);
+                RcsPtr->keylen = strlen(dir->d_name);
+#else
+        dir->d_name[dir->d_namlen - 2] = '\0';
+        dir->d_namlen -= 2;
+        RcsPtr->keyname = malloc((unsigned) (dir->d_namlen + 1));
+        (void) strcpy(RcsPtr->keyname, dir->d_name);
+        RcsPtr->keylen = dir->d_namlen;
+#endif
+        /* stuff away stat structure */
+        RcsPtr->st = st;
+        RcsPtr->st_valid = 1;
+        RcsPtr->lst_valid = 0;
+        }
+        (void) closedir(D);
+    }
+    }
+
+    /* cd to the WorkingDir, and scan it */
+    WorkingHead = (flist *) 0;
+    if (chdir(WorkingDir)) {
+    if (errno != ENOENT)
+        (void) perror(WorkingDir);
+    } else {
+    if (D = opendir(".")) {
+        while (dir = readdir(D)) {
+        /* ignore "." and ".." */
+#ifndef apollo
+                if (('.' == *(dir->d_name)) || (!strcmp(dir->d_name, "..")))
+                    continue;
+#else
+        if (((1 == dir->d_namlen) && ('.' == *(dir->d_name))) ||
+            ((2 == dir->d_namlen) && !strcmp(dir->d_name, "..")))
+            continue;
+#endif
+        
+        /* build the full name of the file */
+        (void) strcpy(Buffer, WorkingDir);
+        (void) strcat(Buffer, "/");
+        (void) strcat(Buffer, dir->d_name);
+
+        /* stat the file */
+        if (stat(dir->d_name, &st)) {
+            /* don't send error if RCS directory is a
+             * symlink to nowhere.
+             */
+            if (strcmp("RCS",dir->d_name)) {
+                (void) perror(Buffer); 
+            }
+            continue;
+        }
+
+        /* Valid entry.  It's time to stuff it away */
+        if (WorkingHead) {
+            WorkingPtr->next = (flist *) malloc(sizeof(flist));
+            WorkingPtr = WorkingPtr->next;
+        } else {
+            WorkingHead = (flist *) malloc(sizeof(flist));
+            WorkingPtr = WorkingHead;
+        }
+        /* null out link */
+        WorkingPtr->next = (flist *) 0;
+
+        /* this entry is new */
+        WorkingPtr->used =0;
+
+        /* stuff away full path */
+        WorkingPtr->fullname = malloc((unsigned) (strlen(Buffer) + 1));
+        (void) strcpy(WorkingPtr->fullname, Buffer);
+        /* stuff away key path */
+#ifndef apollo
+                WorkingPtr->keyname = malloc((unsigned) (strlen(dir->d_name) + 1));
+                (void) strcpy(WorkingPtr->keyname, dir->d_name);
+                WorkingPtr->keylen = strlen(dir->d_name);
+#else
+        WorkingPtr->keyname = malloc((unsigned) (dir->d_namlen + 1));
+        (void) strcpy(WorkingPtr->keyname, dir->d_name);
+        WorkingPtr->keylen = dir->d_namlen;
+#endif
+        /* stuff away stat structure */
+        WorkingPtr->st = st;
+        WorkingPtr->st_valid = 1;
+        if (S_ISDIR(st.st_mode) && !lstat(dir->d_name, &st))
+        {
+            WorkingPtr->lst = st;
+            WorkingPtr->lst_valid = 1;
+        }
+        else
+            WorkingPtr->lst_valid = 0;
+        }
+        (void) closedir(D);
+    }
+    }
+
+    /* cd to the SourceDir, and scan it.  If the dirs are the same, we
+    ** can just forget this part
+    */
+    SourceHead = (flist *) 0;
+    if (!same) {
+    if (chdir(SourceDir)) {
+        if (errno != ENOENT)
+        (void) perror(SourceDir);
+    } else {
+        if (D = opendir(".")) {
+        while (dir = readdir(D)) {
+            /* ignore "." and ".." */
+#ifndef apollo
+                    if ((('.' == *(dir->d_name))) ||
+                            (!strcmp(dir->d_name, "..")))
+                        continue;
+#else
+            if (((1 == dir->d_namlen) && ('.' == *(dir->d_name))) ||
+                ((2 == dir->d_namlen) &&
+                !strcmp(dir->d_name, "..")))
+            continue;
+#endif
+            
+            /* build the full name of the file */
+            (void) strcpy(Buffer, SourceDir);
+            (void) strcat(Buffer, "/");
+            (void) strcat(Buffer, dir->d_name);
+
+            /* lstat the file */
+            if (lstat(dir->d_name, &st)) {
+            (void) perror(Buffer);
+            continue;
+            }
+
+
+            /* Valid entry.  It's time to stuff it away */
+            if (SourceHead) {
+            SourcePtr->next = (flist *) malloc(sizeof(flist));
+            SourcePtr = SourcePtr->next;
+            } else {
+            SourceHead = (flist *) malloc(sizeof(flist));
+            SourcePtr = SourceHead;
+            }
+            /* null out link */
+            SourcePtr->next = (flist *) 0;
+
+            /* this entry is new */
+            SourcePtr->used =0;
+
+            /* stuff away full path */
+            SourcePtr->fullname =
+                malloc((unsigned) (strlen(Buffer) + 1));
+            (void) strcpy(SourcePtr->fullname, Buffer);
+            /* stuff away key path */
+#ifndef apollo
+                    SourcePtr->keyname = malloc((unsigned) (strlen(dir->d_name) + 1));
+                    (void) strcpy(SourcePtr->keyname, dir->d_name);
+                    SourcePtr->keylen = strlen(dir->d_name);
+#else
+            SourcePtr->keyname = malloc((unsigned) (dir->d_namlen + 1));
+            (void) strcpy(SourcePtr->keyname, dir->d_name);
+            SourcePtr->keylen = dir->d_namlen;
+#endif
+            /* stuff away lstat structure */
+            SourcePtr->lst = st;
+            SourcePtr->lst_valid = 1;
+            /* was it a symbolic link? */
+            if (S_ISLNK(st.st_mode)) {
+            /* do a plain stat on it */
+            (void) stat(dir->d_name, &st);
+            }
+            /* stuff it away */
+            SourcePtr->st = st;
+            SourcePtr->st_valid = 1;
+        }
+        (void) closedir(D);
+        }
+    }
+    }
+
+    /*
+    ** PASS 1:
+    **
+    **      Check all the files in the working dir.
+    */
+    if (Debug)
+    (void) fprintf(stderr, ">> Pass 1: scanning WorkingDir \"%s\"\n",
+        WorkingDir);
+    for (WorkingPtr = WorkingHead; WorkingPtr; WorkingPtr = WorkingPtr->next) {
+    /* initialize */
+    if (Debug > 1)
+        (void) fprintf(stderr, ">>  keyname=\"%s\", fullname=\"%s\"\n",
+            WorkingPtr->keyname, WorkingPtr->fullname);
+    shouldnt_have_source = 0;
+
+    /* ignore .o and .a files */
+    c = WorkingPtr->keyname + WorkingPtr->keylen - 2;
+    if (WorkingPtr->keylen >= 2) {
+        if (!strcmp(c, ".o")) {
+        (void) shouldnt_have_source++;
+        if (!CloneDotO) {
+            if (Debug > 1)
+            (void) fprintf(stderr, ">>   .o -- ignored\n");
+            continue;
+        }
+        }
+        if (!strcmp(c, ".a")) {
+        (void) shouldnt_have_source++;
+        if (!CloneDotA) {
+            if (Debug > 1)
+            (void) fprintf(stderr, ">>   .a -- ignored\n");
+            continue;
+        }
+        }
+    }
+    if (!strncmp(WorkingPtr->keyname, Makefile, strlen(Makefile))) {
+        (void) shouldnt_have_source++;
+        if (!CloneMakefile) {
+        if (Debug > 1)
+            (void) fprintf(stderr, ">>   Makefile* -- ignored\n");
+        continue;
+        }
+    }
+
+    /* ignore RCS as well */
+    if (!strcmp(WorkingPtr->keyname, "RCS")) {
+        if (Debug > 1)
+        (void) fprintf(stderr, ">>   RCS -- ignored\n");
+        continue;
+    }
+
+    /* ignore SCCS as well */
+    if (!(ProcessSCCSdirs)) {
+        if (!strcmp(WorkingPtr->keyname, "SCCS")) {
+            if (Debug > 1)
+                (void) fprintf(stderr, ">>   SCCS -- ignored\n");
+            continue;
+        }
+    }
+
+    /* ignore regular files with x mode */
+    if (!CloneExecutables && WorkingPtr->st_valid &&
+        (S_ISREG(WorkingPtr->st.st_mode)) &&
+        (0111 == (WorkingPtr->st.st_mode & 0111))) {
+        if (Debug > 1)
+        (void) fprintf(stderr, ">>   executable -- ignored\n");
+        continue;
+    }
+
+    /* find corresponding sourcefile */
+    for (SourcePtr = SourceHead; SourcePtr; SourcePtr = SourcePtr->next) {
+        if ((WorkingPtr->keylen == SourcePtr->keylen) &&
+            !strcmp(WorkingPtr->keyname, SourcePtr->keyname)) {
+        /* mark it as used */
+        (void) SourcePtr->used++;
+        break;
+        }
+    }
+    
+    if (Debug > 1)
+        if (SourcePtr)
+        (void) fprintf(stderr,
+            "   source: keyname=\"%s\"  fullname=\"%s\"\n",
+            SourcePtr->keyname, SourcePtr->fullname);
+        else
+        (void) fprintf(stderr, "   no source file\n");
+
+    /* is the working file actually a directory? */
+    if (WorkingPtr->st_valid &&
+        (S_ISDIR(WorkingPtr->st.st_mode))) {
+        /* yes, go recursive... */
+        if (FollowDirLinks ||
+        !WorkingPtr->lst_valid ||
+        !S_ISLNK(WorkingPtr->lst.st_mode))
+        {
+            if (Debug > 1)
+            (void) fprintf(stderr, ">>   directory\n");
+            (void) GetNew(WorkingPtr->fullname,
+                SourcePtr ? SourcePtr->fullname : WorkingPtr->fullname,
+                same);
+        }
+    } else {
+        /* find corresponding RCS file */
+        for (RcsPtr = RcsHead; RcsPtr; RcsPtr = RcsPtr->next) {
+        if ((WorkingPtr->keylen == RcsPtr->keylen) &&
+            !strcmp(WorkingPtr->keyname, RcsPtr->keyname)) {
+            /* mark it as used */
+            (void) RcsPtr->used++;
+            break;
+        }
+        }
+
+        if (Debug > 1)
+        if (RcsPtr)
+            (void) fprintf(stderr,
+                "   rcs: keyname=\"%s\"  fullname=\"%s\"\n",
+                RcsPtr->keyname, RcsPtr->fullname);
+        else
+            (void) fprintf(stderr, "   no rcs file\n");
+
+        /* print a message if there is no corresponding source */
+        if (!RcsPtr && !SourcePtr) {
+        /* don't print a message for .snf files */
+        if ((WorkingPtr->keylen > 4) && !strcmp(WorkingPtr->keyname +
+            WorkingPtr->keylen - 4, ".snf"))
+            (void) shouldnt_have_source++;
+
+        if (Verbose && !shouldnt_have_source)
+            (void) fprintf(stderr, "%s: no source or RCS file\n",
+                WorkingPtr->fullname + WorkingLen);
+        }
+
+        if (!RcsPtr || !RcsPtr->st_valid ||
+            (SourcePtr &&
+            (SourcePtr->st.st_mtime >= RcsPtr->st.st_mtime)) ||
+            (SourcePriority && SourcePtr)) {
+        /* no RCS file, or source newer than RCS, or source
+        ** exists and has priority
+        */
+        if (Debug > 1)
+            (void) fprintf(stderr, ">>   source newer than rcs\n");
+        if (SourcePtr &&
+            (WorkingPtr->st.st_mtime < SourcePtr->st.st_mtime)) {
+            if (Debug > 1)
+            (void) fprintf(stderr,
+                ">>   source newer than working\n");
+            /* does the WorkingFile have any write mode bits
+            ** set?
+            */
+            if (WorkingPtr->st.st_mode & 0222) {
+            if (!Quiet)
+                (void) fprintf(stderr,
+                    "%s: writable -- not updated\n",
+                    WorkingPtr->fullname + WorkingLen);
+            continue;
+            }
+
+            if (!Quiet)
+            (void) fprintf(stderr, "%s: newer file\n",
+                WorkingPtr->fullname + WorkingLen);
+
+
+            /* check to see if file symlinks should resolve */
+            if (ResolveFileLinks)
+                if (SourcePtr->lst_valid &&
+                 S_ISLNK(SourcePtr->lst.st_mode)) {
+                    SourceFile = ResolveLink(SourcePtr->fullname, 0);
+                    FreeSourceFile = 1;
+                } 
+                else {
+                    SourceFile = SourcePtr->fullname;
+                }
+            else {
+                SourceFile = SourcePtr->fullname;
+            }
+
+            /* do we need to do a diff? */
+            if (DoDiffs) {
+            if (DoExecute)
+            {
+                do_diff(NULL,
+                    DiffCommand,
+                    WorkingPtr->fullname,
+                    SourceFile,
+                    OutFile);
+            }
+            else
+            {
+                if (strncmp(SourceFile, SourceDirCmp, SourceLen))
+                    /* not in SourceDir... */
+                    (void) printf("%s ${w}/%s %s >>%s 2>&1\n",
+                        DiffCommand,
+                        WorkingPtr->fullname + WorkingLen,
+                        SourceFile, OutFile);
+                else
+                    /* in SourceDir... */
+                    (void) printf("%s ${w}/%s ${s}/%s >>%s 2>&1\n",
+                        DiffCommand,
+                        WorkingPtr->fullname + WorkingLen,
+                        SourceFile + SourceLen, OutFile);
+            }
+            }
+            if (DoExecute)
+            {
+            do_rm_f(WorkingPtr->fullname);
+            if (LinkFiles)
+                do_ln_s(SourceFile, WorkingPtr->fullname);
+            else
+                do_cp(SourceFile, WorkingPtr->fullname);
+            }
+            else
+            {
+                if (strncmp(SourceFile, SourceDirCmp, SourceLen)) {
+                /* not in SourceDir... */
+                (void) printf("rm -f ${w}/%s\n",
+                    WorkingPtr->fullname + WorkingLen);
+                (void) printf("\t%s %s ${w}/%s\n",
+                    LinkFiles ? "ln -s" : "cp",
+                    SourceFile,
+                    WorkingPtr->fullname + WorkingLen);
+                } else {
+                /* in SourceDir... */
+                (void) printf("rm -f ${w}/%s\n",
+                    WorkingPtr->fullname + WorkingLen);
+                (void) printf("\t%s ${s}/%s ${w}/%s\n",
+                    LinkFiles ? "ln -s" : "cp",
+                    SourceFile + SourceLen,
+                    WorkingPtr->fullname + WorkingLen);
+                }
+            }
+            if (!LinkFiles)
+            {
+            /* don't chmod the file if we did a link... */
+
+            if (DoExecute)
+            {
+                do_chmod(WorkingPtr->fullname,
+                (SourcePtr->st.st_mode & 07777 & ~0222) | 0444);
+            }
+            else
+                (void) printf("\tchmod 0%03o ${w}/%s\n",
+                 (SourcePtr->st.st_mode & 07777 & ~0222) | 0444,
+                 WorkingPtr->fullname + WorkingLen);
+            }
+            if (FreeSourceFile)
+            (void) free(SourceFile);
+        } else {
+            if (Debug > 1)
+            (void) fprintf(stderr,
+                ">>   source older than working\n");
+        }
+        } else {
+        /* RCS file is the newest */
+        if (Debug > 1)
+            (void) fprintf(stderr, ">>   rcs newer than source\n");
+        if (RcsPtr && (WorkingPtr->st.st_mtime < RcsPtr->st.st_mtime)) {
+            if (Debug > 1)
+            (void) fprintf(stderr,
+                ">>   rcs newer than working\n");
+            /* does the WorkingFile have any write mode bits
+            ** set?
+            */
+            if (WorkingPtr->st.st_mode & 0222) {
+            if (!Quiet)
+                (void) fprintf(stderr,
+                    "%s: writable -- not updated\n",
+                    WorkingPtr->fullname + WorkingLen);
+            continue;
+            }
+
+
+            if (!Quiet)
+            (void) fprintf(stderr, "%s: newer RCS file\n",
+                WorkingPtr->fullname + WorkingLen);
+          if (DoExecute)
+          {
+            do_diff(RcsDir, DiffCommand,
+                RcsPtr->keyname,
+                WorkingPtr->fullname,
+                OutFile);
+	    if (! NoRealFiles)
+	    {
+               do_co_q(RcsDir, WorkingPtr->fullname);
+	    }
+          }
+          else
+          {
+            if (strncmp(RcsDir, SourceDir, SourceLen) ||
+                (RcsDir[SourceLen] != '/')) {
+            /* RcsDir is not in SourceDir */
+
+            if (DoDiffs) {
+                /* diff the file */
+                (void) printf("\t (cd %s; %s %s ${w}/%s  >>%s 2>&1)\n",
+                    RcsDir,
+                    DiffCommand,
+                    RcsPtr->keyname,
+                    WorkingPtr->fullname + WorkingLen,
+                    OutFile);
+            }
+	      if (! NoRealFiles)
+              {
+               /* check out the file */
+               (void) printf("(cd %s; co -q ${w}/%s) \n",
+                   RcsDir, WorkingPtr->fullname + WorkingLen);
+              }
+
+            } else {
+            /* RcsDir is in SourceDir */
+
+            if (DoDiffs) {
+                /* diff the file */
+                (void) printf("\t (cd ${s}/%s; %s %s ${w}/%s  >>%s 2>&1)\n",
+                    RcsDir + SourceLen,
+                    DiffCommand,
+                    RcsPtr->keyname,
+                    WorkingPtr->fullname + WorkingLen,
+                    OutFile);
+            }
+
+              if (! NoRealFiles)
+              {
+               /* check out the file */
+               (void) printf("(cd ${s}/%s; co -q ${w}/%s) \n",
+                    RcsDir + SourceLen, WorkingPtr->fullname + WorkingLen);
+              }
+            }
+          }
+
+        } else {
+            if (Debug > 1)
+            (void) fprintf(stderr,
+                ">>   source older than working\n");
+        }
+        }
+    }
+    }
+
+    /*
+    ** PASS 2:
+    **      Check all the files in the source (checked out) dir.
+    */
+    if (Debug)
+    (void) fprintf(stderr, ">> Pass 2: scanning SourceDir \"%s\"\n",
+        SourceDir);
+    for (SourcePtr = SourceHead; SourcePtr; SourcePtr = SourcePtr->next) {
+    /* did we get this one already? */
+    if (SourcePtr->used)
+        continue;
+
+    /* ignore "RCS" */
+    if (!strcmp(SourcePtr->keyname, "RCS"))
+        continue;
+
+    /* ignore SCCS as well */
+    if (!(ProcessSCCSdirs)) {
+        if (!strcmp(SourcePtr->keyname, "SCCS")) {
+            if (Debug > 1)
+                (void) fprintf(stderr, ">>   SCCS -- ignored\n");
+            continue;
+        }
+    }
+
+    /* find corresponding RCS file */
+    for (RcsPtr = RcsHead; RcsPtr; RcsPtr = RcsPtr->next) {
+        if ((SourcePtr->keylen == RcsPtr->keylen) &&
+            !strcmp(SourcePtr->keyname, RcsPtr->keyname)) {
+        /* mark it as used */
+        break;
+        }
+    }
+
+    /* which one do we use, RCS or source? */
+    if (RcsPtr) {
+        if (!SourcePriority &&
+            (SourcePtr->st.st_mtime < RcsPtr->st.st_mtime)) {
+        /* we'll catch this on pass 3 */
+        continue;
+        } else {
+        /* mark the RCS file as used */
+        (void) RcsPtr->used++;
+        }
+    }
+
+    /* ignore .o and .a files */
+    c = SourcePtr->keyname + SourcePtr->keylen - 2;
+    if (SourcePtr->keylen >= 2) {
+        if (!strcmp(c, ".o")) {
+        (void) shouldnt_have_source++;
+        if (!CloneDotO)
+            continue;
+        }
+        if (!strcmp(c, ".a")) {
+        (void) shouldnt_have_source++;
+        if (!CloneDotA)
+            continue;
+        }
+    }
+
+    /* the files might be Makefile's */
+    if (!CloneMakefile && !strncmp(SourcePtr->keyname, Makefile,
+        strlen(Makefile)))
+        continue;
+
+    WorkingFile = malloc((unsigned) strlen(WorkingDir) +
+        SourcePtr->keylen + 2);
+    (void) strcpy(WorkingFile, WorkingDir);
+    (void) strcat(WorkingFile, "/");
+    (void) strcat(WorkingFile, SourcePtr->keyname);
+
+    if (S_ISDIR(SourcePtr->st.st_mode)) {
+        /* check for directories present in the source tree,
+        ** but not in this tree.  Don't bother if the SourceDir
+        ** is the same as WorkingDir.  If the directory exists
+        ** in the working tree, we already set the used flag
+        ** and never got here in the first place.
+        */
+        if (!same) {
+        if (MakeDirs) {
+            if (!Quiet)
+            (void) fprintf(stderr, "%s: building directory\n",
+                WorkingFile + WorkingLen);
+            if (!FollowDirLinks &&
+            SourcePtr->lst_valid &&
+            S_ISLNK(SourcePtr->lst.st_mode))
+            {
+
+            /* check to see if file symlinks should resolve */
+            if (ResolveFileLinks)
+                SourceFile = ResolveLink(SourcePtr->fullname, 0);
+            else
+                SourceFile = SourcePtr->fullname;
+
+            if (DoExecute)
+                do_ln_s(SourceFile, WorkingFile);
+            else
+            {
+                if (strncmp(SourceFile, SourceDir, SourceLen))
+                (void) printf("ln -s %s ${w}/%s\n",
+                    SourceFile,
+                    WorkingFile + WorkingLen);
+                else
+                (void) printf("ln -s ${s}/%s ${w}/%s\n",
+                    SourceFile + SourceLen,
+                    WorkingFile + WorkingLen);
+            }
+            free(SourceFile);
+            }
+            else
+            {
+            if (DoExecute)
+            {
+                do_rm_rf(WorkingFile);
+                do_mkdir(WorkingFile);
+                do_chmod(WorkingFile, 0755);
+                /* bad for other architectures */
+                /* do_chgrp(WorkingFile, "users"); */
+            }
+            else
+            {
+                (void) printf("rm -rf ${w}/%s\n",
+                    WorkingFile + WorkingLen);
+                (void) printf("\tmkdir ${w}/%s\n",
+                    WorkingFile + WorkingLen);
+                (void) printf("\tchmod 0755 ${w}/%s\n",
+                    WorkingFile + WorkingLen);
+                /* bad for other architectures */
+                /*(void) printf("\tchgrp users ${w}/%s\n",
+                    WorkingFile + WorkingLen); */
+            }
+                (void) GetNew(WorkingFile, SourcePtr->fullname, same);
+            }
+                
+        } else {
+            if (!Quiet)
+            (void) fprintf(stderr, "%s: missing directory\n",
+                WorkingFile + WorkingLen);
+        }
+        }
+    } else {
+        /* regular file (probably)... */
+        /* check to see if file symlinks should resolve */
+            if (ResolveFileLinks)
+            if (SourcePtr->lst_valid && S_ISLNK(SourcePtr->lst.st_mode)) {
+            SourceFile = ResolveLink(SourcePtr->fullname, 0);
+            FreeSourceFile = 1;
+            } 
+        else {
+            SourceFile = SourcePtr->fullname;
+            FreeSourceFile = 0;
+            }
+            else {
+        SourceFile = SourcePtr->fullname;
+        FreeSourceFile = 0;
+            }
+
+        if (!Quiet)
+        (void) fprintf(stderr, "%s: new file\n",
+            WorkingFile + WorkingLen);
+        if (DoExecute)
+        {
+        if (LinkFiles)
+            do_ln_s(SourceFile, WorkingFile);
+        else
+            do_cp(SourceFile, WorkingFile);
+        }
+        else
+        {
+            if (strncmp(SourceFile, SourceDir, SourceLen)) {
+            (void) printf("%s %s ${w}/%s\n",
+                LinkFiles ? "ln -s" : "cp",
+                SourceFile,
+                WorkingFile + WorkingLen);
+            } else {
+            (void) printf("%s ${s}/%s ${w}/%s\n",
+                LinkFiles ? "ln -s" : "cp",
+                SourceFile + SourceLen,
+                WorkingFile + WorkingLen);
+            }
+        }
+        if (!LinkFiles)
+        {
+        if (DoExecute)
+            do_chmod(WorkingFile,
+                (SourcePtr->st.st_mode & 07777 & ~0222) | 0444);
+        else
+            (void) printf("\tchmod 0%03o ${w}/%s\n",
+                (SourcePtr->st.st_mode & 07777 & ~0222) | 0444,
+                WorkingFile + WorkingLen);
+        }
+        if (FreeSourceFile)
+        (void) free(SourceFile);
+    }
+    (void) free(WorkingFile);
+    }
+
+    /*
+    ** PASS 3:
+    **
+    **      Check all the files in the RCS dir.
+    */
+    if (Debug)
+    (void) fprintf(stderr, ">> scanning RcsDir \"%s\"\n", RcsDir);
+    for (RcsPtr = RcsHead; RcsPtr; RcsPtr = RcsPtr->next) {
+    /* did we get this one already? */
+    if (RcsPtr->used)
+        continue;
+
+    /* build the WorkingFile */
+    WorkingFile = malloc((unsigned) strlen(WorkingDir) +
+        RcsPtr->keylen + 2);
+    (void) strcpy(WorkingFile, WorkingDir);
+    (void) strcat(WorkingFile, "/");
+    (void) strcat(WorkingFile, RcsPtr->keyname);
+
+    /* New RCS file */
+    if (!Quiet)
+      (void) fprintf(stderr, "%s: new RCS file\n",
+                WorkingFile + WorkingLen);
+    if (DoExecute)
+    {
+	if (! NoRealFiles)
+        {
+            do_co_q(RcsDir, WorkingFile);
+        }
+    }
+    else
+    {
+        if (strncmp(RcsDir, SourceDir, SourceLen) ||
+            (RcsDir[SourceLen] != '/')) {
+            /* RcsDir is not in SourceDir */
+	    if (! NoRealFiles)
+            {
+	        /* check it out... */
+                (void) printf("(cd %s; co -q ${w}/%s)\n",
+                     RcsDir,
+                     WorkingFile + WorkingLen);
+	    }
+        } else {
+            /* RcsDir is in SourceDir */
+	    if (! NoRealFiles)
+	    {
+                 /* check it out... */
+                 (void) printf("(cd %s; co -q ${w}/%s)\n",
+                      RcsDir + SourceLen,
+                      WorkingFile + WorkingLen);
+	     }
+        }
+    }
+    (void) free(WorkingFile);
+    }
+
+    /* free storage */
+    while (WorkingHead) {
+    WorkingPtr = WorkingHead;
+    WorkingHead = WorkingPtr->next;
+    (void) free(WorkingPtr->fullname);
+    (void) free(WorkingPtr->keyname);
+    (void) free((char *) WorkingPtr);
+    }
+    while (SourceHead) {
+    SourcePtr = SourceHead;
+    SourceHead = SourcePtr->next;
+    (void) free(SourcePtr->fullname);
+    (void) free(SourcePtr->keyname);
+    (void) free((char *) SourcePtr);
+    }
+    while (RcsHead) {
+    RcsPtr = RcsHead;
+    RcsHead = RcsPtr->next;
+    (void) free(RcsPtr->fullname);
+    (void) free(RcsPtr->keyname);
+    (void) free((char *) RcsPtr);
+    }
+
+    (void) free(RcsDir);
+    return;
+}
+
+char
+*ResolveLink(filename, freeit)
+char *filename;
+int freeit;
+{
+    int len;
+    int try;
+    char *c;
+    char *tname;
+
+    tname = filename;
+
+    if (Debug) {
+    (void) fprintf(stderr, "ResolveLink %s->", tname);
+    (void) fflush(stderr);
+    }
+    for (try = 0; try < 10; try++) {
+    if ((len = readlink(tname, Buffer, sizeof(Buffer))) < 0) {
+        break;
+    } else {
+        Buffer[len] = '\0';
+        if ('/' != *Buffer) {
+        if (c = strrchr(tname, '/')) {
+            *c = '\0';
+            c = malloc((unsigned) (strlen(tname) +
+                strlen(Buffer) + 2));
+            (void) sprintf(c, "%s/%s", tname, Buffer);
+        } else {
+            c = malloc((unsigned) (strlen(Buffer) + 1));
+            (void) strcpy(c, Buffer);
+        }
+        } else {
+        c = malloc((unsigned) (strlen(Buffer) + 1));
+        (void) strcpy(c, Buffer);
+        }
+        if (freeit++)
+        (void) free(tname);
+        tname = c;
+    }
+    }
+    if (!freeit) {
+    c = malloc((unsigned) (strlen(tname) + 1));
+    (void) strcpy(c, tname);
+    tname = c;
+    }
+    if (Debug) {
+    (void) fprintf(stderr, "%s\n", tname);
+    (void) fflush(stderr);
+    }
+    return(tname);
+}
+
+/* New code for -X option */
+
+static void do_rm_rf(target)
+char *target;
+{
+    char *malloc(), *temp;
+    struct stat buf;
+    if (lstat(target, &buf) != -1)
+    {
+        if (S_ISDIR(buf.st_mode))
+    {
+        DIR *thisdir;
+#ifdef apollo
+        struct direct *thisent;
+#else
+        struct dirent *thisent;
+#endif
+        thisdir = opendir(target);
+        if (thisdir != NULL)
+        {
+        while (thisent = readdir(thisdir))
+        {
+            if (strcmp(thisent->d_name, ".") &&
+                strcmp(thisent->d_name, ".."))
+            {
+            temp = malloc(strlen(target) +
+                      strlen(thisent->d_name) + 2);
+            if (temp != NULL)
+            {
+                (void)strcpy(temp, target);
+                (void)strcat(temp, "/");
+                (void)strcat(temp, thisent->d_name);
+                    do_rm_rf(temp);
+                free(temp);
+            }
+            }
+        }
+        closedir(thisdir);
+        (void)rmdir(target);
+        }
+    }
+    else
+        (void)unlink(target);
+    }
+}
+
+static void do_touch(filename)
+char *filename;
+{
+#ifdef apollo
+    struct timeval tvp[2];
+    struct timezone tzp;
+    gettimeofday(tvp, &tzp);
+    tvp[1] = tvp[0];
+    if (utimes(filename, tvp) == -1 &&
+    errno == ENOENT)
+#else
+    if (utime(filename, (struct utimbuf *)NULL) == -1 &&
+    errno == ENOENT)
+#endif
+    (void)creat(filename, 0777);
+}
+
+static void do_ln_s(src, dest)
+char *src, *dest;
+{
+    if (symlink(src, dest) == -1)
+    perror(dest);
+}
+
+static void do_diff(dirname, diffcmd, file1, file2, outfile)
+char *dirname, *diffcmd, *file1, *file2, *outfile;
+{
+    pid_t pid, res, fork();
+
+    pid = fork();
+
+    if (pid == -1)
+    perror("fork() failed");
+    else
+    {
+    if (pid == 0)
+    {
+        if (dirname != NULL && chdir(dirname) == -1)
+        perror("dirname");
+        else
+        {
+        int des;
+        des = open(outfile, O_WRONLY | O_APPEND | O_CREAT, 0777);
+        if (des == -1)
+        {
+            perror(outfile);
+            exit(1);
+        }
+        (void)dup2(des, fileno(stdout));
+        (void)dup2(des, fileno(stderr));
+        execlp(diffcmd, diffcmd, file1, file2, NULL);
+        perror(diffcmd);
+        }
+        exit(1);
+    }
+    while ((res = wait(NULL)) != pid && res != -1);
+    }
+}
+
+static void do_rm_f(target)
+char *target;
+{
+    struct stat buf;
+    if (lstat(target, &buf) != -1 &&
+        !(S_ISDIR(buf.st_mode)))
+    (void)unlink(target);
+}
+
+static void do_cp(src, dest)
+char *src, *dest;
+{
+    int res1, res2, fd1, fd2;
+    char buf[BUFSIZ];
+
+    fd1 = open(src, O_RDONLY);
+    if (fd1 == -1)
+    {
+    perror(src);
+    return;
+    }
+    fd2 = open(dest, O_WRONLY | O_CREAT, 0777);
+    if (fd2 == -1)
+    {
+    perror(dest);
+    close(fd1);
+    return;
+    }
+
+    while ((res1 = read(fd1, buf, BUFSIZ)) > 0)
+    {
+    while ((res2 = write(fd2, buf, res1)) > 0 && (res1 -= res2));
+    if (res2 == -1) break;
+    }
+
+    if (res1 == -1)
+    perror(src);
+    else if (res2 == -1)
+    perror(dest);
+
+    close(fd1);
+    close(fd2);
+}
+
+static void do_chmod(filename, newmode)
+char *filename;
+int newmode;
+{
+    if (chmod(filename, newmode) == -1)
+    perror(filename);
+}
+
+static void do_co_q(dirname, targetname)
+char *dirname, *targetname;
+{
+    pid_t pid, res, fork();
+
+    pid = fork();
+
+    if (pid == -1)
+    perror("fork() failed");
+    else
+    {
+    if (pid == 0)
+    {
+        if (chdir(dirname) == -1)
+        perror("dirname");
+        else
+        {
+        execlp("co", "co", "-q", targetname, NULL);
+        perror("failed to exec co(1)");
+        }
+        exit(1);
+    }
+    while ((res = wait(NULL)) != pid && res != -1);
+    }
+}
+
+static void do_mkdir(dirname)
+char *dirname;
+{
+    if (mkdir(dirname, 0777) == -1)
+    perror(dirname);
+}
+
+static void do_chgrp(filename, newgroup)
+char *filename, *newgroup;
+{
+    struct group *group, *getgrnam();
+    group = getgrnam(newgroup);
+    if (group == NULL)
+    fprintf(stderr, "%s: no such group\n", newgroup);
+    else
+    chown(filename, UID_NO_CHANGE, group->gr_gid);
+}

BIN
cde/admin/BuildTools/fnrclone/findnewrcs.osf.400s


BIN
cde/admin/BuildTools/fnrclone/findnewrcs.osf.pa


+ 140 - 0
cde/admin/BuildTools/fnrclone/fnrclone

@@ -0,0 +1,140 @@
+#! /bin/sh
+
+# This shell script runs findnewrcs on a clone tree.
+
+# Usage
+DoUsage()
+{
+	cat << dernier
+Usage: fnrclone [-OPTIONS] <source> <destination>   
+	where OPTIONS are:
+        [-c (checkout any new versions of files from RCS)]
+        [-s (create a script & log file in $HOME/fnrclone and
+	    execute the script)]
+        [-n (leave actual files, not symbolic links)]
+	[-f <logfile name> (create a log file of changes)]
+	[-d (descend symbolically linked directories)]
+	[-S (do not follow symbolic links for files)
+        [-O (do not check out files, Only create symbolic links for existing files)
+	[-C (process SCCS directories[usually they are ignored])
+        [-u Usage message]
+NOTE: the default is make symbolic links and don't check out newer
+      revisions of files, just shadow the source. If the RCS directory is 
+      accessible, check out any brand new files as real files. If the
+      RCS directory is not accessible (remote exchange), do NOT check out
+      any brand new files.
+dernier
+}
+			
+		
+if [ $# -lt 2 ] ; then
+	DoUsage
+	exit 1
+fi
+
+DEF_s="L"
+DEF_X="X"
+LINKOPT="l"
+ACTUAL=
+#Parse the options
+set -- `getopt csSCOdnuf: $*`
+while [ $# -gt 0 ]
+do
+	case $1 in
+		-n) LINKOPT= ;shift;;
+		-s) DEF_X=;shift;;
+		-S) DEF_S=s;shift;;
+		-c) DEF_s=;shift;;
+		-C) DEF_C=C;shift;;
+		-O) DEF_O=O;shift;;
+		-u) DoUsage;shift;;
+		-f) LOG=$2;shift 2;;
+		-d) ACTUAL="${ACTUAL}f";shift;;
+		--) shift;;
+		-*) DoUsage;shift;;
+		 *) SRC=$1;DEST=$2;shift 2;;
+	esac
+done
+
+OPTS="${DEF_X}${DEF_s}${DEF_S}${DEF_C}${DEF_O}${ACTUAL}${LINKOPT}miA"
+
+#
+# get the system from uname -s
+#
+SYSTEM=`uname -s`
+RELEASE=`uname -r`
+MACHINE=`uname -m`
+
+Findnewrcs="findnewrcs.${SYSTEM}"
+if [ "$SYSTEM" = "HP-UX" ];then
+	# 700's
+	M700=`echo $MACHINE | fgrep '/7' 2>/dev/null` 
+	M800=`echo $MACHINE | fgrep '/8' 2>/dev/null`
+	R100=`echo $RELEASE | fgrep '10.' 2>/dev/null` 
+	R90=`echo $RELEASE | fgrep '9.' 2>/dev/null` 
+	R80=`echo $RELEASE | fgrep '8.' 2>/dev/null` 
+	R70=`echo $RELEASE | fgrep '7.' 2>/dev/null` 
+	if [ "$M700" ]; then
+		if [ "$R100" ];then
+			Findnewrcs="findnewrcs.700.100"
+		elif [ "$R80" ];then
+			Findnewrcs="findnewrcs.700.807"
+		fi
+	elif [ "$M800" ]; then
+		if [ "$R100" ];then
+			Findnewrcs="findnewrcs.800.100"
+		elif [ "$R90" ];then
+			Findnewrcs="findnewrcs.800.90"
+		elif [ "$R80" ];then
+			Findnewrcs="findnewrcs.800.80"
+		else
+			Findnewrcs="findnewrcs.800.70"
+		fi
+	else
+		if [ "$R90" ];then
+			Findnewrcs="findnewrcs.300.90"
+		elif [ "$R80" ];then
+			Findnewrcs="findnewrcs.300.80"
+		fi
+	fi
+fi
+			
+if [ "$SYSTEM" = "SunOS" ];then
+
+  if [ "$MACHINE" = "i86pc" ];then
+    Findnewrcs="findnewrcs.UNIX_SV"
+  elif [ "$MACHINE" = "prep" ];then
+    Findnewrcs="findnewrcs.SunOS_PPC"
+  else
+    Findnewrcs="findnewrcs.SunOS"
+  fi
+
+fi
+
+#
+# make an old style script
+#
+FNR_BINDIR=`dirname $0`
+if [ ! "$DEF_X" ];then
+	DATE=`date +%H%M%S`
+	FNR_DIR=/$HOME/fnrclone
+	[ ! -d $FNR_DIR ] && mkdir $FNR_DIR
+	FNR_SCRIPT=$FNR_DIR/script$DATE
+	FNR_LOG=$FNR_DIR/log$DATE
+	$FNR_BINDIR/$Findnewrcs -S${SRC} -W${DEST} -${OPTS} > $FNR_SCRIPT 2> $FNR_LOG
+	chmod 777 $FNR_SCRIPT
+	chmod 777 $FNR_LOG
+	$FNR_SCRIPT
+	echo "`basename $0`: script is in $FNR_SCRIPT, logfile is $FNR_LOG"
+	if [ "$LOG" ];then
+		cat $FNR_LOG > $LOG
+		echo "logfile is also in $LOG"
+	fi
+else # execute without a script
+	if [ "$LOG" ];then
+		$FNR_BINDIR/$Findnewrcs -S${SRC} -W${DEST} -${OPTS} 2> $LOG
+	else 
+		$FNR_BINDIR/$Findnewrcs -S${SRC} -W${DEST} -${OPTS}
+	fi
+fi
+

+ 58 - 0
cde/admin/BuildTools/fnrclone/makefindnewrcs

@@ -0,0 +1,58 @@
+#! /usr/local/bin/perl
+
+eval "exec /usr/local/bin/perl -S $0 $*"
+    if $running_under_some_shell;
+
+$system = `uname -s`;
+$release = `uname -r`;
+$machine = `uname -m`;
+
+if ($system =~ m%SunOS%) {
+   if ($machine =~ m%prep%) {
+       $system = "SunOS_PPC";
+   }
+}
+
+push(@targets,"findnewrcs.${system}");
+
+#
+# for hp need subsystems
+#
+if ($system =~ m%HP-UX%) {
+	# if it's not 700 9.0, don't do HP-UX
+	if ($machine =~ m%.*/7%) {
+		if ($release =~ m%9\.%) {
+			push(@targets,"findnewrcs.700.90");
+			push(@targets,"findnewrcs.800.90");
+		}
+		elsif ($release =~ m%8\.%) {
+			@targets = ("findnewrcs.700.807");
+		}
+		elsif ($release =~ m%10\.%) {
+			@targets = ("findnewrcs.700.100");
+		}
+	}
+	elsif ($machine =~ m%.*/8%) {
+		if ($release =~ m%9\.%) {
+			@targets = ("findnewrcs.800.90");
+		}
+		elsif ($release =~ m%8\.%) {
+			@targets = ("findnewrcs.800.80");
+		}
+		elsif ($release =~ m%7\.%) {
+			@targets = ("findnewrcs.800.70");
+		}
+	}
+	elsif ($machine =~ m%.*/[34]%) {
+		if ($release =~ m%9\.%) {
+			@targets = ("findnewrcs.300.90");
+		}
+		elsif ($release =~ m%8\.%) {
+			@targets = ("findnewrcs.300.80");
+		}
+	}
+}
+
+foreach $target (@targets) {
+	system ("make load${target}");
+}

+ 144 - 0
cde/admin/BuildTools/master_build/ListTheTree

@@ -0,0 +1,144 @@
+#! /usr/local/bin/perl
+
+eval "exec /usr/local/bin/perl -S $0 $*"
+    if $running_under_some_shell;
+
+################################################################################
+#
+# File:         ListTheTree <source tree>
+# RCS:          $XConsortium: ListTheTree /main/3 1995/10/30 13:43:24 rswiston $
+# Author:       Jim Andreas Hewlett-Packard, OSSD-CV
+# Created:      1/15/92
+# Modified by:  Marc Ayotte Hewlett-Packard, OSSD-CV (perlizer)
+# Language:     N/A
+# Package:      N/A
+# Status:       CDE distributed
+#
+# (c) Copyright 1993, Hewlett-Packard Company, all rights reserved.
+#
+# Description:  This file does 2 things:
+#               1) List the source tree's structure.
+#                  This structure is placed into the source tree's
+#                  directory as :TreeListing.
+#               2) Creates a listing of all of the files locked in the
+#                  source tree and places it in :TreeListing.locks.
+################################################################################
+
+if ($ARGV[0]) {
+	$TREE = $ARGV[0];
+	#
+	# if not / relative get pwd path
+	#
+	if ($TREE !~ m%^\/%) {
+		print STDERR "	Must be a / related path e.g -> /foo.  Sorry!\n";
+		exit 1;
+	}
+}
+else {
+	die "	USAGE ListTheTree <source directory>\n";
+}
+
+# put /usr/local/bin in the path for Rcslocks
+$ENV{'PATH'} = "/x/cdesrc/admin/bin:/usr/local/bin:$ENV{'PATH'}";
+
+if (! chdir("$TREE")) {
+	die "	ERROR -> Couldn't change directory to $TREE.\n";
+}
+
+######################
+# get the tree listing
+######################
+system ("find . -print > :TreeListing.new");
+unlink(":TreeListing");
+if (! rename(":TreeListing.new",":TreeListing")) {
+	print "	WARNING -> couldn't mv  :TreeListing.new to :TreeListing.\n";
+}
+
+
+###################################
+# find the locked files in the tree
+###################################
+unlink(":TreeListing.locks.new");
+open(NLOCK,">>$TREE/:TreeListing.locks.new");
+print NLOCK "List of locked files in $TREE\n\n";
+@dirs=(`find . -type d -print`);
+
+foreach $dir (@dirs) {
+	undef(@rcsLocks);
+	chop($dir);
+	if (chdir("$dir")) {
+		@rcsLocks = (`Rcslocks -v`);
+		# only list directory if there are locks
+		if (@rcsLocks) {
+			print NLOCK "$dir\n";
+			while (@rcsLocks) {
+				$lock = shift(@rcsLocks);
+				print NLOCK "   $lock";
+			}
+			print NLOCK "\n";
+		}
+	}
+	else {
+		print "	WARNING -> could not cd to ${TREE}/${dir}\n";
+		print "	$!\n";
+	}
+    	chdir("$TREE");
+}
+
+unlink("$TREE/:TreeListing.locks");
+rename("$TREE/:TreeListing.locks.new","$TREE/:TreeListing.locks");
+
+
+#
+# get changes from last listing
+# check file $TREE/changestamp
+#
+$cstamp = "${TREE}/changestamp";
+if ( -f "${TREE}/changestamp" ) {
+	$laststamp = `cat $cstamp`;
+	chop $laststamp;
+}
+else {
+	$date = `date +%y%m%d`;
+	chop $date;
+	$laststamp = "${date}0001";
+	$dip = `echo "$laststamp" >$cstamp`;
+	$date = `date +%m%d0001`;
+	chop $date;
+	system "touch $date $cstamp";
+}
+$curstamp = `date +%y%m%d%H%M`;
+chop $curstamp;
+
+unlink("$TREE/:TreeListing.changes.new");
+open(NCHANGE,">>$TREE/:TreeListing.changes.new");
+print NCHANGE "List of changed files in $TREE\n\n";
+@allfiles=(`find . -follow -name "*,v" -newer $cstamp -print`);
+foreach $file (@allfiles) {
+	chop $file;
+	if (open($RCSFILE,"$file")) {
+		NEXTLINE:
+		while ($line = <$RCSFILE>) {
+			chop $line;
+			if ($line !~ m%^date%) {
+				next NEXTLINE;
+			}
+			else {
+				$lastdate = $line;
+				$author = $line;
+				$lastdate =~ s%^.* (\d+\.\d+\.\d+\.\d+\.\d+).*$%\1%;
+				$lastdate =~ s%\.%%g;
+				if ($lastdate > $laststamp) {
+					$author =~ s%^.*author (.*); .*;$%\1%;
+					print NCHANGE "$file <-> $author\n";
+				}
+			}
+		}
+		close($RCSFILE);
+	}
+}
+
+$dip = `echo "$curstamp" >$cstamp`;
+
+unlink("$TREE/:TreeListing.changes");
+rename("$TREE/:TreeListing.changes.new","$TREE/:TreeListing.changes");

+ 54 - 0
cde/admin/BuildTools/master_build/builds

@@ -0,0 +1,54 @@
+#!/bin/ksh
+
+TMPFILE=/tmp/xxIIee$$
+TMPFILE300=${TMPFILE}300
+TMPFILE700=${TMPFILE}700
+TMPFILEOTHER=${TMPFILE}OTHER
+TMPFILEEMPTY=${TMPFILE}EMPTY
+
+if (( $#  < 1 ))
+then
+   PWDIR=`/bin/pwd`
+   DATEDIR=`basename $PWDIR`
+   DIR=/x/logs/build/$DATEDIR
+else
+   DIR=/x/logs/build/$1
+fi
+
+
+echo >$TMPFILEEMPTY
+echo >>$TMPFILEEMPTY
+echo >>$TMPFILEEMPTY
+
+echo "300   Build Machines in $DIR" > $TMPFILE300
+echo  >> $TMPFILE300
+
+echo "700   Build Machines in $DIR" > $TMPFILE700
+echo >> $TMPFILE700
+
+echo "Other Build Machines in $DIR" > $TMPFILEOTHER
+echo >> $TMPFILEOTHER
+
+
+find $DIR -name summar\*  -exec grep master_build {} \;  > $TMPFILE
+
+
+
+grep 300 $TMPFILE | sort -k 6,6 >> $TMPFILE300
+
+grep 700 $TMPFILE | sort -k 6,6 >> $TMPFILE700
+
+grep -v 300 $TMPFILE | grep -v 700 | sort -k 6,6 >> $TMPFILEOTHER
+
+cat  $TMPFILE700  $TMPFILEEMPTY $TMPFILEOTHER   $TMPFILEEMPTY $TMPFILE300
+
+
+
+ rm $TMPFILE
+ rm $TMPFILE300
+ rm $TMPFILE700
+ rm $TMPFILEOTHER
+ rm $TMPFILEEMPTY
+
+
+

+ 121 - 0
cde/admin/BuildTools/master_build/cleanLinks

@@ -0,0 +1,121 @@
+#! /usr/local/bin/perl
+
+eval "exec /usr/local/bin/perl -S $0 $*"
+    if $running_under_some_shell;
+
+################################################################################
+#
+# File:         cleanLinks <source tree>
+# RCS:          $XConsortium: cleanLinks /main/3 1995/10/30 13:43:35 rswiston $
+# Author:       Marc Ayotte Hewlett-Packard, OSSD-CV
+# Created:      Sun Jul  4 17:57:13 PDT 1993
+# Language:     perl
+# Package:      N/A
+# Status:       CDE distributed
+#
+# (c) Copyright 1993, Hewlett-Packard Company, all rights reserved.
+#
+# Usage:        cleanLinks <directory>
+#
+# Description:  This script removes symbolic links to nowhere in
+#               <directory>. It does not remove anything with RCS
+#               in its path.
+#
+################################################################################
+if ($ARGV[0]) {
+	$TREE = $ARGV[0];
+}
+else {
+	die "	USAGE CleanLinks <source directory>\n";
+}
+
+if (! chdir("$TREE")) {
+	die "	ERROR -> Couldn't change directory to $TREE.\n";
+}
+
+#######################################################
+# define local subroutines
+#######################################################
+sub dokill {
+	die "\n	left on INTR \n";
+	exit 1;
+}
+########################################################
+# Catch signals
+########################################################
+$SIG{'INT'} = 'dokill';
+
+
+##############################
+# get the symlinks in the tree
+##############################
+if (! open(FIND,"find . -type d ! -type l -print|")) {
+	print STDERR "	ERROR failure in open used for find.\n";
+	die "You may have to contact your build administrator\n";
+}
+#
+# don't buffer find output
+#
+$| = 1;
+
+print "************ List of symlinks to nowhere removed **********\n";
+
+
+##################################################################
+# go through the directories and examine each symlink.
+# resolve  the symlink and, if the file at the end doesn't exist,
+# remove the original symlink. Don't do anything that ends in RCS.
+##################################################################
+FILE:
+while ($new = <FIND>) {
+	chop $new;
+	if (! opendir(THISDIR,"$new")) {
+		print STDERR "	WARNING -> could not process directory $new\n";
+		next FILE;
+	}
+	else {
+		if (! chdir("$new")) {
+			print STDERR "	WARNING -> could not change directory to $new\n";
+			next FILE;
+		}
+	}
+	# remove . from $new path for cuteness of output
+	$new =~ s%^\.%%;
+
+	@allfiles = grep(!/^\.\.?$/, readdir(THISDIR));
+	foreach $file (@allfiles) {
+		if (( -l $file) && ($file !~ m%RCS$%) && (! -d $file)) {
+			#
+			# resolve the link
+			#
+			$tmp1file = $file;
+			$counter = 0;
+			while (defined($tmp2file = readlink($tmp1file))) {
+				$tmp1file = $tmp2file;
+				# 
+				# watch for cyclic symlinks
+				#
+				if ($counter++ == 10) {
+					last;
+				}
+			}
+			#
+			# if last piece in resolved chain is not a file
+			# it is a symlink to nowhere -> remove
+			#
+			if ( ! -e $tmp1file) { # remove link to nowhere
+				if (unlink("$file")) {
+					print "removing ${TREE}${new}/${file}\n";
+				}
+				else {
+					print STDERR "	WARNING -> ${TREE}${new}/${file} -> could not remove\n";
+					print "$!\n";
+				}
+			}
+		}
+	}
+	closedir(THISDIR);
+	if (! chdir("$TREE")) {
+		die "	ERROR -> Couldn't change directory to $TREE.\n";
+	}
+}

+ 28 - 0
cde/admin/BuildTools/master_build/cleanLogs

@@ -0,0 +1,28 @@
+#! /bin/ksh
+
+# This script trims the number of files in the main build log directory
+# It can also be used to trim other log files
+# marca 2/7/90
+USAGE="cleanLogs [logdir] [number of logs left]"
+
+# defaults
+LOGSLEFT=14
+LOGDIR=/x/logs/build
+[ $# -gt 1 ] && LOGSLEFT=$2
+[ $# -gt 0 ] && LOGDIR=$1
+
+#clean up the log files because dere be too many
+echo ""
+echo "***************************************"
+echo "START Trimming log files"
+cd $LOGDIR
+LOGS=`ls -rt`
+set -- $LOGS
+
+while [ $# -gt $LOGSLEFT ]
+do
+    #eliminate last log file
+    echo "Trying to delete $1"
+    rm -rf $1 || echo "could not delete $1"
+	shift
+done

+ 23 - 0
cde/admin/BuildTools/master_build/cleanfnr

@@ -0,0 +1,23 @@
+#! /bin/sh
+# This script cleans the fnrclone, etc directories.
+
+for DIRS in `echo "fnrclone fnrnolink fnrnoRCS"`
+do
+	CURRENT=$HOME/$DIRS
+	if [ -d $CURRENT ];then
+		echo ""
+		echo "In $CURRENT"
+		cd $CURRENT
+		LOGS=`ls -rt`
+		set -- $LOGS
+
+		#check to see if you have at least 10 log and script files
+		while [ $# -gt 20 ]
+		do
+			echo $1 
+			rm -rf $1 || echo "could not delete $1"
+			shift
+		done	
+	fi
+	echo ""
+done

+ 29 - 0
cde/admin/BuildTools/master_build/cleansrctree

@@ -0,0 +1,29 @@
+#! /bin/sh
+
+# This script cleans a source tree of unwanted ,RCSnew* files
+# created when you abort RCS.
+# It also makes all the ,v files have group bin and owner bin --marca
+# marca 2/7/90
+
+USAGE="USAGE: cleansrctree <sourcedir>"
+
+if [ $# -lt 1 ];then
+	echo ""
+	echo "$USAGE"
+	exit 1
+fi
+
+cd /$1
+
+#change owner and group to bin
+echo "FILES NOT OWNER BIN"
+find . -name "*,v" ! -user bin -print -exec chown bin {} \;
+find . -name "*,v" ! -group bin -print -exec chgrp bin {} \;
+echo "FILES not 444"
+find . -name "*,v" -perm 0440 -exec chmod +r {} \; -print
+echo ""
+echo "FILES NOT GROUP BIN"
+echo ""
+echo ",RCS FILES"
+# eliminate , files
+find . -name ",*" -print -exec rm -f {} \;

+ 69 - 0
cde/admin/BuildTools/master_build/cron_example

@@ -0,0 +1,69 @@
+################################################################################
+#
+# RCS:          $XConsortium: cron_example /main/3 1995/10/30 13:43:46 rswiston $
+# Author:       Marc Ayotte, Hewlett-Packard OSSD-CV
+# Created:      Tue Jun 29 10:12:15 PDT 1993
+# Language:     N/A
+# Package:      N/A
+# Status:       CDE 
+#
+# (c) Copyright 1993, Hewlett-Packard Company, all rights reserved.
+#
+# Description:  This file is an example cron script which triggers
+#    builds and does normal tree maintenance. The various functions
+#    are delimited by the letters #[A-Z]).
+#    A) fnrclone can leave 2 files each time it executes:
+#       The file ${HOME}/fnrclone/log.hhmmss and script.hhmmss.
+#       These files can pile up and they are cleaned out by the cleanfnr
+#       script. 
+#       NOTE: In the very near future this will not be the default
+#       operation for fnrclone and this may  no longer be necessary.
+#    B) By default, master_build puts its log files in the 
+#       /x/logs/build/MMDD/${buildtreename} directory. The
+#       cleanLogs script trims these directories.
+#    C) The script ListTheTree creates a listing of all of the files in
+#       a tree and puts the list under the name :TreeListing in the top
+#       of the tree.
+#    D) An example of building the /x/cde_hp700_90 tree on the
+#       machine that is doing cron.
+#    E) An example of building the /x/cde_hp700d_90(debug) tree on a 
+#       remote machine using remsh.
+################################################################################
+#A) clean ${HOME}/fnrclone directory
+4 11 * * * /x/cdesrc/admin/BuildTools/master_build/cleanfnr 1>/users/marca/xbuild/cleanfnr.log 2>&1
+
+#B) clean excess build logs in /x/logs/build
+4 19 * * * /x/cdesrc/admin/BuildTools/master_build/cleanLogs 1>/x/logs/cronlogs/cleanLogs.log 2>&1
+
+#C) create a listing of the files in a tree and put into top of the tree.
+#   this also creates a listing of locked files
+10 12 * * * /x/cdesrc/admin/BuildTools/master_build/ListTheTree /x/cdesrc 1>/x/logs/cronlogs/ListTheTreecdesrc.log 2>&1
+
+#D) build the hp tree putting the log files in the default location.
+#   the source tree is /x/cdesrc; the build tree is /x/cde_hp700_90.
+#   This entry will first do an fnrclone -s /x/cdesrc /x/cde_hp700_90
+#      to sync up the build tree's links to the source (-clone s).
+#      The log and error files from the clone will go into
+#      /x/logs/build/mmdd/cde_hp700_90/clonelog.HHMMSS
+#      /x/logs/build/mmdd/cde_hp700_90/cloneerr.HHMMSS
+#   It uses -c to do all of the normal imake functions:
+#     make -i Makefile; make -i Makefiles;make -i includes;make -i
+#     depend and make -i.
+#     The log files for make -i will go in
+#     /x/logs/build/mmdd/cde_hp700_90/make.HHMMSS.
+#     The log files for all other operations will go in
+#     /x/logs/build/mmdd/cde_hp700_90/allmake.HHMMSS.
+#   The second entry uses -w to "clean the tree": remove all .o's, .a's, 
+#     executables etc.  Normally we make clean once a week on Saturday night.
+#   The -cl option will remove symbolic links to nowhere.
+#   The -m option will mail notification to someone when the build
+#     is complete.
+############ cde_hp700_90 - LOCAL ##############
+6 22 * * 0,1,2,3,4,5 /x/cdesrc/admin/BuildTools/master_build/master_build -src /x/cdesrc -build /x/cde_hp700_90 -clone s -cl -c -m buildwatch@hpcvlx 1>/x/logs/cronlogs/r5s700.log 2>&1
+6 22 * * 6 /x/cdesrc/admin/BuildTools/master_build/master_build -src /x/cdesrc -build /x/cde_hp700_90 -clone s -cl -c -w -m buildwatch@hpcvlx 1>/x/logs/cronlogs/r5s700.log 2>&1
+
+
+#E) build the debug tree on hpcvusj
+############ cde_hp700d_90 - HPCVUSJ ##############
+10 22 * * 0,1,2,3,4,5 /x/cdesrc/admin/BuildTools/master_build/remote_build hpcvusj -src /x/cdesrc -build /x/cde_hp700d_90 -clone s -cl -c -m buildwatch@hpcvlx 1>/x/logs/cronlogs/r5s700.log 2>&1
+10 22 * * 6 /x/cdesrc/admin/BuildTools/master_build/remote_build hpcvusj  -src /x/cdesrc -build /x/cde_hp700d_90 -clone s -cl -c -w -m buildwatch@hpcvlx 1>/x/logs/cronlogs/r5s700.log 2>&1

+ 50 - 0
cde/admin/BuildTools/master_build/fixSourceDirPerm

@@ -0,0 +1,50 @@
+#!/bin/sh
+
+#
+#  this script make sure that all dirs in /x80src are
+#  owned by xbuild, and that all directories have permissions
+#  of 755.
+# 
+#   - jim andreas 10/91
+#
+# modified to be more general by Marc Ayotte 11/92
+
+doUsage()
+{
+	cat << eof
+
+	USAGE: fixSourceDirPerm <tree> <owner> <group>
+
+	Note: if owner != bin, files and directories owned by bin
+	will NOT be changed to owner.
+
+eof
+}
+
+if [ $# -lt 3 ];then
+	doUsage;
+	exit 1
+fi
+
+cd $1 || doUsage
+
+# Some dirs in the build trees have to be owned by bin (rcs_tools)
+# if bin is not the chosen group, don't change files that are already bin
+if [ "$2" != "bin" ];then
+	DontDoBin="! -user bin"
+fi
+
+# change ownership of non-conforming dirs
+#
+echo "DIRS not owned by $2"
+find . -type d ! -path "*RCS*" ! -path "*/CRT*" ! -user $2 $DontDoBin -print -exec chown $2 {} \; -exec chgrp $3 {} \;
+
+# chmod mode of non-conforming dirs
+#
+echo "DIRS not 755 permission by $2"
+find . -type d -user $2 ! -path "*/CRT*" $DontDoBin ! -perm 755 -print -exec chmod 755 {} \;
+
+# chown mode of non-conforming files
+#
+echo "FILES not owned by $2"
+find . -type f ! -path "*RCS*" ! -path "*/CRT*" ! -user $2 $DontDoBin -print -exec chown $2 {} \; -exec chgrp $3 {} \;

+ 89 - 0
cde/admin/BuildTools/master_build/manageBInstallDirs

@@ -0,0 +1,89 @@
+#! /usr/local/bin/perl
+
+eval "exec /usr/local/bin/perl -S $0 $*"
+    if $running_under_some_shell;
+
+################################################################################
+#
+# File:         manageBInstallDirs <source tree>
+# RCS:          $XConsortium: manageBInstallDirs /main/3 1995/10/30 13:43:53 rswiston $
+# Author:       Marc Ayotte Hewlett-Packard, OSSD-CV
+# Created:      Thu Dec 30 14:02:31 PST 1993
+# Language:     perl
+# Package:      N/A
+# Status:       CDE distributed
+#
+# (c) Copyright 1993, Hewlett-Packard Company, all rights reserved.
+#
+# Usage:        manageBInstallDirs <directory> <latestsubdir> [#dirsleft]
+#
+# Description:  This script removes excessive binstall directories of
+#               the type parentdir/mm_dd (month day).
+#               It also symbolically links the most recent subdirectory
+#               to parentdir/latest.
+#
+################################################################################
+if ($ARGV[1]) {
+	$tree = $ARGV[0];
+	$latestSubdir = $ARGV[1];
+}
+else {
+	die "USAGE manageBInstallDirs <parent directory> <latestsubdir> [# dirsleft]\n";
+}
+
+if (! chdir("$tree")) {
+	die "	ERROR -> Couldn't change directory to $tree.\n";
+}
+
+if ($ARGV[2]) {
+	$numDirsLeft = $ARGV[2];
+}
+else {
+	$numDirsLeft = 7;
+}
+
+#######################################################
+# define local subroutines
+#######################################################
+sub dokill {
+	die "\n	left on INTR \n";
+	exit 1;
+}
+########################################################
+# Catch signals
+########################################################
+$SIG{'INT'} = 'dokill';
+
+
+##################################################
+# get the mm_dd directories in oldest first order.
+# remove the oldest if there are more than minimum.
+##################################################
+@allDirs = (`ls -t`);
+$counter = 0;
+foreach $dir (@allDirs){
+	chop $dir;
+	$_ = $dir;
+	if (m%^[0-9][0-9]_[0-9][0-9]$% && -d $dir) {
+		if ($counter++ >= $numDirsLeft) {
+			print "removing $tree/$dir\n";
+			system "rm -rf $dir";
+		}
+	}
+}
+
+
+############################
+# link latestSubdir to latest
+############################
+if (-l "latest") {
+	print "linking $latestSubdir to \"latest\"\n";
+	system "rm -f latest";
+	system "ln -s -f $latestSubdir latest";
+}
+elsif(-d "latest") {
+	print "Error - directory \"latest\" is a real directory";
+}
+else { # create link
+	system "ln -s -f $latestSubdir latest";
+}

+ 520 - 0
cde/admin/BuildTools/master_build/master_build

@@ -0,0 +1,520 @@
+#!/bin/ksh
+################################################################################
+#
+# File:         master_build
+# RCS:          $XConsortium: master_build /main/14 1996/07/18 14:17:16 drk $
+# Author:       Marc Ayotte Hewlett-Packard, OSSD-CV
+# Created:      2/6/90
+# Modified by:  Jim Andreas, Fred Handloser, Marc Ayotte, Ron Voll 
+#                  and others from Hewlett-Packard, OSSD-CV
+# Language:     N/A
+# Package:      N/A
+# Status:       CDE distributed
+#
+# (c) Copyright 1993, Hewlett-Packard Company, all rights reserved.
+#
+# Description:  This file controls the building and cloning of
+#               of source and build trees. Look at the file cron.example
+#               and the usage information below for examples of how
+#               to use this script. There is also a man page
+#               master_build.1
+################################################################################
+
+
+################################################################################
+function DoUsage #
+################################################################################
+{
+    if [ -n $1 ]; then
+	echo "unrecognized option: $1"
+	echo
+    fi
+
+    cat<<eof
+Usage:master_build 
+    [ -src <srcdir> ]  (source directory e.g. /proj/cde, /proj/x11)
+    [ -build <buildir> (build dir. as in /proj/cde, /proj/x11)
+    [ -clone <option> ] (one of:
+              f   -> do a full checkout # TEMPORARILY OBSOLETE!!
+              n   -> clone creating real files (fnrclone -n)
+              s   -> clone without checking files out of RCS
+              c   -> clone checking out newer RCS files
+              sync-> clone checking out newer RCS files (OBSOLETE)
+    [ -cl ] (run cleanLinks)
+    [ -c ] (compile)
+    [ -b ] (run make binstall and use the default path mechanism in imake)
+    [ -bp <path> ] (run make binstall and supply the install location)
+    [ -ba <path> ] (run make binstall and create an automatic install path)
+	    (This path is of the form path/mm_dd).
+    [ -cb <#dirs left> ] (clean binstall directories. must be used
+			  with -ba option)
+    [ -l ] (make lint libraries)
+    [ -n ] (do not make Makefile,Makefiles,includes,depend)
+    [ -w ] (clean the tree before building)
+    [ -be <chrootdir> ] (do a chroot build using chrootdir)
+    [ -ld <ldoptions> ] (pass ld options to build probably obsolete)
+    [ -model <model> ] (necessary for apollo or prism)
+    [ -m ] ( send mail to all in BUILD_WATCH list when finished)
+    [ -noIgnore ] (do not use the -k option to make)
+    [ -log <logdir> ] directs output to <logdir>/mm_dd/cde
+         e.g. -log /proj/cde/logs -> /proj/cde/logs/mm_dd/cde/*
+         if no -log is specified, output is directed to <buildir>/mm_dd/cde/*
+	 if no -build is specified, output is directed to ./mm_dd/cde/*
+    [ -t ] <tooldir> (directory containing master_build, fnrclone 
+		      directories.  Currently $TOOLDIR)
+eof
+
+    # 
+    # if there is a bad option mail to any in the BUILD_WATCH list, 
+    # we don't know if the -m option was used.
+    if [ "$BUILD_WATCH" ]
+    then
+       LETTER=/tmp/optError.$$
+       echo "master_build did not run on machine $SYSNAME" > $LETTER
+       echo "due to bad option '$1'" >> $LETTER
+       echo "" >> $LETTER
+       echo "" >> $LETTER
+       printenv >> $LETTER
+       mailx -s"master_build did not run on $SYSNAME due to bad option '$1'"   $BUILD_WATCH < $LETTER
+       rm $LETTER
+    fi
+
+    exit 1
+} # END DoUsage
+
+
+###########################################################################
+# Initialize Parameters
+# get the architecture and start time
+SYSNAME=`uname -n`
+ARCH=`uname -s`
+
+#
+#  Resolve date call that depend on HP-UX, Apollo sys5.3, or Apollo
+#  bsd4.3. The default for architectures is "date
+#
+if [ -f /hp-ux ]
+then
+        DATECMD="/bin/date"
+elif [ -f /com/ctnode ]
+then
+        DATECMD="/sys5.3/bin/date"
+else
+        DATECMD="date"
+fi
+
+START_TIME_LONG=`$DATECMD`
+
+START_TIME="`$DATECMD +%d`_`$DATECMD +%H`:`$DATECMD +%M`:`$DATECMD +%S`"
+DATE="`$DATECMD +%m`_`$DATECMD +%d`"
+
+SENDMAIL="FALSE"
+TOOLDIR=/x/cdesrc/admin/BuildTools
+IGNORE="-k"
+BASE_LOG_DIR=
+###########################################################################
+
+
+
+###########################################################################
+#  parse command line arguments...
+
+# Prepend options from the MASTERBUILD environment variable.
+set -- $MASTERBUILD $*
+
+if [ $# -lt 1 ]
+then
+  DoUsage $1      # exit on error
+fi
+
+while [ $# -gt 0 ]
+do case $1 in
+       -src) SRC_DIR=$2;shift 2     ;; # source directory
+       -build) OBJ_DIR=$2;shift 2   ;; # build directory
+       -clone) CLONEOPT=$2;shift 2  ;; # clone options if any
+       -cl) CLEANLINKS="TRUE";shift ;; # run clean links
+       -c) COMPILE="TRUE";shift     ;; # Compile object
+       -b) DOBINSTALL="TRUE"; 
+           BINSTALL_PATH=;shift     ;; # run make binstall w/default path
+       -bp) DOBINSTALL="TRUE";
+	    BINSTALL_PATH=$2;
+                          shift 2   ;; # run make binstall w/supplied path
+       -ba) DOBINSTALL="TRUE";
+	    BINSTALL_PATH=$2;
+	    BINSTALL_AUTOPATH="TRUE";  # append /mm_dd to BINSTALL_PATH
+                          shift 2   ;; # run make binstall w/auto path
+       -cb) DOCLEANBINSTALL="TRUE"  ;  # run manageBInstallDirs
+	    NUMBINSTALLDIRSLEFT=$2  ;  # directories to leave when
+                          shift 2   ;; # cleaning binstall subdirs
+       -n) NOMAKEMAKEFILE=TRUE;shift;; # Do not do make Makefile, etc
+       -w) CLEAN="TRUE";shift       ;; # Remove all object files
+       -l) DOLINT="TRUE";shift      ;; # Make lint from top level
+       -ld) LDOPTIONS=$2;shift 2    ;; # LDOPTS passed
+       -be) BE=TRUE;BEDIR=$2;shift 2;; # use pseudo-root BEDIR to build
+       -log) BASE_LOG_DIR=$2;shift 2;; # use alternate log directory
+       -t) TOOLDIR=$2;shift 2        ;; # directory for fnrclone, etc.
+       -model) MODEL=$2;shift 2     ;; # not necessary for hp
+       -noIgnore) IGNORE=; shift    ;; # do not ignore make errors (no -k)
+       -m) SENDMAIL="TRUE";BUILD_WATCH=$2;shift 2 ;; # send mail when finished 
+        *)  DoUsage $1;shift        ;; # exit on error
+    esac
+done
+
+umask 002
+
+
+###########################################################################
+# Set up various log directories
+#
+CLEANBINSTALL=$TOOLDIR/master_build/manageBInstallDirs
+LATESTDIR=$DATE # for manageBInstallDirs
+CLEANBINSTALLPATH=$BINSTALL_PATH # for manageBInstallDirs
+
+# binstall automatic path
+if [ "$BINSTALL_AUTOPATH" ];then
+  BINSTALL_PATH=$BINSTALL_PATH/$DATE
+else
+  if [ "$DOCLEANBINSTALL" ];then
+	echo "ERROR - can't run manageBInstallDirs unless -ba option is used";
+	DoUsage
+  fi
+fi
+
+#
+#  The log directory is determined as follows
+#  
+#	1. The directory specified in the -log flag.
+#	2. The directory specified in the -build flag.
+#	3. The current directory.
+#
+
+if [ "$BASE_LOG_DIR" = "" ]; then
+  if [ "$OBJ_DIR" ]; then
+     BASE_LOG_DIR=$OBJ_DIR;
+  else
+     BASE_LOG_DIR=".";
+  fi
+fi
+
+BASE_LOG_DIR=$BASE_LOG_DIR/$DATE
+
+# set up log directories on build machines
+# use build directory for log file if present, otherwise use source
+# if binstall wanted and no object dir -> error
+if [ "$OBJ_DIR" ];then
+    FOCUS_DIR=$OBJ_DIR
+else
+    if [ "$DOBINSTALL" ];then
+	echo "\n\t----------------------------------------------------------";
+	echo   "\t*** ERROR - must specify -build option with -b options ***"
+	echo   "\t----------------------------------------------------------";
+	DoUsage;
+    fi
+    FOCUS_DIR=$SRC_DIR
+fi
+
+#
+# check the existence of OSVersion.tmpl
+#
+
+if [ ! -a $FOCUS_DIR/config/OSVersion.tmpl ]; then
+   echo "$FOCUS_DIR/config/OSVersion.tmpl does not exist"
+   echo "Abort...."
+   exit 1
+fi
+
+#
+# check the existence of localtree.tmpl
+#
+
+if [ ! -a $FOCUS_DIR/config/localtree.tmpl ]; then
+   echo "$FOCUS_DIR/config/localtree.tmpl does not exist"
+   echo "Abort...."
+   exit 1
+fi
+
+#
+# setup the log directory
+#
+
+LEAF_LOG_DIR=`basename $FOCUS_DIR`
+LOG_DIR=$BASE_LOG_DIR/$LEAF_LOG_DIR
+[ ! -d $LOG_DIR ] && mkdir -p $LOG_DIR
+
+DATE=`$DATECMD +%H%M%S`
+BUILDLOGDATE=`$DATECMD +%a`
+
+# make a daily directory for logs
+CLONE_ERR=$LOG_DIR/cloneerr.$DATE
+CLONE_LOG=$LOG_DIR/clonelog.$DATE
+CLEANLINKS_LOG=$LOG_DIR/cleanlinks.$DATE
+MAKE_FILE=$LOG_DIR/make.$DATE   
+ALL_MAKE=$LOG_DIR/allmake.$DATE
+LINT_LOG=$LOG_DIR/lint.$DATE
+BINSTALL_LOG=$LOG_DIR/binstall.$DATE
+CLEANBINSTALL_LOG=$LOG_DIR/cleanbinstall.$DATE
+SUMMARY_FILE=$LOG_DIR/summary.$DATE
+PROCESSID_FILE=$LOG_DIR/pid.$DATE
+
+echo "$$" > $PROCESSID_FILE
+echo "pid of master_build is $$ for $FOCUS_DIR on $SYSNAME" >> $PROCESSID_FILE
+
+# Log file for a particular build tree
+[ "$OBJ_DIR" ] && [ ! -d $OBJ_DIR/logs ] && mkdir $OBJ_DIR/logs
+OBJ_DIR_LOG=$OBJ_DIR/logs/make.${BUILDLOGDATE}.${DATE}
+
+
+###########################################################################
+# Clone source or build trees
+#
+  # clone if appropriate
+    if [ "$CLONEOPT" ]
+    then
+        cd $FOCUS_DIR #directory which will be cloned if not checkout all
+        echo "\n==== Cloning $FOCUS_DIR on $SYSNAME, pid of master_build is $$ ====\n";
+
+        case $CLONEOPT in 
+            s)    $TOOLDIR/fnrclone/fnrclone $SRC_DIR $FOCUS_DIR -f $CLONE_LOG 1>$CLONE_ERR 2>&1;;
+            n | c) $TOOLDIR/fnrclone/fnrclone $SRC_DIR $FOCUS_DIR -${CLONEOPT} -f $CLONE_LOG 1>$CLONE_ERR 2>&1;;
+            sync) $TOOLDIR/fnrclone/fnrclone $SRC_DIR $FOCUS_DIR -c -f $CLONE_LOG 1>$CLONE_ERR 2>&1;;
+            *)    echo "\n=========== bad clone option $CLONEOPT  on $SYSNAME ========\n";
+               # if there is a bad option mail to any in the BUILD_WATCH list, 
+               # even if the -m option was not used since this is an error
+               if [ "$BUILD_WATCH"  ]; then
+                 LETTER=/tmp/cloneOptError.$$
+                 echo "master_build on machine $SYSNAME exited " > $LETTER
+                 echo "due to bad clone option '$CLONEOPT'" >> $LETTER
+                 echo "" >> $LETTER
+                 echo "" >> $LETTER
+                 printenv >> $LETTER
+                 mailx -s"master_build on $SYSNAME exited due to bad clone option '$CLONEOPT'" $BUILD_WATCH < $LETTER
+                 rm $LETTER
+               fi
+               exit 1;;
+        esac
+
+    fi
+
+#################################
+# Clean symbolic links to nowhere
+#################################
+if [ "$CLEANLINKS" = "TRUE" ]
+then
+   echo "\n= removing symbolic links to nowhere in $FOCUS_DIR  on $SYSNAME =\n";
+   $TOOLDIR/master_build/cleanLinks  $FOCUS_DIR  1>$CLEANLINKS_LOG 2>&1
+fi
+
+###########################################################################
+#
+#  build new stuff...
+#
+
+if [ "$CLEAN" ]
+then
+   CLEAN="make $IGNORE clean"
+   CLEAN_STEPNAME="clean "
+else
+   CLEAN="true"
+fi
+
+if [ "$COMPILE" -o "$DOLINT" ];then
+   if [ "$COMPILE" ]; then
+    BUILD="make $IGNORE"
+    COMPILE_STEPNAME="make"
+   else
+      BUILD="true"
+   fi
+
+   if [ "$DOLINT" ];then
+      LINT="make $IGNORE lintlib"
+      LINT_STEPNAME="lintlib"
+   else
+      LINT="true"
+   fi
+
+   # if only doing make (-n option) ignore everything else
+   if [ "$NOMAKEMAKEFILE" ];then
+      MFILE="true"
+      MFILES="true"
+      MKINCLUDES="true"
+      DEPEND="true"
+   else
+      MFILE="make -f Makefile.ini Makefile"
+      MFILES="make $IGNORE Makefiles"
+      MKINCLUDES="make $IGNORE includes"
+      DEPEND="make $IGNORE depend"
+      MAKEFILES_STEPNAME="Makefiles"
+      INCLUDES_STEPNAME="includes"
+      DEPEND_STEPNAME="depend"
+   fi
+
+   echo "\n================= Building $OBJ_DIR  on $SYSNAME ==================\n"
+   echo "Build Directory:	$OBJ_DIR"
+   echo "Logging Directory:	$LOG_DIR"
+   echo "MasterBuild Steps:	$MAKEFILES_STEPNAME $CLEAN_STEPNAME $INCLUDES_STEPNAME $DEPEND_STEPNAME $COMPILE_STEPNAME $LINT_STEPNAME"
+
+   #
+   # Print out information about the view configuration
+   #
+
+   CLEARTOOL=/usr/atria/bin/cleartool
+   if [ -f $CLEARTOOL -a -x $CLEARTOOL ]; then
+       CWD=`pwd`
+       cd $OBJ_DIR
+       echo "\nBuild view:		" `$CLEARTOOL pwv -wdview -short`
+       echo "\nView config-spec:"
+       $CLEARTOOL catcs | grep -v "^#" | sed 's/.*/    &/'
+       echo "\nChecked out versions:"
+       $CLEARTOOL lsco -cview -avobs -fmt "    %Sd %u %n\n"
+       cd $CWD
+   fi
+
+   #
+   # print out OSVersion.tmpl info if it is a symbolic link
+   #
+
+   echo "\n$FOCUS_DIR/config/OSVersion.tmpl:"
+   if [ -L $FOCUS_DIR/config/OSVersion.tmpl ]; then
+      ls -l $FOCUS_DIR/config/OSVersion.tmpl | \
+          awk '{ print "    Link to -> " $11 }'
+   else
+      ls -l $FOCUS_DIR/config/OSVersion.tmpl
+   fi 
+   awk '/^#define/ { print "    " $2,$3 }' $FOCUS_DIR/config/OSVersion.tmpl
+
+   #
+   # print out localtree.tmpl info if it is a symbolic link
+   #
+
+   echo "\n$FOCUS_DIR/config/localtree.tmpl:"
+   if [ -L $FOCUS_DIR/config/localtree.tmpl ]; then
+      ls -l $FOCUS_DIR/config/localtree.tmpl | \
+          awk '{ print "    Link to -> " $11 }'
+   else
+      ls -l $FOCUS_DIR/config/localtree.tmpl
+   fi 
+  
+   echo ""
+
+######################################################################
+# This section below probably only applies to Hewlett-Packard
+# It concerns using a chroot build environment when building.
+######################################################################
+    #chroot build
+  if [ "$BE" ];then
+    cat<<dernier>$BEDIR/tmp/allmake$$script
+#! /bin/sh
+umask 002
+cd $OBJ_DIR && $MFILE && $MFILES && $CLEAN && $MKINCLUDES && $DEPEND
+dernier
+    chmod +x $BEDIR/tmp/allmake$$script
+    /usr/local/bin/changeroot $BEDIR /tmp/allmake$$script 1>$ALL_MAKE 2>&1
+    rm -f $BEDIR/tmp/allmake$$script
+
+    cat<<dernier>$BEDIR/tmp/make$$script
+#! /bin/sh
+umask 002
+LDOPTS="$LDOPTIONS"
+export LDOPTS
+cd $OBJ_DIR && $BUILD
+dernier
+    chmod +x $BEDIR/tmp/make$$script
+    /usr/local/bin/changeroot $BEDIR /tmp/make$$script 2>&1 | tee $OBJ_DIR_LOG 1>$MAKE_FILE
+    rm -f $BEDIR/tmp/make$$script
+
+    if [ "$DOLINT" ];then
+        cat<<dernier>$BEDIR/tmp/lint$$script
+#! /bin/sh
+umask 002
+cd $OBJ_DIR && $LINT
+dernier
+        chmod +x $BEDIR/tmp/lint$$script
+        /usr/local/bin/changeroot $BEDIR /tmp/lint$$script 1>$LINT_LOG 2>&1
+        rm -f $BEDIR/tmp/lint$$script
+    fi
+######################################################################
+# non chroot (normal) builds
+######################################################################
+  else
+    if [ "$ARCH" = "SunOS" ];then
+	PATH=$PATH:/usr/ccs/bin
+	export PATH
+    fi
+    if [ "$MODEL" = "apollo" -o "$MODEL" = "prism" ]
+    then
+           (  umask 002
+          echo "Preparing to build in: \"$OBJ_DIR\"."
+              cd $OBJ_DIR &&
+              $MFILE      &&
+              $MFILES     &&
+              $CLEAN      &&
+              $MKINCLUDES &&
+              $DEPEND
+           )  1>$ALL_MAKE 2>&1
+
+           (  umask 002
+              echo "Building in \"$OBJ_DIR\"."
+              echo "     X11REV=\"$X11REV\"."
+              echo "     MOTIFREV=\"$MOTIFREV\"."
+              cd $OBJ_DIR &&
+              $BUILD
+           )  2>&1 | tee $OBJ_DIR_LOG 1>$MAKE_FILE
+
+           (  umask 002
+          echo "Linting in \"$OBJ_DIR\"."
+              cd $OBJ_DIR &&
+              $LINT
+           )  1>$LINT_LOG 2>&1
+    else # all other architectures
+       COMMAND="umask 002
+              cd $OBJ_DIR &&
+              $MFILE &&
+              $MFILES &&
+              $CLEAN &&
+              $MKINCLUDES &&
+              $DEPEND &&
+              $BUILD 2>&1 | tee $OBJ_DIR_LOG 1>$MAKE_FILE &&
+              $LINT 1>$LINT_LOG 2>&1"
+           eval "$COMMAND" 1>$ALL_MAKE 2>&1
+    fi # apollo || prism
+  fi # BE
+
+
+  LETTER=/tmp/allOK.$$
+  STORAGEDIR=`/bin/pwd`
+
+  END_TIME="`$DATECMD +%d`_`$DATECMD +%H`:`$DATECMD +%M`:`$DATECMD +%S`"
+
+  END_TIME_LONG=`$DATECMD`
+
+  echo "master_build for $FOCUS_DIR on machine $SYSNAME "   > $LETTER
+  echo " " >> $LETTER
+  echo "          started  at $START_TIME_LONG" >> $LETTER
+  echo " " >> $LETTER
+  echo "      and finished at $END_TIME_LONG" >> $LETTER
+  echo "" >> $LETTER
+  echo "Summary: $SYSNAME  $FOCUS_DIR  $STORAGEDIR  $START_TIME  $END_TIME" >> $LETTER
+  echo "" >> $LETTER
+  cp $LETTER $SUMMARY_FILE
+  if [ "$SENDMAIL" = "TRUE" ] && [ "$BUILD_WATCH" ]
+  then
+     mailx -s"master_build for $FOCUS_DIR finished at `date`" $BUILD_WATCH < $LETTER
+  fi
+  rm -f $LETTER
+fi # COMPILE || DOLINT
+
+if [ "$DOBINSTALL" ];then
+   echo "Running make binstall on \"$OBJ_DIR\"."
+   if [ "$BINSTALL_PATH" ];then
+      BINSTALL="make $IGNORE BINSTALLPATH=$BINSTALL_PATH binstall";
+   else
+      BINSTALL="make $IGNORE binstall";
+   fi
+   cd $OBJ_DIR && $BINSTALL 1>$BINSTALL_LOG 2>&1
+   if [ "$DOCLEANBINSTALL" ];then
+      echo "Running clean binstall on \"$CLEANBINSTALLPATH\""
+      $CLEANBINSTALL $CLEANBINSTALLPATH $LATESTDIR $NUMBINSTALLDIRSLEFT 1>$CLEANBINSTALL_LOG 2>&1
+   fi
+fi
+
+exit 0

+ 55 - 0
cde/admin/BuildTools/master_build/mkPreviousLink

@@ -0,0 +1,55 @@
+#! /usr/local/bin/perl
+
+eval "exec /usr/local/bin/perl -S $0 $*"
+   if $running_under_some_shell;
+
+###############################################################################
+#
+# File:          mkPreviousLink
+# RCS:           $XConsortium: mkPreviousLink /main/3 1995/10/30 13:44:16 rswiston $
+# Author:        John Herberg   
+# Created:       4/13/94
+# Language:      perl
+# Package:
+# Status
+#
+# (c) Copyright 1994, Hewlett-Packard, all rights reserved.
+#
+# Usage:         mkPreviousLink <directory>
+#
+# Description:   Copies latest link in directory to previous.
+#
+###############################################################################
+
+
+###############################################################################
+# printUsage - print sytax of script and die
+###############################################################################
+
+sub printUsage
+{
+   die "Usage: mkPreviousLink <binstallpath>\n";
+}
+
+
+###
+### Start main
+###
+
+&printUsage() if ((@ARGV != 1) || ($ARGV[0] =~ /^-/o));
+
+$tree=$ARGV[0];
+$_ = "$tree/latest";
+
+### Resolve link
+
+( -l ) || die "*** Error: $_ is not a symbolic link\n";
+defined($ldest = readlink) || die "*** Error: Failed to resolve link, $_ $ldest\n";
+
+### Create "previous" link
+
+chdir($tree) || die "*** Error: Failed to change directory to $tree\n";
+unlink("previous");
+symlink($ldest, "previous") || 
+ 	die "*** Error: Could not create link, $tree/previous -> $ldest\n";
+

+ 20 - 0
cde/admin/BuildTools/master_build/remote_build

@@ -0,0 +1,20 @@
+#!/bin/sh
+#this script is set to provide access to remote builds and pass the
+# appropriate options to the remote machines
+# Marc Ayotte 2/5/90
+
+USAGE="USAGE: remote_build <remotehost> [Remoteoptions ..]
+		   see master_build for details on options"
+
+
+
+
+if [ $# -lt 1 ];then
+	echo ""
+	echo "$USAGE"
+	exit 1
+fi
+REMOTEHOST=$1
+shift
+
+remsh $REMOTEHOST "/x/cdesrc/admin/BuildTools/master_build/master_build $*" 

+ 9 - 0
cde/admin/BuildTools/setup/README

@@ -0,0 +1,9 @@
+/* $XConsortium: README /main/2 1996/07/15 13:57:35 drk $ */
+This directory is for information for setup for a user or administrator's 
+system.
+This is a readme for anything that goes in this directory.
+
+perl.hp.tar.Z - 8/10/93 - the 9.0 hp perl package. untar in /.
+perl.ibm.tar.Z - 8/10/93 - the AIX 3.2 ibm perl package. untar in /.
+perl.sun.tar.Z - 01/18/94 - the SunOS 5.3  perl package. untar in /.
+installtools - setup script - DO NOT USE YET!!!

+ 22 - 0
cde/admin/BuildTools/setup/hpversioncheck

@@ -0,0 +1,22 @@
+#! /bin/ksh
+# This script checks to see if the system release is OK and the compiler
+# is OK on hpux.
+
+RELEASE=`uname -r|fgrep '9.05' 2>/dev/null`
+
+if [ ! "$RELEASE" ];then
+	echo "	System Release Incorrect. uname -r should be 9.05"
+	echo "	system is instead `uname -r`"
+	echo ""
+fi
+	
+COMPILER=`what /bin/c89 |fgrep '9.68' 2>/dev/null`
+
+if [ ! "$COMPILER" ];then
+	echo "	Compiler version is Incorrect. It should be 9.68"
+	echo "	Instead it is:"
+	what /bin/c89
+	echo ""
+fi
+
+

+ 144 - 0
cde/admin/BuildTools/setup/ibmversioncheck

@@ -0,0 +1,144 @@
+#!/bin/ksh
+#set -x
+######################################################################
+# check to see if the system release is OK and build environments are OK
+# on an AIX build box
+#   Yanling Qi (yanling@austin.ibm.com) (512-838-2846)
+######################################################################
+#
+Lslpp()
+{
+  /bin/lslpp -lc $1|grep  "usr"|grep -v "AVAILABLE" 
+}
+#
+# (1) check oslevel
+#
+OSLEVEL=$(/bin/oslevel |fgrep '3250')
+print "\nCheck OS level......"
+if [ "XX$OSLEVEL" = "XX" ]; then
+        echo "  System Release Incorrect. /bin/oslevel should be 3250"
+        echo "  system is instead `/bin/oslevel`"
+        echo ""
+   else
+        echo " Check oslevel Passed"
+fi
+# 
+# (2) check basic operating system  package (/usr/bin /usr/lpp and some 
+#     /usr/lib /usr/bin/ld
+#
+print "\nCheck basic operating system  package......"
+  Lslpp  bos.obj |awk -F: '{
+     if ($1 ~ "usr")
+       {
+	if($2 == "bos.obj 03.02.00.00" && ($3 == "COMMITTED" || $3 == "APPLIED"))
+                  printf(" Check base Operating System Package: Passed\n");
+	else { 
+		  printf("Package should be: bos.obj 03.02.00.00\n")
+		  printf("      yours is: %s\n",$0);
+                        }
+       }
+      else    # missing this package
+                  printf("Package bos.obj 03.02.00.00 is missing\n")
+                  }'
+
+#
+# (3) Check C++ compliler
+print "\nCheck C++ compliler......"
+  Lslpp  xlCcmp.obj  |awk -F: '{
+      if ($1 ~ "usr")
+        if($2 == "xlCcmp.obj 01.01.02.29" && ($3 == "COMMITTED" || $3 == "APPLIED"))
+                  printf(" Check AIX XL C++ Compiler/6000 Package:  Passed\n");
+        else{
+                  printf(" Package should be xlCcmp.obj 01.01.02.29\n")
+                  printf("      yours is: %s\n",$0);
+
+                        }
+      else    # missing this package
+                  printf("Package xlCcmp.obj 01.01.02.29 is missing\n");
+          }'
+#
+# (4) check C++ lib       /usr/lpp/xlC/lib/libC.a
+#                        /usr/lpp/xlC/lib/profiled/libC.a
+
+#
+print "\nCheck C++ lib......"
+  Lslpp  xlCrte.obj|awk -F: '{
+      if ($1 ~ "usr")
+        if($2 == "xlCrte.obj 01.01.02.29" && ($3 == "COMMITTED" || $3 == "APPLIED"))
+                  printf(" Check AIX XL C++ Compiler/6000 Runtime Package:  Passed\n");
+        else{
+                  printf(" Package should be xlCrte.obj 01.01.02.29\n")
+                  printf("      yours is: %s\n",$0);
+
+                        }
+      else    # missing this package
+                  printf("Package xlCrte.obj 01.01.02.29 is missing\n");
+          }'
+#
+#  (5) check c compliler 
+#
+print "\nCheck xl c compiler......"
+  Lslpp xlccmp.obj |awk -F: '{
+      if ($1 ~ "usr")
+        if($2 == "xlccmp.obj 01.03.00.12" && ($3 == "COMMITTED" || $3 == "APPLIED"))
+                  printf(" Check AIX XL C Compiler Package:  Passed\n");
+        else{
+                  printf(" Package should be xlccmp.obj 01.03.00.12\n")
+                  printf("      yours is: %s\n",$0);
+
+                        }
+      else    # missing this package
+                  printf("Package xlccmp.obj 01.03.00.12 is missing\n");
+          }'
+#
+#  (6) check Base Application Development Toolkit 
+#      cpp lex yacc 
+#
+print "\nCheck Base Application Development Toolkit......"
+  Lslpp  bosadt.bosadt.obj |awk -F: '{
+      if ($1 ~ "usr")
+        if($2 == "bosadt.bosadt.obj 03.02.00.00" && ($3 == "COMMITTED" || $3 == "APPLIED"))
+                  printf(" Check Base Application Development Toolkit Package:  Passed\n");
+        else{
+                  printf(" Package should be bosadt.bosadt.obj 03.02.00.00\n")
+                  printf("      yours is: %s\n",$0);
+
+                        }
+      else    # missing this package
+                  printf("Package bosadt.bosadt.obj 03.02.00.00 is missing\n");
+          }'
+#
+#  (7) check  Base Development Libraries & Include files 
+#      cpp lex yacc
+#
+print "\nCheck  Base Development Libraries & Include files......"
+  Lslpp  bosadt.lib.obj |awk -F: '{
+      if ($1 ~ "usr")
+        if($2 == "bosadt.lib.obj 03.02.00.00" && ($3 == "COMMITTED" || $3 == "APPLIED"))
+                  printf(" Check Base Development Libraries & Include files Package:  Passed\n");
+        else{
+                  printf(" Package should be bosadt.lib.obj 03.02.00.00\n")
+                  printf("      yours is: %s\n",$0);
+
+                        }
+      else    # missing this package
+                  printf("Package bosadt.lib.obj 03.02.00.00 is missing\n");
+          }'
+
+#
+#  (8) check  X Development Libraries and Include Files
+#
+#
+print "\nCheck  X Development Libraries and Include Files......"
+  Lslpp  X11dev.obj |awk -F: '{
+      if ($1 ~ "usr")
+        if($2 == "X11dev.obj 01.02.03.00" && ($3 == "COMMITTED" || $3 == "APPLIED"))
+                  printf(" Check X Development Libraries and Include Files Package:  Passed\n");
+        else{
+                  printf(" Package should be X11dev.obj 01.02.03.00\n")
+                  printf("      yours is: %s\n",$0);
+
+                        }
+      else    # missing this package
+                  printf("Package X11dev.obj 01.02.03.00 is missing\n");
+          }'

BIN
cde/admin/BuildTools/setup/perl.hp.tar.Z


BIN
cde/admin/BuildTools/setup/perl.ibm.tar.Z


BIN
cde/admin/BuildTools/setup/perl.sun.tar.Z


+ 158 - 0
cde/admin/BuildTools/tog/build_id

@@ -0,0 +1,158 @@
+#!/bin/ksh
+#
+# build_id
+#
+########################################################################
+# set -x
+
+##########################################################################
+#
+# Script setup:  THIS NEEDS TO BE FIRST
+#
+SCRIPTS_DIR="`dirname $0`"
+if [ "" = "$SCRIPTS_DIR" ]; then
+	SCRIPTS_DIR=/project/dt/scripts
+fi
+
+##########################################################################
+##########################################################################
+#
+# Script specific global variables
+#
+##########################################################################
+##########################################################################
+PROG_NAME="$0"
+LOG_DIR="/project/dt/admin/mkid"
+LOG_FILE="cdeID"
+LOG_PATH=""
+
+DO_X_BUILD="False"
+DO_MOTIF_BUILD="False"
+DO_CDE_BUILD="False"
+DO_CDEDOC_BUILD="False"
+DO_CDETEST_BUILD="False"
+
+DO_DEBUG="False"
+
+##########################################################################
+
+usage ()
+{
+	cat <<eof
+USAGE: $1
+	[-e | -dev]     # Default: build x11, motif and cde
+	[-x | -x11]     # Build x11 only
+	[-m | -motif]   # Build motif only
+	[-c | -cde]     # Build cde only
+	[-t | -cdetest] # Build cde tests only
+	[-a | -all]     # Build x11, motif, cde, cdedoc and cdetest
+	[-debug]        # Debugging output
+	[{-ld | -log_dir} <dirpath>]
+		# Specify an alternate log directory.
+		# Default: $LOG_DIR
+	[{-lf | -log_file} <filename>]
+		# Specify an alternate log file relative to $LOG_DIR.
+		# Default: $LOG_FILE
+	[{-lp | -log_path} <path>]
+		# Specify an alternate log directory.
+		# Default: $LOG_DIR/$LOG_FILE
+	[-h | -? | -help]  # Print usage and exit
+eof
+}
+
+
+##########################################################################
+
+while [ $# -gt 0 ]; do
+	case $1 in
+		-e | -dev)		DO_X_BUILD="True"
+					DO_MOTIF_BUILD="True"
+					DO_CDE_BUILD="True"
+					shift 1 ;;
+
+		-x | -x11)		DO_X_BUILD="True"
+					shift 1 ;;
+
+		-m | -motif)		DO_MOTIF_BUILD="True"
+					shift 1 ;;
+
+		-c | -cde)		DO_CDE_BUILD="True"
+					shift 1 ;;
+
+		-t | -cdetest)		DO_CDETEST_BUILD="True";	
+					shift 1 ;;
+
+		-a | -all)		DO_X_BUILD="True"
+					DO_MOTIF_BUILD="True"
+					DO_CDE_BUILD="True"
+					DO_CDEDOC_BUILD="True"
+					DO_CDETEST_BUILD="True"
+					shift 1 ;;
+
+		-debug)			DO_DEBUG="True"
+					shift 1 ;;
+
+		-ld | -log_dir)		LOG_DIR=$2;		shift 2 ;;
+
+		-lf | -log_file)	LOG_FILE=$2;		shift 2 ;;
+
+		-lp | -log_path)	LOG_PATH=$2;		shift 2 ;;
+
+		-h | "-?" | -help | *) 	usage $PROG_NAME;
+					exit 1;
+	esac
+done
+
+
+##########################################################################
+#
+# Script setup:  Do this after the command line parsing to pick up
+#   an alternate setting of SCRIPTS_DIR
+#
+if [ ! -f $SCRIPTS_DIR/script_setup.ksh ]; then
+    print -u2 "$PRG:  File '$SCRIPTS_DIR/script_setup.ksh' NOT found!"
+    print -u2 "$PRG:  Exiting ..."
+    exit 1
+fi
+. $SCRIPTS_DIR/script_setup.ksh
+
+
+##########################################################################
+#
+# If no project was selected, then build the 'dev' projects
+#
+PROJECTS=""
+if [ "True" = $DO_X_BUILD ]; then
+    PROJECTS="$PROJECTS $X_TOP"
+fi
+
+if [ "True" = $DO_MOTIF_BUILD ]; then
+    PROJECTS="$PROJECTS $MOTIF_TOP"
+fi
+
+if [ "True" = $DO_CDE_BUILD ]; then
+    PROJECTS="$PROJECTS $CDE_TOP"
+fi
+
+if [ "True" = $DO_CDETEST_BUILD ]; then
+    PROJECTS="$PROJECTS $CDETEST_TOP"
+fi
+
+if [ -z "$PROJECTS" ]; then
+    PROJECTS="$X_TOP $MOTIF_TOP $CDE_TOP"
+fi
+
+##########################################################################
+#
+# Set the log path
+#
+if [ -z "$LOG_PATH" ]; then
+    LOG_PATH=$LOG_DIR/$LOG_PATH
+fi
+
+/usr/local/bin/mkid -o$LOG_PATH $PROJECTS
+
+#
+# Clean up temporary files and exit
+#
+do_exit 0

+ 207 - 0
cde/admin/BuildTools/tog/build_project

@@ -0,0 +1,207 @@
+#!/bin/ksh
+#
+# build_project
+#
+########################################################################
+# set -x
+
+##########################################################################
+#
+# Script setup:  THIS NEEDS TO BE FIRST
+#
+SCRIPTS_DIR="`dirname $0`"
+if [ "" = "$SCRIPTS_DIR" ]; then
+	SCRIPTS_DIR=/project/dt/scripts
+fi
+
+##########################################################################
+#
+# Script setup: 
+#
+if [ ! -f $SCRIPTS_DIR/script_setup.ksh ]; then
+    print -u2 "$PRG:  File '$SCRIPTS_DIR/script_setup.ksh' NOT found!"
+    print -u2 "$PRG:  Exiting ..."
+    exit 1
+fi
+. $SCRIPTS_DIR/script_setup.ksh
+
+PROG_NAME=$0
+CDETEST_BUILD_COMMAND=$CDETEST_TOP/admin/BuildTools/master_build/test_build
+BOOTSTRAPCFLAGS='BOOTSTRAPCFLAGS=""'
+PROJECT=""
+BUILD_TYPE="inc"
+LOG_DIR="/tmp"
+
+########################################################################
+#
+# usage -
+#
+usage ()
+{
+	cat <<eof
+USAGE: $1
+	{-p | -project} {x11 | motif | cde | cdedoc | cde-test}
+	[-c | -clean]   # Do a clean build; the default is incremental
+	[{-t | -top} <dir>]
+	[{-l | -log_dir} <dir>] # Only used with project cde-test
+		# Default TOP for x11 is '$X_TOP'.
+		# Default TOP for motif is '$MOTIF_TOP'.
+		# Default TOP for cde is '$CDE_TOP'.
+		# Default TOP for cdedoc is '$CDEDOC_TOP'.
+		# Default TOP for cde-test is '$CDETEST_TOP'.
+	[-h | -? | -help]  # Print usage and exit
+eof
+}
+
+
+########################################################################
+#
+# Parse command line
+#
+while [ $# -gt 0 ]; do
+	case $1 in
+		-p | -project) 		PROJECT=$2; 		shift 2 ;; 
+		-c | -clean)		BUILD_TYPE="clean";	shift 1 ;;
+		-t | -top)		TOP=$2;			shift 2 ;;
+		-l | -log_dir)		LOG_DIR=$2;		shift 2 ;;
+		-h | -? | -help | *) 	usage $PROG_NAME;
+					exit 1;
+	esac
+done
+
+if [ "" = "$PROJECT" ]; then
+	usage $PROG_NAME
+	exit 1
+fi
+
+
+########################################################################
+#
+# Define OS-specific variables
+#
+case "`uname -s`" in
+
+	SunOS)		if [ "4.1.4" = "`uname -r`" ]; then
+				export PATH=$PATH:/usr/local/bin 
+			else
+				export PATH=/opt/SUNWspro/bin:/usr/ccs/bin:$PATH:/usr/local/bin
+				export LM_LICENSE_FILE=/opt/SUNWspro/license_dir/license.dat
+			fi
+			;;
+
+	UNIX_System_V)	BOOTSTRAPCFLAGS="BOOTSTRAPCFLAGS=-D__uxp__"
+			export PATH=/usr/ccs/bin:$PATH:/usr/local/bin
+			print -u1 "$PROG_NAME: Setting $BOOTSTRAPCFLAGS" ;;
+
+	UNIX_SV)	export PATH=$PATH:/usr/local/bin
+			print -u1 "$PROG_NAME: Setting $BOOTSTRAPCFLAGS" ;;
+
+	IRIX)		export PATH=$PATH:/usr/sbin ;;
+
+	HP-UX)		export PATH=$PATH:/usr/ccs/bin ;;
+
+	Linux)		export PATH=$PATH:/usr/bin:/usr/local/bin ;;
+
+	*)		export PATH=$PATH:/usr/local/bin ;;
+esac
+
+
+########################################################################
+#
+# Set the cwd
+#
+if [ "" = "$TOP" ]; then
+	case $PROJECT in
+		x | x11) 	cd $X_TOP ;;
+
+		motif) 		cd $MOTIF_TOP ;;
+
+		cde) 		cd $CDE_TOP ;;
+
+		cdedoc) 	cd $CDEDOC_TOP ;;
+
+		cde-test) 	cd $CDETEST_TOP ;;
+
+		*)	print -u2 "Exiting ... Project '$PROJECT' is NOT supported!"
+			exit 1
+	esac
+else
+	cd $TOP
+fi
+
+
+########################################################################
+#
+# Audits
+#
+if [ $PROJECT != "cde-test" -a ! -f Makefile ]; then
+	print -u2 "Exiting ...  No Makefile is in the '`pwd`' directory!"
+	exit 1
+fi
+
+
+########################################################################
+#
+# Run the build script
+#
+case $BUILD_TYPE in
+
+    clean)
+        case $PROJECT in
+            x | x11 | motif)
+		TARGET=World ;;
+	    cde)
+		TARGET=World.dev ;;
+	    cdedoc)
+		TARGET=World.doc ;;
+	    cde-test)
+		FLAGS="-c -w" ;;
+        esac 
+        ;;
+
+    inc)	
+        case $PROJECT in
+            x | x11 | motif)
+		TARGET=Everything ;;
+            cde)
+		TARGET=Everything.dev ;;
+	    cdedoc)
+		TARGET=Everything.doc ;;
+	    cde-test)
+		FLAGS=-c ;;
+        esac 
+        ;;
+esac
+    
+
+case $PROJECT in
+
+    x | x11 | motif | cde | cdedoc)
+	case "`uname -s`" in
+	    UNIX_SV) 
+		if [ "" = "$TOP" ]; then
+		    make -k BOOTSTRAPCFLAGS="-DSVR4 -Di386" $TARGET
+		else
+		    make -k BOOTSTRAPCFLAGS="-DSVR4 -Di386" $TARGET TOP=$TOP
+		fi
+		;;
+	    Linux)
+		if [ "" = "$TOP" ]; then
+		    make -k $TARGET
+		else
+		    make -k $TARGET TOP=$TOP
+		fi
+		;;
+	    *)
+		if [ "" = "$TOP" ]; then
+		    make -k "$BOOTSTRAPCFLAGS" $TARGET
+		else
+		    make -k "$BOOTSTRAPCFLAGS" $TARGET TOP=$TOP
+		fi
+		;;
+        esac
+        ;;
+
+    cde-test)
+	$CDETEST_BUILD_COMMAND -build $CDETEST_TOP $FLAGS -log $LOG_DIR ;;
+esac 

+ 751 - 0
cde/admin/BuildTools/tog/build_summary

@@ -0,0 +1,751 @@
+#!/bin/ksh
+#
+# build_summary
+#
+########################################################################
+#set -x
+
+##########################################################################
+#
+# Script setup:  THIS NEEDS TO BE FIRST
+#
+SCRIPTS_DIR="`dirname $0`"
+PROG_NAME="`basename $0`"
+if [ "" = "$SCRIPTS_DIR" ]; then
+	SCRIPTS_DIR=/project/dt/scripts
+fi
+if [ ! -f $SCRIPTS_DIR/script_setup.ksh ]; then
+    print -u2 "$PROG_NAME:  File '$SCRIPTS_DIR/script_setup.ksh' NOT found!"
+    print -u2 "$PROG_NAME:  Exiting ..."
+    exit 1
+fi
+. $SCRIPTS_DIR/script_setup.ksh
+
+##########################################################################
+##########################################################################
+#
+# Script specific global variables
+#
+##########################################################################
+##########################################################################
+
+COMPONENTS_FILES=""
+COMPONENTS="all"
+DEBUG="False"
+SUMMARY_FILES=""
+NOT_DONE_SUMMARY_FILES=""
+PRINT_ERRORS="5"
+
+
+usage ()
+{
+    cat <<eof
+USAGE: $PROG_NAME
+	[{-c | -components_file} <file>]
+	        # Specifies a file containing a list of components to
+	        # be extracted.  Multiple -c flags can be specified.
+	[{-e | -errors} <number>]
+	        # Specifies the number of errors shown for each
+	        # component in the components files.  Defaults to all.
+	[-h | -? | -help]
+	        # Print usage and exit
+	[{-l | -log_path} <path>]
+	[{-m | -mail | -mail_list} <user_name(s)>]
+	[{-pn | -project_name} <project_name>]
+		# The default is CDE.  This impacts the Subject field
+		# when email is sent.  Use "-pn X11" to get "X11" in
+		# the Subject field.
+	{-s | -summary_file} <file>
+		# Specifies a summary report from a build_world.
+	        # $PROG_NAME accepts multiple -f flags.
+eof
+}
+
+
+##########################################################################
+#
+# FUNCTION:  is_complete_build <summary_file>
+#	
+#	Returns 0 if the build is complete.
+#	Returns 1 if the build is not complete
+#
+is_complete_build ()
+{
+    typeset SUMMARY_FILE LCMPL
+
+    SUMMARY_FILE=$1
+
+    LCMPL=`grep "$BTAG_CMPL" $SUMMARY_FILE | tail -1`
+    if [ -z "$LCMPL" ]; then
+	return 1
+    fi
+}
+
+
+###############################################################################
+#
+# FUNCTION:  print_build_start_end ()
+#
+#    ViewName       StartTime                   BuildStatus
+#    --------       ---------                   -----------
+#    cde-dec        STARTED: Sun Jan 16, 23:34  FINISHED: Mon Jan 17, 23:34
+#    cde-hp         STARTED: Sun Jan 16, 23:34  BUILDING: making all in ...
+#    cde-ibm        STARTED: Sun Jan 16, 23:34  FINISHED: Mon Jan 17, 23:34
+#    cde-sco        STARTED: Sun Jan 16, 23:34  FINISHED: Mon Jan 17, 23:34
+#    cde-sgi        STARTED: Sun Jan 16, 23:34  FINISHED: Mon Jan 17, 23:34
+#    cde-sun        STARTED: Sun Jan 16, 23:34  FINISHED: Mon Jan 17, 23:34
+#
+###############################################################################
+
+print_build_start_end ()
+{
+    typeset CMPL LOGD PRJT DATE VIEW
+    typeset AWK_START_END_SUMMARY
+
+    AWK_START_END_SUMMARY='{printf("%-12s %-28s %-28s\n", $1,$2,$3)}'
+
+    echo "ViewName StartTime BuildStatus" | awk "$AWK_START_END_SUMMARY"
+    echo "-------- --------- -----------" | awk "$AWK_START_END_SUMMARY"
+
+    for r in $SUMMARY_FILES
+    do
+        VIEW=`grep "$BTAG_VIEW" $r | head -1 | awk '{printf("%s", $NF)}'`
+        DATE=`grep "$BTAG_DATE" $r | head -1 | awk '{printf("%s", $NF)}' FS=+`
+
+        is_complete_build $r
+        if [ $? -eq 0 ]; then
+            CMPL=`grep "$BTAG_CMPL" $r | tail -1 |
+			awk '{printf("%s", $NF)}' FS=+`
+            echo "$VIEW|STARTED: $DATE|FINISHED: $CMPL" | \
+	      awk "$AWK_START_END_SUMMARY" FS="|"
+        else
+            LOGD=`grep "$BTAG_LOGD" $r | head -1 | awk '{printf("%s", $NF)}'`
+            PRJT=`grep "$BTAG_PRJT" $r | tail -1 | awk '{printf("%s", $NF)}'`
+	    LOGF=$LOGD/$PRJT.log
+	    if [ -f $LOGF ]; then
+                CMPL=`$EXTRACT_MSG -m $BUILD_MSGS -l $LOGF | tail -1`
+	    else
+                CMPL=""
+	    fi
+            echo "$VIEW|STARTED: $DATE|BUILDING: $CMPL" | \
+	      awk "$AWK_START_END_SUMMARY" FS="|"
+        fi
+
+    done
+    print -u1
+}
+
+
+###############################################################################
+#
+# FUNCTION:  print_build_parameters ()
+#
+#    ViewName       Type   ConfigSpec       Platfm Projects
+#    --------       ----   ----------       ------ --------        
+#    cde-dec        clean  cde-next.cs      dec    x11,motif,cde
+#    cde-hp         clean  cde-next.cs      hp     x11,motif,cde
+#    cde-ibm        clean  cde-next.cs      ibm    x11,motif,cde
+#    cde-sco        clean  cde-next.cs      sco    x11,motif,cde
+#    cde-sgi        clean  cde-next.cs      sgi    x11,motif,cde
+#    cde-sun        clean  cde-next.cs      sun    x11,motif,cde
+#
+#    ViewName       LogDirectory
+#    --------       ------------
+#    cde-dec        /project/dt/logs/build/cde-dec/LATEST -> ./Jan.17.12:24:36
+#    cde-hp         /project/dt/logs/build/cde-hp/LATEST -> ./Jan.17.12:24:36
+#    cde-ibm        /project/dt/logs/build/cde-ibm/LATEST -> ./Jan.17.12:24:36
+#    cde-sco        /project/dt/logs/build/cde-sco/LATEST -> ./Jan.17.12:24:36
+#    cde-sgi        /project/dt/logs/build/cde-sgi/LATEST -> ./Jan.17.12:24:36
+#    cde-sun        /project/dt/logs/build/cde-sun/LATEST -> ./Jan.17.12:24:36
+#
+###############################################################################
+
+print_build_parameters ()
+{
+    typeset CMPL CSPS LOGD PRJT PTFM STRT TYPE VIEW
+    typeset AWK_LOG_SUMMARY AWK_BUILD_SUMMARY
+
+    AWK_LOG_SUMMARY='{printf("%-12s %-48s\n", $1,$2)}'
+    AWK_BUILD_SUMMARY='{printf("%-12s %-6s %-16s %-14s %-16s\n",$1,$2,$3,$4,$5)}'
+
+    #
+    # Section 1:  Type/ConfigSpec/Platform/Projects
+    #
+    echo "ViewName Type ConfigSpec Platfm Projects" | awk "$AWK_BUILD_SUMMARY"
+    echo "-------- ---- ---------- ------ --------" | awk "$AWK_BUILD_SUMMARY"
+
+    for r in $SUMMARY_FILES
+    do
+        CSPC=`grep "$BTAG_CFGS" $r | head -1 | awk '{printf("%s", $NF)}'`
+        PRJT=`grep "$BTAG_PRJT" $r | awk '{printf("%s ", $NF)}'`
+        PTFM=`grep "$BTAG_PTFM" $r | head -1 | awk '{printf("%s", $NF)}'`
+        TYPE=`grep "$BTAG_TYPE" $r | head -1 | awk '{printf("%s", $NF)}'`
+        if [ "incremental" = "$TYPE" ]; then
+            TYPE="incrmt"
+        fi
+        VIEW=`grep "$BTAG_VIEW" $r | head -1 | awk '{printf("%s", $NF)}'`
+
+        echo "$VIEW|$TYPE|$CSPC|$PTFM|$PRJT" | awk "$AWK_BUILD_SUMMARY" FS="|"
+    done
+    print -u1
+
+    #
+    # Section 2:  LogDirectory
+    #
+    echo "ViewName LogDirectory" | awk "$AWK_LOG_SUMMARY"
+    echo "-------- ------------" | awk "$AWK_LOG_SUMMARY"
+
+    for r in $SUMMARY_FILES
+    do
+        LOGD=`grep "$BTAG_LOGD" $r | head -1 | awk '{printf("%s", $NF)}'`
+        if [ -L $LOGD ]; then
+	    LOGD=`ls -l $LOGD | awk '{printf("%s %s %s", $9, $10, $11)}'`
+        fi
+        VIEW=`grep "$BTAG_VIEW" $r | head -1 | awk '{printf("%s", $NF)}'`
+
+        echo "$VIEW|$LOGD" | awk "$AWK_LOG_SUMMARY" FS="|"
+    done
+}
+
+
+###############################################################################
+#
+# FUNCTION: print_error_and_warning_summaries_by_project ()
+#
+#
+# Project        x11          motif        cde          cdedoc       cde-test
+# ViewName       Errrs Warns  Errrs Warns  Errrs Warns  Errrs Warns  Errrs Warns
+# --------       ----- -----  ----- -----  ----- -----  ----- -----  ----- -----
+# build-dec-cde      0     0      0     0      0   554    DNR   DNR    DNR   DNR
+# build-hp-cde       0     0      0     0      0   554    DNR   DNR    DNR   DNR
+# build-ibm-cde      0     0      0     0      0   554    DNR   DNR    DNR   DNR
+# build-sco-cde      0     0      0     0      0   554    DNR   DNR    DNR   DNR
+# build-sgi-cde      0     0      0     0    DNR   DNR    DNR   DNR    DNR   DNR
+# build-sun-cde      0     0      0     0      0   554    DNR   DNR    DNR   DNR
+#
+###############################################################################
+
+print_error_and_warning_summaries_by_project ()
+{
+  BLANKS="   "
+  PROJ_CDE="cde"
+  PROJ_CDD="cdedoc"
+  PROJ_CDT="cde-test"
+  PROJ_MTF="motif"
+  PROJ_X11="x11"
+  AWK_PROJ_HEADER='{printf("%-12s %-12s %-12s %-12s %-12s %-12s\n",$1,$2,$3,$4,$5,$6)}'
+  AWK_PROJ_VIEWNAME='{printf("%-12s ", $1)}'
+  AWK_PROJ_SUMMARY='{printf("%5s %5s  ", $1, $2)}'
+
+  #
+  # Print the header for this section
+  #
+  echo "Project $PROJ_X11 $PROJ_MTF $PROJ_CDE $PROJ_CDD $PROJ_CDT"|awk "$AWK_PROJ_HEADER"
+
+  echo "ViewName" | awk "$AWK_PROJ_VIEWNAME"
+  for p in $PROJ_X11 $PROJ_MTF $PROJ_CDE $PROJ_CDD $PROJ_CDT
+  do
+    echo "Errrs Warns" | awk "$AWK_PROJ_SUMMARY"
+  done
+  print -u1
+
+  echo "--------" | awk "$AWK_PROJ_VIEWNAME"
+  for p in $PROJ_X11 $PROJ_MTF $PROJ_CDE $PROJ_CDD $PROJ_CDT
+  do
+    echo "----- -----" | awk "$AWK_PROJ_SUMMARY"
+  done
+  print -u1
+
+  #
+  # Print the error and warning summaries for each view.
+  #
+  for r in $SUMMARY_FILES
+  do
+    #
+    # Print the view name.
+    #
+    VIEW=`grep "$BTAG_VIEW" $r | head -1 | awk '{printf("%s", $NF)}'`
+    echo "$VIEW" | awk "$AWK_PROJ_VIEWNAME"
+
+    #
+    # Print the error and warn totals for each project.
+    #
+    for p in $PROJ_X11 $PROJ_MTF $PROJ_CDE $PROJ_CDD $PROJ_CDT
+    do
+	ERRRS=`grep "^$p " $r | tail -1 | awk '{print $2}'`
+	WARNS=`grep "^$p " $r | tail -1 | awk '{print $4}'`
+
+	if [ -z "$ERRRS" ] -a [ -z "$WARNS" ]
+	then
+            echo "DNR DNR" | awk "$AWK_PROJ_SUMMARY"
+	else
+            echo "$ERRRS $WARNS" | awk "$AWK_PROJ_SUMMARY"
+	fi
+    done
+
+    #
+    # Print a newline.
+    #
+    print -u1
+
+  done
+}
+
+
+###############################################################################
+#
+# FUNCTION: print_error_summaries_by_component ()
+#
+#
+#	Component                         DEC    HP   IBM   SCO   SGI   SUN
+#       ---------                       ----- ----- ----- ----- ----- -----
+#	cde/admin                           0     0     0     0     0     5
+#	cde/lib/DtHelp                      5     3     1     0     0     0
+#	cde/programs/dtwm                  10     3     5     0     0     0
+#
+#	cde-test/doc			  133    22     1     0    45     0
+#
+###############################################################################
+
+print_error_summaries_by_component ()
+{
+  AWK_COMP_NAME='{printf("%-32s ", $1)}'
+  AWK_COMP_ERROR='{printf("%5s ", $1)}'
+
+  let num_errors=0
+
+  #
+  # Find the per component errors.
+  #
+  for f in $COMPONENTS_FILES
+  do
+
+    # 
+    # Extract the project name from the name of the components file.
+    # Assumes the components files are named <project>.components.
+    #
+    p=`basename $f | awk '{ print $1 }' FS='.'`
+
+    for c in `cat $f`
+    do
+	#
+	# Collect the errors for the current component from the report
+	# summary files and put them in an array.
+	#
+        let i=0
+	FOUND="False"
+        for r in $SUMMARY_FILES
+        do
+            ERRORS[i]=`grep "$p/$c " $r | tail -1 | awk '{print $2}'`
+
+	    #
+	    # The search may have succeeded but the component may
+	    # only have warnings and no errors.  If this is true,
+	    # then this component should not be added to the error
+	    # list
+	    #
+	    if [ ! -z "`echo ${ERRORS[i]}`" ]; then
+                if [ "`echo ${ERRORS[i]}`" != "0" ]; then
+			FOUND="True"
+		fi
+	    fi
+
+	    let i=i+1
+        done
+
+	#
+	# If the component doesn't show up anywhere ignore it.
+	#
+        if [ -z "`echo ${ERRORS[*]}`"  -o "False" = "$FOUND" ]
+        then
+	    continue
+        fi
+
+	let num_errors=num_errors+1
+
+	if [ num_errors -eq 1 ]; then
+	    #
+	    # Print the header for this section
+	    #
+	    echo "Component" | awk "$AWK_COMP_NAME"
+	    for r in $SUMMARY_FILES
+	    do
+	       PTFM=`grep "$BTAG_PTFM" $r | head -1 | awk '{printf("%s", $NF)}'`
+	       echo "$PTFM" | awk "$AWK_COMP_ERROR"
+	    done
+	    print -u1
+
+	    echo "---------" | awk "$AWK_COMP_NAME"
+	    for r in $SUMMARY_FILES
+	    do
+	      echo "-----" | awk "$AWK_COMP_ERROR"
+	    done
+	    print -u1
+	fi
+
+	#
+	# Print the component name including the project it belongs to.
+	#
+        echo "$p/$c" | awk "$AWK_COMP_NAME"
+
+	#
+	# Print the errors for this component.
+	#
+        for r in $SUMMARY_FILES
+        do
+            ERRRS=`grep "$p/$c " $r | tail -1 | awk '{print $2}'`
+            if [ -z "$ERRRS" ]
+            then
+                is_complete_build $r
+                if [ $? -eq 0 ]; then
+                    ERRRS="0"
+                else
+                    ERRRS="DNR"
+                fi
+            fi
+            echo "$ERRRS" | awk "$AWK_COMP_ERROR"
+        done
+
+	#
+	# Print a newline.
+	#
+        print -u1
+    done
+  done
+
+  if [ $num_errors -eq 0 ]; then
+      print -u1 "NO errors were found."
+  fi
+}
+
+
+###############################################################################
+#
+# FUNCTION: print_error_listings_by_component ()
+#
+#       -------------------------------------------------------------------
+#	- <component-name>
+#       -------------------------------------------------------------------
+#	make all in <component-name>...
+#	  error 1
+#	  error 2
+#	make all in <component-name>/subdir...
+#	  error 3
+#	  error 4
+#
+###############################################################################
+print_error_listings_by_component ()
+{
+    let num_errors=0
+
+    for f in $COMPONENTS_FILES
+    do
+
+        # 
+        # Extract the project name from the name of the components file.
+        # Assumes the components files are named <project>.components.
+        #
+        p=`basename $f | awk '{ print $1 }' FS='.'`
+
+        for c in `cat $f`
+        do
+            #
+            # Collect the errors for the current component from the
+            # report summary files and put them in an array.
+            #
+            let i=0
+	    FOUND="False"
+            for r in $SUMMARY_FILES
+            do
+                ERRORS[i]=`grep "$p/$c " $r | tail -1 | awk '{print $2}'`
+
+	        #
+	        # The search may have succeeded but the component may
+	        # only have warnings and no errors.  If this is true,
+	        # then this component should not be added to the error
+	        # list
+	        #
+	        if [ ! -z "`echo ${ERRORS[i]}`" ]; then
+                    if [ "`echo ${ERRORS[i]}`" != "0" ]; then
+			FOUND="True"
+		    fi
+	        fi
+
+    	        let i=i+1
+            done
+    
+            #
+            # If the component doesn't show up anywhere ignore it.
+            #
+            if [ -z "`echo ${ERRORS[*]}`" -o "False" = "$FOUND" ]
+            then
+    	        continue
+            fi
+
+	    let num_errors=num_errors+1
+    
+            #
+            # Print the component name including the project it belongs to.
+            #
+            COMP=`echo $c | tr "/" ","`
+            print -u1 "+++++++++++++++++++++++++++++++++++++++++++++++++++++++"
+            print -u1 "+  COMPONENT:  $p/$COMP"
+            print -u1 "+++++++++++++++++++++++++++++++++++++++++++++++++++++++"
+            print -u1
+           
+    
+    	    #
+    	    # Print the errors for this component.
+    	    #
+            for r in $SUMMARY_FILES
+            do
+                LOGD=`grep "$BTAG_LOGD" $r | head -1 |
+			awk '{printf("%s", $NF)}'`
+                VIEW=`grep "$BTAG_VIEW" $r | head -1 |
+			awk '{printf("%s", $NF)}'`
+
+                ERR_FILE=$LOGD/$p/$COMP.err
+                if [ -f "$ERR_FILE" ]
+                then
+                    print -u1 "+"
+                    print -u1 "+ View:  $VIEW"
+                    print -u1 "+ Error File:  $ERR_FILE"
+                    print -u1 "+"
+    		    print -u1
+    		    head -$PRINT_ERRORS $ERR_FILE
+    		    print -u1
+                fi
+            done
+    
+    	    #
+    	    # Print a newline.
+    	    #
+            print -u1
+        done
+    done
+
+    if [ num_errors -eq 0 ]; then
+        print -u1 "NO errors were found."
+    fi
+}
+
+
+#############################################################################
+#
+# Do command-line processing
+#
+while [ $# -gt 0 ]; do
+    case $1 in
+
+	-debug)
+	    DEBUG="True"
+	    shift 1 ;;
+
+	-c | -components_file)
+	    if [ $# -lt 2 ]; then
+		print -u2 "$PROG_NAME:  $1 option missing value; exiting ..."
+		do_exit 1
+	    fi
+	    COMPONENTS_FILES="$COMPONENTS_FILES $2"
+	    shift 2 ;;
+
+	-e | -errors)
+	    if [ $# -lt 2 ]; then
+		print -u2 "$PROG_NAME:  $1 option missing value; exiting ..."
+		do_exit 1
+	    fi
+	    PRINT_ERRORS="$2"
+	    shift 2 ;;
+
+	-h | "-?" | -help)
+	    usage $PROG_NAME
+	    do_exit 1 ;;
+
+	-l | -log_path )
+	    if [ $# -lt 2 ]; then
+		print -u2 "$PROG_NAME:  $1 option missing value; exiting ..."
+		do_exit 1
+	    fi
+	    LOG_PATH=$2
+	    shift 2 ;;
+
+	-m | -mail | -mail_list)
+	    if [ $# -lt 2 ]; then
+		print -u2 "$PROG_NAME:  $1 option missing value; exiting ..."
+		do_exit 1
+	    fi
+	    MAIL_LIST=$2
+	    shift 2 ;;
+
+	-pn | -project_name)
+	    if [ $# -lt 2 ]; then
+		print -u2 "$PROG_NAME:  $1 option missing value; exiting ..."
+		do_exit 1
+	    fi
+	    # Change the value of SUBJECT_BUILD_SUMMARY
+	    SUBJECT_BUILD_SUMMARY="${2}: Build Summary"
+	    shift 2 ;;
+
+	-s | -summary_file)
+	    if [ $# -lt 2 ]; then
+		print -u2 "$PROG_NAME:  $1 option missing value; exiting ..."
+		do_exit 1
+	    fi
+	    SUMMARY_FILES="$SUMMARY_FILES $2"
+	    shift 2 ;;
+
+	*)
+	    print -u2 "$PROG_NAME:  invalid option $1; exiting ..."
+	    do_exit 1 ;;
+    esac
+done
+
+
+#############################################################################
+#
+# Check to make sure that the command-line parameters make sense.
+#
+for f in $COMPONENTS_FILES
+do
+    if [ ! -f $f ]
+    then
+        print -u2 "$PROG_NAME:  Component file \"$f\" does not exist."
+        print -u2 "$PROG_NAME:  exiting ..."
+        do_exit 1
+    fi
+done
+
+if [ -z "$SUMMARY_FILES" ]
+then
+    print -u2 "$PROG_NAME:  No report summaries specified; exiting ..."
+    do_exit 1
+fi
+
+
+#############################################################################
+#
+# Determine which builds never started or never completed.
+#
+NOT_AVAILABLE_SUMMARY_FILES=""
+AVAILABLE_SUMMARY_FILES=""
+for r in $SUMMARY_FILES
+do
+    if [ ! -f $r ]; then
+	if [ -z "$NOT_AVAILABLE_SUMMARY_FILES" ]; then
+	    NOT_AVAILABLE_SUMMARY_FILES="$r"
+	else
+	    NOT_AVAILABLE_SUMMARY_FILES="$NOT_AVAILABLE_SUMMARY_FILES $r"
+	fi
+    else
+	if [ -z "$AVAILABLE_SUMMARY_FILES" ]; then
+	    AVAILABLE_SUMMARY_FILES="$r"
+	else
+	    AVAILABLE_SUMMARY_FILES="$AVAILABLE_SUMMARY_FILES $r"
+	fi
+    fi
+done
+SUMMARY_FILES="$AVAILABLE_SUMMARY_FILES"
+
+#
+# Redirect output
+#
+EXECUTIVE_SUMMARY_LOG=/tmp/$PROG_NAME.execsum.$$
+if [ "$DEBUG" = "False" ]; then
+    do_register_temporary_file $EXECUTIVE_SUMMARY_LOG
+    touch $EXECUTIVE_SUMMARY_LOG
+
+    exec 9>&1
+    exec > $EXECUTIVE_SUMMARY_LOG
+fi
+
+#############################################################################
+#
+# Header information
+#
+
+DATE=`date "$BTAG_DFMT"`
+print -u1 "              BUILD SUMMARY FOR:  $DATE"
+print -u1 "              +++++++++++++++++++++++++++++++++++++"
+print -u1
+
+for r in $NOT_AVAILABLE_SUMMARY_FILES
+do
+    print -u1 "Missing build summary:  $r\n"
+done
+
+print -u1
+print_error_and_warning_summaries_by_project
+print -u1
+print_build_start_end
+
+print -u1
+print -u1
+print -u1 "                         BUILD PARAMETERS"
+print -u1 "                         ++++++++++++++++"
+print -u1
+print -u1
+
+print_build_parameters
+
+print -u1
+print -u1
+print -u1 "                   ERROR SUMMARIES BY COMPONENT"
+print -u1 "                   ++++++++++++++++++++++++++++"
+print -u1
+print -u1
+
+print_error_summaries_by_component
+
+
+#############################################################################
+#
+# Find the per component errors.
+#
+if [ $PRINT_ERRORS -gt 0 ]; then
+
+    print -u1
+    print -u1
+    print -u1 "                   ERROR LISTINGS BY COMPONENT"
+    print -u1 "                   +++++++++++++++++++++++++++"
+    print -u1
+    print -u1
+
+    print_error_listings_by_component
+    
+fi
+
+
+##########################################################################
+#
+# Complete the build summary and mail it, save it, or dump it to stdout
+#
+if [ "" != "$MAIL_LIST" ]; then
+    mailx -s "$SUBJECT_BUILD_SUMMARY (`date $SUBJECT_DATE`) [Report #${REPORT_NUM}]" "$MAIL_LIST" < $EXECUTIVE_SUMMARY_LOG
+fi
+
+if [ "" != "$LOG_PATH" ]; then
+    cp $EXECUTIVE_SUMMARY_LOG $LOG_PATH
+fi
+
+if [ "$DEBUG" = "False" -a "" = "$MAIL_LIST" -a "" = "$LOG_PATH" ]; then
+    exec >&9
+    cat $EXECUTIVE_SUMMARY_LOG
+fi
+
+for r in $SUMMARY_FILES
+do
+    is_complete_build $r
+    if [ $? -ne 0 ]; then
+        #
+        # Clean up temporary files and exit
+        #
+	do_exit 1
+    fi
+done
+
+
+#############################################################################
+#
+# Clean up temporary files and exit
+#
+do_exit 0

+ 124 - 0
cde/admin/BuildTools/tog/build_summary_cron

@@ -0,0 +1,124 @@
+#!/bin/ksh
+#
+# build_summary_cron
+#
+########################################################################
+#set -x
+
+##########################################################################
+#
+# Script setup:  THIS NEEDS TO BE FIRST
+#
+SCRIPTS_DIR="`dirname $0`"
+PROG_NAME="`basename $0`"
+if [ "" = "$SCRIPTS_DIR" ]; then
+	SCRIPTS_DIR=/project/dt/scripts
+fi
+if [ ! -f $SCRIPTS_DIR/script_setup.ksh ]; then
+    print -u2 "$PRG:  File '$SCRIPTS_DIR/script_setup.ksh' NOT found!"
+    print -u2 "$PRG:  Exiting ..."
+    exit 1
+fi
+. $SCRIPTS_DIR/script_setup.ksh
+
+##########################################################################
+##########################################################################
+#
+# Script specific global variables
+#
+##########################################################################
+##########################################################################
+
+BUILD_SUMMARY_ARGS=""
+DEBUG="False"
+MAIL_LIST=""
+let RETRIES=4
+let SLEEP_SECONDS=3600
+let REPORT_NUM=1
+
+usage ()
+{ 
+    cat <<eof
+USAGE: $PROG_NAME
+	[-retries <#_retries>]
+	[-sleep   <#_seconds>]
+	[-h | -? | -help] 	
+		# Print usage and exit
+	#
+	# '$PROG_NAME' calls 'build_summary' to construct the report.
+	#
+	# If 'build_summary' returns an error code indicating
+	# that some of the specified builds have not completed,
+	# '$PROG_NAME' will put itself to sleep for 3600 seconds
+	# before trying again up to a maximum of 4 times.
+	# The number of retries and the sleep time can be altered
+	# using the '-retries' and '-sleep' options.
+	#
+	# Any command-line options not recognized by '$PROG_NAME' are
+	# passed to 'build_summary'.
+	#
+	# Any output from 'build_summary' is passed to the users
+	# specified in the '-mail' option.
+eof
+}
+
+#
+# Do command-line processing
+#
+while [ $# -gt 0 ]; do
+
+    case $1 in
+
+	-debug)
+	    DEBUG="True"
+	    shift ;;
+
+	-h | -help | '-?')
+	    usage $PROG_NAME
+	    do_exit 1 ;;
+
+	-retries)
+	    if [ $# -lt 2 ]; then
+		print -u2 "$PROG_NAME:  $1 option missing value; exiting ..."
+		do_exit 1
+	    fi
+	    let RETRIES=$2
+	    shift 2 ;;
+
+	-sleep)
+	    if [ $# -lt 2 ]; then
+		print -u2 "$PROG_NAME:  $1 option missing value; exiting ..."
+		do_exit 1
+	    fi
+	    let SLEEP_SECONDS=$2
+	    shift 2 ;;
+
+	*)
+	    BUILD_SUMMARY_ARGS="$BUILD_SUMMARY_ARGS $1"
+	    shift 1 ;;
+    esac
+done
+
+while [[ $RETRIES -ge 0 ]]
+do
+    $BUILD_SUMMARY $BUILD_SUMMARY_ARGS
+    STATUS=$?
+
+    if [ $STATUS -eq 0 ]; then
+        #
+        # Clean up temporary files and exit
+        #
+	do_exit 0
+    fi
+	
+    let REPORT_NUM=REPORT_NUM+1
+    let RETRIES=RETRIES-1
+    if [[ $RETRIES -ge 0 ]]; then
+        sleep $SLEEP_SECONDS
+    fi
+done
+
+#
+# Clean up temporary files and exit
+#
+do_exit 1

+ 662 - 0
cde/admin/BuildTools/tog/build_world

@@ -0,0 +1,662 @@
+#!/bin/ksh
+#
+# build_world
+#
+########################################################################
+# set -x
+
+##########################################################################
+#
+# Script setup:  THIS NEEDS TO BE FIRST
+#
+SCRIPTS_DIR="`dirname $0`"
+if [ "" = "$SCRIPTS_DIR" ]; then
+	SCRIPTS_DIR=/project/dt/scripts
+fi
+
+##########################################################################
+##########################################################################
+#
+# Script specific global variables
+#
+##########################################################################
+##########################################################################
+PROJECT_NAME="dt"
+BUILD_TYPE=""
+LOG_DIR=""
+MAIL_LIST=""
+PRE_BUILD=""
+POST_BUILD=""
+TOP=""
+PROG_NAME="$0"
+LOG_DATE="`date +%h.%d,%H:%M:%S`"
+TMP_LOG_DIR_BASE=/project/dt/logs/build		#Need to define now for usage()
+VIEW_TAG="`uname -s`:no_view_specified"
+
+X_PROJECT=x11
+MOTIF_PROJECT=motif
+CDE_PROJECT=cde
+CDEDOC_PROJECT=cdedoc
+CDETEST_PROJECT=cde-test
+BUILD=build
+
+DO_X_BUILD="False"
+DO_MOTIF_BUILD="False"
+DO_CDE_BUILD="False"
+DO_CDEDOC_BUILD="False"
+DO_REDIRECT_IO="True"
+DO_CDETEST_BUILD="False"
+
+DO_DEBUG="False"
+DO_NOT_BUILD="False"
+DO_COMPONENT_LOGS="True"
+DO_ERROR_FILES="True"
+DO_WARNING_FILES="True"
+
+##########################################################################
+
+usage ()
+{
+	cat <<eof
+USAGE: $1
+	[-e | -dev]     # Default: build x11, motif and cde
+	[-x | -x11]     # Build x11 only
+	[-m | -motif]   # Build motif only
+	[-c | -cde]     # Build cde only
+	[-d | -cdedoc]  # Build cde docs only
+	[-t | -cdetest] # Build cde tests only
+	[-a | -all]     # Build x11, motif, cde, cdedoc and cdetest
+	[-no_build]     # Dont build anything
+	[-no_complogs]  # Dont create .log files for components
+	[-no_errors]    # Dont create .err files
+	[-no_ioredirect]# Dont redirect stdout/stderr to build.log
+	[-no_warnings]  # Dont create .wrn files
+	[-rpt_summary]  
+		# Only print information used by
+		# build_summary to stdout.  Equivalent to
+		# -no_build -no_complogs -no_errors -no_warnings
+	[-clean]        # Do a clean build; default is incremental
+	[-debug]        # Debugging output
+	[-pre <script_name>]
+		# script_name is a program that is run before the
+		# build is run.
+	[-post <script_name>]
+		# script_name is a program that is run after the
+		# build is run.
+	[{-v | -view | -view_tag} <view_tag>]
+		# The ClearCase view should always be set before
+		# this script is run.  This option should only
+		# be used on systems where ClearCase is not installed.
+		# The view tag will be used when constructing the
+		# log directory name.
+	[{-ld | -log_dir} <directory>]
+		# Specify an alternate log directory.
+		# Default: $TMP_LOG_DIR_BASE/<view_tag>/<date>/
+		# <date> is of the format '$LOG_DATE'
+	[{-sd | -script_dir} <directory>]
+		# Specify an alternate directory for required files.
+		# Default: $SCRIPTS_DIR/
+	[{-pn | -project_name} project_name]
+		# Specifies the project name used in the log dir.
+		# The default log dir is is /project/dt/...
+		# Use this option (-pn x11) for X11 only builds to 
+		# get logs in /project/x11/...
+	[-top <dir_name>]
+		# Use this to over-ride the default TOP directory
+		# for a project.  There is NO default.
+	[{-mail | mail_list} <user_names>]
+	[-h | -? | -help]  # Print usage and exit
+eof
+}
+
+
+##########################################################################
+
+while [ $# -gt 0 ]; do
+	case $1 in
+		-e | -dev)		DO_X_BUILD="True"
+					DO_MOTIF_BUILD="True"
+					DO_CDE_BUILD="True"
+					shift 1 ;;
+
+		-x | -x11)		DO_X_BUILD="True"
+					shift 1 ;;
+
+		-m | -motif)		DO_MOTIF_BUILD="True"
+					shift 1 ;;
+
+		-c | -cde)		DO_CDE_BUILD="True"
+					shift 1 ;;
+
+		-d | -cdedoc)		DO_CDEDOC_BUILD="True"
+					shift 1 ;;
+
+		-t | -cdetest)		DO_CDETEST_BUILD="True";	
+					shift 1 ;;
+
+		-a | -all)		DO_X_BUILD="True"
+					DO_MOTIF_BUILD="True"
+					DO_CDE_BUILD="True"
+					DO_CDEDOC_BUILD="True"
+					DO_CDETEST_BUILD="True"
+					shift 1 ;;
+
+		-no_build)		DO_NOT_BUILD="True"; shift 1 ;;
+
+		-no_complogs)		DO_COMPONENT_LOGS="False"; shift 1 ;;
+
+		-no_errors)		DO_ERROR_FILES="False"; shift 1 ;;
+
+		-no_ioredirect)		DO_REDIRECT_IO="False"; shift 1 ;;
+
+		-no_warnings)		DO_WARNING_FILES="False"; shift 1 ;;
+
+		-rpt_summary)		DO_NOT_BUILD="True"
+					DO_COMPONENT_LOGS="False"
+					DO_ERROR_FILES="False"
+					DO_WARNING_FILES="False"
+					shift 1;;
+
+		-clean)			BUILD_TYPE="clean"; shift 1 ;;
+
+		-debug)			DO_DEBUG="True"
+					DO_REDIRECT_IO="False"; shift 1 ;;
+
+		-ld | -log_dir)		LOG_DIR=$2;		shift 2 ;;
+
+		-v | -view | -view_tag)	VIEW_TAG=$2;		shift 2 ;;
+
+		-sd | -script_dir)	SCRIPTS_DIR=$2;	
+					export SCRIPTS_DIR;
+					shift 2 ;;
+
+		-pre)			PRE_BUILD=$2;		shift 2 ;;
+
+		-post)			POST_BUILD=$2;		shift 2 ;;
+
+		-top)			TOP=$2;			shift 2 ;;
+
+		-pn | -project_name)	PROJECT_NAME=$2;	shift 2 ;;
+
+		-mail | -mail_list)	MAIL_LIST=$2;		shift 2 ;;
+
+		-h | "-?" | -help | *) 	usage $PROG_NAME;
+					exit 1;
+	esac
+done
+
+
+##########################################################################
+#
+# Script setup:  Do this after the command line parsing to pick up
+#   an alternate setting of SCRIPTS_DIR
+#
+if [ ! -f $SCRIPTS_DIR/script_setup.ksh ]; then
+    print -u2 "$PRG:  File '$SCRIPTS_DIR/script_setup.ksh' NOT found!"
+    print -u2 "$PRG:  Exiting ..."
+    exit 1
+fi
+. $SCRIPTS_DIR/script_setup.ksh
+
+do_check_file $BUILD_PROJECT -x "NOT found"
+do_check_file $EXTRACT_LOG -x "NOT found"
+do_check_file $EXTRACT_MSG -x "NOT found"
+do_check_file $CDE_COMPONENTS -f "NOT found"
+do_check_file $ERROR_MSGS -f "NOT found"
+do_check_file $WARNING_MSGS -f "NOT found"
+
+
+##########################################################################
+#
+# Exit if $CLEAR_CASE_TOOL is installed and no view is set
+#
+if [ -x $CLEAR_CASE_TOOL ]; then
+	$CLEAR_CASE_TOOL pwv | grep 'Set view' | grep NONE > /dev/null
+	if [ $? -eq 0 ]; then
+		print -u2 "Exiting ... No ClearCase view is set!"
+		do_exit 1
+	fi
+	VIEW_TAG="`$CLEAR_CASE_TOOL pwv -short`"
+else
+	#
+	# Some systems don't have $CLEAR_CASE_TOOL so we need to 
+	# work around it.  Just output a warning for now.
+	#
+	print -u2 "$PROG_NAME: Warning: '$CLEAR_CASE_TOOL' is NOT installed."
+fi
+
+
+##########################################################################
+#
+# If no project was selected, then build the 'dev' projects
+#
+if [ "False" = $DO_X_BUILD -a "False" = $DO_MOTIF_BUILD -a "False" = $DO_CDE_BUILD -a "FALSE" = $DO_CDEDOC_BUILD -a "False" = $DO_CDETEST_BUILD ]; then
+	DO_X_BUILD="True"
+	DO_MOTIF_BUILD="True"
+	DO_CDE_BUILD="True"
+fi
+
+##########################################################################
+#
+# If $INITIALIZE_VIEW is present, run it
+#
+if [ -x $INITIALIZE_VIEW -a "$X_PROJECT" != "$PROJECT_NAME" ]; then
+	$INITIALIZE_VIEW > /dev/null 2>&1
+fi
+
+##########################################################################
+#
+# Set the log dir and log file for the project logs
+#
+# Put all undirected stdout and stderr in a separate log file
+#
+if [ "" = "$LOG_DIR" ]; then
+	LOG_DIR=$LOG_DIR_BASE/$VIEW_TAG/$LOG_DATE
+
+	if [ -L $LOG_DIR_BASE/$VIEW_TAG/LATEST ]; then
+		rm $LOG_DIR_BASE/$VIEW_TAG/LATEST
+	fi
+	ln -s ./$LOG_DATE $LOG_DIR_BASE/$VIEW_TAG/LATEST
+fi
+SUMM_FILE=$LOG_DIR/build.summary
+if [ ! -d $LOG_DIR ]; then
+	mkdir -p $LOG_DIR
+	chmod 775 $LOG_DIR
+fi
+
+if [ "True" = "$DO_REDIRECT_IO" ]; then
+	BUILD_LOG=$LOG_DIR/$BUILD.log
+	BUILD_LOG_REDIRECT="-e $BUILD_LOG"
+	rm -f $BUILD_LOG && touch $BUILD_LOG
+	exec >> $BUILD_LOG
+	exec 2>> $BUILD_LOG
+else
+	BUILD_LOG_REDIRECT=""
+fi
+
+
+##########################################################################
+#
+# Build a project
+#
+do_build ()
+{
+	#
+	# $1 = the project name
+	# $2 = [optional] command line options for $BUILD_PROJECT
+	# $3 = [optional] value for command line option $2
+	#
+
+	print -u1 "building in $1..."
+
+	DATE=`date +"$BTAG_DFMT"`
+
+	if [ "True" = $DO_NOT_BUILD ]; then
+		print -u1 "$BTAG_STRT $1: $DATE"	>> $SUMM_FILE
+		print -u1 "$BTAG_PRJT  = $1"  		>> $SUMM_FILE
+		print -u1 "$BTAG_ENDD $1: $DATE"	>> $SUMM_FILE
+		return
+	fi
+
+	#
+	# if building cde tests, write to cde-test-summary.log and
+	# not cde-test.log since cde-test.log will be created by the
+	# test-build program.
+	#
+	if [ "$CDETEST_PROJECT" = "$1" ]; then
+		LOG_FILE=$LOG_DIR/$1-summary.log
+	else
+		LOG_FILE=$LOG_DIR/$1.log
+	fi
+
+	print -u1 "$BTAG_STRT $1: $DATE" 		>> $SUMM_FILE
+	print -u1 "$BTAG_PRJT  = $1"  			>> $SUMM_FILE
+	print -u1 "$BTAG_LOGF  = $LOG_FILE"  		>> $SUMM_FILE
+
+	print -u1 "$BTAG_STRT $1: $DATE" 		>  $LOG_FILE
+	print -u1 "$BTAG_PRJT  = $1"  			>> $LOG_FILE
+	print -u1 "$BTAG_LOGF  = $LOG_FILE"  		>> $LOG_FILE
+
+	print -u1 "$BTAG_SYST  = `uname -a`"  		>> $LOG_FILE
+	print -u1 "$BTAG_VIEW  = $VIEW_TAG"   		>> $LOG_FILE
+	if [ "" = "$BUILD_TYPE" ]; then
+		print -u1 "$BTAG_TYPE  = incrmt"	>> $LOG_FILE
+	else
+		print -u1 "$BTAG_TYPE  = $BUILD_TYPE"	>> $LOG_FILE
+	fi
+	if [ -x $CLEAR_CASE_TOOL ]; then
+		$CLEAR_CASE_TOOL catcs 			>> $LOG_FILE
+	fi
+
+	if [ "" != "$PRE_BUILD" -a -x "$PRE_BUILD" ]; then
+	    print -u1 "Running pre-build script '$PRE_BUILD'." >> $LOG_FILE
+	    $PRE_BUILD				>> $LOG_FILE 2>&1
+	    if [ $? -ne 0 ]; then
+		print -u2 "\nThe pre_build script '$PRE_BUILD' failed."
+		print -u2 "Aborting the build!\n"
+		do_exit 1
+	    fi
+	fi
+
+	if [ "" = "$2" ]; then
+	    if [ "" = "$BUILD_TYPE" ]; then
+		if [ "" = "$TOP" ]; then
+		    $BUILD_PROJECT -p $1 		>> $LOG_FILE 2>&1
+		else
+		    $BUILD_PROJECT -top "$TOP" -p $1 	>> $LOG_FILE 2>&1
+		fi
+	    else
+		if [ "" = "$TOP" ]; then
+		    $BUILD_PROJECT -p $1 -"$BUILD_TYPE" >> $LOG_FILE 2>&1
+		else
+		    $BUILD_PROJECT -top "$TOP" -p $1 -"$BUILD_TYPE" >> $LOG_FILE 2>&1
+		fi
+	    fi
+	else
+	    if [ "" = "$BUILD_TYPE" ]; then
+		if [ "" = "$TOP" ]; then
+		    $BUILD_PROJECT -p $1 "$2" "$3" >> $LOG_FILE 2>&1
+		else
+		    $BUILD_PROJECT -top "$TOP" -p $1 "$2" "$3" >> $LOG_FILE 2>&1
+		fi
+	    else
+		if [ "" = "$TOP" ]; then
+		    $BUILD_PROJECT -p $1 -"$BUILD_TYPE" "$2" "$3" >> $LOG_FILE 2>&1
+		else
+		    $BUILD_PROJECT -top "$TOP" -p $1 -"$BUILD_TYPE" "$2" "$3" >> $LOG_FILE 2>&1
+		fi
+	    fi
+	fi
+
+	if [ "" != "$POST_BUILD" -a -x "$POST_BUILD" ]; then
+	    print -u1 "Running post-build script '$POST_BUILD'." >> $LOG_FILE
+	    $POST_BUILD				>> $LOG_FILE 2>&1
+	fi
+
+	DATE=`date +"$BTAG_DFMT"`
+
+	print -u1 "$BTAG_ENDD $1: $DATE" 		>> $LOG_FILE
+	print -u1 "$BTAG_ENDD $1: $DATE\n" 		>> $SUMM_FILE
+}
+
+
+##########################################################################
+#
+# do_summary -
+#
+do_summary ()
+{
+    #
+    # $1 = the project name
+    # $2 = the log file
+    #
+    PROJECT=$1
+    LOG_FILE=$2$3
+    ERR_FILE=$2$4
+    WRN_FILE=$2$5
+
+    print -u1 extracting errors and warnings in $PROJECT...
+
+    ERR=`$EXTRACT_MSG \
+		-m $ERROR_MSGS \
+		-i $WARNING_MSGS -i $IGNORE_MSGS \
+		-l $LOG_FILE $BUILD_LOG_REDIRECT | wc -l`
+    WARN=`$EXTRACT_MSG \
+		-m $WARNING_MSGS \
+		-l $LOG_FILE $BUILD_LOG_REDIRECT | wc -l`
+
+    if [ "True" = $DO_ERROR_FILES ]; then
+	$EXTRACT_MSG \
+	    -m $ERROR_MSGS -m $BUILD_MSGS \
+	    -i $WARNING_MSGS -i $IGNORE_MSGS \
+	    -l $LOG_FILE $BUILD_LOG_REDIRECT | \
+	  $COMPRESS_MSG \
+	      -m $BUILD_MSGS $BUILD_LOG_REDIRECT > $ERR_FILE
+    fi
+
+    if [ "True" = $DO_WARNING_FILES ]; then
+	$EXTRACT_MSG \
+	    -m $WARNING_MSGS -m $BUILD_MSGS \
+	    -l $LOG_FILE $BUILD_LOG_REDIRECT | \
+	  $COMPRESS_MSG \
+	      -m $BUILD_MSGS $BUILD_LOG_REDIRECT > $WRN_FILE
+    fi
+
+    AWK_PROJECT='{printf("%-32s   %5s errors %5s warnings",$1,$2,$3)}'
+    echo $PROJECT $ERR $WARN | awk "$AWK_PROJECT" >> $SUMM_FILE
+    print -u1 >> $SUMM_FILE
+
+    if [ "True" = "$DO_DEBUG" ]; then
+        echo $PROJECT $ERR $WARN | awk "$AWK_PROJECT"
+        print -u1
+    fi
+}
+
+
+##########################################################################
+#
+# do_component_summary
+#
+do_component_summary ()
+{
+    #
+    # $1 = the project name
+    # $2 = the project log file
+    # $3 = the components file
+    #
+    PROJECT=$1
+    PROJECT_LOG_FILE=$2
+    COMPONENTS_FILE=$3
+    COMPONENTS_LOG_DIR=$LOG_DIR/$PROJECT
+
+    typeset -i TTL_ERR
+    typeset -i TTL_WARN
+
+    AWK_COMPONENT='{printf("  %-32s %5s errors %5s warnings",$1,$2,$3)}'
+
+    #
+    # Separate the log file for the project into log files for the
+    # individual components.  Put them into a subdirectory since
+    # there may be alot of them.
+    #
+    if [ "$DO_COMPONENT_LOGS" = "True" ]; then
+	if [ ! -d $COMPONENTS_LOG_DIR ]; then
+	    mkdir -p $COMPONENTS_LOG_DIR
+	    chmod 775 $COMPONENTS_LOG_DIR
+	fi
+
+	$EXTRACT_LOG \
+		-l $PROJECT_LOG_FILE \
+		-c $COMPONENTS_FILE \
+		-ld $COMPONENTS_LOG_DIR $BUILD_LOG_REDIRECT
+    fi
+
+    let TTL_ERR=0
+    let TTL_WARN=0
+
+    for COMPONENT in `cat $COMPONENTS_FILE`
+    do
+	print -u1 extracting errors and warnings in $PROJECT/$COMPONENT...
+
+	COMPONENT_FILE_BASE=`echo $COMPONENT | tr "/" ","`
+	COMPONENT_LOG_FILE=$COMPONENTS_LOG_DIR/$COMPONENT_FILE_BASE.log
+
+	if [ ! -f $COMPONENT_LOG_FILE ]; then
+	    print -u2 $PROG_NAME:  Error, $COMPONENT_LOG_FILE not found.
+	    continue
+	fi
+
+	ERR=`$EXTRACT_MSG \
+		-m $ERROR_MSGS \
+		-i $WARNING_MSGS -i $IGNORE_MSGS \
+		-l $COMPONENT_LOG_FILE $BUILD_LOG_REDIRECT | wc -l`
+	WARN=`$EXTRACT_MSG \
+		-m $WARNING_MSGS \
+		-l $COMPONENT_LOG_FILE $BUILD_LOG_REDIRECT | wc -l`
+
+	let TTL_ERR=TTL_ERR+ERR
+	let TTL_WARN=TTL_WARN+WARN
+
+	if [ $ERR -ne 0  -o  $WARN -ne 0 ]; then
+	    echo $PROJECT/$COMPONENT $ERR $WARN | \
+	      awk "$AWK_COMPONENT"			>> $SUMM_FILE
+	    print -u1					>> $SUMM_FILE
+
+	    if [ "True" = $DO_ERROR_FILES -a $ERR -gt 0 ]; then
+		COMPONENT_ERR_FILE=$COMPONENTS_LOG_DIR/$COMPONENT_FILE_BASE.err
+		$EXTRACT_MSG \
+		    -m $ERROR_MSGS -m $BUILD_MSGS \
+		    -i $WARNING_MSGS -i $IGNORE_MSGS \
+		    -l $COMPONENT_LOG_FILE $BUILD_LOG_REDIRECT | \
+		  $COMPRESS_MSG \
+		    -m $BUILD_MSGS $BUILD_LOG_REDIRECT > $COMPONENT_ERR_FILE
+	    fi
+
+	    if [ "True" = $DO_WARNING_FILES -a $WARN -gt 0 ]; then
+		COMPONENT_WRN_FILE=$COMPONENTS_LOG_DIR/$COMPONENT_FILE_BASE.wrn
+		$EXTRACT_MSG \
+		    -m $WARNING_MSGS -m $BUILD_MSGS \
+		    -l $COMPONENT_LOG_FILE $BUILD_LOG_REDIRECT | \
+		  $COMPRESS_MSG \
+		    -m $BUILD_MSGS $BUILD_LOG_REDIRECT > $COMPONENT_WRN_FILE
+	    fi
+
+            if [ "True" = "$DO_DEBUG" ]; then
+	        echo $PROJECT/$COMPONENT $ERR $WARN | awk "$AWK_COMPONENT"
+                print -u1
+
+                echo TOTAL $TTL_ERR $TTL_WARN | awk "$AWK_COMPONENT"
+                print -u1
+	    fi
+	fi
+    done
+
+    echo $PROJECT-TOTAL $TTL_ERR $TTL_WARN | awk "$AWK_COMPONENT" >> $SUMM_FILE
+    print -u1 >> $SUMM_FILE
+}
+
+
+##########################################################################
+#
+# Print header stuff needed for build_summary
+#
+DATE=`date +"$BTAG_DFMT"`
+print -u1 "###################################################" >> $SUMM_FILE
+print -u1 "$BTAG_DATE  = $DATE"                                 >> $SUMM_FILE
+print -u1 "$BTAG_VIEW  = $VIEW_TAG"   		                >> $SUMM_FILE
+if [ -x $CLEAR_CASE_TOOL ]; then
+	TMP_FILE_NAME=`$CLEAR_CASE_TOOL catcs | head -1 | awk '{printf "%s\n", $3}'`
+	if [ -f "$TMP_FILE_NAME" ]; then
+		print -u1 "$BTAG_CFGS  = `$CLEAR_CASE_TOOL catcs | head -1 | awk '{printf "%s\n", $3}'`"   >> $SUMM_FILE
+	else
+		print -u1 "$BTAG_CFGS  = NoSpecFile" 		>> $SUMM_FILE
+	fi
+else
+	print -u1 "$BTAG_CFGS  = NoClrCase"			>> $SUMM_FILE
+fi
+print -u1 "$BTAG_PTFM  = `uname -s`"  		                >> $SUMM_FILE
+print -u1 "$BTAG_LOGD  = $LOG_DIR"  		                >> $SUMM_FILE
+if [ "" = "$BUILD_TYPE" ]; then
+	print -u1 "$BTAG_TYPE  = incrmt"                	>> $SUMM_FILE
+else
+	print -u1 "$BTAG_TYPE  = $BUILD_TYPE"                	>> $SUMM_FILE
+fi
+print -u1 "###################################################\n" >> $SUMM_FILE
+
+
+##########################################################################
+#
+# Do the builds and Summarize the results
+#
+
+if [ "True" = $DO_X_BUILD ]; then
+    print -u1 "#############################################" >> $SUMM_FILE
+    do_build $X_PROJECT "" ""
+    do_summary $X_PROJECT $LOG_DIR/$X_PROJECT .log .err .wrn
+    do_component_summary \
+		$X_PROJECT \
+		$LOG_DIR/$X_PROJECT.log \
+		$X_COMPONENTS
+    print -u1 "#############################################\n" >> $SUMM_FILE
+fi
+
+if [ "True" = $DO_MOTIF_BUILD ]; then
+    print -u1 "#############################################" >> $SUMM_FILE
+    do_build $MOTIF_PROJECT "" ""
+    do_summary $MOTIF_PROJECT $LOG_DIR/$MOTIF_PROJECT .log .err .wrn
+    do_component_summary \
+		$MOTIF_PROJECT \
+		$LOG_DIR/$MOTIF_PROJECT.log \
+		$MOTIF_COMPONENTS
+    print -u1 "#############################################\n" >> $SUMM_FILE
+fi
+
+if [ "True" = $DO_CDE_BUILD ]; then
+    print -u1 "#############################################" >> $SUMM_FILE
+    do_build $CDE_PROJECT "" ""
+    do_summary $CDE_PROJECT $LOG_DIR/$CDE_PROJECT .log .err .wrn
+    do_component_summary \
+		$CDE_PROJECT \
+		$LOG_DIR/$CDE_PROJECT.log \
+		$CDE_COMPONENTS
+    print -u1 "#############################################\n" >> $SUMM_FILE
+fi
+
+if [ "True" = $DO_CDEDOC_BUILD ]; then
+    print -u1 "#############################################" >> $SUMM_FILE
+    do_build $CDEDOC_PROJECT "" ""
+    do_summary $CDEDOC_PROJECT $LOG_DIR/$CDEDOC_PROJECT .log .err .wrn
+    do_component_summary \
+		$CDEDOC_PROJECT \
+		$LOG_DIR/$CDEDOC_PROJECT.log \
+		$CDEDOC_COMPONENTS
+    print -u1 "#############################################\n" >> $SUMM_FILE
+fi
+
+if [ "True" = "$DO_CDETEST_BUILD" ]; then
+    print -u1 "#############################################" >> $SUMM_FILE
+    do_build $CDETEST_PROJECT "-log_dir" "$LOG_DIR"
+    if [ -f $LOG_DIR/$CDETEST_PROJECT/allmake.* ]; then
+	ln -s $LOG_DIR/$CDETEST_PROJECT/allmake.* $LOG_DIR/$CDETEST_PROJECT.log
+    fi
+    do_summary $CDETEST_PROJECT $LOG_DIR/$CDETEST_PROJECT .log .err .wrn
+    do_component_summary \
+		$CDETEST_PROJECT \
+		$LOG_DIR/$CDETEST_PROJECT.log \
+		$CDETEST_COMPONENTS
+    print -u1 "#############################################\n" >> $SUMM_FILE
+fi
+
+#print -u1 "###################################################\n" >> $SUMM_FILE
+#do_summary $BUILD $LOG_DIR/$BUILD.log
+#print -u1 "###################################################\n" >> $SUMM_FILE
+
+##########################################################################
+#
+# Complete the build summary with the config spec and the $BTAG_CMPL
+#
+print -u1 "###################################################\n" >> $SUMM_FILE
+if [ -x $CLEAR_CASE_TOOL ]; then
+	$CLEAR_CASE_TOOL catcs                                    >> $SUMM_FILE
+fi
+print -u1 "###################################################\n" >> $SUMM_FILE
+
+DATE=`date +"$BTAG_DFMT"`
+print -u1 "###################################################\n" >> $SUMM_FILE
+print -u1 "$BTAG_CMPL: $DATE\n"                                   >> $SUMM_FILE
+print -u1 "###################################################\n" >> $SUMM_FILE
+
+##########################################################################
+#
+# Complete the build summary and mail it or dump it to stdout
+#
+if [ "" != "$MAIL_LIST" ]; then
+	mailx -s "$SUBJECT_BUILD_COMPLETE - $VIEW_TAG (`date $SUBJECT_DATE`)" "$MAIL_LIST" < $SUMM_FILE
+else
+	cat $SUMM_FILE
+fi
+
+#
+# Clean up temporary files and exit
+#
+do_exit 0

+ 348 - 0
cde/admin/BuildTools/tog/cc_checkedout

@@ -0,0 +1,348 @@
+#!/bin/ksh
+#
+# cc_checkedout
+#
+########################################################################
+# set -x
+
+
+##########################################################################
+#
+# Script setup:  THIS NEEDS TO BE FIRST
+#
+SCRIPTS_DIR="`dirname $0`"
+PROG_NAME="`basename $0`"
+if [ "" = "$SCRIPTS_DIR" ]; then
+	SCRIPTS_DIR=/project/dt/scripts
+fi
+if [ ! -f $SCRIPTS_DIR/script_setup.ksh ]; then
+    print -u2 "$PROG_NAME:  File '$SCRIPTS_DIR/script_setup.ksh' NOT found!"
+    print -u2 "$PROG_NAME:  Exiting ..."
+    exit 1
+fi
+. $SCRIPTS_DIR/script_setup.ksh
+
+##########################################################################
+#
+# Script specific global variables
+#
+COMPONENTS_FILES=""
+COMPONENTS=""
+DEBUG="False"
+DO_DELETE="True"
+DO_LISTING="True"
+DO_SUMMARY="True"
+DO_TMPFILE="True"
+HAVE_EVENTS="True"
+CHECKEDOUT_LOG=""
+LOG_PATH=""
+MAIL_LIST=""
+PROG_NAME="`basename $0`"
+WHAT_TO_SEARCH="-avobs"
+
+
+##########################################################################
+#
+# FUNCTION: do_executive_summary ()
+#
+do_executive_summary ()
+{
+    AWK_EXEC_CO_SUMMARY='{printf("%-40s [CheckedOut= %-3s; Users= ", $1,$2)}'
+    AWK_EXEC_USER_SUMMARY='{printf("%s ", $1)}'
+    AWK_EXEC_TERM_SUMMARY='{printf("]\n")}'
+    COMPONENT=$1
+
+    if [ "True" = "$DEBUG" ]; then
+        print -u2 "summarizing events in $COMPONENT"
+    fi
+    TOTAL_CHECKEDOUT=`$EXTRACT_MSG -l $CHECKEDOUT_LOG $COMPONENT | wc -l |
+			awk '{printf("%s",$1)}'`
+
+    if [ $TOTAL_CHECKEDOUT -ne 0 ]; then
+	USERS=`$EXTRACT_MSG -l $CHECKEDOUT_LOG $COMPONENT |
+		awk '{ print $1 }' FS="::" | sort | uniq`
+
+	echo "$COMPONENT $TOTAL_CHECKEDOUT" | awk "$AWK_EXEC_CO_SUMMARY"
+	for u in $USERS
+	do
+	    echo "$u" | awk "$AWK_EXEC_USER_SUMMARY"
+	done
+	echo "" | awk "$AWK_EXEC_TERM_SUMMARY"
+    fi
+}
+
+##########################################################################
+#
+# FUNCTION: usage ()
+#
+usage ()
+{
+    cat <<eof
+USAGE: $PROG_NAME
+	[-d | -debug] 	 	  # Print output to stdout
+	[-h | -? | -help] 	  # Print usage and exit
+	[{-l | -log_path} <file>] # Specifies the output file for the report.
+	[{-m | -mail | -mail_list} <user_name(s)>]
+	[{-t | -tmpfile} <file>]  # Specifies the tmp file to be extracted from.
+	[{-w | -what | -what_to_search} <option or directory>]
+				  # The default is: $WHAT_TO_SEARCH
+	[-no_delete]
+	[-no_listing]
+	[-no_summary]
+
+	# '$PROG_NAME' calls clearcase commands to determine which files
+	# are currently checked out and then delivers the report.  The
+	# report can be sent to a list of mail recipients, or a log file
+	# or both.  If neither is specified, the report is sent to stdout
+	# by default.
+eof
+}
+
+
+######################################################################
+#
+# Exit if no view is set
+#
+$CLEAR_CASE_TOOL pwv | grep 'Set view' | grep NONE > /dev/null
+if [ $? -eq 0 ]; then
+        print -u2 "$PROG_NAME: Exiting ... NO ClearCase view is set!"
+        exit 1
+fi
+
+
+##########################################################################
+#
+# Do command-line processing
+#
+while [ $# -gt 0 ]; do
+    case $1 in
+
+	-debug)
+	    DEBUG="True"
+	    shift 1 ;;
+
+	-h | -? | -help)
+	    usage $PROG_NAME
+	    do_exit 1 ;;
+
+	-l | -log_path)
+	    if [ $# -lt 2 ]; then
+		print -u2 "$PROG_NAME:  $1 option missing value; exiting ..."
+		do_exit 1
+	    fi
+	    LOG_PATH=$2
+	    shift 2 ;;
+
+	-m | -mail | -mail_list)
+	    if [ $# -lt 2 ]; then
+		print -u2 "$PROG_NAME:  $1 option missing value; exiting ..."
+		do_exit 1
+	    fi
+	    MAIL_LIST=$2
+	    shift 2 ;;
+
+	-t | -tmpfile)
+	    if [ $# -lt 2 ]; then
+		print -u2 "$PROG_NAME:  $1 option missing value; exiting ..."
+		do_exit 1
+	    fi
+	    DO_TMPFILE="false"
+	    CHECKEDOUT_LOG=$2
+	    shift 2 ;;
+
+	-w | -what | -what_to_search)
+	    if [ $# -lt 2 ]; then
+		print -u2 "$PROG_NAME:  $1 option missing value; exiting ..."
+		do_exit 1
+	    fi
+	    WHAT_TO_SEARCH=$2
+	    shift 2 ;;
+
+	-no_listing)
+	    DO_LISTING="False"
+	    shift 1 ;;
+
+	-no_summary)
+	    DO_SUMMARY="False"
+	    shift 1 ;;
+
+	-no_delete)
+	    DO_DELETE="False"
+	    shift 1 ;;
+
+	*)
+	    usage $PROG_NAME
+	    do_exit 1 ;;
+    esac
+done
+
+
+if [ "True" = "$DO_TMPFILE" ]; then
+    CHECKEDOUT_LOG=/tmp/$PROG_NAME.checkedout.$$
+    CHECKEDOUT_LOG_PRIME=/tmp/$PROG_NAME.checkedout.1.$$
+    do_register_temporary_file $CHECKEDOUT_LOG
+    do_register_temporary_file $CHECKEDOUT_LOG_PRIME
+
+    #
+    # First get the list of files
+    #
+    $CLEAR_CASE_TOOL lsco -fmt "%u %n %f\n" $WHAT_TO_SEARCH > $CHECKEDOUT_LOG
+
+    #
+    # Since it is possible for more than one person to have a
+    # file checked-out must get all locks.  Note that it also
+    # desireable to get each user's comments attached to the
+    # checkout.
+    #
+    cat $CHECKEDOUT_LOG | while read LINE; do
+        FILE="`echo $LINE | awk '{printf "%s", $2}'`"
+        $CLEAR_CASE_TOOL lsco -d -fmt "%u::%Ad::days::%Tf::(%Rf)::%n::%f\n" \
+                $FILE >> $CHECKEDOUT_LOG_PRIME
+    done
+
+    #
+    # Sort the files and remove dups.
+    #
+    sort $CHECKEDOUT_LOG_PRIME | uniq > $CHECKEDOUT_LOG
+    cp $CHECKEDOUT_LOG $CHECKEDOUT_LOG_PRIME
+
+    sed -e 's/\.cde-1/cde/
+            s/\.cde-2/cde/
+            s/\.cde-3/cde/
+            s/\.cde-test-1/cde-test/
+            s/\.cde-test-2/cde-test/
+            s/\.cde-test-3/cde-test/
+	    s/\.motif-1/motif/
+            s/\.motif-2/motif/' $CHECKEDOUT_LOG_PRIME > $CHECKEDOUT_LOG
+fi
+
+PROJECTS="cde cde-contrib cde-cts cde-misc cde-test cde-test-misc
+      motif motif-cts motif-misc x11/misc x11/unsupported x11"
+
+#
+# Redirect output
+#
+if [ "$DEBUG" = "False" ]; then
+    EXECUTIVE_SUMMARY_LOG=/tmp/$PROG_NAME.execsum.$$
+    do_register_temporary_file $EXECUTIVE_SUMMARY_LOG
+    touch $EXECUTIVE_SUMMARY_LOG
+
+    exec 9>&1
+    exec > $EXECUTIVE_SUMMARY_LOG
+fi
+
+DATE=`date "$BTAG_DFMT"`
+print -u1 "            CLEARCASE CHECKEDOUT SUMMARY FOR:  $DATE"
+print -u1 "            ++++++++++++++++++++++++++++++++++++++++++++++++++++"
+print -u1
+print -u1
+
+if [ ! -s $CHECKEDOUT_LOG ]; then
+    if [ "$DEBUG" = "True" ]; then
+	print -u1 "Log file '$CHECKEDOUT_LOG' is empty"
+    fi
+    HAVE_EVENTS="False"
+    print -u1 "NO events were found."
+fi
+
+
+if [ "True" = "$DO_SUMMARY" -a "True" = "$HAVE_EVENTS" ]; then
+
+    for p in $PROJECTS
+    do
+        COMPONENTS_FILE=$SCRIPTS_DIR/$p.components
+        if [ -f $COMPONENTS_FILE ]; then
+	    #
+	    # Correct for the missing 'xc' subdirectory in x11.components
+	    #
+	    if [ "$p" = "x11" ]; then
+		p=x11/xc
+	    fi
+
+	    for c in `cat $COMPONENTS_FILE`
+	    do
+                do_executive_summary /proj/$p/$c
+	    done
+        else
+            do_executive_summary /proj/$p
+        fi
+    done
+fi
+
+if [ "True" = "$DO_LISTING" -a "True" = "$HAVE_EVENTS" ]; then
+    print -u1
+    print -u1
+    print -u1 "                     CLEARCASE CHECKEDOUT LISTING"
+    print -u1 "                     ++++++++++++++++++++++++++++"
+    print -u1
+    print -u1
+
+    cat $CHECKEDOUT_LOG | while read LINE; do
+	
+	USER="`echo $LINE | awk '{FS="::"; printf "%s", $1}'`"
+	FILE="`echo $LINE | awk '{FS="::"; printf "%s", $6}'`"
+
+	echo $LINE 				|	\
+		sed '/::1::days/s//::1:: day/'  |       \
+		sed '/\(unreserved\)/s//U/'     |       \
+		sed '/\(reserved\)/s//R/'	|	\
+		awk '{ FS="::"; printf "%-8s %3d %s %s %s\n   %s@@%s\n", $1,$2,$3,$4,$5,$6,$7 }'
+
+	#
+	# Attach the WIP if present
+	#
+	WIP="`$CLEAR_CASE_TOOL lsco -d -user $USER -fmt '%[WIP]a' $FILE`"
+	if [ "" != "$WIP" ]; then
+	    print -u1 "   $WIP"
+	fi
+
+	#
+	# Attach the (possibly mult-line) comment
+	#
+	$CLEAR_CASE_TOOL lsco -d -user $USER -fmt "%c" $FILE \
+		| awk '{printf "   %s\n", $0}'
+    done
+fi
+
+
+#####################################################################
+#
+# If no files were found, create a descriptive message; else
+#   tack on a legend
+#
+if [ ! -s $CHECKEDOUT_LOG ]; then
+        print -u1 "NO files are checked out!"
+else
+        mv $CHECKEDOUT_LOG_PRIME $CHECKEDOUT_LOG
+        print -u1 "\n(R) = reserved checkout"
+        print -u1 "(U) = unreseved checkout"
+fi
+
+
+##########################################################################
+#
+# Complete the build summary and deliver it
+#
+if [ "" != "$MAIL_LIST" ]; then
+    mailx -s "$SUBJECT_CHECKOUTS (`date $SUBJECT_DATE`)" "$MAIL_LIST" < \
+	$EXECUTIVE_SUMMARY_LOG
+fi
+
+if [ "" != "$LOG_PATH" ]; then
+    cp $EXECUTIVE_SUMMARY_LOG $LOG_PATH
+fi
+
+if [ "$DEBUG" = "False" -a "" = "$MAIL_LIST" -a "" = "$LOG_PATH" ]; then
+    exec >&9
+    cat $EXECUTIVE_SUMMARY_LOG
+fi
+
+
+##########################################################################
+#
+# Clean up temporary files and exit
+#
+if [ "True" = "$DO_DELETE" ]; then
+    do_exit 0
+fi
+exit 0

+ 334 - 0
cde/admin/BuildTools/tog/cc_submissions

@@ -0,0 +1,334 @@
+#!/bin/ksh
+#
+# cc_submissions
+#
+########################################################################
+# set -x
+
+
+##########################################################################
+#
+# Script setup:  THIS NEEDS TO BE FIRST
+#
+SCRIPTS_DIR="`dirname $0`"
+PROG_NAME="`basename $0`"
+if [ "" = "$SCRIPTS_DIR" ]; then
+	SCRIPTS_DIR=/project/dt/scripts
+fi
+if [ ! -f $SCRIPTS_DIR/script_setup.ksh ]; then
+    print -u2 "$PRG:  File '$SCRIPTS_DIR/script_setup.ksh' NOT found!"
+    print -u2 "$PRG:  Exiting ..."
+    exit 1
+fi
+. $SCRIPTS_DIR/script_setup.ksh
+
+##########################################################################
+#
+# Script specific global variables
+#
+COMPONENTS_FILES=""
+COMPONENTS=""
+DEBUG="False"
+DO_DELETE="True"
+DO_LISTING="True"
+DO_TMPFILE="True"
+DO_SUMMARY="True"
+INCLUDE_ROOT="False"
+SUBMISSION_LOG=""
+MAIL_LIST=""
+NULLSUBDIRECTORY="__XXX__"
+HAVE_EVENTS="True"
+
+
+##########################################################################
+#
+# FUNCTION: do_executive_summary ()
+#
+do_executive_summary ()
+{
+    AWK_EXEC_EVENT_SUMMARY='{printf("%-40s [Events= %-3s; Users= ", $1,$2)}'
+    AWK_EXEC_USER_SUMMARY='{printf("%s ", $1)}'
+    AWK_EXEC_TERM_SUMMARY='{printf("]\n")}'
+    COMPONENT=$1
+
+    if [ "True" = "$DEBUG" ]; then
+        print -u2 "summarizing events in $COMPONENT"
+    fi
+    TOTAL_EVENTS=`$EXTRACT_MSG -l $SUBMISSION_LOG $COMPONENT | wc -l |
+			awk '{printf("%s",$1)}'`
+
+    if [ $TOTAL_EVENTS -ne 0 ]; then
+	USERS=`$EXTRACT_MSG -l $SUBMISSION_LOG $COMPONENT |
+		awk '{ print $3 }' FS="|" | sort | uniq`
+
+#	for u in $USERS
+#	do
+#	    USER_EVENTS=`$EXTRACT_MSG -l $SUBMISSION_LOG $COMPONENT | 
+#			 grep "$FS$u$FS" | wc -l`
+#	    echo "$u $USER_EVENTS" | awk "$AWK_EXEC_SUMMARY"
+#	done
+	echo "$COMPONENT $TOTAL_EVENTS" | awk "$AWK_EXEC_EVENT_SUMMARY"
+	for u in $USERS
+	do
+	    echo "$u" | awk "$AWK_EXEC_USER_SUMMARY"
+	done
+	echo "" | awk "$AWK_EXEC_TERM_SUMMARY"
+    fi
+}
+
+##########################################################################
+#
+# FUNCTION: do_listing_summary ()
+#
+do_listing_summary ()
+{
+    AWK_LIST_SUMMARY='{printf("%s\n  User=%-12s Event=%-16s DDTS=%8s \n  Comment='%s'\n",$2,$3,$4,$5,$7)}'
+    COMPONENT=$1
+
+    if [ "True" = "$DEBUG" ]; then
+        print -u2 "listing events in $COMPONENT"
+    fi
+    TOTAL_EVENTS=`$EXTRACT_MSG -l $SUBMISSION_LOG $COMPONENT | wc -l`
+
+    if [ $TOTAL_EVENTS -ne 0 ]; then
+        print -u1 "+"
+        print -u1 "+ Events In:  $COMPONENT"
+        print -u1 "+"
+
+	$EXTRACT_MSG -l $SUBMISSION_LOG $COMPONENT | \
+	      awk "$AWK_LIST_SUMMARY" FS="|"
+    fi
+}
+
+
+##########################################################################
+#
+# FUNCTION: usage ()
+#
+usage ()
+{
+    cat <<eof
+USAGE: $1
+	[-h | -? | -help] 	 # Print usage and exit
+	[{-m | -mail | -mail_list} <user_name(s)>]
+	[{-t | -tmpfile} <file>] # Specifies the log file to be extracted from.
+	[-include_root]
+	[-no_delete]
+	[-no_listing]
+	[-no_summary]
+
+	# '$PROG_NAME' calls clearcase commands to determine which files
+	# were submitted in the last 24 hours and then delivers the report.
+	# The report can be sent to a list of mail recipients, or a log file
+	# or both.  If neither is specified, the report is sent to stdout
+	# by default.
+eof
+}
+
+
+##########################################################################
+#
+# Do command-line processing
+#
+while [ $# -gt 0 ]; do
+    case $1 in
+
+	-debug)
+	    DEBUG="True"
+	    shift 1 ;;
+
+	-h | -? | -help)
+	    usage $PROG_NAME
+	    do_exit 1 ;;
+
+	-l | -log_path)
+	    if [ $# -lt 2 ]; then
+		print -u2 "$PROG_NAME:  $1 option missing value; exiting ..."
+		do_exit 1
+	    fi
+	    LOG_PATH=$2
+	    shift 2 ;;
+
+	-m | -mail | -mail_list)
+	    if [ $# -lt 2 ]; then
+		print -u2 "$PROG_NAME:  $1 option missing value; exiting ..."
+		do_exit 1
+	    fi
+	    MAIL_LIST=$2
+	    shift 2 ;;
+
+	-t | -tmpfile)
+	    if [ $# -lt 2 ]; then
+		print -u2 "$PROG_NAME:  $1 option missing value; exiting ..."
+		do_exit 1
+	    fi
+	    DO_TMPFILE="false"
+	    SUBMISSION_LOG=$2
+	    shift 2 ;;
+
+	-include_root)
+	    INCLUDE_ROOT="True"
+	    shift 1 ;;
+
+	-no_listing)
+	    DO_LISTING="False"
+	    shift 1 ;;
+
+	-no_summary)
+	    DO_SUMMARY="False"
+	    shift 1 ;;
+
+	-no_delete)
+	    DO_DELETE="False"
+	    shift 1 ;;
+
+	*)
+	    usage $PROG_NAME
+	    do_exit 1 ;;
+    esac
+done
+
+
+if [ "True" = "$DO_TMPFILE" ]; then
+    SUBMISSION_LOG=/tmp/$PROG_NAME.lshistory.$$
+    SUBMISSION_LOG_PRIME=/tmp/$PROG_NAME.lshistory.1.$$
+    do_register_temporary_file $SUBMISSION_LOG
+    do_register_temporary_file $SUBMISSION_LOG_PRIME
+
+    EVENT="EVENT"
+    FS='|'
+    FORMAT="$EVENT$FS%n$FS%u$FS%e$FS%1.FIXESa$FS%1.l$FS%1.Nc$FS\n"
+
+    $CLEAR_CASE_TOOL lshistory -fmt $FORMAT \
+	-avobs -nco -since yesterday.00:00 > $SUBMISSION_LOG
+
+    #
+    # Delete entries submitted by  root
+    #
+    grep $EVENT $SUBMISSION_LOG | sort > $SUBMISSION_LOG_PRIME
+
+    if [ "False" = $INCLUDE_ROOT ]; then
+        SUBMISSION_LOG_TWO=/tmp/$PROG_NAME.lshistory.2.$$
+        do_register_temporary_file $SUBMISSION_LOG_TWO
+
+        egrep -v -e "${FS}root$FS" $SUBMISSION_LOG_PRIME > $SUBMISSION_LOG_TWO
+	cp $SUBMISSION_LOG_TWO $SUBMISSION_LOG_PRIME
+    fi
+
+    sed -e 's/\.cde-1/cde/
+            s/\.cde-2/cde/
+            s/\.cde-3/cde/
+            s/\.cde-test-1/cde-test/
+            s/\.cde-test-2/cde-test/
+            s/\.cde-test-3/cde-test/
+	    s/\.motif-1/motif/
+            s/\.motif-2/motif/' $SUBMISSION_LOG_PRIME > $SUBMISSION_LOG
+fi
+
+PROJECTS="cde cde-contrib cde-cts cde-misc cde-test cde-test-misc
+      motif motif-cts motif-misc x11/misc x11/unsupported x11"
+
+#
+# Redirect output
+#
+if [ "$DEBUG" = "False" ]; then
+    EXECUTIVE_SUMMARY_LOG=/tmp/$PROG_NAME.execsum.$$
+    do_register_temporary_file $EXECUTIVE_SUMMARY_LOG
+    touch $EXECUTIVE_SUMMARY_LOG
+
+    exec 9>&1
+    exec > $EXECUTIVE_SUMMARY_LOG
+fi
+
+DATE=`date "$BTAG_DFMT"`
+print -u1 "            CLEARCASE EVENT SUMMARY FOR:  $DATE"
+print -u1 "            +++++++++++++++++++++++++++++++++++++++++++++++"
+print -u1
+print -u1
+
+if [ ! -s $SUBMISSION_LOG ]; then
+    HAVE_EVENTS="False"
+    print -u1 "NO events were found."
+fi
+
+
+if [ "True" = "$DO_SUMMARY" -a "True" = "$HAVE_EVENTS" ]; then
+
+    for p in $PROJECTS
+    do
+        COMPONENTS_FILE=$SCRIPTS_DIR/$p.components
+        if [ -f $COMPONENTS_FILE ]; then
+	    #
+	    # Correct for the missing 'xc' subdirectory in x11.components
+	    #
+	    if [ "$p" = "x11" ]; then
+		p=x11/xc
+	    fi
+
+	    for c in `cat $COMPONENTS_FILE`
+	    do
+                do_executive_summary /proj/$p/$c
+	    done
+        else
+            do_executive_summary /proj/$p
+        fi
+    done
+fi
+
+if [ "True" = "$DO_LISTING" -a "True" = "$HAVE_EVENTS" ]; then
+    print -u1
+    print -u1
+    print -u1 "                     CLEARCASE EVENT LISTING"
+    print -u1 "                     +++++++++++++++++++++++"
+    print -u1
+    print -u1
+
+    for p in $PROJECTS
+    do
+        COMPONENTS_FILE=$SCRIPTS_DIR/$p.components
+        if [ -f $COMPONENTS_FILE ]; then
+	    #
+	    # Correct for the missing 'xc' subdirectory in x11.components
+	    #
+	    if [ "$p" = "x11" ]; then
+		p=x11/xc
+	    fi
+
+	    for c in `cat $COMPONENTS_FILE`
+	    do
+                do_listing_summary /proj/$p/$c
+	    done
+        else
+                do_listing_summary /proj/$p
+        fi
+    done
+fi
+
+
+##########################################################################
+#
+# Complete the build summary and mail it or dump it to stdout
+#
+if [ "" != "$MAIL_LIST" ]; then
+    mailx -s "$SUBJECT_SUBMISSIONS (`date $SUBJECT_DATE`)" "$MAIL_LIST" < \
+	$EXECUTIVE_SUMMARY_LOG
+fi
+
+if [ "" != "$LOG_PATH" ]; then
+    cp $EXECUTIVE_SUMMARY_LOG $LOG_PATH
+fi
+
+if [ "$DEBUG" = "False" -a "" = "$MAIL_LIST" -a "" = "$LOG_PATH" ]; then
+    exec >&9
+    cat $EXECUTIVE_SUMMARY_LOG
+fi
+
+
+##########################################################################
+#
+# Clean up temporary files and exit
+#
+if [ "True" = "$DO_DELETE" ]; then
+    do_exit 0
+fi
+exit 0

+ 59 - 0
cde/admin/BuildTools/tog/cde.components

@@ -0,0 +1,59 @@
+admin
+config
+databases
+lib/DtHelp
+lib/DtMmdb
+lib/DtMrm
+lib/DtPrint
+lib/DtSearch
+lib/DtSvc
+lib/DtTerm
+lib/DtWidget
+lib/cs
+lib/pam
+lib/tt
+osf/bindings
+osf/uil
+osf/wml
+osf/xmbind
+programs/doc
+programs/dsdm
+programs/dtaction
+programs/dtappbuilder
+programs/dtappintegrate
+programs/dtcalc
+programs/dtcm
+programs/dtconfig
+programs/dtcreate
+programs/dtdbcache
+programs/dtdocbook
+programs/dtdspmsg
+programs/dtexec
+programs/dtfile
+programs/dthello
+programs/dthelp
+programs/dticon
+programs/dtimsstart
+programs/dtinfo
+programs/dtksh
+programs/dtlogin
+programs/dtmail
+programs/dtpad
+programs/dtpdm
+programs/dtpdmd
+programs/dtprintegrate
+programs/dtprintinfo
+programs/dtscreen
+programs/dtsearchpath
+programs/dtsession
+programs/dtspcd
+programs/dtsr
+programs/dtstyle
+programs/dtterm
+programs/dtudcexch
+programs/dtudcfonted
+programs/dtwm
+programs/localized
+programs/nsgmls
+programs/ttsnoop
+programs/tttypes

+ 237 - 0
cde/admin/BuildTools/tog/cde.crondb

@@ -0,0 +1,237 @@
+##########################################################################
+#
+# File:  cron_database
+#
+##########################################################################
+
+#
+#
+# This is a build database file used by the cron_scripts script to start
+# the various build and report scripts from crontab.  cron_scripts is intended
+# to provide a level of indirection which allows the nightly builds to be
+# controlled without having to edit crontab entries.
+#
+# To set up an automated build on a particular machine you will need to
+# do the following:
+#
+#	1.  Checkout /proj/cde/admin/BuildTools/tog/cron_database.
+#	    Edit it as specified in the section explaining the database format.
+#	    Check it back in when satisfied with the entries.
+#	    Copy it to /project/dt/admin/cron
+#
+#	2.  Log onto the desired machine as 'devobj' and add the following line
+#	    to the crontab entries:
+#
+#		15 * * * *	/project/dt/scripts/cron_scripts
+#
+# The crontab entry will cause cron_scripts to run every hour at 15 minutes
+# past the hour.  The script checks the database to see if there is a valid
+# entry for the MachineName, FullWeekdayName, and 24HourClockHour.  If
+# such an entry does NOT exists, cron_scripts simply exits.  Otherwise,
+# if the view is not set to 'none' it sets the view and exectutes the 
+# specified command line.  If the view is set to 'none' it just executes
+# the specified command line.
+#
+
+#
+# Format:
+#
+# FullWeekdayName (aka `date +%A`)
+#	    	24HourClockHour (aka `date +%H`)
+#			MachineName
+#					View
+#							CommandLine
+#
+# NOTE:
+#	Comment Character = '#'
+#	Line Continuation Character = '\'
+#
+
+##########################################################################
+#
+# CDE Cron Jobs
+#
+##########################################################################
+
+#
+# Monday
+#
+Monday		02	build-hp	cde-hp \
+    /project/dt/scripts/build_id \
+		-dev -log_path /project/dt/ID/cdeID
+Monday		03	build-hp	cde-hp \
+    /project/dt/scripts/build_id \
+		-cdetest -log_path /project/dt/ID/cde-testID
+
+Monday		05	hans	none \
+    /project/dt/scripts/make_report_dir
+		-log_path /project/dt/logs/build/reports/LATEST
+Monday		06	hans	cde-sun \
+    /project/dt/scripts/cc_checkedout \
+		-log_path /project/dt/logs/build/reports/LATEST/checkedout
+Monday		06	hans	cde-sun \
+    /project/dt/scripts/cc_submissions \
+		-log_path /project/dt/logs/build/reports/LATEST/submitted
+Monday		07	hans	none \
+	/project/dt/scripts/build_summary_cron \
+		-retries 3 \
+		-c /project/dt/scripts/x11.components \
+		-c /project/dt/scripts/motif.components \
+		-c /project/dt/scripts/cde.components \
+		-c /project/dt/scripts/cdedoc.components \
+		-c /project/dt/scripts/cdetest.components \
+		-s /project/dt/logs/build/cde-hp/LATEST/build.summary \
+		-s /project/dt/logs/build/cde-sun/LATEST/build.summary \
+		-log_path /project/dt/logs/build/reports/LATEST/build.summary
+
+Monday		19	build-hp	cde-hp \
+    /project/dt/scripts/build_world -dev -cdetest
+Monday		19	hans	cde-sun \
+    /project/dt/scripts/build_world -dev -cdetest
+
+#
+# Tuesday
+#
+Tuesday		02	build-hp	cde-hp \
+    /project/dt/scripts/build_id \
+		-dev -log_path /project/dt/ID/cdeID
+Tuesday		03	build-hp	cde-hp \
+    /project/dt/scripts/build_id \
+		-cdetest -log_path /project/dt/ID/cde-testID
+
+Tuesday		05	hans	none \
+    /project/dt/scripts/make_report_dir
+		-log_path /project/dt/logs/build/reports/LATEST
+Tuesday		06	hans	cde-sun \
+    /project/dt/scripts/cc_checkedout \
+		-log_path /project/dt/logs/build/reports/LATEST/checkedout
+Tuesday		06	hans	cde-sun \
+    /project/dt/scripts/cc_submissions \
+		-log_path /project/dt/logs/build/reports/LATEST/submitted
+Tuesday		07	hans	none \
+	/project/dt/scripts/build_summary_cron \
+		-retries 3 \
+		-c /project/dt/scripts/x11.components \
+		-c /project/dt/scripts/motif.components \
+		-c /project/dt/scripts/cde.components \
+		-c /project/dt/scripts/cdedoc.components \
+		-c /project/dt/scripts/cdetest.components \
+		-s /project/dt/logs/build/cde-hp/LATEST/build.summary \
+		-s /project/dt/logs/build/cde-sun/LATEST/build.summary \
+		-log_path /project/dt/logs/build/reports/LATEST/build.summary
+
+Tuesday		19	build-hp	cde-hp \
+    /project/dt/scripts/build_world -dev -cdetest
+Tuesday		19	hans	cde-sun \
+    /project/dt/scripts/build_world -dev -cdetest
+
+#
+# Wednesday
+#
+Wednesday	02	build-hp	cde-hp \
+    /project/dt/scripts/build_id \
+		-dev -log_path /project/dt/ID/cdeID
+Wednesday	03	build-hp	cde-hp \
+    /project/dt/scripts/build_id \
+		-cdetest -log_path /project/dt/ID/cde-testID
+
+Wednesday	05	hans	none \
+    /project/dt/scripts/make_report_dir
+		-log_path /project/dt/logs/build/reports/LATEST
+Wednesday	06	hans	cde-sun \
+    /project/dt/scripts/cc_checkedout \
+		-log_path /project/dt/logs/build/reports/LATEST/checkedout
+Wednesday	06	hans	cde-sun \
+    /project/dt/scripts/cc_submissions \
+		-log_path /project/dt/logs/build/reports/LATEST/submitted
+Wednesday	07	hans	none \
+	/project/dt/scripts/build_summary_cron \
+		-retries 3 \
+		-c /project/dt/scripts/x11.components \
+		-c /project/dt/scripts/motif.components \
+		-c /project/dt/scripts/cde.components \
+		-c /project/dt/scripts/cdedoc.components \
+		-c /project/dt/scripts/cdetest.components \
+		-s /project/dt/logs/build/cde-hp/LATEST/build.summary \
+		-s /project/dt/logs/build/cde-sun/LATEST/build.summary \
+		-log_path /project/dt/logs/build/reports/LATEST/build.summary
+
+Wednesday	19	build-hp	cde-hp \
+    /project/dt/scripts/build_world -dev -cdetest
+Wednesday	19	hans	cde-sun \
+    /project/dt/scripts/build_world -dev -cdetest
+
+
+#
+# Thursday
+#
+Thursday	02	build-hp	cde-hp \
+    /project/dt/scripts/build_id \
+		-dev -log_path /project/dt/ID/cdeID
+Thursday	03	build-hp	cde-hp \
+    /project/dt/scripts/build_id \
+		-cdetest -log_path /project/dt/ID/cde-testID
+
+Thursday	05	hans	none \
+    /project/dt/scripts/make_report_dir
+		-log_path /project/dt/logs/build/reports/LATEST
+Thursday	06	hans	cde-sun \
+    /project/dt/scripts/cc_checkedout \
+		-log_path /project/dt/logs/build/reports/LATEST/checkedout
+Thursday	06	hans	cde-sun \
+    /project/dt/scripts/cc_submissions \
+		-log_path /project/dt/logs/build/reports/LATEST/submitted
+Thursday	07	hans	none \
+	/project/dt/scripts/build_summary_cron \
+		-retries 3 \
+		-c /project/dt/scripts/x11.components \
+		-c /project/dt/scripts/motif.components \
+		-c /project/dt/scripts/cde.components \
+		-c /project/dt/scripts/cdedoc.components \
+		-c /project/dt/scripts/cdetest.components \
+		-s /project/dt/logs/build/cde-hp/LATEST/build.summary \
+		-s /project/dt/logs/build/cde-sun/LATEST/build.summary \
+		-log_path /project/dt/logs/build/reports/LATEST/build.summary
+
+Thursday	19	build-hp	cde-hp \
+    /project/dt/scripts/build_world -dev -cdetest
+Thursday	19	hans	cde-sun \
+    /project/dt/scripts/build_world -dev -cdetest
+
+
+
+#
+# Friday
+#
+Friday		02	build-hp	cde-hp \
+    /project/dt/scripts/build_id \
+		-dev -log_path /project/dt/ID/cdeID
+Friday		03	build-hp	cde-hp \
+    /project/dt/scripts/build_id \
+		-cdetest -log_path /project/dt/ID/cde-testID
+
+Friday		05	hans	none \
+    /project/dt/scripts/make_report_dir
+		-log_path /project/dt/logs/build/reports/LATEST
+Friday		06	hans	cde-sun \
+    /project/dt/scripts/cc_checkedout \
+		-log_path /project/dt/logs/build/reports/LATEST/checkedout
+Friday		06	hans	cde-sun \
+    /project/dt/scripts/cc_submissions \
+		-log_path /project/dt/logs/build/reports/LATEST/submitted
+Friday		07	hans	none \
+	/project/dt/scripts/build_summary_cron \
+		-retries 3 \
+		-c /project/dt/scripts/x11.components \
+		-c /project/dt/scripts/motif.components \
+		-c /project/dt/scripts/cde.components \
+		-c /project/dt/scripts/cdedoc.components \
+		-c /project/dt/scripts/cdetest.components \
+		-s /project/dt/logs/build/cde-hp/LATEST/build.summary \
+		-s /project/dt/logs/build/cde-sun/LATEST/build.summary \
+		-log_path /project/dt/logs/build/reports/LATEST/build.summary
+
+Friday		16	build-hp	cde-hp \
+    /project/dt/scripts/build_world -clean -all
+Friday		16	hans	cde-sun \
+    /project/dt/scripts/build_world -clean -all

+ 5 - 0
cde/admin/BuildTools/tog/cde.crontab

@@ -0,0 +1,5 @@
+###############################################################################
+#
+# Builds and reports 
+#
+15 * * * *  /project/dt/scripts/cron_scripts -db /project/dt/admin/cron/cde.crondb

+ 9 - 0
cde/admin/BuildTools/tog/cdedoc.components

@@ -0,0 +1,9 @@
+doc/common
+doc/de_DE.ISO8859-1
+doc/es_ES.ISO8859-1
+doc/fr_FR.ISO8859-1
+doc/it_IT.ISO8859-1
+doc/ja_JP.dt-eucJP
+doc/C
+doc/tmp
+doc/util

+ 54 - 0
cde/admin/BuildTools/tog/cdetest.components

@@ -0,0 +1,54 @@
+config 
+util 
+tet 
+src
+comp_suites/XmMT 
+comp_suites/threadsafe
+comp_suites/DefConfig
+comp_suites/DtEditor
+comp_suites/DtSvc
+comp_suites/dtaction
+comp_suites/dtcm
+comp_suites/dtcalc
+comp_suites/dtfile
+comp_suites/dthelp
+comp_suites/dtpad
+comp_suites/dtspcd
+comp_suites/dtterm
+comp_suites/dtwm
+comp_suites/dtfp
+comp_suites/DtWidget
+comp_suites/dsdm
+comp_suites/dtstyle
+comp_suites/dtmail
+comp_suites/dtksh
+comp_suites/dtsearchpath
+comp_suites/dtappgather
+comp_suites/dtappintegrate
+comp_suites/dtlp
+comp_suites/dtscreen
+comp_suites/dtsession
+comp_suites/DevEnv
+comp_suites/examples
+comp_suites/synlib
+comp_suites/dtbuilder
+comp_suites/dtlogin
+comp_suites/vert-writing
+comp_suites/tt
+comp_suites/dtperf
+comp_suites/Xp
+comp_suites/printing
+comp_suites/dtudcexch
+comp_suites/dtudcfonted
+comp_suites/dtsr
+comp_suites/dtdocbook
+comp_suites/dtinfo
+comp_suites/onthespot
+comp_suites/xlib_udc
+sys_suites/shared
+sys_suites/Intop
+sys_suites/Stress
+sys_suites/CtPast
+sys_suites/ClipB
+sys_suites/CtMenu
+sys_suites/CHO

+ 173 - 0
cde/admin/BuildTools/tog/compress_msg

@@ -0,0 +1,173 @@
+#!/bin/ksh
+#
+# compress_msg.ksh
+#
+########################################################################
+#set -x
+
+DEBUG="False"
+ERROR_FILE=""
+LOG_FILE=""
+MESSAGE_FILES=""
+MESSAGES_INIT="XXXXXXX"
+MESSAGES="$MESSAGES_INIT"
+PROG_NAME="`basename $0`"
+
+usage ()
+{
+    print -u1 "USAGE: $1"
+    print -u1 "\t{-e | -errorfile} <file>"
+    print -u1 "\t        # Specifies the error file to send errors."
+    print -u1 "\t[-h | -? | -help]"
+    print -u1 "\t        # Print usage and exit"
+    print -u1 "\t[{-l | -logfile} <file>]"
+    print -u1 "\t        # Specifies the file containing msgs to be compressed"
+    print -u1 "\t        # Defaults to using stdin"
+    print -u1 "\t[{-m | -msgfile} <file>]"
+    print -u1 "\t        # Specifies a file containing messages to be"
+    print -u1 "\t        # extracted.  Multiple -m flags can be specified."
+    print -u1 "\t[messages ...]"
+    print -u1 "\t        # Specifies individual messages to be extraced."
+}
+
+#
+# Do command-line processing
+#
+while [ $# -gt 0 ]; do
+    case $1 in
+
+	-debug)
+	    DEBUG="True"
+	    shift 1 ;;
+
+	-e | -errorfile)
+	    if [ $# -lt 2 ]; then
+		print -u2 "$PROG_NAME:  $1 option missing value; exiting ..."
+		do_exit 1
+	    fi
+	    ERROR_FILE=$2
+	    shift 2 ;;
+
+	-m | -msgfile)
+	    MESSAGE_FILES="$MESSAGE_FILES $2"
+	    shift 2 ;;
+
+	-l | -logfile)
+	    if [ $# -lt 2 ]; then
+		print -u2 "$PROG_NAME:  $1 option missing value; exiting ..."
+		exit 1
+	    fi
+	    LOG_FILE=$2
+	    shift 2 ;;
+
+	-h | -? | -help)
+	    usage $PROG_NAME
+	    exit 1 ;;
+
+	*)
+	    MESSAGES="$MESSAGES|$1"
+	    shift 1;;
+    esac
+done
+
+if [ ! -z "$ERROR_FILE" ]
+then
+    exec 2>> $ERROR_FILE
+fi
+
+#
+# Check to make sure that the command-line parameters make sense.
+#
+if [ -z "$MESSAGE_FILES" ] && [ "$MESSAGES" = "$MESSAGES_INIT" ]
+then
+    print -u2 "$PROG_NAME:  No messages or message files have been specified."
+    print -u2 "$PROG_NAME:  exiting ..."
+    exit 1
+fi
+
+for f in $MESSAGE_FILES
+do
+    if [ ! -f $f ]
+    then
+        print -u2 "$PROG_NAME:  Message file \"$f\" does not exist; exiting ..."
+        exit 1
+    fi
+done
+
+if [ -n "$LOG_FILE"  -a  ! -f "$LOG_FILE" ]
+then
+    print -u2 "$PROG_NAME:  Log file \"$LOG_FILE\" does not exist; exiting ..."
+    exit 1
+fi
+
+#
+# Collect all the regular expressions from the message files
+# ignoring those that have been commented out.
+#
+for f in $MESSAGE_FILES
+do
+    IFS="
+"
+    for m in `cat $f`
+    do
+	MESSAGES="$MESSAGES|$m"
+    done
+    IFS=" "
+done
+
+#
+# Build the awk script
+#
+SCRIPT=/tmp/${PROG_NAME}.$$.awk
+
+touch $SCRIPT
+chmod 775 $SCRIPT
+print -n -u1 'BEGIN {
+    do_print = 0
+}
+/.*/ {
+    if (' >> $SCRIPT
+
+IFS="|"
+let i=0
+for m in $MESSAGES
+do
+    if [ i -gt 0 ]; then
+	print -n -u1 " || " >> $SCRIPT
+    fi
+    print -n -u1 "index(\$0, \"$m \")" >> $SCRIPT
+    let i=$i+1
+done
+IFS=" "
+
+
+print -n -u1 ') {
+	save = $0
+        do_print = 1
+	next
+    }
+    if (do_print)
+    {
+	print ">>>" save "<<<"
+	do_print = 0
+    }
+    print
+}' >> $SCRIPT
+
+#
+# Use the awk script to extract the desired messages from the log file.
+#
+if [ -n "$LOG_FILE" ]; then
+    exec < $LOG_FILE
+fi
+awk -f $SCRIPT
+
+#
+# Clean up
+#
+if [ "$DEBUG" != "True" ]
+then
+    /bin/rm $SCRIPT
+fi
+
+exit 0

+ 162 - 0
cde/admin/BuildTools/tog/cron_scripts

@@ -0,0 +1,162 @@
+#!/bin/ksh
+#
+# $TOG: cron_scripts /main/11 1999/04/26 11:42:51 mgreess $
+#
+# This script is run on all of the systems where an automated
+# X build will occur.  
+#
+# The main benefit of using this script is that if the type of build
+# that needs to be done changes, (e.g. a clean build is needed 
+# instead of an incremental build), then only this file needs to be 
+# changed and none of the crontabs need to be changed.  
+#
+############################################################################# 
+
+#
+# The following trap is needed because of a bug in the UXP (Fujitsu)
+# version of ksh.
+#
+trap 'echo "Trapped signal USR1"' USR1
+
+##########################################################################
+##########################################################################
+#
+# Script specific global variables
+#
+##########################################################################
+##########################################################################
+
+SCRIPTS_DIR="`dirname $0`"
+if [ "" = "$SCRIPTS_DIR" ]; then
+	SCRIPTS_DIR=/project/dt/scripts
+fi
+if [ "" = "$ADMIN_CRON" ]; then
+    ADMIN_CRON=/project/dt/admin/cron
+fi
+if [ "" = "$CRON_DATABASE" ]; then
+    CRON_DATABASE=$ADMIN_CRON/crondb
+fi
+
+DEBUG=""
+MAIL_TO=""
+PROG_NAME="`basename $0`"
+
+##########################################################################
+usage ()
+{
+	cat <<eof
+USAGE: $PROG_NAME
+
+	[-debug]
+		# Debugging output
+	[{-db | -database} <cron_database_file>]
+		# Specify the cron database
+		# Default:  $CRON_DATABASE
+	[{-m | -mail} <email>]
+		# Specify an alternate email recipient for unexpected output.
+		# Default: $CDE_MAIL_ALIAS or $X_MAIL_ALIAS
+	[{-sd | -script_dir} <directory>]
+		# Specify an alternate directory for required files.
+		# Default: $SCRIPTS_DIR/
+	[-h | -? | -help]
+		# Print usage and exit
+eof
+}
+
+
+##########################################################################
+
+while [ $# -gt 0 ]; do
+	case $1 in
+		-debug)			DO_DEBUG="True"
+					DEBUG="echo"
+					shift 1 ;;
+		
+		-db | -database)	CRON_DATABASE=$2;
+					shift 2 ;;
+
+		-m | -mail)		MAIL_TO=$2;
+					shift 2 ;;
+
+		-sd | -script_dir)	SCRIPTS_DIR=$2;	
+					export SCRIPTS_DIR;
+					shift 2 ;;
+
+		-h | "-?" | -help | *) 	usage $PROG_NAME;
+					exit 1;
+	esac
+done
+
+#
+# Capture all of the spurious output to stdout and stderr 
+#
+LOGFILE=/tmp/$$.log
+exec  > $LOGFILE 2>&1
+
+#
+# TRACE should be passed into the script as an environment variable
+#    i.e., TRACE=true cron_scripts ...
+#
+if [ "" != "$TRACE" ]; then
+    echo Debugging:       $DO_DEBUG
+    echo Cron Database:   $CRON_DATABASE
+    echo Mail Recipient:  $MAIL_TO
+    echo Scripts Dir:     $SCRIPTS_DIR
+    set -x
+fi
+
+
+##########################################################################
+#
+# Script setup:  Do this after the command line parsing to pick up
+#   an alternate setting of SCRIPTS_DIR
+#
+if [ ! -f $SCRIPTS_DIR/script_setup.ksh ]; then
+    print -u2 "$PRG:  File '$SCRIPTS_DIR/script_setup.ksh' NOT found!"
+    print -u2 "$PRG:  Exiting ..."
+    exit 1
+fi
+. $SCRIPTS_DIR/script_setup.ksh
+
+do_check_file $CRON_DATABASE -f "NOT found"
+
+
+COMM="#"
+DAY="`date +%a`"
+HOST="`uname -n  | sed '/\./s/\..*//'`"
+HOUR="`date +%H`"
+
+cat $CRON_DATABASE | while read LINE; do
+
+    ENTRY="`echo $LINE | grep -v $COMM | grep $HOST | grep $DAY | grep $HOUR`"
+    EDAY="`echo $ENTRY | awk '{ print $1 }'`"
+    EHOUR="`echo $ENTRY | awk '{ print $2 }'`"
+    EHOST="`echo $ENTRY | awk '{ print $3 }'`"
+    EVIEW="`echo $ENTRY | awk '{ print $4 }'`"
+    ECOMMAND="`echo $ENTRY | awk '{ for (i=5; i<=NF; i++) printf(\"%s \",$i) }'`"
+
+    if [ -n "$ENTRY" -a "$HOUR" = "$EHOUR" ]; then
+        if [ "none" = "$EVIEW" ]; then
+            $DEBUG $ECOMMAND
+        else
+            $DEBUG $CLEAR_CASE_TOOL setview -exec "$ECOMMAND" $EVIEW
+        fi
+    fi
+
+done
+
+if [ -s $LOGFILE ]; then
+    if [ "" = "$MAIL_TO" ]; then
+	if [ "`basename $CRON_DATABASE`" = "trw.crondb" ]; then
+	    MAIL_TO=$TRW_MAIL_ALIAS
+	elif [ "`basename $CRON_DATABASE`" = "cde.crondb" ]; then
+	    MAIL_TO=$CDE_MAIL_ALIAS
+	elif [ "`basename $CRON_DATABASE`" = "x.crondb" ]; then
+	    MAIL_TO=$X_MAIL_ALIAS
+	else
+	    MAIL_TO=$CDE_MAIL_ALIAS
+	fi
+    fi
+    mailx -s "Warning: unexpected cron output" $MAIL_TO < $LOGFILE
+fi
+rm -f $LOGFILE

+ 32 - 0
cde/admin/BuildTools/tog/dt_errors.msg

@@ -0,0 +1,32 @@
+ ERROR
+ Error:
+ Error 
+ Error code 
+ error code
+ failed 
+ERROR 
+:E:
+Can\'t
+Cannot write
+Cannot find
+Don\'t
+FATAL
+No space
+\(S\)
+\(U\)
+SGML error
+^gencat:
+cannot
+core dumped
+couldn't
+error:
+error;
+failed:
+fatal:
+killed
+not found
+parser errors
+permission
+too many
+Must be a separator
+I\/O error

+ 7 - 0
cde/admin/BuildTools/tog/dt_ignore.msg

@@ -0,0 +1,7 @@
+dfiles d Basic Error  FolioObject
+dfiles h Basic Error  FolioObject
+dfiles d Basic  Error  FolioObject
+dfiles h Basic  Error  FolioObject
+tt_client_on_exit_killed
+UX:make: ERROR: \$\? \(bu35\)
+SGML error at

+ 10 - 0
cde/admin/BuildTools/tog/dt_make.msg

@@ -0,0 +1,10 @@
+cleaning in
+depending in
+including in
+making Makefiles in
+making all in
+making imake with
+building in
+build installing in
+build install in
+extracting errors and warnings in

+ 8 - 0
cde/admin/BuildTools/tog/dt_warnings.msg

@@ -0,0 +1,8 @@
+WARNING
+ Warning 
+ Warning:
+ warning 
+ warning: 
+ warning\(
+\(E\)
+mkcatdefs: no

+ 278 - 0
cde/admin/BuildTools/tog/extract_log

@@ -0,0 +1,278 @@
+#!/bin/ksh
+#
+# extract_log.ksh
+#
+########################################################################
+#set -x
+
+##########################################################################
+#
+# Script setup:  THIS NEEDS TO BE FIRST
+#
+SCRIPTS_DIR="`dirname $0`"
+if [ "" = "$SCRIPTS_DIR" ]; then
+	SCRIPTS_DIR=/project/dt/scripts
+fi
+if [ ! -f $SCRIPTS_DIR/script_setup.ksh ]; then
+    print -u2 "$PRG:  File '$SCRIPTS_DIR/script_setup.ksh' NOT found!"
+    print -u2 "$PRG:  Exiting ..."
+    exit 1
+fi
+. $SCRIPTS_DIR/script_setup.ksh
+
+##########################################################################
+##########################################################################
+#
+# Script specific global variables
+#
+##########################################################################
+##########################################################################
+COMPONENTS_FILES=""
+COMPONENTS=""
+DEBUG="False"
+LOG_FILE=""
+ERROR_FILE=""
+LOG_DIRECTORY=""
+PROG_NAME="`basename $0`"
+
+usage ()
+{
+    print -u1 "USAGE: $1"
+    print -u1 "\t[{-c | -components_file} <file>]"
+    print -u1 "\t        # Specifies a file containing a list of components to"
+    print -u1 "\t        # be extracted.  Multiple -c flags can be specified."
+    print -u1 "\t{-e | -errorfile} <file>"
+    print -u1 "\t        # Specifies the error file to send errors."
+    print -u1 "\t[-h | -? | -help]"
+    print -u1 "\t        # Print usage and exit"
+    print -u1 "\t[{-ld | -logdirectory} <directory>]"
+    print -u1 "\t        # Specifies an alternative directory to store the"
+    print -u1 "\t        # extracted component logs.  Defaults to the directory"
+    print -u1 "\t        # containing the log file."
+    print -u1 "\t{-l | -logfile} <file>"
+    print -u1 "\t        # Specifies the log file to be extracted from."
+    print -u1 "\t[component ...]"
+    print -u1 "\t        # Specifies individual components to be extraced."
+    print -u1 "\t        # Each component specification is should correspond"
+    print -u1 "\t        # to an individual directory in the source tree."
+}
+
+#
+# Do command-line processing
+#
+while [ $# -gt 0 ]; do
+    case $1 in
+
+	-debug)
+	    DEBUG="True"
+	    shift 1 ;;
+
+	-c | -components_file)
+	    if [ $# -lt 2 ]; then
+		print -u2 "$PROG_NAME:  $1 option missing value; exiting ..."
+		do_exit 1
+	    fi
+	    COMPONENTS_FILES="$2 $COMPONENTS_FILES"
+	    shift 2 ;;
+
+	-e | -errorfile)
+	    if [ $# -lt 2 ]; then
+		print -u2 "$PROG_NAME:  $1 option missing value; exiting ..."
+		do_exit 1
+	    fi
+	    ERROR_FILE=$2
+	    shift 2 ;;
+
+	-ld | -logdirectory)
+	    if [ $# -lt 2 ]; then
+		print -u2 "$PROG_NAME:  $1 option missing value; exiting ..."
+		do_exit 1
+	    fi
+	    LOG_DIRECTORY=$2
+	    shift 2 ;;
+
+	-l | -logfile)
+	    if [ $# -lt 2 ]; then
+		print -u2 "$PROG_NAME:  $1 option missing value; exiting ..."
+		do_exit 1
+	    fi
+	    LOG_FILE=$2
+	    shift 2 ;;
+
+	-h | -? | -help)
+	    usage $PROG_NAME
+	    do_exit 1 ;;
+
+	*)
+	    COMPONENTS="$COMPONENTS $1"
+	    shift 1;;
+    esac
+done
+
+if [ ! -z "$ERROR_FILE" ]
+then
+    exec 2>> $ERROR_FILE
+fi
+
+#
+# Check to make sure that the command-line parameters make sense.
+#
+if [ -z "$COMPONENTS_FILES" ] && [ -z "$COMPONENTS" ]
+then
+    print -u2 "$PROG_NAME:  No components or component files specified."
+    print -u2 "$PROG_NAME:  exiting ..."
+    do_exit 1
+fi
+
+for f in $COMPONENTS_FILES
+do
+    if [ ! -f $f ]
+    then
+        print -u2 "$PROG_NAME:  Component file \"$f\" does not exist."
+        print -u2 "$PROG_NAME:  exiting ..."
+        do_exit 1
+    fi
+done
+
+if [ -z "$LOG_FILE" ]
+then
+    print -u2 "$PROG_NAME:  Missing argument for log file."
+    print -u2 "$PROG_NAME:  exiting ..."
+    do_exit 1
+fi
+
+if [ ! -f $LOG_FILE ]
+then
+    print -u2 "$PROG_NAME:  Log file \"$LOG_FILE\" does not exist."
+    print -u2 "$PROG_NAME:  exiting ..."
+    do_exit 1
+fi
+
+if [ -n "$LOG_DIRECTORY" ] && [ ! -d $LOG_DIRECTORY ]
+then
+    print -u2 "$PROG_NAME:  Log directory \"$LOG_DIRECTORY\" does not exist."
+    print -u2 "$PROG_NAME:  exiting ..."
+    do_exit 1
+fi
+
+if [ -z "$LOG_DIRECTORY" ]
+then
+    LOG_DIRECTORY=`dirname $LOG_FILE`
+    #
+    # Just being paranoid.  dirname should return '.' if there is no
+    # directory component.
+    #
+    if [ -z "$LOG_DIRECTORY" ]
+    then
+	LOG_DIRECTORY='.'
+    fi
+fi
+
+#
+# Collect all the components from the components files.
+#
+for f in "$COMPONENTS_FILES"
+do
+    for c in `cat $f`
+    do
+	COMPONENTS="$COMPONENTS $c"
+    done
+done
+
+#
+# Collect all the build messages
+# ignoring those that have been commented out.
+#
+MESSAGES="XXXXXXX"
+IFS="
+"
+for m in `cat $BUILD_MSGS`
+do
+    MESSAGES="$MESSAGES|$m"
+done
+IFS=" "
+
+#
+# Build the awk script
+#
+SCRIPT=/tmp/${PROG_NAME}.$$.awk
+do_register_temporary_file $SCRIPT
+
+touch $SCRIPT
+chmod 775 $SCRIPT
+print -n -u1 'BEGIN {
+    do_print = 0
+}
+/.*/ {
+    if (' >> $SCRIPT
+
+IFS="|"
+let i=0
+for m in $MESSAGES
+do
+    if [ i -gt 0 ]; then
+	print -n -u1 " || " >> $SCRIPT
+    fi
+    print -n -u1 "index(\$0, \"$m \")" >> $SCRIPT
+    let i=$i+1
+done
+IFS=" "
+
+#
+# NOTE on:  (index($NF, PATTERN) == 1 || index($NF, PATTERN) == 3)
+#	This check is intended to guard against false matches on
+#	subcomponents:  i.e. config and programs/dtlogin/config.
+#	The problem is that top level subdirectories show up differently
+#	than lower level directories.  E.g.:
+#	    /prog/cde/config 		=> making all in ./config...
+#	    /prog/cde/programs/dtlogin	=> making all in programs/dtlogin...
+#
+#	There are 2 ways to handle this, in the components files or here.
+#	I've chosen here.
+#
+print -n -u1 ')
+    {
+        if (index($NF, PATTERN) == 1 || index($NF, PATTERN) == 3)
+	{
+            do_print = 1
+	    print
+	    next
+        }
+        else
+        {
+	    do_print = 0
+	    next
+        }
+    }
+    if (do_print) print
+}' >> $SCRIPT
+
+#
+# Extract each of the specified component logs.
+#
+TMP_LOG_FILE=${LOG_FILE}.$$
+do_register_temporary_file $TMP_LOG_FILE
+
+sed -n -e 's/\(.\{0,254\}\).*/\1/p' $LOG_FILE > $TMP_LOG_FILE
+for c in $COMPONENTS
+do
+    COMPONENT_LOG=$LOG_DIRECTORY/`echo $c | tr "/" ","`.log
+    PATTERN="$c"
+
+    #
+    # sed protects awk from lines which are too long.
+    #
+    if [ "$DEBUG" = "True" ]
+    then
+        echo "awk -f $SCRIPT PATTERN=$PATTERN $TMP_LOG_FILE > 
+	$COMPONENT_LOG"
+    else
+        awk -f $SCRIPT PATTERN=$PATTERN $TMP_LOG_FILE > $COMPONENT_LOG
+    fi
+
+done
+
+#
+# Clean up temporary files and exit
+#
+do_exit 0

+ 67 - 0
cde/admin/BuildTools/tog/extract_log.awk

@@ -0,0 +1,67 @@
+
+BEGIN {
+	do_print = 0
+}
+/making Makefiles in / {
+	pos = match($NF, PATTERN)
+	if (pos == 1) {
+	    do_print = 1
+            print
+	    next
+	}
+	else {
+	    do_print = 0
+	    next
+	}
+}
+/cleaning in / {
+	pos = match($NF, PATTERN)
+	if (pos == 1) {
+	    do_print = 1
+            print
+	    next
+	}
+	else {
+	    do_print = 0
+	    next
+	}
+}
+/including in / {
+	pos = match($NF, PATTERN)
+	if (pos == 1) {
+	    do_print = 1
+            print
+	    next
+	}
+	else {
+	    do_print = 0
+	    next
+	}
+}
+/depending in / {
+	pos = match($NF, PATTERN)
+	if (pos == 1) {
+	    do_print = 1
+            print
+	    next
+	}
+	else {
+	    do_print = 0
+	    next
+	}
+}
+/making All in / {
+	pos = match($NF, PATTERN)
+	if (pos == 1) {
+	    do_print = 1
+            print
+	    next
+	}
+	else {
+	    do_print = 0
+	    next
+	}
+}
+/.*/ {
+	if (do_print) print
+}

+ 239 - 0
cde/admin/BuildTools/tog/extract_msg

@@ -0,0 +1,239 @@
+#!/bin/ksh
+#
+# extract_msg.ksh
+#
+########################################################################
+#set -x
+
+##########################################################################
+#
+# Script setup:  THIS NEEDS TO BE FIRST
+#
+SCRIPTS_DIR="`dirname $0`"
+if [ "" = "$SCRIPTS_DIR" ]; then
+	SCRIPTS_DIR=/project/dt/scripts
+fi
+if [ ! -f $SCRIPTS_DIR/script_setup.ksh ]; then
+    print -u2 "$PRG:  File '$SCRIPTS_DIR/script_setup.ksh' NOT found!"
+    print -u2 "$PRG:  Exiting ..."
+    exit 1
+fi
+. $SCRIPTS_DIR/script_setup.ksh
+
+DEBUG="False"
+IGNORED_MESSAGE_FILES=""
+IGNORED_MESSAGES_INIT="XXXXXXX"
+IGNORED_MESSAGES="$IGNORED_MESSAGES_INIT"
+LOG_FILE=""
+ERROR_FILE=""
+MESSAGE_FILES=""
+MESSAGES_INIT="XXXXXXX"
+MESSAGES="$MESSAGES_INIT"
+PROG_NAME="`basename $0`"
+
+usage ()
+{
+    print -u1 "USAGE: $1"
+    print -u1 "\t{-e | -errorfile} <file>"
+    print -u1 "\t        # Specifies the error file to send errors."
+    print -u1 "\t[-h | -? | -help]"
+    print -u1 "\t        # Print usage and exit"
+    print -u1 "\t[{-i | -ignoredmsgfile} <file>]"
+    print -u1 "\t        # Specifies a file containing messages to be"
+    print -u1 "\t        # ignored.  Multiple -i flags can be specified."
+    print -u1 "\t{-l | -logfile} <file>"
+    print -u1 "\t        # Specifies the log file to be extracted from."
+    print -u1 "\t[{-m | -msgfile} <file>]"
+    print -u1 "\t        # Specifies a file containing messages to be"
+    print -u1 "\t        # extracted.  Multiple -m flags can be specified."
+    print -u1 "\t[messages ...]"
+    print -u1 "\t        # Specifies individual messages to be extraced."
+}
+
+#
+# Do command-line processing
+#
+while [ $# -gt 0 ]; do
+    case $1 in
+
+	-debug)
+	    DEBUG="True"
+	    shift 1 ;;
+
+	-e | -errorfile)
+	    if [ $# -lt 2 ]; then
+		print -u2 "$PROG_NAME:  $1 option missing value; exiting ..."
+		do_exit 1
+	    fi
+	    ERROR_FILE=$2
+	    shift 2 ;;
+
+	-i | -msgfile)
+	    if [ $# -lt 2 ]; then
+		print -u2 "$PROG_NAME:  $1 option missing value; exiting ..."
+		do_exit 1
+	    fi
+	    IGNORED_MESSAGE_FILES="$IGNORED_MESSAGE_FILES $2"
+	    shift 2 ;;
+
+	-m | -msgfile)
+	    if [ $# -lt 2 ]; then
+		print -u2 "$PROG_NAME:  $1 option missing value; exiting ..."
+		do_exit 1
+	    fi
+	    MESSAGE_FILES="$MESSAGE_FILES $2"
+	    shift 2 ;;
+
+	-l | -logfile)
+	    if [ $# -lt 2 ]; then
+		print -u2 "$PROG_NAME:  $1 option missing value; exiting ..."
+		do_exit 1
+	    fi
+	    LOG_FILE=$2
+	    shift 2 ;;
+
+	-h | -? | -help)
+	    usage $PROG_NAME
+	    do_exit 1 ;;
+
+	*)
+	    MESSAGES="$MESSAGES|$1"
+	    shift 1;;
+    esac
+done
+
+if [ ! -z "$ERROR_FILE" ]
+then
+    exec 2>> $ERROR_FILE
+fi
+
+#
+# Check to make sure that the command-line parameters make sense.
+#
+if [ -z "$MESSAGE_FILES" ] && [ "$MESSAGES" = "$MESSAGES_INIT" ]
+then
+    print -u2 "$PROG_NAME:  No messages or message files have been specified."
+    print -u2 "$PROG_NAME:  exiting ..."
+    do_exit 1
+fi
+
+for f in $IGNORED_MESSAGE_FILES
+do
+    if [ ! -f $f ]
+    then
+        print -u2 "$PROG_NAME:  Message file \"$f\" does not exist; exiting ..."
+        do_exit 1
+    fi
+done
+
+for f in $MESSAGE_FILES
+do
+    if [ ! -f $f ]
+    then
+        print -u2 "$PROG_NAME:  Message file \"$f\" does not exist; exiting ..."
+        do_exit 1
+    fi
+done
+
+if [ -z "$LOG_FILE" ]
+then
+    print -u2 "$PROG_NAME:  Missing argument for log file; exiting ..."
+    do_exit 1
+fi
+
+if [ ! -f $LOG_FILE ]
+then
+    print -u2 "$PROG_NAME:  Log file \"$LOG_FILE\" does not exist; exiting ..."
+    do_exit 1
+fi
+
+#
+# Determine where to find perl.
+#
+
+PERL="/usr/local/bin/perl"
+if [ ! -x $PERL ]
+then
+    print -u2 "$PROG_NAME:  Can't find perl executable $PERL; exiting ..."
+    do_exit 1
+fi
+
+#
+# Collect all the regular expressions from the ignored message files.
+#
+for f in $IGNORED_MESSAGE_FILES
+do
+     IGNORED_MESSAGES="$IGNORED_MESSAGES`sed -e '1,$s/.*/|&/' $f`"
+done
+
+#
+# Collect all the regular expressions from the message files.
+#
+for f in $MESSAGE_FILES
+do
+     MESSAGES="$MESSAGES`sed -e '1,$s/.*/|&/' $f`"
+done
+
+if [ "$DEBUG" = "True" ]
+then
+    print -u1 "======= DEBUG DEBUG IGNORED MESSAGES DEBUG DEBUG ========"
+    print -u1 $IGNORED_MESSAGES
+    print -u1 "======= DEBUG DEBUG ================ DEBUG DEBUG ========"
+    print -u1 "======= DEBUG DEBUG MESSAGES DEBUG DEBUG ========"
+    print -u1 $MESSAGES
+    print -u1 "======= DEBUG DEBUG ================ DEBUG DEBUG ========"
+fi
+
+
+#
+# Build the perl script
+#
+SCRIPT=/tmp/${PROG_NAME}.$$.pl
+if [ "$DEBUG" = "False" ]
+then
+    do_register_temporary_file $SCRIPT
+fi
+
+touch $SCRIPT
+chmod 755 $SCRIPT
+print -u1 "#!$PERL" >> $SCRIPT
+print -u1 "LINE: while (<>) {" >> $SCRIPT
+
+IFS="|"
+for m in $IGNORED_MESSAGES
+do
+    MESSAGE=`echo $m | sed -e 's?\/?\\\/?g'`
+    print -u1 "next LINE if /$MESSAGE/;" >> $SCRIPT
+done
+for m in $MESSAGES
+do
+    MESSAGE=`echo $m | sed -e 's?\/?\\\/?g'`
+    print -u1 "next LINE if /$MESSAGE/ && print;" >> $SCRIPT
+done
+IFS=" "
+
+print -u1 "}" >> $SCRIPT
+
+if [ "$DEBUG" = "True" ]
+then
+    print -u1 "======= DEBUG DEBUG SCRIPT DEBUG DEBUG ========"
+    cat $SCRIPT
+    print -u1 "======= DEBUG DEBUG ================ DEBUG DEBUG ========"
+fi
+
+#
+# Use the perl script to extract the desired messages from the log file.
+#
+if [ "$DEBUG" = "True" ]
+then
+    print -u1 "======= DEBUG DEBUG RUN SCRIPT DEBUG DEBUG ========"
+    print -u1 cat $LOG_FILE | $SCRIPT
+    print -u1 "======= DEBUG DEBUG ================ DEBUG DEBUG ========"
+fi
+
+cat $LOG_FILE | $SCRIPT
+
+#
+# Clean up temporary files and exit
+#
+do_exit 0

+ 139 - 0
cde/admin/BuildTools/tog/initialize_view

@@ -0,0 +1,139 @@
+#!/bin/ksh
+#
+# initialize_view
+#
+########################################################################
+
+PROG_NAME=$0
+X_TOP=/proj/x11/xc
+MOTIF_TOP=/proj/motif
+CDE_TOP=/proj/cde
+CDE_TEST_TOP=/proj/cde-test
+VERBOSE=""
+DEBUG=""
+
+usage ()
+{
+	print -u1 "USAGE: $1"
+	print -u1 "\t[-v | -verbose]  # Turn on tracing"
+	print -u1 "\t[-d | -debug]    # Print commands but do NOT execute them"
+}
+
+while [ $# -gt 0 ]; do
+	case $1 in
+		-v | -verbose)		VERBOSE="True";	shift 1 ;;
+
+		-d | -debug)		DEBUG="echo";	shift 1 ;;
+
+		-h | -? | -help)	usage $PROG_NAME 
+					shift 1
+					exit 1 ;;
+	esac
+done
+
+if [ "True" = "$VERBOSE" ]; then
+	set -x
+fi
+
+#
+# Motif
+#
+$DEBUG cd $MOTIF_TOP
+if [ ! -d exports ]; then
+	$DEBUG mkdir exports
+	$DEBUG chmod 777 exports
+fi
+if [ ! -d imports ]; then
+	$DEBUG mkdir imports
+	$DEBUG chmod 777 imports
+fi
+$DEBUG cd imports
+if [ ! -L x11 ]; then
+	$DEBUG ln -s ../../x11/xc/exports x11
+fi
+
+#
+# CDE
+#
+$DEBUG cd $CDE_TOP
+if [ ! -d exports ]; then
+	$DEBUG mkdir exports
+	$DEBUG chmod 777 exports
+fi
+if [ ! -d imports ]; then
+	$DEBUG mkdir imports
+	$DEBUG chmod 777 imports
+fi
+$DEBUG cd imports
+if [ ! -L x11 ]; then
+	$DEBUG ln -s ../../motif/imports/x11 x11
+fi
+if [ ! -L motif ]; then
+	$DEBUG ln -s ../../motif/exports motif
+fi
+
+#
+# CDE test build config links
+#
+
+if [ -d $CDE_TEST_TOP/config ]; then
+	$DEBUG cd $CDE_TEST_TOP/config
+	if [ ! -L OSVersion.tmpl ] || [ ! -L localtree.tmpl ]; then
+
+		case "`uname -s`" in
+	   		HP-UX)	if [ ! -L OSVersion.tmpl ]; then
+					$DEBUG ln -s OSVersiontemplates/10.20 OSVersion.tmpl
+				fi
+
+				if [ ! -L localtree.tmpl ]; then
+					$DEBUG ln -s localtemplates/hpux/10.20/optimized.shared localtree.tmpl 
+				fi
+				;;
+
+	   		OSF1)   if [ ! -L OSVersion.tmpl ]; then
+                                        $DEBUG ln -s OSVersiontemplates/4.0 OSVersion.tmpl
+                                fi
+
+                                if [ ! -L localtree.tmpl ]; then
+                                        $DEBUG ln -s localtemplates/dec/alpha/osf/optimized.sharedlibs localtree.tmpl
+                                fi	
+				;;
+
+                        AIX)  if [ ! -L OSVersion.tmpl ]; then
+                                        $DEBUG ln -s OSVersiontemplates/4.2 OSVersion.tmpl
+                                fi
+
+                                if [ ! -L localtree.tmpl ]; then
+                                        $DEBUG ln -s localtemplates/ibm/rs6000/aix4.2/optimized.sharedlibs localtree.tmpl
+                                fi
+				;;
+
+                        SunOS)  if [ ! -L OSVersion.tmpl ]; then
+                                        $DEBUG ln -s OSVersiontemplates/5.4 OSVersion.tmpl
+                                fi
+
+                                if [ ! -L localtree.tmpl ]; then
+                                        $DEBUG ln -s localtemplates/sun/optimized.sharedlibs localtree.tmpl 
+                                fi
+				;;
+			
+			UNIX_SV) if [ ! -L OSVersion.tmpl ]; then
+                                        $DEBUG ln -s OSVersiontemplates/4.2 OSVersion.tmpl
+                                fi
+
+                                if [ ! -L localtree.tmpl ]; then
+                                        $DEBUG ln -s localtemplates/sun/optimized.sharedlibs localtree.tmpl
+                                fi
+                                ;;
+
+			*)	$DEBUG print -u1 "$PROG_NAME: Test build config links not set up for this architecture"
+				;;
+		esac
+
+	fi
+
+else
+        $DEBUG print -u2 "$PROG_NAME: CDE test config directory $CDE_TEST_TOP/config does not exist!"
+        $DEBUG exit 1
+fi
+exit 0

+ 190 - 0
cde/admin/BuildTools/tog/install_world

@@ -0,0 +1,190 @@
+#!/bin/ksh
+#
+###########################################################################
+# set -x
+
+DEBUG=""
+
+X_TOP=/proj/x11/xc
+MOTIF_TOP=/proj/motif
+CDE_TOP=/proj/cde
+
+LOG_DATE="`date +%h.%d,%H:%M:%S`"
+LOG_ROOT=/project/dt/logs/install
+VIEW=`/usr/atria/bin/cleartool pwv -s`
+LOG_DIR=$LOG_ROOT/$VIEW/$LOG_DATE
+
+DO_X_INSTALL=False
+DO_MOTIF_INSTALL=False
+DO_CDE_INSTALL=False
+
+CLEAN_CDE=False
+CLEAN_DIRS="/var/dt /etc/dt"
+
+INSTALL_ALL_LOC_MSG=False
+INSTALL_ALL_LOC_HELP=False
+INSTALL_ALL_LOC_INFO=False
+
+ALL_LOC_MSG="CDE-DE CDE-MSG-DE CDE-ES CDE-MSG-ES CDE-FR CDE-MSG-FR CDE-IT CDE-MSG-IT CDE-JP CDE-MSG-JP"
+ALL_LOC_HELP="CDE-HELP-DE CDE-HELP-ES CDE-HELP-FR CDE-HELP-IT CDE-HELP-JP"
+ALL_LOC_INFO="CDE-INFOLIB-DE CDE-INFOLIB-ES CDE-INFOLIB-FR CDE-INFOLIB-IT CDE-INFOLIB-JP"
+
+MAKE=/usr/ccs/bin/make
+if [ "IRIX" = "`uname -s`" ]; then
+	MAKE=/sbin/make
+fi
+
+############################################################################
+
+usage ()
+{
+	cat <<eof
+USAGE: $1
+	[-x | -x11]     # Install X11 only
+	[-m | -motif]   # Install Motif only
+	[-c | -cde]     # Install CDE (C locale) only
+	[-lm | -lmsg]	# Install non-C locale message filesets ($ALL_LOC_MSG)
+	[-lh | -lhelp]	# Install non-C locale help filesets ($ALL_LOC_HELP)
+	[-li | -linfo]	# Install non-C locale infolib filesets ($ALL_LOC_INFO)
+	[-a | -all]     # Install everything, i.e. -x, -m, -c, -lm, -lh, -li
+	[-clean]	# Remove '$CLEAN_DIRS' before installing CDE
+	[-d | -debug]	# Print the install commands but do NOT execute them
+	[{-l | -log | -log_dir} <log_dir>] # The default is '$LOG_DIR'
+	[{-mail | mail_list} <user_names>]
+	[-h | -? | -help]  # Print usage and exit
+eof
+}
+
+
+##########################################################################
+
+while [ $# -gt 0 ]; do
+	case $1 in
+		-x | -x11)		DO_X_INSTALL="True"
+					shift 1 ;;
+
+		-m | -motif)		DO_MOTIF_INSTALL="True"
+					shift 1 ;;
+
+		-c | -cde)		DO_CDE_INSTALL="True"
+					shift 1 ;;
+
+		-a | -all)		DO_X_INSTALL="True"
+					DO_MOTIF_INSTALL="True"
+					DO_CDE_INSTALL="True"
+					INSTALL_ALL_LOC_MSG="True"
+					INSTALL_ALL_LOC_HELP="True"
+					INSTALL_ALL_LOC_INFO="True"
+					shift 1 ;;
+
+		-lm | -lmsg)		INSTALL_ALL_LOC_MSG="True"
+					shift 1 ;;
+
+		-lh | -lhelp)		INSTALL_ALL_LOC_HELP="True"
+					shift 1 ;;
+
+		-li | -linfo)		INSTALL_ALL_LOC_INFO="True"
+					shift 1 ;;
+
+		-clean)			CLEAN_CDE="True"
+					shift 1 ;;
+
+		-d | -debug)		DEBUG="echo"
+					shift 1 ;;
+
+		-l | -log | -log_dir)	LOG_DIR=$2;		
+					shift 2 ;;
+
+		-mail | -mail_list)	MAIL_LIST=$2;		
+					shift 2 ;;
+
+		-h | "-?" | -help | *) 	usage $PROG_NAME;
+					exit 1;
+	esac
+done
+
+#
+# Create the log directory
+#
+if [  -z "$CLEARCASE_ROOT" ]; then
+	print -u1 "$0: you must have a view set to do an install.  Exiting ... "
+	exit 1
+fi
+
+#
+# Create the log directory
+#
+if [ ! -d "$LOG_DIR" ]; then
+	$DEBUG mkdir -p $LOG_DIR
+fi
+
+#
+# User must be root to do an install
+#
+id | grep root > /dev/null 2>&1
+if [ "0" != "$?" ]; then
+	print -u1 "$0: only user 'root' may do an install.  Exiting ..."
+	exit 1
+fi
+
+
+#
+# X
+#
+if [ "True" = "$DO_X_INSTALL" ]; then
+	$DEBUG cd $X_TOP
+	$DEBUG $MAKE -i install > $LOG_DIR/x11.install 2>&1
+fi
+
+#
+# Motif
+#
+if [ "True" = "$DO_MOTIF_INSTALL" ]; then
+	$DEBUG cd $MOTIF_TOP
+	$DEBUG $MAKE -i install.cde > $LOG_DIR/motif.install 2>&1
+fi
+
+#
+# CDE
+#
+if [ "True" = "$CLEAN_CDE" ]; then
+	$DEBUG rm -rf $CLEAN_DIRS
+fi
+
+if [ "True" = "$DO_CDE_INSTALL" ]; then
+	$DEBUG $CDE_TOP/admin/IntegTools/dbTools/installCDE 	\
+		-s $CDE_TOP 					\
+		> $LOG_DIR/cde.install 2>&1
+fi
+
+#
+# All localized msgs
+#
+if [ "True" = "$INSTALL_ALL_LOC_MSG" ]; then
+	$DEBUG $CDE_TOP/admin/IntegTools/dbTools/installCDE 	\
+		-s $CDE_TOP 					\
+		-f "$ALL_LOC_MSG" > 				\
+		$LOG_DIR/localized_msg.install 2>&1
+fi
+
+#
+# All localized help
+#
+if [ "True" = "$INSTALL_ALL_LOC_HELP" ]; then
+	$DEBUG $CDE_TOP/admin/IntegTools/dbTools/installCDE 	\
+		-s $CDE_TOP 					\
+		-f "$ALL_LOC_HELP" > 				\
+		$LOG_DIR/localized_help.install 2>&1
+fi
+
+#
+# All localized infolibs
+#
+if [ "True" = "$INSTALL_ALL_LOC_INFO" ]; then
+	$DEBUG $CDE_TOP/admin/IntegTools/dbTools/installCDE 	\
+		-s $CDE_TOP 					\
+		-f "$ALL_LOC_INFO" > 				\
+		$LOG_DIR/localized_infolibs.install 2>&1
+fi
+
+mv /tmp/CDE* $LOG_DIR

+ 99 - 0
cde/admin/BuildTools/tog/make_report_dir

@@ -0,0 +1,99 @@
+#!/bin/ksh
+#
+# make_report_dir
+#
+########################################################################
+#set -x
+
+##########################################################################
+#
+# Script setup:  THIS NEEDS TO BE FIRST
+#
+SCRIPTS_DIR="`dirname $0`"
+if [ "" = "$SCRIPTS_DIR" ]; then
+	SCRIPTS_DIR=/project/dt/scripts
+fi
+if [ ! -f $SCRIPTS_DIR/script_setup.ksh ]; then
+    print -u2 "$PRG:  File '$SCRIPTS_DIR/script_setup.ksh' NOT found!"
+    print -u2 "$PRG:  Exiting ..."
+    exit 1
+fi
+. $SCRIPTS_DIR/script_setup.ksh
+
+##########################################################################
+##########################################################################
+#
+# Script specific global variables
+#
+##########################################################################
+##########################################################################
+
+DEBUG="False"
+LOG_PATH="/project/dt/logs/build/reports/LATEST"
+PROG_NAME="`basename $0`"
+
+usage ()
+{ 
+    cat <<eof
+USAGE: $PROG_NAME
+	[-log_path <path>]
+	[-h | -? | -help] 	
+		# Print usage and exit
+	#
+	# '$PROG_NAME' creates a directory in the parent of the 
+	# specified path.  The directory name is derived from the
+	# current date.  It then creates a link from the newly
+	# created directory to the specified path in the same
+	# parent directory.
+eof
+}
+
+#
+# Do command-line processing
+#
+while [ $# -gt 0 ]; do
+
+    case $1 in
+
+	-debug)
+	    DEBUG="True"
+	    shift ;;
+
+	-h | -help | '-?')
+	    usage $PROG_NAME
+	    do_exit 1 ;;
+
+	-lp | -log_path )
+	    if [ $# -lt 2 ]; then
+		print -u2 "$PROG_NAME:  $1 option missing value; exiting ..."
+		do_exit 1
+	    fi
+	    LOG_PATH=$2
+	    shift 2 ;;
+
+	*)
+	    print -u2 "$PROG_NAME:  invalid option $1; exiting ..."
+	    do_exit 1 ;;
+    esac
+done
+
+PARENT_REPORT_DIR=`dirname $LOG_PATH`
+REPORT_DIR=`basename $LOG_PATH`
+REPORT_DATE="`date +%h%d`"
+
+if [ ! -d "$PARENT_REPORT_DIR/$REPORT_DATE" ]; then
+  if [ -h "$PARENT_REPORT_DIR/$REPORT_DATE" ]; then
+    rm "$PARENT_REPORT_DIR/$REPORT_DATE"
+  fi
+  mkdir -p "$PARENT_REPORT_DIR/$REPORT_DATE"
+fi
+
+if [ -h "$PARENT_REPORT_DIR/$REPORT_DIR" ]; then
+  rm "$PARENT_REPORT_DIR/$REPORT_DIR"
+fi
+ln -s "$REPORT_DATE" "$PARENT_REPORT_DIR/$REPORT_DIR"
+
+#
+# Clean up temporary files and exit
+#
+do_exit 1

+ 13 - 0
cde/admin/BuildTools/tog/motif.components

@@ -0,0 +1,13 @@
+bindings
+bitmaps
+clients/mwm
+clients/uil
+clients/xmbind
+config
+demos
+doc
+lib/Xm
+lib/Mrm
+localized
+tests
+tools/wml

+ 96 - 0
cde/admin/BuildTools/tog/prune_logs

@@ -0,0 +1,96 @@
+#!/bin/ksh
+#
+# prune_logs
+#
+########################################################################
+#set -x
+
+##########################################################################
+#
+# Script setup:  THIS NEEDS TO BE FIRST
+#
+SCRIPTS_DIR="`dirname $0`"
+if [ "" = "$SCRIPTS_DIR" ]; then
+	SCRIPTS_DIR=/project/dt/scripts
+fi
+if [ ! -f $SCRIPTS_DIR/script_setup.ksh ]; then
+    print -u2 "$PRG:  File '$SCRIPTS_DIR/script_setup.ksh' NOT found!"
+    print -u2 "$PRG:  Exiting ..."
+    exit 1
+fi
+. $SCRIPTS_DIR/script_setup.ksh
+
+##########################################################################
+##########################################################################
+#
+# Script specific global variables
+#
+##########################################################################
+##########################################################################
+DEBUG=""
+FIND_OPTIONS=""
+OUTFILE="/dev/null"
+PATHNAME_LIST=""
+PROG_NAME="`basename $0`"
+
+usage ()
+{
+	cat <<eof
+USAGE: $PROG_NAME [options] pathname_list
+
+	[-debug]
+		# Debugging output
+	[-atime +ndays]
+	[-ctime +ndays]
+	[-mtime +ndays]
+		# These flags are passed directly to find to identify
+		# which files and directories should pass the test for
+		# deletion.
+	[-h | -? | -help]
+		# Print usage and exit
+
+	pathname_list
+		# List of directories to be searched for out-of-date
+		# log files
+
+	$PROG_NAME uses find to search all the directories listed in
+	pathname_list for files and subdirectories which are out-of-date
+	as specified by the -atime, -ctime, and -mtime flags deleting
+	any so identified.
+eof
+}
+
+#
+# Do command-line processing
+#
+while [ $# -gt 0 ]; do
+    case $1 in
+
+	-debug)
+	    DEBUG="echo"
+	    shift 1 ;;
+
+	-atime | -ctime | -mtime)
+	    if [ $# -lt 2 ]; then
+		print -u2 "$PROG_NAME:  $1 option missing value; exiting ..."
+		do_exit 1
+	    fi
+	    FIND_OPTIONS="$FIND_OPTIONS $1 $2 "
+	    shift 2 ;;
+
+	-h | "-?" | -help)
+	    usage $PROG_NAME;
+	    do_exit 1 ;;
+
+	*)
+	    PATHNAME_LIST="$PATHNAME_LIST $1"
+	    shift 1;;
+    esac
+done
+
+#
+# Clean up temporary files and exit
+#
+$DEBUG find $PATHNAME_LIST -depth -name '*' $FIND_OPTIONS -exec rm -f {} ";" > $OUTFILE 2>&1
+
+do_exit 0

+ 96 - 0
cde/admin/BuildTools/tog/prune_logs_compress

@@ -0,0 +1,96 @@
+#!/bin/ksh
+#
+# prune_logs
+#
+########################################################################
+#set -x
+
+##########################################################################
+#
+# Script setup:  THIS NEEDS TO BE FIRST
+#
+SCRIPTS_DIR="`dirname $0`"
+if [ "" = "$SCRIPTS_DIR" ]; then
+	SCRIPTS_DIR=/project/dt/scripts
+fi
+if [ ! -f $SCRIPTS_DIR/script_setup.ksh ]; then
+    print -u2 "$PRG:  File '$SCRIPTS_DIR/script_setup.ksh' NOT found!"
+    print -u2 "$PRG:  Exiting ..."
+    exit 1
+fi
+. $SCRIPTS_DIR/script_setup.ksh
+
+##########################################################################
+##########################################################################
+#
+# Script specific global variables
+#
+##########################################################################
+##########################################################################
+DEBUG=""
+FIND_OPTIONS=""
+OUTFILE="/dev/null"
+PATHNAME_LIST=""
+PROG_NAME="`basename $0`"
+
+usage ()
+{
+	cat <<eof
+USAGE: $PROG_NAME [options] pathname_list
+
+	[-debug]
+		# Debugging output
+	[-atime +ndays]
+	[-ctime +ndays]
+	[-mtime +ndays]
+		# These flags are passed directly to find to identify
+		# which files and directories should pass the test for
+		# deletion.
+	[-h | -? | -help]
+		# Print usage and exit
+
+	pathname_list
+		# List of directories to be searched for out-of-date
+		# log files
+
+	$PROG_NAME uses find to search all the directories listed in
+	pathname_list for files and subdirectories which are out-of-date
+	as specified by the -atime, -ctime, and -mtime flags deleting
+	any so identified.
+eof
+}
+
+#
+# Do command-line processing
+#
+while [ $# -gt 0 ]; do
+    case $1 in
+
+	-debug)
+	    DEBUG="echo"
+	    shift 1 ;;
+
+	-atime | -ctime | -mtime)
+	    if [ $# -lt 2 ]; then
+		print -u2 "$PROG_NAME:  $1 option missing value; exiting ..."
+		do_exit 1
+	    fi
+	    FIND_OPTIONS="$FIND_OPTIONS $1 $2 "
+	    shift 2 ;;
+
+	-h | "-?" | -help)
+	    usage $PROG_NAME;
+	    do_exit 1 ;;
+
+	*)
+	    PATHNAME_LIST="$PATHNAME_LIST $1"
+	    shift 1;;
+    esac
+done
+
+#
+# Clean up temporary files and exit
+#
+$DEBUG find $PATHNAME_LIST -depth -name '*' $FIND_OPTIONS -exec gzip -f {} ";" > $OUTFILE 2>&1
+
+do_exit 0

+ 155 - 0
cde/admin/BuildTools/tog/script_setup.ksh

@@ -0,0 +1,155 @@
+#!/bin/ksh
+#
+# script_setup.ksh
+#
+########################################################################
+#set -x
+
+##########################################################################
+##########################################################################
+#
+# Common global code
+#
+##########################################################################
+##########################################################################
+umask 002
+TEMPORARY_FILES=""
+trap '/bin/rm -f $TEMPORARY_FILES; exit 1' INT QUIT TERM
+
+do_exit ()
+{
+    do_delete_temporary_files
+    exit $1
+}
+
+do_delete_temporary_files ()
+{
+    if [ -n "$TEMPORARY_FILES" ]; then
+	/bin/rm -f $TEMPORARY_FILES
+	TEMPORARY_FILES=""
+    fi
+}
+
+do_register_temporary_file ()
+{
+    if [ -n "$1" ]; then
+	if [ -z "$TEMPORARY_FILES" ]; then
+	    TEMPORARY_FILES="$1"
+	else
+	    TEMPORARY_FILES="$TEMPORARY_FILES $1"
+	fi
+    fi
+}
+
+do_check_file ()
+{
+	# $1 = the file to check
+	# $2 = file flag (e.g. "x" for -x, "f" for -f, etc.
+	# #3 = error message
+
+	case $2 in
+		-x)	if [ ! -x $1 ]; then
+				print -u2 "Exiting ...  Executable '$1 $3"
+				do_exit 1
+			fi ;;
+		-d)	if [ ! -d $1 ]; then
+				print -u2 "Exiting ...  Directory '$1 $3"
+				do_exit 1
+			fi ;;
+		-f)	if [ ! -f $1 ]; then
+				print -u2 "Exiting ...  File '$1 $3"
+				do_exit 1
+			fi ;;
+		-L)	if [ ! -L $1 ]; then
+				print -u2 "Exiting ...  Sym link '$1 $3"
+				do_exit 1
+			fi ;;
+		*)	print -u2 "Exiting ... '$1' NOT found!"
+			do_exit 1 ;;
+	esac
+}
+
+##########################################################################
+##########################################################################
+#
+# Directory and executable paths.
+#
+CLEAR_CASE_TOOL=/usr/atria/bin/cleartool
+if [ "" = "$PROJECT_NAME" ]; then
+	LOG_DIR_BASE=/project/dt/logs/build
+else
+	LOG_DIR_BASE=/project/${PROJECT_NAME}/logs/build
+fi
+
+
+##########################################################################
+#
+# Initialize the scripts and data files
+#
+BUILD_PROJECT=$SCRIPTS_DIR/build_project
+BUILD_SUMMARY=$SCRIPTS_DIR/build_summary
+BUILD_WORLD=$SCRIPTS_DIR/build_world
+COMPONENT_FILE="-c $SCRIPTS_DIR/cde.components"
+COMPRESS_MSG=$SCRIPTS_DIR/compress_msg
+EXTRACT_LOG=$SCRIPTS_DIR/extract_log
+EXTRACT_MSG=$SCRIPTS_DIR/extract_msg
+INITIALIZE_VIEW=$SCRIPTS_DIR/initialize_view
+
+CDE_COMPONENTS=$SCRIPTS_DIR/cde.components
+CDEDOC_COMPONENTS=$SCRIPTS_DIR/cdedoc.components
+CDETEST_COMPONENTS=$SCRIPTS_DIR/cdetest.components
+MOTIF_COMPONENTS=$SCRIPTS_DIR/motif.components
+X_COMPONENTS=$SCRIPTS_DIR/x11.components
+BUILD_MSGS=$SCRIPTS_DIR/dt_make.msg
+ERROR_MSGS=$SCRIPTS_DIR/dt_errors.msg
+IGNORE_MSGS=$SCRIPTS_DIR/dt_ignore.msg
+WARNING_MSGS=$SCRIPTS_DIR/dt_warnings.msg
+
+
+##########################################################################
+#
+# Strings used in the Subject line of mailed reports
+#
+SUBJECT_BUILD_SUMMARY="CDE: Build Summary"
+SUBJECT_SUBMISSIONS="CDE: Submissions"
+SUBJECT_CHECKOUTS="CDE: Check-Outs"
+SUBJECT_BUILD_COMPLETE="CDE: Build Complete"
+SUBJECT_DATE='+%m/%d/%y'
+
+
+##########################################################################
+#
+# Build Strings marking information extracted by the build_summary script.
+#
+BTAG_CMPL="BUILD COMPLETE"
+BTAG_CFGS="BUILD CFG SPEC"
+BTAG_DATE="BUILD DATE    "
+BTAG_DFMT="+%a %h %d, %H:%M"
+BTAG_LOGD="BUILD LOG DIR "
+BTAG_PRJT="BUILD PROJECT "
+BTAG_PTFM="BUILD PLATFORM"
+BTAG_TYPE="BUILD TYPE    "
+BTAG_VIEW="BUILD VIEW    "
+
+BTAG_ENDD="BUILD ENDED   "
+BTAG_LOGF="LOG FILE      "
+BTAG_STRT="BUILD STARTED "
+BTAG_SYST="SYSTEM        "
+
+##########################################################################
+#
+# TOP of project development hierarchies
+#
+X_TOP=/proj/x11/xc
+MOTIF_TOP=/proj/motif
+CDE_TOP=/proj/cde
+CDEDOC_TOP=/proj/cde
+CDETEST_TOP=/proj/cde-test
+
+##########################################################################
+#
+# Mail aliases for the project groups
+#
+TRW_MAIL_ALIAS="devtrw"
+CDE_MAIL_ALIAS="devobj"
+X_MAIL_ALIAS="devobj"

+ 85 - 0
cde/admin/BuildTools/tog/x11.components

@@ -0,0 +1,85 @@
+config
+doc
+fonts
+lib/FS
+lib/ICE
+lib/PEX5
+lib/SM
+lib/X11
+lib/XIE
+lib/Xa
+lib/Xau
+lib/Xaw
+lib/Xbsd
+lib/Xdmcp
+lib/Xext
+lib/Xi
+lib/Xmu
+lib/Xp
+lib/Xt
+lib/Xtst
+lib/font
+lib/lbxutil
+lib/oldX
+lib/xkbfile
+lib/xtrans
+lib/zlib
+nls
+programs/Xaserver
+programs/Xserver
+programs/appres
+programs/bdftopcf
+programs/bitmap
+programs/editres
+programs/fsinfo
+programs/fslsfonts
+programs/fstobdf
+programs/iceauth
+programs/lbxproxy
+programs/mkfontdir
+programs/oclock
+programs/proxymngr
+programs/rgb
+programs/rstart
+programs/scripts
+programs/smproxy
+programs/twm
+programs/x11perf
+programs/xauth
+programs/xclipboard
+programs/xclock
+programs/xcmsdb
+programs/xconsole
+programs/xdm
+programs/xdpyinfo
+programs/xfd
+programs/xfindproxy
+programs/xfs
+programs/xfwp
+programs/xhost
+programs/xieperf
+programs/xinit
+programs/xkbcomp
+programs/xkbevd
+programs/xkbprint
+programs/xkbutils
+programs/xkill
+programs/xlogo
+programs/xlsatoms
+programs/xlsclients
+programs/xlsfonts
+programs/xmag
+programs/xmh
+programs/xmodmap
+programs/xprop
+programs/xrdb
+programs/xrefresh
+programs/xrx
+programs/xset
+programs/xsetroot
+programs/xsm
+programs/xstdcmap
+programs/xterm
+programs/xwd
+programs/xwininfo
+programs/xwud

+ 8 - 0
cde/admin/Imakefile

@@ -0,0 +1,8 @@
+XCOMM $XConsortium: Imakefile /main/4 1995/10/30 13:41:46 rswiston $
+#define IHaveSubdirs
+#define PassCDebugFlags
+
+SUBDIRS = IntegTools
+
+MakeSubdirs($(SUBDIRS))
+DependSubdirs($(SUBDIRS))

+ 44 - 0
cde/admin/IntegTools/Imakefile

@@ -0,0 +1,44 @@
+XCOMM $XConsortium: Imakefile /main/5 1996/04/21 19:06:35 drk $
+#define IHaveSubdirs
+#define PassCDebugFlags
+
+SUBDIRS = post_install dbTools updateTools
+
+#ifdef RsArchitecture
+OVERRIDE=install.dt.ibm
+#endif
+
+#ifdef HPArchitecture
+OVERRIDE=install.dt.hp
+#endif
+
+#ifdef SunArchitecture
+LOCAL_CPP_DEFINES=-Usun
+OVERRIDE=install.dt.sun
+#endif
+
+#ifdef UXPArchitecture
+LOCAL_CPP_DEFINES=-Uuxp
+OVERRIDE=install.dt.uxp
+#endif
+
+#ifdef USLArchitecture
+LOCAL_CPP_DEFINES=-Uusl
+OVERRIDE=install.dt.usl
+#endif
+
+#ifdef AlphaArchitecture
+OVERRIDE=install.dt.dec
+#endif
+
+
+MakeSubdirs($(SUBDIRS))
+
+AllTarget(install.dt $(OVERRIDE) dinstall.dt)
+
+CppScriptTarget(install.dt,install.dt.src,$(LOCAL_CPP_DEFINES),)
+CppScriptTarget($(OVERRIDE),$(OVERRIDE).src,$(LOCAL_CPP_DEFINES),)
+CppScriptTarget(dinstall.dt,dinstall.dt.src,$(LOCAL_CPP_DEFINES),)
+
+depend::
+

+ 213 - 0
cde/admin/IntegTools/config/config.dec

@@ -0,0 +1,213 @@
+####################################################
+### Configuration Instructions for DEC OSF1 Systems ###
+####################################################
+
+
+FIXME FIXME:  Need to change this.  Discuss /sbin/init.d/xdm script
+and its operation....    -mcb
+
+
+
+There are two ways to start the desktop:
+
+
+   * You can manually start the desktop Login Manager. The advantage
+     of using this method is that you will not have to edit
+     /etc/inittab.
+
+   * You can enable the system to automatically start the desktop
+     when the system is rebooted.  This is done by editing
+     /etc/inittab.
+
+Removing the Developer's Conference CDE Desktop
+===============================================
+
+It is imperative that Snapshot 1 and Snapshot 2 desktops do not
+co-mingle. Installers and users should ensure that old clients and
+configuration files are exited or removed.
+
+
+Upgrading systems in a networked environment
+--------------------------------------------
+
+If CDE is installed in a network environment, it is imperative that
+all systems be upgraded at the same time.
+
+
+Removing the Snapshot 1 desktop
+-------------------------------
+
+Installers are advised to remove the Snapshot 1 Desktop files from
+their systems. Those clients and files are obsolete.
+
+
+Stopping Desktop clients before installing Snapshot 2
+-----------------------------------------------------
+
+If the Snapshot 1 desktop is not removed, ensure that all desktop
+clients are inactive before installing the Snapshot 2 desktop. If the
+desktop was started via /etc/inittab, issue the telinit command to
+stop dtlogin and any other desktop client.
+
+
+Removing the users's .dtprofile and .dt directory
+-------------------------------------------------
+
+It is strongly advised that all CDE users on the system remove or
+rename their .dt directory and their .dtprofile.  The Snapshot 2
+Desktop is not compatible with the Snapshot 1 Desktop versions of
+these files.
+
+If users have customized their .dt/dtwmrc file and want to keep it,
+they will need to cut and paste the appropriate pieces into the new
+dtwmrc provided.
+
+
+
+Before You Start the Desktop (HP-UX)
+======================================
+
+Special Configurations
+----------------------
+
+If your system has one of these special configurations, you may need to
+edit certain Login Manager files before starting the desktop. See
+chapter 2 of the Getting Started Guide:
+
+
+	* If the system console is a non-bitmap device.
+
+	* If the system is an X terminal or a host for X terminals.
+
+	* If the system has more than one display.
+
+
+
+The Subprocess Control Daemon 
+=============================
+
+If you are working in an environment where a CDE Desktop action needs
+to start an application on another workstation running CDE, the
+Subprocess Control Daemon configuration must be completed on both
+workstations.
+
+1. Log in as root.
+
+2. For authentication, the user's home directory on a remote system
+   must be mounted to the local system.
+
+3. To run an application with a WINDOW_TYPE of NO_STDIO (see Appendix
+   A, Advanced User's and System Administrator's Guide), you will need
+   to provide NFS-access by the local (client) system to the remote
+   (application server) system's /var directory (if /var is a distinct
+   volume), or / directory (if it is not). The mount point must be
+   /nfs/<remote_host>/var (again, if /var is a distinct volume) or
+   /nfs/<remote_host>/ (if it is not). Export the appropriate
+   directory in /etc/exports on both the local and remote hosts.
+
+
+To Start And Stop the Desktop Manually 
+======================================
+
+To Start the Desktop:
+--------------------
+
+1. Log in as root.
+
+2. Enter:
+
+	/usr/dt/bin/dtlogin -daemon
+
+   This starts the Login Manager and displays the Login screen.
+   Logging in starts a desktop session.
+
+To Stop the Desktop:
+--------------------
+
+When you stop the Login Manager, you automatically kill all
+X servers and desktop sessions that it started.
+
+1. In a terminal emulator window, log in as root.
+
+2. Obtain the process id of the parent Login Manager by entering:
+
+	cat /var/dt/Xpid
+
+3. Kill the Login Manager by entering:
+
+	kill -TERM <process_id>
+
+where <process_id> is the value obtained from Xpid.
+
+
+To Enable and Disable Desktop Auto-Start
+========================================
+
+When your system is configured to start the desktop automatically, the
+desktop Login Manager runs when the system is booted.
+
+To start the desktop automatically, you must edit /etc/inittab to:
+
+      * Add a line that starts the CDE Desktop.
+
+      * Set the default run level to the run level assigned to the CDE
+	Desktop.
+
+      NOTE: Edit /etc/inittab very carefully.
+            Errors in the file can prevent the system from booting
+	    successfully.
+
+
+To Enable Desktop Auto-Start
+----------------------------
+
+1. Log in as root.
+
+2. If you are running HP VUE, shut it down by entering:
+
+	/etc/telinit <n>; exit
+
+	where <n> is a run level assigned to the console and not
+	assigned to HP VUE or to halting the system.  You can find a
+	run level by examinining the lines beginning with cons and vue
+	in /etc/inittab.  For example, the following lines indicate
+	that you can use run levels other than 3, 4, or 6.
+
+           halt:6:wait:/usr/lib/X11/ignition/shutdown.ksh
+	   cons:012456:respawn:/etc/getty -h console console
+	   vue :34:respawn:/etc/vuerc
+
+
+3. Make a backup copy of /etc/inittab.
+
+4. Open /etc/inittab for editing (in a diskless cluster, /etc/inittab
+   is a context-dependent file).
+
+5. Look for the line that sets the default run level (starting with
+   init:).  Set the default run level to 5.
+
+	init:5:initdefault:
+
+	
+6. Add a line that starts the desktop at that run level:
+
+	dt :5:respawn:/usr/dt/bin/dtrc                     
+	
+
+To Disable Desktop Auto-Start
+-----------------------------
+
+You can restore a console by changing to a run level assigned to a
+console and not assigned to the desktop.
+
+
+Switching Between CDE and HP VUE
+--------------------------------
+You can switch back and forth between CDE and HP VUE by executing:
+
+	/etc/telinit <n>; exit
+
+
+where <n>=3 switches to HP VUE and <n>=5 switches to CDE.
+
+

+ 207 - 0
cde/admin/IntegTools/config/config.hp

@@ -0,0 +1,207 @@
+####################################################
+### Configuration Instructions for HP-UX Systems ###
+####################################################
+
+There are two ways to start the desktop:
+
+
+   * You can manually start the desktop Login Manager. The advantage
+     of using this method is that you will not have to edit
+     /etc/inittab.
+
+   * You can enable the system to automatically start the desktop
+     when the system is rebooted.  This is done by editing
+     /etc/inittab.
+
+Removing the Developer's Conference CDE Desktop
+===============================================
+
+It is imperative that Snapshot 1 and Snapshot 2 desktops do not
+co-mingle. Installers and users should ensure that old clients and
+configuration files are exited or removed.
+
+
+Upgrading systems in a networked environment
+--------------------------------------------
+
+If CDE is installed in a network environment, it is imperative that
+all systems be upgraded at the same time.
+
+
+Removing the Snapshot 1 desktop
+-------------------------------
+
+Installers are advised to remove the Snapshot 1 Desktop files from
+their systems. Those clients and files are obsolete.
+
+
+Stopping Desktop clients before installing Snapshot 2
+-----------------------------------------------------
+
+If the Snapshot 1 desktop is not removed, ensure that all desktop
+clients are inactive before installing the Snapshot 2 desktop. If the
+desktop was started via /etc/inittab, issue the telinit command to
+stop dtlogin and any other desktop client.
+
+
+Removing the users's .dtprofile and .dt directory
+-------------------------------------------------
+
+It is strongly advised that all CDE users on the system remove or
+rename their .dt directory and their .dtprofile.  The Snapshot 2
+Desktop is not compatible with the Snapshot 1 Desktop versions of
+these files.
+
+If users have customized their .dt/dtwmrc file and want to keep it,
+they will need to cut and paste the appropriate pieces into the new
+dtwmrc provided.
+
+
+
+Before You Start the Desktop (HP-UX)
+======================================
+
+Special Configurations
+----------------------
+
+If your system has one of these special configurations, you may need to
+edit certain Login Manager files before starting the desktop. See
+chapter 2 of the Getting Started Guide:
+
+
+	* If the system console is a non-bitmap device.
+
+	* If the system is an X terminal or a host for X terminals.
+
+	* If the system has more than one display.
+
+
+
+The Subprocess Control Daemon 
+=============================
+
+If you are working in an environment where a CDE Desktop action needs
+to start an application on another workstation running CDE, the
+Subprocess Control Daemon configuration must be completed on both
+workstations.
+
+1. Log in as root.
+
+2. For authentication, the user's home directory on a remote system
+   must be mounted to the local system.
+
+3. To run an application with a WINDOW_TYPE of NO_STDIO (see Appendix
+   A, Advanced User's and System Administrator's Guide), you will need
+   to provide NFS-access by the local (client) system to the remote
+   (application server) system's /var directory (if /var is a distinct
+   volume), or / directory (if it is not). The mount point must be
+   /nfs/<remote_host>/var (again, if /var is a distinct volume) or
+   /nfs/<remote_host>/ (if it is not). Export the appropriate
+   directory in /etc/exports on both the local and remote hosts.
+
+
+To Start And Stop the Desktop Manually 
+======================================
+
+To Start the Desktop:
+--------------------
+
+1. Log in as root.
+
+2. Enter:
+
+	/usr/dt/bin/dtlogin -daemon
+
+   This starts the Login Manager and displays the Login screen.
+   Logging in starts a desktop session.
+
+To Stop the Desktop:
+--------------------
+
+When you stop the Login Manager, you automatically kill all
+X servers and desktop sessions that it started.
+
+1. In a terminal emulator window, log in as root.
+
+2. Obtain the process id of the parent Login Manager by entering:
+
+	cat /var/dt/Xpid
+
+3. Kill the Login Manager by entering:
+
+	kill -TERM <process_id>
+
+where <process_id> is the value obtained from Xpid.
+
+
+To Enable and Disable Desktop Auto-Start
+========================================
+
+When your system is configured to start the desktop automatically, the
+desktop Login Manager runs when the system is booted.
+
+To start the desktop automatically, you must edit /etc/inittab to:
+
+      * Add a line that starts the CDE Desktop.
+
+      * Set the default run level to the run level assigned to the CDE
+	Desktop.
+
+      NOTE: Edit /etc/inittab very carefully.
+            Errors in the file can prevent the system from booting
+	    successfully.
+
+
+To Enable Desktop Auto-Start
+----------------------------
+
+1. Log in as root.
+
+2. If you are running HP VUE, shut it down by entering:
+
+	/etc/telinit <n>; exit
+
+	where <n> is a run level assigned to the console and not
+	assigned to HP VUE or to halting the system.  You can find a
+	run level by examinining the lines beginning with cons and vue
+	in /etc/inittab.  For example, the following lines indicate
+	that you can use run levels other than 3, 4, or 6.
+
+           halt:6:wait:/usr/lib/X11/ignition/shutdown.ksh
+	   cons:012456:respawn:/etc/getty -h console console
+	   vue :34:respawn:/etc/vuerc
+
+
+3. Make a backup copy of /etc/inittab.
+
+4. Open /etc/inittab for editing (in a diskless cluster, /etc/inittab
+   is a context-dependent file).
+
+5. Look for the line that sets the default run level (starting with
+   init:).  Set the default run level to 5.
+
+	init:5:initdefault:
+
+	
+6. Add a line that starts the desktop at that run level:
+
+	dt :5:respawn:/usr/dt/bin/dtrc                     
+	
+
+To Disable Desktop Auto-Start
+-----------------------------
+
+You can restore a console by changing to a run level assigned to a
+console and not assigned to the desktop.
+
+
+Switching Between CDE and HP VUE
+--------------------------------
+You can switch back and forth between CDE and HP VUE by executing:
+
+	/etc/telinit <n>; exit
+
+
+where <n>=3 switches to HP VUE and <n>=5 switches to CDE.
+
+

+ 285 - 0
cde/admin/IntegTools/config/config.ibm

@@ -0,0 +1,285 @@
+
+=================================
+Instructions for IBM AIX Systems 04/11/94
+=================================
+
+The following instructions assume you have already installed the Common Desktop 
+Environment according to the Installation Instructions on the CD jacket.  If 
+CDE is used in a networked environment, all systems should be upgraded at the 
+same time.
+
+There are two ways to start the desktop:
+
+* You can manually start the desktop Login Manager. This method can be used to 
+avoid rebooting the system.  See the section  To Start and Stop the Desktop 
+Manually .
+
+* You can configure the system to start the desktop automatically  upon reboot. 
+ See the section To Enable and Disable Desktop Auto-Start..
+
+Before You Start the Desktop
+============================
+******************************************************************************
+If you have a previous Common Desktop Environment (CDE) version on the system:
+******************************************************************************
+
+Advise all CDE users on the system to remove or rename their $HOME/.dt directory
+and their $HOME/.dtprofile.  The new files are not compatible with the old 
+ones.  If users have customized the $HOME/.dt/dtwmrc file and want to keep 
+it, they will need to cut and paste the appropriate pieces into the new dtwmrc 
+file provided.  
+
+Become the root user on the system.  Make sure all other users on the system 
+are logged out of CDE.  Kill the Login Manager.  
+
+cat /etc/opt/dt/Xpid  (obtain Login Manager process_id)
+
+kill -TERM <process_id>
+
+Killing the Login Manager process works no matter how the process was started. 
+An alternate method is to stop the system resource control for the desktop. 
+This method should only be used if CDE was configured on the system with 
+/opt/dt/bin/dtconfig -e.  If you don't know how CDE was configured on the 
+system, lssrc -s dtsrc will return the status of dtsrc.  If no status 
+is returned, use the kill method in the previous paragraph.
+
+stopsrc -c -s dtsrc
+
+Completely remove the /etc/opt and /opt directory structures from the system. 
+The install script mentioned in the README should have already given you the 
+chance to remove these.  Remove the dtsrc subsystem only if CDE was configured 
+on the system with /opt/dt/bin/dtconfig -e:
+
+rmssys -s dtsrc 
+
+Default Configuration
+
+The Instructions for IBM AIX Systems show basic installation information. 
+We recommend following these instructions before doing any personal 
+customization work except in the case of the Special Configurations.
+
+Special Configurations
+
+If your system has one of these special configurations, you may need to edit 
+certain Login Manager files before starting the desktop.  More detailed 
+information is in the CDE Getting Started Guide.
+
+*         If  the system console is a non-bitmap device (e.g. an ascii 
+terminal)i, comment out the following line in /usr/dt/config/Xservers that
+ starts the Xserver on the console. 
+
+   # :0 Local local@console /path/X [options] :0
+
+*         If the system is an X terminal or a host for X terminals, 
+ CDE must be running on the host and X Display Manager Control Protocol 
+(XDMCP) must be enabled for the X terminal and must direct the Xterminal to 
+contact the Login Manager on a specified host.  
+
+*         If the system has more than one display, see Configuring 
+Multiple Displays in the CDE Getting Started Guide.
+
+To Start and Stop the Desktop Manually
+--------------------------------------
+There are two manual methods to start the desktop:
+
+* You can manually start the CDE Login Manager.  To use this method, you must 
+have permission to log in as root.  This method is preferable, because Login 
+Manager sets certain environment variables that are needed during desktop 
+sessions. See the section Manually Starting and Stopping Login Manager.
+
+* You can log in using conventional methods, and then manually run the 
+CDE Session Manager, which starts a desktop session.  See the section 
+Manually Starting and Stopping Session Manager.  
+
+Manually Starting and Stopping Login Manager
+--------------------------------------------
+To manually start Login Manager:
+
+1.  Log in as root.
+
+2.  Enter:
+
+/usr/dt/bin/dtlogin -daemon
+
+This starts the Login Manager and displays the Login screen.
+Logging in starts a desktop session.
+
+To manually stop Login Manager:
+
+When you stop the Login Manager, you automatically kill all X servers and 
+desktop sessions that it started.
+
+1.  In a terminal emulator window, log in as root.
+
+2.  Obtain the process id of the Login Manager by entering:
+
+cat /var/dt/Xpid
+
+3.  Kill the Login Manager by entering:
+
+kill -TERM <process_id>
+
+where <process_id> is the value obtained from Xpid.
+
+Manually Starting and Stopping Session Manager
+----------------------------------------------
+Using this method 
+
+* leaves you responsible for setting certain environment variables to values 
+required by the desktop if suitable values are not already set in your 
+environment. 
+ 
+
+* allows you to use CDE while others serving from the same system, including 
+the console are not.  
+
+1.  Log in.  (You do not need to log in as root).
+
+2.  With no window system running, from the command line enter:
+
+/usr/bin/X11/xinit /usr/dt/bin/Xsession
+
+HINT:  if a .Xinitrc file is enabled, make sure it is NOT starting another 
+window manager.  Do NOT put the /usr/dt/bin/Xsession in your .profile!
+
+Session Manager stops when you log out.
+
+To Enable and Disable Desktop Auto-Start
+----------------------------------------
+AIX can be configured to start the CDE Desktop automatically when the system 
+is booted.  This method starts CDE as the Session Manager for all users on 
+the system.
+
+There are several ways to do this configuration:
+
+*         From a command line.
+
+*         Using SMIT menus.
+
+*         Using SMIT fastpath.
+
+From a Command Line
+-------------------
+To Enable Desktop Auto-Start:
+
+1.  Log in as root.
+
+2.  From the command line, enter:
+
+/usr/dt/bin/dtconfig -e 
+
+3.  Reboot the machine.
+
+When the system is rebooted, a dtlogin screen will appear.  If you prefer not 
+to reboot at this time, this command will start the Login Manager now.
+
+startsrc -s dtsrc
+
+To Disable Desktop Auto-Start:
+
+1.  Log in as root.
+
+2.  From the command line, enter:
+
+/usr/dt/bin/dtconfig -d
+
+3.  Reboot the machine.
+
+When the system is rebooted, CDE is no longer configured.  If you prefer not 
+to reboot at this time, this command will stop the Login Manager now.
+
+stopsrc -c -s dtsrc
+
+Using SMIT Menus
+----------------
+To Enable Desktop Auto-Start:
+
+1.  Log in as root.
+
+2.  From the command line, enter:
+
+/usr/bin/smit
+
+3.  Go to System Environments.
+
+4.  Go to Change System User Interface.
+
+5.  Select CDE environment.
+
+6.  Press [Enter] when using ASCII SMIT or Click "Do" when using GUI
+SMIT interface.
+
+7.  Exit SMIT.
+
+8.  Reboot the machine.
+
+To Disable Desktop Auto-Start:
+
+1.  Log in as root.
+
+2.  From the command line, enter
+
+/usr/bin/smit
+
+3.  Go to System Environments.
+
+4.  Go to Change System User Interface.
+
+5.  Select Command-line environment.
+
+6.  Press [Enter] when using ASCII SMIT or Click "Do" when 
+   using GUI SMIT interface.
+
+7.  Exit out of SMIT.
+
+8.  Reboot the machine.
+
+Using SMIT `fastpath'
+---------------------
+To Enable Desktop Auto-Start:
+
+1.  Log in as root.
+
+2.  From the command line, enter:
+
+/usr/bin/smit dtconfig
+
+3.  Select CDE environment.
+
+4.  Press [Enter] when using ASCII SMIT or Click "Do" when using GUI 
+SMIT interface.
+
+5.  Exit SMIT.
+
+6.  Reboot the machine. 
+
+To Disable Desktop Auto-Start:
+
+1.  Log in as root.
+
+2.  From the command line, enter:
+
+/usr/bin/smit dtconfig
+
+3.  Select Command-line environment.
+
+4.  Press [Enter] when using ASCII SMIT or Click "Do" when using GUI 
+SMIT interface.
+
+5.  Exit out of SMIT.
+
+6.  Reboot the machine.
+
+Deinstall Instructions
+======================
+The CD also includes a script for deinstallation.  With the CD-ROM mounted 
+according to the Installation Instructions on the CD jacket, enter:
+
+./dinstall.dt
+
+or
+
+./DINSTALL.DT
+
+Everything installed from the installation scripts will be deinstalled.
+

+ 79 - 0
cde/admin/IntegTools/config/config.sco

@@ -0,0 +1,79 @@
+####################################
+### Instructions for SCO Systems ###
+####################################
+
+System Requirements
+===================
+
+    * SCO Open Desktop or SCO Open Server Version 3.0
+    * 386-33, 486, or Pentium based processor
+    * 16MB memory
+    * 1024x768, 256 color graphics system
+    * 70MB free disk space
+    * 30MB Swap Space
+
+
+Before You Start the Desktop
+============================
+
+If your system has one of these special configurations, you may need to
+edit certain Login Manager files before starting the desktop. See
+chapter 2 of the Getting Started Guide:
+
+
+	* If  the system console is a non-bitmap device.
+
+	* If the system is an X terminal or a host for X terminals.
+
+	* If the system has more than one display.
+
+
+
+
+To Start and Stop the Desktop
+============================
+
+1. Log in as the user who will use the desktop and be running the Korn or
+   Bourne shells (ksh or sh).  
+
+2. First, add the following two lines to your .profile:
+
+	PATH=$PATH:/opt/dt/bin
+        . /opt/dt/bin/dtsearchpath
+
+   These lines add the desktop search path to your PATH variable.
+
+3. If you have a .startxrc file in your home directory, move it to a
+   backup location or name by entering:
+
+	 mv .startxrc old.startxrc
+
+4. Copy /etc/opt/dt/dt.startxrc to your home directory and rename it 
+   to .startxrc by entering: 
+
+	cp /etc/opt/dt/dt.startxrc .startxrc
+
+5. Do one of the following:
+
+       * Log out of your ODT session and log in via Scologin.
+
+       * Or, at a shell prompt on a multiscreen not running the X
+         server, run startx by entering:
+
+	 startx
+
+         Be sure to log out to reinvoke your .profile correctly.
+
+
+
+
+
+
+
+
+
+
+
+
+
+

+ 207 - 0
cde/admin/IntegTools/config/config.sun

@@ -0,0 +1,207 @@
+####################################################	04/08/94
+### Instructions for the Sun Solaris Environment ###
+####################################################
+
+
+Removing the October '93 Developer's Conference CDE Desktop
+===========================================================
+
+It is imperative that CDE Snapshot 1 and Snapshot 2 desktops do not
+co-mingle. Installers and users should ensure that old clients and
+configuration files are exited or removed.  Use the instructions
+in this section if the October '93 Snapshot 1 version of CDE is
+installed on your system.
+
+
+   Upgrading systems in a networked environment
+   --------------------------------------------
+
+   If CDE is installed in a network environment, it is imperative that
+   all systems be upgraded at the same time.
+
+
+   Removing the Snapshot 1 desktop
+   -------------------------------
+
+   Installers are advised to remove the Snapshot 1 Desktop files from
+   their systems. Those clients and files are obsolete.  The dinstall.dt
+   script which was provided on the Snapshot 1 CD may be used for this
+   purpose.
+
+
+   Stopping Desktop clients before installing Snapshot 2
+   -----------------------------------------------------
+
+   If the Snapshot 1 desktop is not removed, ensure that all desktop
+   clients are inactive before installing the Snapshot 2 desktop.
+
+
+   Removing the users's .dtprofile and .dt directory
+   -------------------------------------------------
+
+   It is strongly advised that all CDE users on the system remove or
+   rename their .dt directory and their .dtprofile.  The Snapshot 2
+   Desktop is not compatible with the Snapshot 1 Desktop versions of
+   these files.
+
+   If users have customized their .dt/dtwmrc file and want to keep it,
+   they will need to cut and paste the appropriate pieces into the new
+   dtwmrc provided.
+
+
+Before You Start the Desktop
+============================
+
+You can start the CDE Desktop by:
+
+   * Configuring the system to auto-start the CDE Desktop when
+     the system is booted.
+
+   * Or, manually starting the desktop Login Manager.
+
+
+Special Configurations
+----------------------
+
+If your system has one of these special configurations, you may need to
+edit certain Login Manager files before starting the desktop. See the 
+Advanced User's and System Administrator's Guide:
+
+	* If the system console is a non-bitmap device.
+
+	* If the system is an X terminal or a host for X terminals.
+
+	* If the system has more than one display.
+
+
+To Enable and Disable Desktop Auto-Start
+========================================
+
+When auto-start is enabled, the CDE Login Manager runs automatically
+each time the system is booted.  You then log in using the 
+CDE Login Screen.
+
+To Enable Desktop Auto-Start
+----------------------------
+
+1. Log in as root.
+
+2. From the command line, enter:
+
+	/usr/dt/bin/dtconfig -e
+
+A CDE Login screen will appear the next time the system is booted.
+
+
+To Disable Desktop Auto-Start
+-----------------------------
+
+1. Log in as root.
+
+2. From a command line, enter:
+
+	/usr/dt/bin/dtconfig -d
+
+A conventional ascii login will appear the next time the system
+is booted.
+
+
+To Start and Stop the Desktop Manually
+======================================
+
+There are two ways to start the desktop manually:
+
+    * You can manually start the CDE Login Manager, which will display the
+      desktop Login screen.  To use this method, you must have permission
+      to log in as root.
+
+      This method is the preferable manual method, since Login Manager sets 
+      certain environment variables that are needed during desktop sessions.
+
+    * You can log in using conventional methods, and then manually run the CDE
+      Session Manager, which starts a desktop session.
+
+
+Manually Starting and Stopping Login Manager
+--------------------------------------------
+
+When you use this method, you log in using the desktop Login screen.
+When you log in, a desktop session starts.
+
+To manually start Login Manager:
+
+1. Log in as root.
+
+2. With no window system running, from the command line enter:
+
+	/usr/dt/bin/dtlogin
+
+
+To manually stop Login Manager:
+
+1. If you are in a desktop session, exit (via front panel button).
+
+2. On the Login screen, choose Options->Command Line
+   to return to a command line.
+
+3. On the command line, enter [Ctrl]c (hold down [Ctrl] as
+   you press [c]).
+
+You are now back to your root login with a command line prompt. 
+
+
+Manually Starting and Stopping Session Manager
+----------------------------------------------
+
+If you use this method, you are responsible for setting certain environment
+variables to values required by the desktop if suitable values are
+not already set in your environment.  See the Advanced User's and System
+Administrator's Guide.
+
+1. Log in.  (You do not need to log in as root).
+
+   If you set LD_LIBRARY_PATH (its not required for CDE), make sure the 
+   /usr/dt/lib directory is at head of list.  In addition, you should 
+   set the environment variable OPENWINHOME to /usr/openwin.
+
+2. With no window system running, from the command line enter:
+
+	/usr/openwin/bin/xinit /usr/dt/bin/Xsession
+
+This starts your CDE desktop session.  Exit button is on front panel.
+
+
+
+To Configure Subprocess Control Daemon remote access
+====================================================
+
+If you are working in an environment where a CDE Desktop action needs to
+start an application on another workstation running CDE, the Subprocess
+Control Daemon must have access to the /tmp directory of the remote 
+workstation.
+
+The following procedure will provide this.
+
+1. Log in as root.
+
+2. Provide NFS-access by the local (client) system to the remote (application
+   server) system's /tmp directory. The mount point must be
+   /nfs/<remote_host>/tmp.
+
+   On systems running automount, the following procedure provides this mount:
+
+	a. Enter:
+
+	     mkdir /nfs
+
+        b.  Add the following lines to /etc/auto_master:
+
+	     /nfs -hosts -nosuid
+
+	c. To allow export of the /tmp directory, add the following line
+           to /etc/dfs/dfstab:
+
+	    shared -F nfs -o rw /tmp
+
+3. The subprocess control daemon will have correct access the next time 
+   the workstation is booted. 

+ 207 - 0
cde/admin/IntegTools/config/config.usl

@@ -0,0 +1,207 @@
+#########################################################################
+# Configuration Instructions for the UnixWare 1.1 or later Environments #
+#########################################################################
+
+The following instructions assume you have already installed the Common Desktop
+Environment according to the Installation Instructions on the CD jacket.  
+
+There are two ways to start the desktop:
+
+* You can manually start the desktop Login Manager. This method can be used to
+avoid rebooting the system.  See the section  To Start and Stop the Desktop
+Manually .
+
+* You can configure the system to start the desktop automatically  upon reboot.
+ See the section To Enable and Disable Desktop Auto-Start..
+
+
+
+Before You Start the Desktop
+============================
+******************************************************************************
+If you have a previous Common Desktop Environment (CDE) version on the system:
+******************************************************************************
+
+*Advise all CDE users on the system to remove or rename their $HOME/.dt directory
+and their $HOME/.dtprofile.  The new files are not compatible with the old
+ones.  If users have customized the $HOME/.dt/dtwmrc file and want to keep
+it, they will need to cut and paste the appropriate pieces into the new dtwmrc
+file provided.
+
+*Become the root user on the system.  Make sure all other users on the system
+are logged out of CDE.  Kill the Login Manager if running.
+
+   kill -15 `cat /etc/opt/dt/Xpid`
+
+Killing the Login Manager process works no matter how the process was started.
+An alternate method is to stop the system resource control for the desktop.
+This method should only be used if CDE was configured on the system by
+replacing the /etc/rc2.d/S69xdm script.  You can tell if CDE was configured
+this way by checking the existence of /etc/S69xdm.old.  If this file
+exists, then do the following:
+
+	 mv /etc/S69xdm.old /etc/rc2.d/S69xdm
+
+
+
+Special Configurations
+----------------------
+
+If your system has one of these special configurations, you may need to
+edit certain Login Manager files before starting the desktop. See the
+Advanced User's and System Administrator's Guide:
+
+        * If the system console is not a UnixWare supported bitmap device.
+
+        * If the system is an X terminal or a host for X terminals.
+
+        * If the system has more than one display.
+
+
+To Start and Stop the Desktop Manually
+======================================
+
+There are two ways to start the desktop manually:
+
+
+    * You can manually start the CDE Login Manager, which will 
+      display the desktop Login screen.  To use this method, you 
+      must have permission to log in as root.
+
+      This method is preferable, since Login Manager sets certain 
+      environment variables that are needed during desktop sessions.
+
+    * You can log in using conventional methods, and then manually 
+      run the CDE Session Manager, which starts a desktop session.
+      See the section Manually Starting and Stopping the Session 
+      Manager.
+
+Manually Starting and Stopping Login Manager
+--------------------------------------------
+
+When you use this method, you log in using the CDE Login screen.
+When you log in, a desktop session starts.
+
+To manually start Login Manager:
+
+1. Log in as root.
+
+2. Type:
+    LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/dt/lib:/usr/X/lib export LD_LIBRARY_PATH
+
+3. With no window system running, from the command line enter:
+
+	/usr/dt/bin/dtlogin -daemon
+
+   The CDE Graphical Login screen will appear.
+
+4.  For security reasons, you need to exit the shell that invoked dtlogin.
+    Type <Alt><SysRq> p
+       (i.e. Press the <Alt> and <SysRq> keys at the same time, 
+	     release both and then hit 'p'. )
+
+    You should return to an ASCII terminal session.
+
+5. Type:
+       <return>
+       exit
+
+6. You will be asked if you want your virtual terminals closed at once.
+   Type: n
+
+   The CDE Graphical Login screen will reappear.
+
+
+To manually stop Login Manager:
+
+ 1. Log out of the CDE Desktop.
+
+ 2. From the options menu of the CDE Graphical Login choose Command Line.
+
+    This will give you the ASCII login screen.
+
+ 3. Log in as root.
+
+ 4. Type:
+      kill -15 `cat /usr/dt/config/Xpid`
+
+    
+
+Manually Starting and Stopping Session Manager
+----------------------------------------------
+
+If you use this method, you are responsible for setting certain 
+environment variables to values required by the desktop if suitable 
+values are not already set in your environment.  Refer to the Getting
+Started Guide for setting the necessary environment variables.
+
+
+1. Log in.  (You do not need to log in as root).
+
+2. With no window system running, from the command line enter:
+
+	LD_LIBRARY_PATH=/usr/dt/lib:/usr/X/lib:$LD_LIBRARY_PATH
+	export LD_LIBRARY_PATH
+
+	PATH=$PATH:/usr/X/bin
+	export PATH
+	
+	/usr/X/bin/olinit /usr/dt/bin/Xsession 
+
+The Session Manager stops when you log out.
+When auto-start is enabled, the CDE Login Manager runs 
+automatically each time the system is booted.  You then log 
+in using the CDE Login Screen.
+
+
+To Enable and Disable Desktop Auto-Start
+========================================
+UnixWare can be configured to start the CDE Desktop automatically when the system
+is booted.  This method starts CDE as the Session Manager for all users on
+the system.
+
+
+To Enable Desktop Auto-Start
+----------------------------
+
+1. Log in as root.
+
+2.  From the command line, enter:
+
+      NOTE: Step 'a' is necessay only if the /etc/rc2.d/S69xdm
+	    script has been modified after UnixWare was
+	    installed on your system and if the graphical login
+	    is enabled. A copy of the S69xdm script that 
+	    came with the UnixWare installation is located 
+	    in /usr/X/adm.
+	    
+      a. cp /etc/rc2.d/S69xdm /etc/S69xdm.preCDE
+      b. cp /usr/dt/config/S69xdm /etc/rc2.d/S69xdm
+
+A CDE Login screen will appear the next time the system is booted.
+
+
+To Disable Desktop Auto-Start
+-----------------------------
+
+
+	1. Log in as root.
+	
+	2. From a command line, enter:
+	
+		rm /etc/rc2.d/S69xdm
+	
+	If you would like the original UnixWare Desktop Manager Login
+	to appear upon reboot:
+		
+		/usr/X/bin/enable_glogin
+
+		   - OR -
+
+	If a copy of S69xdm was saved as outlined in the section
+	"To Enable Desktop Auto-Start":
+
+		mv /etc/S69xdm.preCDE /etc/rc2.d/S69xdm
+
+	The UnixWare Desktop Manager Login will appear 
+	the next time the system is rebooted.

+ 207 - 0
cde/admin/IntegTools/config/config.uxp

@@ -0,0 +1,207 @@
+#########################################################################
+# Configuration Instructions for the Fujitsu UXP/DS Environments        #
+#########################################################################
+
+The following instructions assume you have already installed the Common Desktop
+Environment according to the Installation Instructions on the CD jacket.  
+
+There are two ways to start the desktop:
+
+* You can manually start the desktop Login Manager. This method can be used to
+avoid rebooting the system.  See the section  To Start and Stop the Desktop
+Manually .
+
+* You can configure the system to start the desktop automatically  upon reboot.
+ See the section To Enable and Disable Desktop Auto-Start..
+
+
+
+Before You Start the Desktop
+============================
+******************************************************************************
+If you have a previous Common Desktop Environment (CDE) version on the system:
+******************************************************************************
+
+*Advise all CDE users on the system to remove or rename their $HOME/.dt directory
+and their $HOME/.dtprofile.  The new files are not compatible with the old
+ones.  If users have customized the $HOME/.dt/dtwmrc file and want to keep
+it, they will need to cut and paste the appropriate pieces into the new dtwmrc
+file provided.
+
+*Become the root user on the system.  Make sure all other users on the system
+are logged out of CDE.  Kill the Login Manager if running.
+
+   kill -15 `cat /etc/opt/dt/Xpid`
+
+Killing the Login Manager process works no matter how the process was started.
+An alternate method is to stop the system resource control for the desktop.
+This method should only be used if CDE was configured on the system by
+replacing the /etc/rc2.d/S69xdm script.  You can tell if CDE was configured
+this way by checking the existence of /etc/S69xdm.old.  If this file
+exists, then do the following:
+
+	 mv /etc/S69xdm.old /etc/rc2.d/S69xdm
+
+
+
+Special Configurations
+----------------------
+
+If your system has one of these special configurations, you may need to
+edit certain Login Manager files before starting the desktop. See the
+Advanced User's and System Administrator's Guide:
+
+        * If the system console is not a UnixWare supported bitmap device.
+
+        * If the system is an X terminal or a host for X terminals.
+
+        * If the system has more than one display.
+
+
+To Start and Stop the Desktop Manually
+======================================
+
+There are two ways to start the desktop manually:
+
+
+    * You can manually start the CDE Login Manager, which will 
+      display the desktop Login screen.  To use this method, you 
+      must have permission to log in as root.
+
+      This method is preferable, since Login Manager sets certain 
+      environment variables that are needed during desktop sessions.
+
+    * You can log in using conventional methods, and then manually 
+      run the CDE Session Manager, which starts a desktop session.
+      See the section Manually Starting and Stopping the Session 
+      Manager.
+
+Manually Starting and Stopping Login Manager
+--------------------------------------------
+
+When you use this method, you log in using the CDE Login screen.
+When you log in, a desktop session starts.
+
+To manually start Login Manager:
+
+1. Log in as root.
+
+2. Type:
+    LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/dt/lib:/usr/X/lib export LD_LIBRARY_PATH
+
+3. With no window system running, from the command line enter:
+
+	/usr/dt/bin/dtlogin -daemon
+
+   The CDE Graphical Login screen will appear.
+
+4.  For security reasons, you need to exit the shell that invoked dtlogin.
+    Type <Alt><SysRq> p
+       (i.e. Press the <Alt> and <SysRq> keys at the same time, 
+	     release both and then hit 'p'. )
+
+    You should return to an ASCII terminal session.
+
+5. Type:
+       <return>
+       exit
+
+6. You will be asked if you want your virtual terminals closed at once.
+   Type: n
+
+   The CDE Graphical Login screen will reappear.
+
+
+To manually stop Login Manager:
+
+ 1. Log out of the CDE Desktop.
+
+ 2. From the options menu of the CDE Graphical Login choose Command Line.
+
+    This will give you the ASCII login screen.
+
+ 3. Log in as root.
+
+ 4. Type:
+      kill -15 `cat /usr/dt/config/Xpid`
+
+    
+
+Manually Starting and Stopping Session Manager
+----------------------------------------------
+
+If you use this method, you are responsible for setting certain 
+environment variables to values required by the desktop if suitable 
+values are not already set in your environment.  Refer to the Getting
+Started Guide for setting the necessary environment variables.
+
+
+1. Log in.  (You do not need to log in as root).
+
+2. With no window system running, from the command line enter:
+
+	LD_LIBRARY_PATH=/usr/dt/lib:/usr/X/lib:$LD_LIBRARY_PATH
+	export LD_LIBRARY_PATH
+
+	PATH=$PATH:/usr/X/bin
+	export PATH
+	
+	/usr/X/bin/olinit /usr/dt/bin/Xsession 
+
+The Session Manager stops when you log out.
+When auto-start is enabled, the CDE Login Manager runs 
+automatically each time the system is booted.  You then log 
+in using the CDE Login Screen.
+
+
+To Enable and Disable Desktop Auto-Start
+========================================
+UnixWare can be configured to start the CDE Desktop automatically when the system
+is booted.  This method starts CDE as the Session Manager for all users on
+the system.
+
+
+To Enable Desktop Auto-Start
+----------------------------
+
+1. Log in as root.
+
+2.  From the command line, enter:
+
+      NOTE: Step 'a' is necessay only if the /etc/rc2.d/S69xdm
+	    script has been modified after UnixWare was
+	    installed on your system and if the graphical login
+	    is enabled. A copy of the S69xdm script that 
+	    came with the UnixWare installation is located 
+	    in /usr/X/adm.
+	    
+      a. cp /etc/rc2.d/S69xdm /etc/S69xdm.preCDE
+      b. cp /usr/dt/config/S69xdm /etc/rc2.d/S69xdm
+
+A CDE Login screen will appear the next time the system is booted.
+
+
+To Disable Desktop Auto-Start
+-----------------------------
+
+
+	1. Log in as root.
+	
+	2. From a command line, enter:
+	
+		rm /etc/rc2.d/S69xdm
+	
+	If you would like the original UnixWare Desktop Manager Login
+	to appear upon reboot:
+		
+		/usr/X/bin/enable_glogin
+
+		   - OR -
+
+	If a copy of S69xdm was saved as outlined in the section
+	"To Enable Desktop Auto-Start":
+
+		mv /etc/S69xdm.preCDE /etc/rc2.d/S69xdm
+
+	The UnixWare Desktop Manager Login will appear 
+	the next time the system is rebooted.

+ 11 - 0
cde/admin/IntegTools/dbTools/Imakefile

@@ -0,0 +1,11 @@
+XCOMM $XConsortium: Imakefile /main/5 1996/04/23 21:26:14 drk $
+
+LOCAL_CPP_DEFINES = -DCDE_INSTALLATION_TOP=$(CDE_INSTALLATION_TOP) \
+                    -DCDE_CONFIGURATION_TOP=$(CDE_CONFIGURATION_TOP) \
+                    -DCDE_LOGFILES_TOP=$(CDE_LOGFILES_TOP) \
+                    -Usun -Uusl -Uuxp -Uaix -Udec -UAIX -Uibm -Uhp
+
+AllTarget(installCDE dinstallCDE)
+
+CppScriptTarget(installCDE,installCDE.src,$(LOCAL_CPP_DEFINES),)
+CppScriptTarget(dinstallCDE,dinstallCDE.src,$(LOCAL_CPP_DEFINES),)

+ 216 - 0
cde/admin/IntegTools/dbTools/UDB.format

@@ -0,0 +1,216 @@
+
+			UDB	FILE	FORMAT			
+
+	The udb (universal data base) format attempts to allow product delivery
+	information for several closely related products to co-exist in the 
+	same database file.  This is an HP Corvallis home-grown format which
+	was originally created to deal with the delivery of similar products
+	on hp-ux, domain and osf platforms. 
+
+	The format is meant to be more or less free form without regard to
+	intervening newlines or whitespace. Comments violate this principle
+	by being line oriented.  Any line whose first non-whitespace character
+	is a '#' is considered a comment.  A semi-colon may be placed between
+	two identifiers to break them up into separate tokens. If more than
+	one keyword/value pair is placed on a line, semi-colons can be used
+	to separate them visually. The semi-colons are ignored by the parser.
+
+	The special syntax characters ( "{",":",";","=","}") may be embedded
+	in an identifier by escaping them with a backslash.
+
+Semantic Note:
+	The tools associated with the udb databases apply semantic meaning
+	to seven kinds of information about a file.  There are seven Special
+	Tokens which may be used to identify the keywords with which the
+	semantic information should be associated.
+
+		Special Token			 description
+		------------			-----------
+		   <SRC>		The path (relative to the top of a
+					build tree) to the source of a 
+					product deliverable file.
+
+		   <DEST> 		The full destination path location of 
+					a deliverable file in the target 
+					machine's file system.
+
+		   <LNK> 		The full path name (in the target
+					machine's file system) of the source 
+					file for a symbolic link. (i.e. The file
+					pointed to).
+
+		   <TYPE>		The kind of file object being installed.
+					(i.e. file, sym_link, hard_link,
+					directory, etc. )
+
+		   <MODE>		The (numeric) permissions assigned to
+					the new object. This value should be
+				 	in the usual octal notation.
+
+		   <OWNER>		The symbolic name of the owner of the
+					new file.
+
+		   <GROUP>		The symbolic name of the group of the
+					new file. 
+
+	The hp-ux fileset databases have traditionally used the
+	following keywords for these items:
+
+		hpux keyword			Special Token
+		------------			-----------
+		a_out_location :	   	    <SRC>	
+		install_target :		    <DEST>	
+		link_source :			    <LNK>	
+		type :				    <TYPE>	
+		mode :				    <MODE>	
+		owner :				    <OWNER>
+		group :				    <GROUP>
+	
+	The default for the udb databases is to associate the <SRC> semantics
+	with the "a_out_location" keyword, the <DEST> semantics with the
+	"install_target" keyword, etc.  This behavior may be modified by
+	assigning a special token to a keyword in the Release Definition
+	Section of the database file.
+
+	
+General Format:
+	A udb file has two sections.  First, a Release Definition Section,
+	which describes the keyword pairs to be maintained for a given
+	release stream and second, the individual file records for each
+	file which is to be delivered.  
+	
+	1) Release Definition Section
+	
+		The Release Definition Section defines the keyword-value
+		pairs which are to be maintained for each release. The
+		release_id is an identifier which is used to identify the
+		set of defaults for a particular release.  The special
+		release_id of "default" is used specify the default set
+		of keyword/value pairs for an undefined release_id. The
+		values associated with keywords in this section provide
+		defaults for those keywords in later File Entries.
+
+		The name and number of these pairs need not be the same for 
+		all release streams.
+	------------------------------
+	For example:
+	The following entry in the Release Definition Section
+
+		{ hpux : defaults
+			src = <SRC>
+			dest = <DEST>
+			link_source =
+			type = file
+			perm = <MODE>
+			perm = 0555
+			owner = bin
+			group = bin
+			project = xwindows
+		}
+	
+	defines the defaults for the "hpux" release stream.  It 
+	states that we should maintain information about src, dest, link_source,	type, perm, owner, group and project in the database.  Furthermore
+	the semantics of <SRC> are to be associated with the keyword "src",
+	<DEST> with "dest", link_source is associated with <LNK> by default,
+	and type is associated with <TYPE> by default. Note that we associate
+	perm with <MODE> semantics and supply a default value (0555) different
+	from the automatic 0444 default. Owner and group have their usual
+	meaning and a field called "project" is defined with a default value
+	of "xwindows".  No semantic information is known about the "project"
+	field but it's value will be maintained.
+	-------------------------
+
+
+	2) File Entries
+		After the Release Definition Section, come the entries for
+	   the deliverable files comprising the release.  The build-tree-top
+	   relative path name of a source file is followed by one or more
+	   destination specifications which describe where in the product
+	   this file should go, as well as the ownerships/permissions etc. that
+	   should be associated with it. Any missing keyword/value pairs will
+	   be filled in by the defaults provided in the Release Definition 
+	   Section. 
+		Information may differ between release
+	   streams.  If there is no destination spec for a given release and
+	   there is no "default" destination spec then that souce file will
+	   not be delivered for that release.  The "default" destination spec
+	   (if it exists) should come last and is applied for release streams
+	   that do not have more specific destination specs.
+
+	   -------------------
+	   For example The following file entry:
+	
+	   cose/unity1/types/coe.vf 
+	   { hp-ux
+		install_target = /usr/coe/newconfig/coe.vf
+	   }
+	   { aix
+		install_target = /usr/coe/types/coe.vf
+	   }
+	   { default 
+		install_target = /var/coe/types/coe.vf
+		owner = sys
+		group = admin
+	   }
+	
+	   states that on hp-ux the file found at 
+	   $(TOP)/cose/unity1/types/coe.vf in the build tree, is to be delivered
+	   to "/usr/coe/newconfig/coe.vf" on hp-ux; "/usr/coe/types/coe.vf" on
+	   aix; and "/var/coe/types/coe.vf" on all other release platforms.  In
+	   addition, on all platforms other than hp-ux and aix the default
+	   owner and group (usually bin,bin) are replaced by sys,admin for this
+	   file.
+	   ------------------
+
+Pseudo-BNF:
+	Here follows a pseudo-BNF description of the syntax of a
+	udb file:
+	---------------------------------------------------------------------
+
+	udbFile = release_definition_section file_records
+
+	release_definition_section = release_def  release_definition_section |
+				     release_def
+
+	release_def = "{" release_id ":" "defaults" record_defs "}"
+
+	release_id = "hp-ux" | "aix" | "sun" | "usl" | "uxp" | "default"
+
+	record_defs = keyword_def "=" special_token |
+		      keyword_def "=" keyword_value
+
+	special_token  = "<SRC>" | "<DEST>" | "<LNK>" |
+		      "<TYPE>" | "<MODE>" | "<OWNER>" | "<GROUP>"
+
+	keyword_def = identifier
+	keyword_value = identifier
+
+	file_records =  file_rec file_records |
+			file_rec
+
+	file_rec = src_spec dest_specs
+
+	src_spec = a_out_loc | link_path
+
+	a_out_loc = < the build tree-top relative path to the source file >
+
+	link_path = < the full path to the link source in the product >
+
+	dest_specs = dest_spec dest_specs |
+			dest_spec
+
+	dest_spec = "{" release_id  value_specs "}"
+
+
+	value_spec = keyword "=" value
+
+	keyword = identifier
+	value   = identifier
+
+	identifier = < any sequence of non-whitespace characters which 
+		   does not contain an unescaped instance of one of
+                   the syntax_chars >
+
+	syntax_chars = "{", ":", ";", "=", "}"
+
+	

+ 82 - 0
cde/admin/IntegTools/dbTools/UDB.tools

@@ -0,0 +1,82 @@
+
+		UDB TOOLS
+		---------
+
+The udb tools are located in the shared source tree in:
+	/x/cdesrc/admin/IntegTools/dbTools
+
+The basic tools for manipulating "udb" databases are:
+
+	udbParseLib.awk 	-- the awk parser for "udb" files.
+		   This awk file contains functions which read the udb
+		   databases into memory and set up awk-style
+		   associative arrays of keyword value pairs
+		   for all the file entries.  This "library"
+		   also contains the default set of print
+		   routines that allow the database information
+		   to be printed in a number of different
+		   formats.  
+			Custom print routines can easily
+		   be written by following the conventions used
+		   in the default print routines.
+			This parser is used by "udbToAny.ksh" and other
+		   scripts which manipulate the ".udb" databases.
+
+	udbToAny.ksh	--  A ksh front end which allows the contents of the
+		   "udb" file to be transformed into a number of different
+		   formats.  It also accepts the name of "custom" awk print
+		   routine which can do new and mysterious things.  The
+		   most useful output at present is the "-toLst" option which
+		   produces output suitable for the "mkProd" script.
+			NOTE: This script accepts more than one "udb" file
+		   as input but only the Release Definitions from the first
+		   udb file will be applied.
+
+	mkProd	-- a ksh script which will create a product tree from the
+		  files in a build tree based on the contents of its input.
+		  This script takes a one-line format (.lst format) as input.
+		  This one-line format can be generated from a "udb" file by
+		  using the "-toLst" option in "udbToAny.ksh".
+			This script calls two other ksh scripts "uncomment"
+		  and "linksLast".  They do very simple tasks and should 
+		  probably be rewritten as simple ksh functions in mkProd.
+		NOTE:	There is shell code to do automatic stripping of
+			executables and compression of man pages etc. but
+			most of that is turned off.
+
+
+	There are other more complicated tools that act on "udb" databases,
+	but they are hp-ux specific.  
+
+	Example 1
+	---------
+	Suppose /x/cde_hpux is a build tree containing a successful hpux build.
+	Suppose COE-RUN.udb and COE-RUN-ADMIN.udb are databases defining the
+	COE-RUN product.
+	To create a product tree at: "/prod/hpux/COE-RUN"
+	run the following two commands (as root):
+
+1)	udbToAny.ksh -ReleaseStream hp-ux -toLst COE-RUN.udb COE-RUN-ADMIN.udb > COE-RUN.lst
+2)	mkProd -D /prod/hpux/COE-RUN -S /x/cde_hpux COE-RUN.lst
+
+	NOTE: mkProd -f COE-RUN -D /prod/hpux -S /x/cde_hpux COE-RUN.lst
+	      would produce essentially the same results as 2) above.
+
+	Example 2
+	---------
+	Suppose we wanted to install the above bits on a test system.  Then
+	as root:
+
+	1) udbToAny.ksh -ReleaseStream hp-ux -toLst COE-RUN.udb COE-RUN-ADMIN.udb 
+		| mkProd -D / -S /x/cde_hpux
+	
+	will install the bits on your root file system.
+
+		
+
+
+		  
+
+	
+
+	

+ 311 - 0
cde/admin/IntegTools/dbTools/dinstallCDE.src

@@ -0,0 +1,311 @@
+XCOMM! /bin/ksh
+XCOMM $XConsortium: dinstallCDE.src /main/8 1996/11/25 14:20:36 drk $
+
+XCOMM
+XCOMM This script uses the 'CDE' configuration scripts to de-install the Desktop
+XCOMM environment.
+XCOMM
+XCOMM this script accepts the following parameters:
+XCOMM
+XCOMM      Optional parameters:
+XCOMM
+XCOMM       -f  <filesets>                -- a quoted, space-separated list of 
+XCOMM                                        filesets to unload. The .udb 
+XCOMM                                        extension is not required.
+XCOMM
+XCOMM       -clean   -- remove the temporaray and configuration directories
+XCOMM       -cleanVar-- remove the temporary directory but NOT the 
+XCOMM                   configuration directory
+XCOMM       -prog    -- load only the development environment
+XCOMM       -runtime -- load only the runtime environment
+XCOMM
+XCOMM ##########################################################################
+
+#define HASH #
+#define STAR *
+
+REVISION="$(echo "$Revision: /main/8 $" | awk '{print $2}')"
+
+Log()
+{
+    echo "$1" | tee -a /tmp/dinstallCDE.log
+}
+
+DoFilesetScript()
+{
+  typeset ScriptName
+
+  FilesetName=$1
+  ScriptName=$2		# use long config file name (configFoo)
+
+  test_string=${DATABASE_FILES#*$FilesetName}
+  if (( ${#DATABASE_FILES} > ${#test_string} ))
+  then
+    if [ -x $POST_INSTALL_DIR/$PLATFORM_SCRIPT_DIR/$ScriptName ]
+    then
+	Log "Executing $PLATFORM specific $FilesetName de-customize script"
+	$POST_INSTALL_DIR/$PLATFORM_SCRIPT_DIR/$ScriptName -d 2>&1 | \
+				tee -a /tmp/$ScriptName.dverify
+    elif [ -x $POST_INSTALL_DIR/$ScriptName ]
+    then
+	Log "Executing $FilesetName de-customize script" 
+	$POST_INSTALL_DIR/$ScriptName -d 2>&1 | tee -a /tmp/$ScriptName.dverify
+    fi
+  fi
+}
+
+DoLangScript()
+{
+  typeset ScriptName
+
+  if [ "$BUILD_TREE" = "" ]; then
+    ScriptName=$2	# use short config file name (foo.cfg)
+  else
+    ScriptName=$1	# use long config file name (configFoo)
+  fi
+
+  if [ $CDECONFIGDIR = "CONFIG" ]; then
+    typeset -u ScriptName
+  fi
+
+  if [ -x $POST_INSTALL_DIR/$PLATFORM_SCRIPT_DIR/$ScriptName ]
+  then
+    Log "Executing $PLATFORM specific $FilesetName de-customize script"
+    $POST_INSTALL_DIR/$PLATFORM_SCRIPT_DIR/$ScriptName -d $3 2>&1 | \
+				tee -a /tmp/$ScriptName.dverify
+  elif [ -x $POST_INSTALL_DIR/$ScriptName ]
+  then
+    Log "Executing $FilesetName de-customize script" 
+    $POST_INSTALL_DIR/$ScriptName -d $3 2>&1 | tee -a /tmp/$ScriptName.dverify
+  fi
+}
+
+DoScripts()
+{
+  Log " "
+
+  DoFilesetScript CDE-TT       configTT      tt.cfg
+  DoFilesetScript CDE-MIN      configMin     min.cfg
+  DoFilesetScript CDE-RUN      configRun     run.cfg
+  DoFilesetScript CDE-HELP-C   configHelp    help.cfg
+  DoFilesetScript CDE-HELP-PRG configHelpPrg helpprg.cfg
+  DoFilesetScript CDE-HELP-RUN configHelpRun helprun.cfg
+  DoFilesetScript CDE-SHLIBS   configShlibs  shlibs.cfg
+  DoFilesetScript CDE-DEMOS    configDemos   demos.cfg
+  DoFilesetScript CDE-FONTS    configFonts   fonts.cfg
+  DoFilesetScript CDE-ICONS    configIcons   icons.cfg
+  DoFilesetScript CDE-INC      configInc     inc.cfg
+  DoFilesetScript CDE-MAN      configMan     man.cfg
+  DoFilesetScript CDE-MAN-DEV  configManDev  mandev.cfg
+  DoFilesetScript CDE-MSG-C    configMsgCat  msgcat.cfg
+  DoFilesetScript CDE-PRG      configPrg     prg.cfg
+
+  HASH see if a lang has been specified and configure backdrops and
+  HASH palettes if it has.
+
+  if [ "$LangOption" != "" ]
+  then
+    DoLangScript configLang lang.cfg $theLang
+  fi
+
+}
+
+USAGE()
+{
+echo "Usage: $(basename $0) [options]"
+echo ""
+echo "\tOptions:"
+echo ""
+echo "\t[-a <udb directory>]\t\talternate place to get the"
+echo "\t\t\t\t\tudb files from."
+echo "\t[-f <filesets>]\t\t\tspecify filesets to be unloaded."
+echo "\t\t\t\t\tThe list should be double-quoted,"
+echo "\t\t\t\t\tspace-separated, with no .udb"
+echo "\t\t\t\t\textensions."
+echo ""
+echo "\t[-clean]\t\t\tremove the temporary and configuration"
+echo "\t\t\t\t\tdirectories"
+echo "\t[-cleanVar]\t\t\tremove the temporary but NOT the "
+echo "\t\t\t\t\tconfiguration directory"
+echo "\t[-prog]\t\t\t\tload only the development environment"
+echo "\t[-runtime]\t\t\tload only the runtime environment"
+echo "\t[-relative]\t\t\trun the relative-located config scripts"
+echo "\t[-lang LANG]\t\t\tspecify LANG to use for backdrops and"
+echo "\t\t\t\t\tpalettes"
+echo ""
+}
+
+ORIGINAL_COMMAND_LINE="$*"
+
+XCOMM Set which system we are on
+BUILDSYSTEM=$(uname)
+
+PLATFORM=""
+PLATFORM_SCRIPT_DIR=""
+
+XCOMM
+XCOMM Set system
+XCOMM 
+  if [ $BUILDSYSTEM = "AIX" ];
+  then
+    PLATFORM=aix
+    PLATFORM_SCRIPT_DIR=ibm
+  elif [ $BUILDSYSTEM = "SunOS" ];
+  then
+    PLATFORM=sun
+    PLATFORM_SCRIPT_DIR=sun
+  elif [ $BUILDSYSTEM = "UNIX_SV" ];
+  then
+    PLATFORM=usl
+    PLATFORM_SCRIPT_DIR=usl
+  elif [ $BUILDSYSTEM = "UNIX_System_V" ];
+  then
+    PLATFORM=uxp
+    PLATFORM_SCRIPT_DIR=uxp
+  elif [ $BUILDSYSTEM = "OSF1" ];
+  then
+    PLATFORM=dec
+    PLATFORM_SCRIPT_DIR=dec
+  else			# Build system = HP
+    PLATFORM=hp-ux
+    PLATFORM_SCRIPT_DIR=hp
+  fi
+
+  if [ "$PLATFORM" = "aix" ];
+  then
+    USER=`/bin/whoami`
+  elif [ "$PLATFORM" = "sun" -o "$PLATFORM" = "usl" -o "$PLATFORM" = "uxp" ];
+  then
+    USER=`/usr/ucb/whoami`
+  else
+    USER=`/usr/bin/whoami`
+  fi
+
+  if [ "$USER" != "root" ];
+  then
+    USAGE
+    echo ""
+    echo "You must be root to run this script"
+    echo ""
+    exit 1
+  fi
+
+  PATH=/bin:/usr/bin:/etc:/usr/bin/X11:
+  export PATH
+
+  CLEANING="no"
+  CLEANING_ETC="no"
+  USE_ALTERNATE_UDB_DIR="no"
+  USE_RELATIVE="no"
+  STARTING_DIR=$PWD
+  DATABASE_FILES=""
+  LeaveLinks="no"
+  REMOVE_LINKS="no"
+  CLEAN_DAEMONS="yes"
+  theLang=""
+  DEVELOP_ENV="yes"
+  RUNTIME_ENV="yes"
+
+  rm -f /tmp/dinstallCDE.log
+
+  Log "Options specified..."
+  while [ $# -ne 0 ]; do
+    case $1 in
+	-a) Log "  - alternate place to get the udb files from"
+	    shift;
+	    [ $# -ne 0 ] || {
+		USAGE
+		exit 1;
+	    }
+	    ALTERNATE_UDB_DIR=$1
+	    USE_ALTERNATE_UDB_DIR="yes"
+            shift;
+	    ;;
+	-f) Log "  - load specific filesets"
+	    shift;
+	    [ $# -ne 0 ] || {
+		USAGE
+		exit 1;
+	    }
+	    DATABASE_FILES=$1
+	    shift;
+	    ;;
+	-clean) Log "  - delete all three cde directories"
+	    CLEANING="yes"
+	    CLEANING_ETC="yes"
+	    shift;
+	    ;;
+	-cleanVar) Log "  - delete only temporary and installation directories"
+	    CLEANING="yes"
+	    shift;
+	    ;;
+	-relative) Log "  - run the relative-located config scripts"
+	    USE_RELATIVE="yes"
+	    shift;
+	    ;;
+	-prog) Log "  - remove only the development environment"
+	    RUNTIME_ENV="no"
+	    shift;
+	    ;;
+	-runtime) Log "  - remove only the runtime environment"
+	    DEVELOP_ENV="no"
+	    shift;
+	    ;;
+        -lang) Log "  - configure backdrops and palettes for LANG"
+            shift;
+            [ $# -ne 0 ] || {
+                USAGE
+                exit 1;
+            }
+            theLang=$1
+            shift;
+            ;;
+        esac
+  done
+
+  echo ""
+
+  TOOL_DIR=$BUILD_TREE/admin/IntegTools/dbTools
+  if [ "$USE_RELATIVE" = "yes" ]
+  then
+    POST_INSTALL_DIR=../post_install
+  else
+    POST_INSTALL_DIR=$BUILD_TREE/admin/IntegTools/post_install
+  fi
+
+  if [ "$USE_ALTERNATE_UDB_DIR" = "yes" ]
+  then
+    DATABASE_DIR=$ALTERNATE_UDB_DIR/databases
+  else
+    DATABASE_DIR=$BUILD_TREE/databases
+  fi
+
+  if [ "$DATABASE_FILES" = "" ]
+  then
+    if [ "$DEVELOP_ENV" = "yes" -a "$RUNTIME_ENV" = "yes" ]
+    then
+      DATABASE_FILES="CDE-RUN CDE-MIN CDE-TT CDE-MAN CDE-HELP-RUN CDE-C \
+                      CDE-MSG-C CDE-HELP-C CDE-SHLIBS CDE-HELP-PRG \
+                      CDE-PRG CDE-INC CDE-DEMOS CDE-MAN-DEV CDE-ICONS \
+		      CDE-FONTS"
+    elif [ "$DEVELOP_ENV" = "yes" ]
+    then
+      DATABASE_FILES="CDE-HELP-PRG CDE-PRG CDE-INC CDE-DEMOS \
+		      CDE-MAN-DEV CDE-SHLIBS"
+    elif [ "$RUNTIME_ENV" = "yes" ]
+    then
+      DATABASE_FILES="CDE-RUN CDE-MIN CDE-TT CDE-MAN CDE-HELP-RUN CDE-C \
+                      CDE-HELP-C CDE-MSG-C CDE-SHLIBS CDE-ICONS CDE-FONTS"
+    fi
+  fi
+
+  INSTALL_LOCATION=CDE_INSTALLATION_TOP
+  CONFIGURE_LOCATION=CDE_CONFIGURATION_TOP
+  LOGFILES_LOCATION=CDE_LOGFILES_TOP
+
+  DoScripts
+  
+  echo "Done."
+  echo ""
+  echo "See /tmp/dinstallCDE.log for a log of this de-install session."
+  echo ""

+ 964 - 0
cde/admin/IntegTools/dbTools/installCDE.src

@@ -0,0 +1,964 @@
+XCOMM! /bin/ksh
+XCOMM $XConsortium: installCDE.src /main/20 1996/11/25 14:21:13 drk $
+
+XCOMM
+XCOMM This script uses the 'CDE' databases to install either the Desktop
+XCOMM environment on a specified machine or creates a tar ball to be used
+XCOMM in an install process.
+XCOMM
+XCOMM this script accepts the following parameters:
+XCOMM       -s <source>         -- The top of build tree where the files are
+XCOMM                              gathered from.
+XCOMM       -z <package>        -- The desktop install package
+XCOMM
+XCOMM      Optional parameters:
+XCOMM
+XCOMM       -t  <package destination>     -- where to store install package
+XCOMM       -pI <actual install location> -- where CDE_INSTALLATION_TOP will be linked to.
+XCOMM       -pC <actual config location>  -- where CDE_CONFIGURATION_TOP will be linked to.
+XCOMM       -pV <actual var location>     -- where CDE_LOGFILES_TOP will be linked to.
+XCOMM	 -a  <alternate udb directory>
+XCOMM       -f  <filesets>                -- a quoted, space-separated list of 
+XCOMM                                        filesets to load. The .udb extension
+XCOMM                                        is not required.
+XCOMM
+XCOMM       -clean   -- remove the temporary, configuration and installation 
+XCOMM                   directories
+XCOMM       -cleanTwo-- remove the temporary and installation directories
+XCOMM                   but NOT the configuration directory
+XCOMM       -cleanEtc-- remove the configuration directories
+XCOMM       -prog    -- load only the development environment
+XCOMM       -runtime -- load only the runtime environment
+XCOMM       -pack    -- create packing list
+XCOMM       -pseudo  -- don't configure the desktop
+XCOMM       -nocompress -- don't compress the tarball (-t only)
+XCOMM
+XCOMM       -Lang           -- load the localized filesets
+XCOMM       -LinkStepOnly   -- set up the -pI, -pC, and -pV links
+XCOMM                          then exit
+XCOMM       -DontRunScripts -- stop after installation
+XCOMM       -RunScriptsOnly -- only execute the scripts
+XCOMM       -configureOnly -- only configure the desktop
+XCOMM
+XCOMM ##########################################################################
+
+#define HASH #
+#define STAR *
+
+
+REVISION="$(echo "$Revision: /main/20 $" | awk '{print $2}')"
+
+Log()
+{
+  echo "$1" | tee -a /tmp/installCDE.log
+}
+
+MakeTarball()
+{
+    Log "\nGenerating UNIX Desktop install package $DATE in $TARBALL_LOCATION"
+    HASH
+    HASH create installable tarball
+    HASH
+    Log "Creating tarball..."
+
+    if [ $PLATFORM = "usl" -o "$PLATFORM" = "uxp" ]
+    then
+      ulimit -f unlimited
+    fi
+
+    DIRNAME=build.$DATE
+    mkdir -p $TARBALL_LOCATION/$DIRNAME
+    cd /
+    echo $DATE >$LOGFILES_LOCATION/.build.$DATE
+    chown bin $LOGFILES_LOCATION/.build.$DATE
+
+    if [ "$COMPRESS_TARBALL" = "yes" ]; then
+      tar -cf - $INSTALL_LOCATION/STAR \
+        2>$TARBALL_LOCATION/$DIRNAME/extract.err |
+        compress -c >$TARBALL_LOCATION/$DIRNAME/dttar.Z
+    else
+      tar -cf $TARBALL_LOCATION/$DIRNAME/dt.tar \
+        $INSTALL_LOCATION/STAR \
+        2>$TARBALL_LOCATION/$DIRNAME/extract.err 2>&1
+    fi
+
+    if [ "$ACTUAL_INSTALLATION_LOC" = "" ]; then
+      actualInstallDir=$INSTALL_LOCATION
+    else
+      actualInstallDir=$ACTUAL_INSTALLATION_LOC
+    fi 
+    let size=$(du -s $actualInstallDir | awk '{print $1}')*512
+
+    HASH load installation fileset *after* tarball generated
+    LoadFileSet "" "CDE-INSTALL"
+
+    HASH create config dir
+    destPost=$TARBALL_LOCATION/$DIRNAME/config
+    mkdir $destPost
+
+    HASH copy config and platform config scripts
+    src=$INSTALL_LOCATION/install/$PLATFORM_SCRIPT_DIR
+    cp $src/config/STAR.cfg $destPost
+   
+    HASH copy this script and install.dt platform overrides
+    cp $src/install.dto $TARBALL_LOCATION/$DIRNAME/install.dto
+    cp $src/install.cde $TARBALL_LOCATION/$DIRNAME/install.cde
+    chmod 755 $TARBALL_LOCATION/$DIRNAME/install.cde
+
+    cd /
+
+    Log "done."
+
+    cat >$TARBALL_LOCATION/$DIRNAME/dt.pkg <<FIN
+PLATFORM: $PLATFORM
+VERSION: $REVISION
+TS: $DATE
+COMPRESSED: $COMPRESS_TARBALL
+SIZE: $size
+CL: $ORIGINAL_COMMAND_LINE
+FILESETS: $DATABASE_FILES
+FIN
+
+    cat >$TARBALL_LOCATION/$DIRNAME/build.status <<FIN
+The UNIX Desktop
+
+BUILD: $DATE
+OVERALL STATUS: <not yet tested>
+OVERALL PERFORMANCE: <not yet tested>
+MAJOR PROBLEMS: <not yet tested>
+
+FIN
+
+    chmod g+w $TARBALL_LOCATION/$DIRNAME/build.status
+}
+
+DoFilesetScript()
+{
+  typeset ScriptName
+
+  FilesetName=$1
+  if [ "$BUILD_TREE" = "" ]; then
+    ScriptName=$3	# use short config file name (foo.cfg)
+  else
+    ScriptName=$2	# use long config file name (configFoo)
+  fi
+
+  if [ $CDECONFIGDIR = "CONFIG" ]; then
+    typeset -u ScriptName
+  fi
+
+  test_string=${DATABASE_FILES#*$FilesetName}
+  if (( ${#DATABASE_FILES} > ${#test_string} ))
+  then
+    if [ -x $POST_INSTALL_DIR/$PLATFORM_SCRIPT_DIR/$ScriptName ]
+    then
+	Log "Executing $PLATFORM specific $FilesetName customize script"
+	$POST_INSTALL_DIR/$PLATFORM_SCRIPT_DIR/$ScriptName -e 2>&1 | \
+				tee -a /tmp/installCDE.log
+    elif [ -x $POST_INSTALL_DIR/$ScriptName ]
+    then
+	Log "Executing $FilesetName customize script" 
+	$POST_INSTALL_DIR/$ScriptName -e 2>&1 | tee -a /tmp/installCDE.log
+    fi
+  fi
+}
+
+DoScripts()
+{
+  Log " "
+
+  DoFilesetScript CDE-TT       configTT      tt.cfg
+  DoFilesetScript CDE-MIN      configMin     min.cfg
+  DoFilesetScript CDE-SHLIBS   configShlibs  shlibs.cfg
+  DoFilesetScript CDE-RUN      configRun     run.cfg
+}
+
+CreatePackingList()
+{
+    Log " "
+    Log "Creating packing list."
+    touch $INSTALL_LOCATION/Packing_list
+    for i in `echo $DATABASE_FILES`
+    do
+      Log "  for $i"
+      $TOOL_DIR/udbToAny.ksh -toDB -ReleaseStream $PLATFORM $DATABASE_DIR/${i}.udb > /tmp/${i}.db
+      if [ -r /tmp/${i}.db ]
+      then
+        for file in `fgrep install_target /tmp/${i}.db | cut -sf 2 -d \: ` 
+        do
+	  echo "$file" >>$INSTALL_LOCATION/Packing_list
+        done
+      fi
+    done
+}
+
+CleanDaemons()
+{
+  HASH kill these processes so that they can be removed and new ones
+  HASH installed
+
+  for i in inetd rpc.ttdbserver rpc.cmsd
+  do
+    if [ "$PLATFORM" = "aix" -a $i = "inetd" ]
+    then
+      lssrc -s inetd >/dev/null 2>&1
+      if [ $? = "0" ]
+      then
+        stopsrc -s inetd >>/tmp/installCDE.log 2>&1
+      fi
+    else    
+      ps -ef | grep $i | grep -v grep >/tmp/tmppsout
+      if [ -s /tmp/tmppsout ]
+      then
+        awk '{print "kill " $2}' /tmp/tmppsout | /bin/csh -f
+        sleep 2
+      fi
+    fi
+  done
+  rm -f /tmp/tmppsout
+}
+
+RestartInetd()
+{
+  HASH now restart inetd
+
+  OLDPWD=`pwd`
+  cd /
+  if [ "$PLATFORM" = "sun" -o "$PLATFORM" = "usl" -o "$PLATFORM" = "uxp" ]
+  then
+    /usr/sbin/inetd -s
+  elif [ "$PLATFORM" = "aix" ]
+  then
+    startsrc -s inetd >>/tmp/installCDE.log 2>&1
+  elif [ "$PLATFORM" = "dec" ]
+  then
+    /usr/sbin/inetd
+  else
+#ifdef hpV4
+    /usr/sbin/inetd 
+#else
+    /etc/inetd
+#endif
+  fi
+  cd $OLDPWD
+}
+
+CheckForActualLocations()
+{
+XCOMM
+XCOMM if different actual locations specified, set up the links
+XCOMM
+
+
+  if [ "$CLEAN_DAEMONS" = "yes" ]
+  then
+    CleanDaemons
+  fi
+
+  HASH remove the contents of the installation directory then the directory
+  HASH itself
+
+  if [ "$CLEANING" = "yes" ]
+  then
+    Log "Removing $INSTALL_LOCATION contents... "
+    if [ -d $INSTALL_LOCATION ]
+    then
+      rm -rf $INSTALL_LOCATION/STAR
+      if [ "$LeaveLinks" = "yes" ]
+      then
+	if [ ! -L $INSTALL_LOCATION ]
+	then
+          rm -rf $INSTALL_LOCATION
+	fi
+      else
+        if [ -L $INSTALL_LOCATION ]
+        then
+          rm -f $INSTALL_LOCATION
+        else
+          rm -rf $INSTALL_LOCATION
+        fi
+      fi
+    fi
+  fi
+
+  if [ "$CONFIGURE_ONLY" = "no" ]
+  then
+    if [ "$ACTUAL_INSTALLATION_LOC" != "" ]
+    then
+
+      HASH
+      HASH first create the actual directory - if not there
+      HASH
+
+      if [ ! -d $ACTUAL_INSTALLATION_LOC ]
+      then
+        mkdir -p $ACTUAL_INSTALLATION_LOC
+        if [ ! -d $ACTUAL_INSTALLATION_LOC ]
+        then
+	  Log "cannot create $ACTUAL_INSTALLATION_LOC directory"
+	  exit 1
+        fi
+      fi
+
+      ln -s $ACTUAL_INSTALLATION_LOC $INSTALL_LOCATION
+
+    else
+      if [ ! -d $INSTALL_LOCATION -a ! -L $INSTALL_LOCATION ]; 
+      then
+        mkdir -p $INSTALL_LOCATION
+      fi
+    fi
+  fi
+
+  if [ "$CLEAN_DAEMONS" = "yes" ]
+  then
+    RestartInetd
+  fi
+
+  HASH remove the contents of the configuration directory
+
+  if [ "$CLEANING_ETC" = "yes" ]
+  then
+    Log "Removing $CONFIGURE_LOCATION contents... "
+    if [ -d $CONFIGURE_LOCATION ]
+    then
+      rm -rf $CONFIGURE_LOCATION/STAR
+      if [ "$LeaveLinks" = "yes" ]
+      then
+        if [ ! -L $CONFIGURE_LOCATION ]
+        then
+          rm -rf $CONFIGURE_LOCATION
+        fi
+      else
+        if [ -L $CONFIGURE_LOCATION ]
+        then
+          rm -f $CONFIGURE_LOCATION
+        else
+          rm -rf $CONFIGURE_LOCATION
+        fi
+      fi
+    fi
+  fi
+	
+  if [ "$ACTUAL_CONFIGURATION_LOC" != "" ]
+  then
+    if [ ! -d $ACTUAL_CONFIGURATION_LOC ]
+    then
+      mkdir -p $ACTUAL_CONFIGURATION_LOC
+      if [ ! -d $ACTUAL_CONFIGURATION_LOC ]
+      then
+	Log "cannot create $ACTUAL_CONFIGURATION_LOC directory"
+	exit 1
+      fi
+    fi
+
+    ln -s $ACTUAL_CONFIGURATION_LOC $CONFIGURE_LOCATION
+
+  else
+    if [ ! -d $CONFIGURE_LOCATION -a ! -L $CONFIGURE_LOCATION ];
+    then
+      mkdir -p $CONFIGURE_LOCATION
+    fi
+  fi
+
+  if [ "$CLEANING" = "yes" ]
+  then
+    Log "Removing $LOGFILES_LOCATION contents... "
+    if [ -d $LOGFILES_LOCATION ]
+    then
+      rm -rf $LOGFILES_LOCATION/STAR
+      if [ "$LeaveLinks" = "yes" ]
+      then
+        if [ ! -L $LOGFILES_LOCATION ]
+        then
+          rm -rf $LOGFILES_LOCATION
+        fi
+      else
+        if [ -L $LOGFILES_LOCATION ]
+        then
+          rm -f $LOGFILES_LOCATION
+        else
+          rm -rf $LOGFILES_LOCATION
+        fi
+      fi
+    fi
+  fi
+
+  if [ "$ACTUAL_VAR_LOC" != "" ]
+  then
+    if [ ! -d $ACTUAL_VAR_LOC ]
+    then
+      mkdir -p $ACTUAL_VAR_LOC
+      if [ ! -d $ACTUAL_VAR_LOC ]
+      then
+	Log "cannot create $ACTUAL_VAR_LOC directory"
+	exit 1
+      fi
+    fi
+
+    ln -s $ACTUAL_VAR_LOC $LOGFILES_LOCATION
+    
+  else
+    if [ ! -d $LOGFILES_LOCATION -a ! -L $LOGFILES_LOCATION ]; 
+    then
+      mkdir -p $LOGFILES_LOCATION
+    fi
+  fi
+
+  Log " "
+}
+
+USAGE()
+{
+echo "Usage: $(basename $0) {-s <source>|-z <package>} [options]"
+echo ""
+echo "\t-s <source>\t\t\tthe top of the build tree"
+echo "\t-z <package>\t\tthe desktop install package"
+echo ""
+echo "\tOptions:"
+echo ""
+echo "\t[-t <package_destination>]\tif specified create an"
+echo "\t\t\t\t\tinstall package and store it in the"
+echo "\t\t\t\t\tdestination."
+echo "\t[-pI <actual install location>]\twhere" CDE_INSTALLATION_TOP "will be linked to."
+echo "\t[-pC <actual config location>]\twhere" CDE_CONFIGURATION_TOP "will be linked to."
+echo "\t[-pV <actual var location>]\twhere" CDE_LOGFILES_TOP "will be linked to."
+echo ""
+echo "\t[-a <udb directory>]\t\talternate place to get the"
+echo "\t\t\t\t\tudb files from."
+echo "\t[-f <filesets>]\t\t\tspecify filesets to be loaded."
+echo "\t\t\t\t\tThe list should be double-quoted,"
+echo "\t\t\t\t\tspace-separated, with no .udb"
+echo "\t\t\t\t\textensions."
+echo ""
+echo "\t[-clean]\t\t\tremove the temporary, configuration, and"
+echo "\t\t\t\t\tinstallation directory"
+echo "\t[-cleanTwo]\t\t\tremove the temporary and installation "
+echo "\t\t\t\t\tdirectory, but NOT the configuration directory"
+echo "\t[-cleanEtc]\t\t\tremove the configuration directory, but "
+echo "\t\t\t\t\NOT the temporary and installation directories"
+echo "\t[-prog]\t\t\t\tload only the development environment"
+echo "\t[-runtime]\t\t\tload only the runtime environment"
+echo "\t[-relative]\t\t\trun the relative-located config scripts"
+echo "\t[-pack]\t\t\t\tcreate a packing list"
+echo "\t[-pseudo]\t\t\tdo not configure desktop when installing"
+echo "\t[-nocompress]\t\t\tdo not compress tarball when creating package"
+echo "\t[-lang LANG]\t\t\tspecify LANG to load appropriate localized"
+echo "\t\t\t\t\tfilesets"
+echo "\t[-LeaveLinks]\t\t\t\tdo not delete the links after cleaning"
+echo ""
+echo "\t[-LinkStepOnly]\t\t\tset up the -pI, -pC, and -pV links"
+echo "\t\t\t\t\tthen exit"
+echo "\t[-DontRunScripts]\t\tstop after installation"
+echo "\t[-RunScriptsOnly]\t\tonly execute the scripts"
+echo "\t[-configureOnly]\t\tonly configure the desktop"
+echo ""
+echo "\tExamples:"
+echo ""
+echo "\tinstallCDE -s /x/cde_hp700_90"
+echo "\tinstallCDE -s /x/cde_aix_32 -f \"CDE_MIN CDE-SHLIBS\""
+echo "\tinstallCDE -s /x/cde_sun_52 -pI /bigdisk/opt/dt -clean"
+echo "\tinstallCDE -s /x/cde_sun_52 -pI /dtinstall -clean\\"
+echo "\t\t-pseudo -t /dtpackages -nocompress"
+}
+
+XCOMM
+XCOMM LoadFileSet() - load a UDB file
+XCOMM $1 - fileset number
+XCOMM $2 - fileset name
+XCOMM
+LoadFileSet()
+{
+  if [ "$1" = "" ]; then
+    num=""
+  else
+    num="$1."
+  fi
+
+  Log "  $num installing database $2"
+  Log "      - creating ${2}.lst file"
+  $TOOL_DIR/udbToAny.ksh  -toLst -ReleaseStream $PLATFORM \
+            $DATABASE_DIR/${2}.udb >  /tmp/${2}.lst
+
+  Log "      - installing ... \c"
+  $TOOL_DIR/mkProd -D / -S $BUILD_TREE /tmp/${2}.lst \
+            2>/tmp/${2}.err 1>/tmp/${2}.good
+  Log "done."
+
+  Log "      - checking for errors ..."
+  rm -f /tmp/${2}.missing
+  awk '{if ($1 == "ERROR:") print "           " $4}' \
+            /tmp/${2}.err >> /tmp/${2}.missing
+  if [ -s /tmp/${2}.missing ]
+  then
+    Log "      - missing files:"
+    cat /tmp/${2}.missing | tee -a /tmp/installCDE.log
+  fi
+}
+
+ORIGINAL_COMMAND_LINE="$*"
+
+XCOMM Set which system we are on
+BUILDSYSTEM=$(uname)
+
+PLATFORM=""
+PLATFORM_SCRIPT_DIR=""
+
+XCOMM
+XCOMM Set system
+XCOMM 
+  if [ $BUILDSYSTEM = "AIX" ];
+  then
+    PLATFORM=aix
+    PLATFORM_SCRIPT_DIR=ibm
+  elif [ $BUILDSYSTEM = "SunOS" ];
+  then
+    PLATFORM=sun
+    PLATFORM_SCRIPT_DIR=sun
+  elif [ $BUILDSYSTEM = "UNIX_SV" ];
+  then
+    PLATFORM=usl
+    PLATFORM_SCRIPT_DIR=usl
+  elif [ $BUILDSYSTEM = "UNIX_System_V" ];
+  then
+    PLATFORM=uxp
+    PLATFORM_SCRIPT_DIR=uxp
+  elif [ $BUILDSYSTEM = "OSF1" ];
+  then
+    PLATFORM=dec
+    PLATFORM_SCRIPT_DIR=dec
+  else			# Build system = HP
+    PLATFORM=hp-ux
+    PLATFORM_SCRIPT_DIR=hp
+  fi
+
+  if [ "$PLATFORM" = "aix" ];
+  then
+    USER=`/bin/whoami`
+  elif [ "$PLATFORM" = "sun" -o "$PLATFORM" = "usl" -o "$PLATFORM" = "uxp" ];
+  then
+    USER=`/usr/ucb/whoami`
+  else
+    USER=`/usr/bin/whoami`
+  fi
+
+  if [ "$USER" != "root" ];
+  then
+    USAGE
+    echo ""
+    echo "You must be root to run this script"
+    echo ""
+    exit 1
+  fi
+
+  if [ "$PLATFORM" = "usl" -o "$PLATFORM" = "uxp" ]
+  then
+    umask 000
+  fi
+
+  unset TMPDIR
+
+  PATH=/bin:/usr/bin:/etc:/usr/bin/X11:
+  export PATH
+
+  CLEANING="no"
+  CLEANING_ETC="no"
+  TARBALL="no"
+  COMPRESS_TARBALL="yes"
+  USE_ALTERNATE_UDB_DIR="no"
+  DEVELOP_ENV="no"
+  RUNTIME_ENV="no"
+  USE_RELATIVE="no"
+  STARTING_DIR=$PWD
+  ACTUAL_INSTALLATION_LOC=""
+  ACTUAL_CONFIGURATION_LOC=""
+  ACTUAL_VAR_LOC=""
+  CREATE_PACKING_LIST="no"
+  DO_LINK_STEP_ONLY="no"
+  DO_INSTALL_ONLY="no"
+  RUN_SCRIPTS="yes"
+  RUN_SCRIPTS_ONLY="no"
+  DATABASE_FILES=""
+  BUILD_TREE=""
+  TAR_DIR=""
+  LeaveLinks="no"
+  REMOVE_LINKS="no"
+  CLEAN_DAEMONS="yes"
+  theLang=""
+  CONFIGURE_ONLY="no"
+
+  rm -f /tmp/installCDE.log
+
+  Log "Options specified..."
+  while [ $# -ne 0 ]; do
+    case $1 in
+        -s) Log "  - get the build tree to extract from"
+            shift;
+            [ $# -ne 0 ] || {
+                USAGE
+                exit 1;
+            }
+            BUILD_TREE=$1
+            shift;
+            ;;
+	-z) Log "  - get the install package to extract from"
+	    shift;
+            [ $# -ne 0 ] || {
+                USAGE
+                exit 1;
+            }
+	    TAR_TREE=$1
+	    shift;
+	    ;;
+        -t) Log "  - where to put the install package"
+            shift;
+            [ $# -ne 0 ] || {
+                USAGE
+                exit 1;
+            }
+	    if [ "$SOURCE_TAR_FILE" = "" ]
+	    then
+		TARBALL="yes"
+		TARBALL_LOCATION=$1
+	    fi
+            shift;
+            ;;
+	-a) Log "  - alternate place to get the udb files from"
+	    shift;
+	    [ $# -ne 0 ] || {
+		USAGE
+		exit 1;
+	    }
+	    ALTERNATE_UDB_DIR=$1
+	    USE_ALTERNATE_UDB_DIR="yes"
+            shift;
+	    ;;
+	-f) Log "  - load specific filesets"
+	    shift;
+	    [ $# -ne 0 ] || {
+		USAGE
+		exit 1;
+	    }
+	    DATABASE_FILES=$1
+	    shift;
+	    ;;
+	-p) Log "  - get all locations"
+	    shift;
+	    [ $# -ne 0 ] || {
+		USAGE
+		exit 1;
+	    }
+	    ACTUAL_INSTALLATION_LOC=$1
+	    ACTUAL_CONFIGURATION_LOC=$1
+	    ACTUAL_VAR_LOC=$1
+	    shift;
+	    ;;
+        -pI) Log "  - get actual installation location"
+            shift;
+            [ $# -ne 0 ] || {
+                USAGE
+                exit 1;
+            }
+            ACTUAL_INSTALLATION_LOC=$1
+            shift;
+            ;;
+	-pC) Log "  - get actual configuration location"
+	    shift;
+	    [ $# -ne 0 ] || {
+		USAGE
+		exit 1;
+	    }
+	    ACTUAL_CONFIGURATION_LOC=$1
+	    shift;
+	    ;;
+	-pV) Log "  - get actual var location"
+	    shift;
+	    [ $# -ne 0 ] || {
+		USAGE
+		exit 1;
+	    }
+	    ACTUAL_VAR_LOC=$1
+	    shift;
+	    ;;
+	-clean) Log "  - delete all three cde directories"
+	    CLEANING="yes"
+	    CLEANING_ETC="yes"
+	    shift;
+	    ;;
+	-cleanTwo) Log "  - delete only temporary and installation directories"
+	    CLEANING="yes"
+	    shift;
+	    ;;
+	-cleanEtc) Log "  - delete only the configuration directory"
+	    CLEANING_ETC="yes"
+	    shift;
+	    ;;
+	-prog) Log "  - load only the development environment"
+	    DEVELOP_ENV="yes"
+	    RUNTIME_ENV="no"
+	    shift;
+	    ;;
+	-runtime) Log "  - load only the runtime environment"
+	    RUNTIME_ENV="yes"
+	    DEVELOP_ENV="no"
+	    shift;
+	    ;;
+	-relative) Log "  - run the relative-located config scripts"
+	    USE_RELATIVE="yes"
+	    shift;
+	    ;;
+	-pack) Log "  - create a packing list"
+	    CREATE_PACKING_LIST="yes"
+	    shift;
+	    ;;
+	-LeaveLinks) Log "  - do not remove the links"
+	    LeaveLinks="yes"
+	    shift;
+	    ;;
+	-LinkStepOnly) Log "  - do link step only"
+	    DO_LINK_STEP_ONLY="yes"
+	    shift;
+	    ;;
+	-DontRunScripts) Log "  - stop after installation"
+	    DO_INSTALL_ONLY="yes"
+	    shift;
+	    ;;
+	-RunScriptsOnly) Log "  - only run scripts"
+	    RUN_SCRIPTS_ONLY="yes"
+	    shift;
+	    ;;
+        -pseudo) Log "  - pseudo install"
+            RUN_SCRIPTS="no"
+            REMOVE_LINKS="yes"
+            CLEAN_DAEMONS="no"
+            shift;
+            ;; 
+        -nocompress) Log "  - do not compress tarball"
+            COMPRESS_TARBALL="no"
+            shift;
+            ;;
+        -lang) Log "  - load localized filesets"
+            shift;
+            [ $# -ne 0 ] || {
+                USAGE
+                exit 1;
+            }
+            theLang=$1
+            shift;
+            ;;
+        -configureOnly) Log "  - Configure only"
+            CONFIGURE_ONLY="yes"
+            CLEAN_DAEMONS="yes"
+            shift;
+            ;;
+	*) Log "  - unknown option"
+	    USAGE
+	    exit 1;
+	    ;;
+        esac
+  done
+
+  echo ""
+
+  if [ -z "$BUILD_TREE" -a -z "$TAR_TREE" ]
+  then
+    USAGE
+    exit 1
+  fi
+
+  if [ "$BUILD_TREE" != "" -a ! -d "$BUILD_TREE" ]
+  then
+    Log "Build tree does not exist."
+    exit 1
+  fi
+
+  if [ "$TAR_TREE" != "" -a ! -d "$TAR_TREE" ]
+  then
+    Log "Tar tree does not exist."
+    exit 1
+  fi
+
+  CDEPACKAGE=dt.pkg
+  CDETARFILE=dt.tar
+  CDETARFILEZ=dttar.Z
+  CDECONFIGDIR=config
+
+XCOMM
+XCOMM get the current time stamp if going to create a tarball
+XCOMM
+
+  if [ $TARBALL = "yes" ]; 
+  then
+    set -- `/bin/date`
+    DATE=$2_$3_$4_$6
+  fi
+
+  if [ -z "$BUILD_TREE" -a ${0##STAR/} = INSTALL.CDE ]; then
+    typeset -u CDEPACKAGE
+    typeset -u CDETARFILE
+    typeset -u CDETARFILEZ
+    typeset -u CDECONFIGDIR
+  fi
+
+  TOOL_DIR=$BUILD_TREE/admin/IntegTools/dbTools
+  if [ "$USE_RELATIVE" = "yes" ]
+  then
+    POST_INSTALL_DIR=../post_install
+  else
+    if [ -z "$BUILD_TREE" ]
+    then
+      POST_INSTALL_DIR=$TAR_TREE/$CDECONFIGDIR
+    else
+      POST_INSTALL_DIR=$BUILD_TREE/admin/IntegTools/post_install
+    fi
+  fi
+
+  if [ "$USE_ALTERNATE_UDB_DIR" = "yes" ]
+  then
+    DATABASE_DIR=$ALTERNATE_UDB_DIR/databases
+  else
+    DATABASE_DIR=$BUILD_TREE/databases
+  fi
+
+  if [ "$DATABASE_FILES" = "" ]
+  then
+    if [ "$DEVELOP_ENV" = "yes" ]
+    then
+      DATABASE_FILES="CDE-HELP-PRG CDE-PRG CDE-INC CDE-DEMOS \
+		      CDE-MAN-DEV CDE-SHLIBS"
+    elif [ "$RUNTIME_ENV" = "yes" ]
+    then
+      DATABASE_FILES="CDE-RUN CDE-MIN CDE-TT CDE-MAN CDE-HELP-RUN CDE-C \
+                      CDE-HELP-C CDE-MSG-C CDE-SHLIBS CDE-ICONS CDE-FONTS \
+		      CDE-INFO CDE-INFOLIB-C"
+    else
+      DATABASE_FILES="CDE-RUN CDE-MIN CDE-TT CDE-MAN CDE-HELP-RUN CDE-C \
+                      CDE-MSG-C CDE-HELP-C CDE-SHLIBS CDE-HELP-PRG \
+                      CDE-PRG CDE-INC CDE-DEMOS CDE-MAN-DEV CDE-ICONS \
+		      CDE-FONTS CDE-INFO CDE-INFOLIB-C"
+    fi
+
+    HASH now load any localized filesets
+
+    if [ "$DEVELOP_ENV" != "yes" ]
+    then
+      if [ "$theLang" != "" ]
+      then
+        DATABASE_FILES="$DATABASE_FILES CDE-$theLang CDE-MSG-$theLang \
+			CDE-HELP-$theLang"
+      fi
+    fi
+  fi
+
+  INSTALL_LOCATION=CDE_INSTALLATION_TOP
+  CONFIGURE_LOCATION=CDE_CONFIGURATION_TOP
+  LOGFILES_LOCATION=CDE_LOGFILES_TOP
+
+  if [ -L $INSTALL_LOCATION -a "$CONFIGURE_ONLY" != "yes" ]
+  then
+    touch $INSTALL_LOCATION/foo >/dev/null 2>/dev/null
+    if [ ! -f $INSTALL_LOCATION/foo ]
+    then
+      Log "Insufficient permissions to install CDE files in $INSTALL_LOCATION"
+      exit 1
+    fi
+    if [ ! -O $INSTALL_LOCATION/foo ]
+    then
+      Log "Root access to $INSTALL_LOCATION is required for CDE installation."
+      exit 1
+    fi
+    rm $INSTALL_LOCATION/foo
+  fi
+
+  if [ -d $INSTALL_LOCATION ]
+  then
+    if [ -x $INSTALL_LOCATION/bin -a ! -d $INSTALL_LOCATION/bin ]
+    then
+	rm -f $INSTALL_LOCATION/bin
+    fi
+  fi
+
+  if [ "$CONFIGURE_ONLY" = "yes" ]
+  then
+    CheckForActualLocations
+    DoScripts
+    Log "Configuration completed."
+    exit 0
+  fi
+
+  if [ "$RUN_SCRIPTS_ONLY" = "yes" ]
+  then
+    DoScripts
+    exit 0
+  fi
+
+  CheckForActualLocations
+
+  if [ "$DO_LINK_STEP_ONLY" = "yes" ]
+  then
+    exit 0
+  fi
+
+  if [ "$CREATE_PACKING_LIST" = "yes" ]
+  then
+    CreatePackingList
+    exit 0
+  fi
+
+XCOMM
+XCOMM we are ready to load the environment ...
+XCOMM
+
+  if [ "$BUILD_TREE" != "" ]
+  then
+    Log "Load the Desktop from $BUILD_TREE"
+
+    cd $STARTING_DIR
+    let j=1
+    for i in `echo $DATABASE_FILES`
+    do
+      LoadFileSet "$j" "$i"
+      let j=j+1
+    done
+  else
+    Log "Load the Desktop from $TAR_TREE"
+    compressed=$(awk '/COMPRESSED: /{print $2}' $TAR_TREE/$CDEPACKAGE)
+    if [ "$compressed" = "yes" ]; then
+      uncompress <$TAR_TREE/$CDETARFILEZ | tar xvf - $INSTALL_LOCATION
+    else
+      tar -xvf $TAR_TREE/$CDETARFILE $INSTALL_LOCATION
+    fi 
+    DATABASE_FILES=$(awk 'BEGIN {FS=":"} /FILESETS: /{print $2}' $TAR_TREE/$CDEPACKAGE)
+  fi
+
+  Log " "
+  Log "Desktop installed in $INSTALL_LOCATION"
+
+  if [ "$DO_INSTALL_ONLY" = "yes" ]
+  then
+    exit 0
+  fi
+
+  if [ $TARBALL = "yes" ]; 
+  then
+    MakeTarball
+  fi
+
+  cd $STARTING_DIR
+
+  if [ "$RUN_SCRIPTS" = "yes" ]
+  then
+    DoScripts
+  fi
+  
+  if [ "$REMOVE_LINKS" = "yes" ]
+  then
+    [ -L /usr/dt ] && rm /usr/dt
+    [ -L /etc/dt ] && rm /etc/dt
+    [ -L /var/dt ] && rm /var/dt
+  fi
+
+  echo "Done."
+  echo ""
+  echo "See /tmp/installCDE.log for a log of this install session."
+  echo ""

+ 23 - 0
cde/admin/IntegTools/dbTools/linksLast

@@ -0,0 +1,23 @@
+#! /bin/ksh
+
+#
+# Script to move all link refereces in a ".lst" file
+# to the end of the file.
+#
+
+USAGE="Usage: $0 file.lst"
+
+case $# in
+	0) echo $USAGE;;
+	1);;
+	*) echo $USAGE;;
+esac
+
+awk '
+/hard_link|sym_link/ { links[i++] = $0 ; next; }
+{ print $0 }
+END {
+	if ( i > 0 )
+		for ( i in links) print links[i];
+}
+'  $@

+ 650 - 0
cde/admin/IntegTools/dbTools/mkProd

@@ -0,0 +1,650 @@
+#! /bin/ksh 
+
+export SYSTYPE=bsd4.3
+
+# This script is aimed at producing Apollo product tree but
+# it should work as well on hp-ux systems.  There is at least
+# one special rule "-n" which should not be generated on hp-ux systems
+# where it is not necessary to run nroff on the man page sources.
+
+
+# Put "/etc" in the path
+# because this is where "chown" appears on bsd4.3 systems (i.e. apollo).
+# Put "/usr/apollo/bin" on the path to access "chacl" on apollo systems.
+
+export PATH=":/etc:$PATH:/usr/apollo/bin:"
+typeset STRIP=""
+
+
+# this alias makes for more "beautiful" output.
+alias echo=print
+
+#
+# Shell script to read a file full of destination/perm/source triples and
+# create data base entries in a format suitable for 8.0 release.  All other
+# information defaults to the default values for now -- this should be correct
+# in most cases but may require editing of the result for those cases
+# needing special handling.
+#
+# Lst file syntax:
+# [<install-flags>]  <destination_path> <perm> <src> [ <type> <owner> <group> <status> <processor> <resp_proj> ]
+#
+# <install-rule>       ==>  [optional] 2 character field encoding special actions to be invoked when
+#                           creating the product tree.  In the absence of this field the file is subject
+#                           to defaults based on its name,destination directory and permissions.
+#                            valid values: 
+#				-- 	Do nothing special
+#				c-      compress the file
+#				-n      run it through an nroff pipeline
+#				-s      strip the file (should be a binary executable)
+#
+# <destination_path>	===> full path name on target system
+# <perm> 		===> numeric permission (with leading 0)
+# <src>			===> build tree path name (relative to build tree root)
+#			     | full path name of link source
+#			     | "-" to ignore this field (source for directory not required)
+# <type>		===> "file" | "empty_dir" | "directory" | "hard_link" | NULL
+# <owner>		===> file owner name -- defaults to bin
+# <group>		===> file group ownership --- defaults to bin
+# <status>		===> "di----" default
+# <processor>		===> valid processor "3-" | "-8" | "38" -- defaults to "38"
+# <resp_proj>		===> responsible project --- defaults to "xwindows"
+#
+
+Usage="Usage: $0 [-f filesetName] -D <desttree> -S <srctree> <file> ...\n
+\tfilesetName \t==>   (optional) used to create subdirectory in desttree\n
+\tdesttree \t==>   destination directory\n
+\tsrctree \t==>   usually a build tree containing the source\n
+\tfile \t\t==>   data base file in \".lst\" format"
+
+FILE='file'
+STATUS='di----'
+PROCESSOR='378'
+DESTTREE='.'
+
+if [ -f /com/ctnode ]; then
+	# Apollo systems
+	OWNER='root'
+	GROUP='staff'
+	# set flag used to test for soft links
+	LNKTST="L"
+else
+	# hp-ux systems (and all other systems)
+	OWNER='bin'
+	GROUP='bin'
+	# set flag used to test for soft links
+	LNKTST="h"
+fi
+
+BUILD_TARGET='/'
+INSTALL_RULE='--'
+INSTALL_FLAGS=''
+ORDER='0'
+RESP_PROJ='xwindows'
+
+# Set which system we are on
+BUILDSYSTEM=$(uname)
+
+# Set system
+if [ $BUILDSYSTEM = "AIX" ];
+then
+        PLATFORM=aix
+elif [ $BUILDSYSTEM = "SunOS" ];
+then
+        PLATFORM=sun
+elif [ $BUILDSYSTEM = "UNIX_SV" ];
+then
+	PLATFORM=usl
+elif [ $BUILDSYSTEM = "UNIX_System_V" ];
+then
+	PLATFORM=uxp
+elif [ $BUILDSYSTEM = "OSF1" ];
+then
+	PLATFORM=dec
+else                                                # Build system = HP
+        PLATFORM=hp-ux
+fi
+
+if [ $PLATFORM = "aix" ];
+then
+        USER=`/bin/whoami`
+elif [ $PLATFORM = "sun" -o $PLATFORM = "usl" -o $PLATFORM = "uxp" ];
+then
+        USER=`/usr/ucb/whoami`
+else
+        USER=`/usr/bin/whoami`
+fi
+
+awkit() {
+	awk  '
+	BEGIN {
+		print "#" 
+		print "# TYPE RULE SRC DEST MODE OWNER GROUP LINKSRC"
+		print ""
+	}
+
+	/^[ 	]*#/ { next }
+	{
+		# initialize install_rule to NULL
+		install_rule=""
+
+		# skip blank lines
+		if ( NF == 0 )
+			next
+		# do a little syntax checking
+                
+		if ( $1 !~ /\// ) {
+			# check for special install_rule values
+			if ( $1 ~ /[-c][-ns]/ ) {
+				# set the special install rule
+				install_rule=$1
+
+				# shift the rest of the fields left
+				for ( i = 1; i < NF; i++) {
+					$i = $(i+1)
+				}
+				NF=NF-1
+			}
+			else {
+				print "Syntax Error (line " NR ") destination path: " $1
+				print "text: "  $0
+				next
+			}
+		}
+	
+		if ( NF > 9 ) {
+			print "Syntax Error (line " NR ") number of fields"
+			print "text: "  $0
+			exit
+		}
+		
+		if ( $2 !~ /0[0-7][0-7]*/ ) {
+			print "Syntax Error (line " NR ") perm  : " $2 
+			print "text: "  $0
+			next
+		}
+#		if ( $4 ~ /link/ && $3 !~ /^\// && $3 !~ /`node_data/) {
+# changed to allow local link (using ./file syntax) -- Should this be
+# domain only?
+#
+		if ( $4 ~ /link/ && $3 !~ /^\// && $3 !~ /`node_data/ && \
+			$3 !~ /^\.\// && $3 !~ /^\.\.\// ) {
+			print "Syntax Error (line " NR ") source: " $3
+			print "text: "  $0
+			next
+		}
+
+# Check for special install rules
+# man pages are compressed use rule "c-"
+# font files are compressed use rule "c-"
+# directories have no source i.e. src = "-"
+
+		src = $3;
+		link_src = "";
+		type = "'$FILE'";
+		owner = "'$OWNER'";
+		group = "'$GROUP'";
+		status = "'$STATUS'";
+		processor = "'$PROCESSOR'";
+		resp_proj = "'$RESP_PROJ'";
+		if ( $4 != "" )
+		{
+			type = $4;
+			if ( $4 ~ /link/ ) {
+				src = "";
+				if ( $3 ~ /^\// || $3 ~ /`node_data/ || \
+					$3 ~ /^\.\// || $3 ~ /^\.\.\// )
+					link_src = $3;
+				else {
+					print "Syntax Error (line " NR ") link_src: " $3
+					print "text: "  $0
+					next;
+				};
+			}
+			else if ( $4 == "directory" )
+				if ( $3 != "-" ) 
+				{
+					print "Syntax Error (line " NR ") directory: " $3;
+					print "text: "  $0;
+					next;
+				}
+				else
+					src="";
+			else if ( $4 == "empty_dir" )
+			{
+				resp_proj = "common";
+				status = "------";
+				if ( $3 != "-" )
+				{
+					print "Syntax Error (line " NR ") empty_dir: " $3;
+					print "text: "  $0;
+					next;
+				}
+				else
+					src="";
+			}
+			else if ( $4 == "file" && $3 == "-" )
+				if ( $7 == "---cu-")
+					src = "";
+		}
+		#
+		# If owner an/or group are specified all previous fields (including
+		# type) must be specified.
+		#
+		if ( $5 != "" )
+			owner = $5;
+
+		if ( $6 != "" )
+			group = $6;
+
+		if ( $7 != "" )
+			status = $7
+			
+		if ( $8 != "" )
+			processor = $8;
+
+		if ($9 != "" )
+			resp_proj= $9;
+
+		if ( install_rule != "" ) {
+			; # install rule has been explicitly set -- do nothing
+		}
+		else if ( $1 ~ /\/usr\/man\/man.*\.Z\// )
+		{
+			install_rule = "c-";
+		}
+		else if ( $1 ~ /\/usr\/X11\/man\/cat[1-9]\/.*[1-9]/ )
+		{
+			install_rule = "-n";
+		}
+		else if ( $1 ~ /\/bsd4.3\/usr\/man\/cat[1-9]\/.*[1-9]/ )
+		{
+			install_rule = "-n";
+		}
+		else if ( $1 ~ /\/sys5.3\/usr\/catman\/.*man[1-9]\/.*[1-9]/ )
+		{
+			install_rule = "-n";
+		}
+		else if ( $1 ~ /.*\/fonts\/.*.scf$/ && $3 ~ /.*.snf$/ )
+		{
+			install_rule = "c-";
+		}
+		else if ( $1 ~ /.*\/fonts\/.*.snf\.Z$/ && $3 ~ /.*.snf$/ )
+		{
+			install_rule = "c-";
+		}
+		else if ( $1 ~ /^\/integration\// && $3 ~ /^doc\/upinfo\// )
+		{
+			install_rule = "";
+		}
+		else if ( $2 ~ /[1357]/ && $4 == "file" )
+		{	# executable files may be stripped
+			install_rule = "-s";
+		}
+		else
+			install_rule = "'$INSTALL_RULE'";
+			
+			
+#		print "install_target		: " $1
+#		print "fileset			: " "'$FILESET'"
+#		print "type			: " type
+#		print "status			: " status
+#		print "processor		: " processor
+#		print "mode			: " $2
+#		print "owner			: " owner
+#		print "group			: " group
+#		print "link_source		: " link_src
+#		print "build_target		: " "'$BUILD_TARGET'"
+#		print "install_rule_name	: " install_rule
+#		print "install_flags		: " "'$INSTALL_FLAGS'"
+#		print "a_out_location		: " src
+#		print "order			: " "'$ORDER'"
+#		print "responsible_project	: " resp_proj
+#		print "#"
+
+		if ( type ~ /.*link/ )
+			src= link_src
+		else if ( type ~ /.*directory/ )
+			src="-"
+
+		print type, install_rule, src, $1, $2, owner ,group
+	}
+
+	'  $1
+}
+
+#
+# createPath
+#	function to create a directory path.  (mkdir -p replacement on bsd4.3)
+#
+createPath()
+{
+	if [ $# -ne 1 ]; then
+		echo "ERROR: \"$0\" invalid argument count" >&2
+		echo "   ARGS=$@"
+		return 1
+	fi
+	
+	# Since we are SYSTYPE bsd4.3 "-x" won't work.
+	if [ -r /sys5.3/bin/mkdir ]; then
+		/sys5.3/bin/mkdir -p $1
+		return
+	fi
+	if hp9000s300 > /dev/null 2>&1 || hp9000s800 > /dev/null 2>&1; then
+		mkdir -p $1
+		return
+	fi 
+	
+	#
+	# We can't use mkdir -p so do the hard way.
+	# starting at the root check/create all the directories
+	# in the given path
+	#
+
+	typeset xdirs=""
+	typeset nextdir=""
+	typeset fulldirs
+
+	# provide extra slash for apollo systems (//hp* syntax)?
+
+	if [ "$1" = "${1##/}" ]; then
+		# not a full path name so attach path to current directory
+		fulldirs=`/bin/pwd`/$1
+		xdirs="/"    # added to support apollo "//host" syntax
+	elif [ "$1" != "${1##//}" ]; then
+		# using "//host" syntax
+		fulldirs=$1
+		xdirs="/"
+	else
+		fulldirs=$1
+		xdirs=""
+	fi
+
+	echo creating path: $1 
+
+	while nextdir=`expr /$fulldirs/ : '/*\([^/]*\)/.*'`; do
+		xdirs=$xdirs/$nextdir
+		if [ ! -d $xdirs ]; then
+			mkdir $xdirs
+		fi
+
+		fulldirs=`expr $fulldirs : '/*[^/]*/\(.*\)'`
+	done
+	return 0	
+}
+
+# doit
+#	function to put the source file into the product tree.  This function 
+#	reads its stdin for file movement rules.
+#
+doit()
+{
+	if [ $# -ne 0 ]; then
+		echo "ERROR: \"$0\"  incorrect arg count" >&2
+		echo "ARGS: $@" >&2
+	fi
+	
+	typeset TYPE
+	typeset RULE
+	typeset SRC
+	typeset DEST
+	typeset MODE
+	typeset OWNER
+	typeset GROUP
+	
+	while read TYPE RULE SRC DEST MODE OWNER GROUP; do
+		# ignore blank lines
+		if [ -z "$TYPE" ]; then
+			continue;
+		fi
+		# ignore comment lines (match longest string starting with '#')
+		if [ "${TYPE###}" != "$TYPE" ]; then
+			continue
+		fi
+
+		DEST=$DESTTREE/$FILESET${DEST}
+		CMD=""
+
+		case $TYPE in
+		directory)
+			if [ ! -d "$DEST" ]; then
+				CMD="createPath $DEST"
+			fi
+			;;
+		file)	
+			SRC=$SRCTREE/$SRC
+			if [ "$CHECK_BEFORE" = "yes" ]
+			then
+			    if [ ! -f $SRC ]
+			    then
+				echo "Missing: $SRC"
+				echo "Missing: $SRC" >>/tmp/mkprod.missing
+				continue
+			    fi
+			fi
+			if [ ! -f $SRC ]; then
+				echo "ERROR: Cannot read \"$SRC\"." >&2
+				echo "  LINE=$TYPE $RULE $SRC $DEST $MODE $OWNER $GROUP " >&2
+				continue
+			fi
+			case $RULE in
+			c-) # compress rule
+				CMD="compress -c $SRC > $DEST"
+				;;
+			-n) # nroff rule (for apollo man pages)
+				if egrep -c '^\.TH[ 	]|^\.ds[ 	]' $SRC > /dev/null ; then
+					CMD="tbl $SRC|eqn|nroff -man|col -b> $DEST"
+				else
+					CMD="cp $SRC $DEST"
+				fi
+				;;
+			-s) # strip rule 
+					# Domain Only
+#				if [ "$(find $SRC -typeuid coff -print)" =  "$SRC" ]; then 
+					# hp-ux
+				if [ -z "$STRIP" ]; then
+					CMD="cp $SRC $DEST"
+				else if file $SRC | grep -q "not stripped"; then 
+					CMD="cp $SRC $DEST; strip $DEST"
+				else
+						CMD="cp $SRC $DEST"
+				fi
+				fi
+				;;
+			--) # default (no special processing)
+				CMD="cp $SRC $DEST"
+				;;
+			*)  # huh?
+				echo "ERROR: Unrecognized rule: \"$RULE\"" >&2
+				echo "  LINE=$TYPE $RULE $SRC $DEST $MODE $OWNER $GROUP " >&2
+				continue;
+				;;
+			esac
+			;;
+		sym_link)
+			if [ -z "$SRC" ]; then
+				echo "ERROR: No link source for \"$DEST\"" >&2
+				echo "  LINE=$TYPE $RULE $SRC $DEST $MODE $OWNER $GROUP "  >&2
+				continue;
+			fi
+			if [ "${SRC#\`node_data}" != "$SRC" ]; then
+				# apollo-style special link
+				echo "WARNING: encountered special link: $SRC" >&2
+				# try to make link to this SRC by adding a
+				# backslash to protect the tic mark.
+				SRC=\\$SRC
+			elif [ "${SRC#/}" = "$SRC" ]; then
+#				echo "ERROR: Relative link \"$SRC\"" >&2
+			#	echo "WARNING: Relative link \"$SRC\"" >&2
+			#	echo "  LINE=$TYPE $RULE $SRC $DEST $MODE $OWNER $GROUP "  >&2
+				# Protect the potential variant link variable
+				# (eg lnk_$(LNK))
+				SRC=\'$SRC\'
+#				continue;
+			fi
+			CMD="ln -s $SRC $DEST"
+			# Remove existing link if one already exists
+			[ -${LNKTST} "$DEST" ] && rm $DEST
+			;;
+		hard_link)
+			# Hard links are assumed to be made only to other
+			# files in the submittal -- not to existing system
+			# files.
+			SRC="$DESTTREE/$FILESET${SRC}"
+			if [ -z "$SRC" ]; then
+				echo "ERROR: No link source for \"$DEST\"" >&2
+				echo "  LINE=$TYPE $RULE $SRC $DEST $MODE $OWNER $GROUP"  >&2
+				continue;
+			fi
+			CMD="ln $SRC $DEST"
+			;;
+		*)	echo "ERROR: Unrecognized type: \"$TYPE\"" >&2
+			echo "  LINE=$TYPE $RULE $SRC $DEST $MODE $OWNER $GROUP" >&2
+			continue;
+			;;
+		esac
+
+		# createPath issues its own error messages
+		if [ ! -d ${DEST%/*} ]; then
+			createPath ${DEST%/*} || continue
+		fi
+		[ -z "$CMD" ] && continue
+		eval "$CMD" || {
+			echo "ERROR: \"$CMD\" failed" >&2
+			echo "  LINE=$TYPE $RULE $SRC $DEST $MODE $OWNER $GROUP" >&2;
+			continue;
+		}
+		# set permissions for non-links
+		if [ "${TYPE%link}" = "$TYPE" ]; then
+			if [ "$USER" = "root" ]; then
+				chmod $MODE $DEST || 
+					echo "ERROR: \"chmod $MODE $DEST\" failed" >&2
+				chgrp $GROUP $DEST || 
+					echo "ERROR: \"chgrp $GROUP $DEST\" failed" >&2
+				chown $OWNER $DEST || 
+					echo "ERROR: \"chown $OWNER $DEST\" failed" >&2
+			fi
+		fi
+
+		echo $TYPE $RULE $SRC $DEST $MODE $OWNER $GROUP
+	done
+
+}
+
+###################################################
+#	MAIN BODY
+###################################################
+
+#
+# Check Path for chmod, chown, and chgrp
+#
+whence chmod > /dev/null || {
+	echo "ERROR: \"chmod\" not in PATH." >&2
+	exit 1
+}
+whence chown > /dev/null || {
+	echo "ERROR: \"chown\" not in PATH." >&2
+	exit 1
+}
+whence chgrp > /dev/null || {
+	echo "ERROR: \"chgrp\" not in PATH." >&2
+	exit 1
+}
+
+CHECK_BEFORE="no"
+
+while [ $# -ne 0 ]  ; do
+	case $1 in
+	-f*)
+		FILESET=${1#-f}
+		if [ -z "$FILESET" ]; then
+			if [ $# -ge 1 ]; then
+				shift;
+				FILESET=$1
+			else
+				echo $Usage
+				exit 1;
+			fi
+		fi;;
+	-S*)	SRCTREE=${1#-S}
+		if [ -z "$SRCTREE" ]; then
+			if [ $# -ge 1 ]; then
+				shift;
+				SRCTREE=$1
+			else
+				echo $Usage
+				exit 1;
+			fi
+		fi
+		;;
+	-D*)	DESTTREE=${1#-D}
+		if [ -z "$DESTTREE" ]; then
+			if [ $# -ge 1 ]; then
+				shift;
+				DESTTREE=$1
+			else
+				echo $Usage
+				exit 1;
+			fi
+		fi
+		;;
+
+	-P*)	CHECK_BEFORE="yes"
+		;;
+
+	*)	files="$files $1";;
+	esac
+	if [ $# -ge 1 ]; then
+		shift;
+	fi
+done
+
+if [ -z "$files" -o -z "$SRCTREE" ]; then
+	echo $Usage >&2
+	exit 1;
+fi
+
+if [ ! -d "$SRCTREE" ]; then
+	echo "ERROR: Cannot access \"$SRCTREE\"." >&2
+	exit 1
+fi
+if [ ! -d "$DESTTREE" ]; then
+	echo "ERROR: Cannot access \"$DESTTREE\"." >&2
+	exit 1
+fi
+
+umask 022
+if [ -f /com/ctnode ]; then
+	#
+	# Make sure berkely style permissions are applied to the product tree
+	# This should cause directories to be created with permissions based
+	# on the umask (which is otherwise ignored on "open security model" 
+	# file systems).
+	#
+	chacl -RB $DESTTREE
+fi
+
+# Debug Stmts
+echo FILESET=$FILESET
+echo files=$files
+echo SRCTREE=$SRCTREE
+echo DESTTREE=$DESTTREE
+echo "#-------------- $(date) --------------"
+echo ""
+
+TOOL_DIR=$SRCTREE/admin/IntegTools/dbTools
+
+#
+# Avoid making duplicate entries
+# make sure links are referred to AFTER the files to which they point.
+#
+if [ $PLATFORM = "uxp" ]; then
+  $TOOL_DIR/uncomment $files | sort | uniq | $TOOL_DIR/linksLast - > /tmp/awk.in
+  cat /tmp/awk.in | awkit > /tmp/awk.out
+  cat /tmp/awk.out | doit
+else
+  $TOOL_DIR/uncomment $files | sort | uniq | $TOOL_DIR/linksLast - | awkit | doit
+fi
+
+echo ""
+echo "#-------------- $(date) --------------"

+ 765 - 0
cde/admin/IntegTools/dbTools/udbParseLib.awk

@@ -0,0 +1,765 @@
+ 
+# Awk Library file for parsing UDB files
+#
+function parseUdb() {
+	# nawk has already read the initial line.  
+	# Tokenize it before doing anything else.
+	tokenize() 
+	readDefaults(defaults)
+	# assign hp-ux ".db" file src and link defaults
+	# if none were designated.
+		if ( SrcDefault == "" )
+			SrcDefault = "a_out_location"
+		if ( LnkDefault == "" )
+			LnkDefault = "link_source"
+		if ( TypDefault == "" )
+			TypDefault = "type"
+		if ( DestDefault == "" )
+			DestDefault = "install_target"
+		if ( ModeDefault == "" )
+			ModeDefault = "mode"
+		if ( OwnerDefault == "" )
+			OwnerDefault = "owner"
+		if ( GroupDefault == "" )
+			GroupDefault = "group"
+		readData()
+}
+
+# -------------------------------------------------------------
+#  readDefaults
+#    This routine reads the defaults at the front section 
+#  of the universal database and salts the defaults away.
+#
+# -------------------------------------------------------------
+function readDefaults(dflts)
+{
+	if ( DeBug > 0 ) {
+		Depth++
+		for ( i=1; i < Depth; i++ )
+			printf(" ") > DeBugFile
+		print "Entering function readDefaults" > DeBugFile
+	}
+	do {
+		os = getOS()
+		if ( osQual != "defaults" )
+			syntaxError("No defaults for: " BlockToken)
+		if ( os == BlockToken || os == "default" )
+			break
+		skipToToken("}")
+	} while ( 1 )
+	fillDefaults()
+	if ( DeBug > 1 )
+		print "Skipping remaining defaults" > DeBugFile
+	# skip remaining default specs
+	while ( lookAhead() == "{" ) {
+		# This should be another default spec
+		# skip it. (watch out for syntax errors)
+		os = getOS()
+		if ( osQual != "defaults" )
+			syntaxError("Expected os:defaults found: \"" os ":" osQual "\"")
+		if ( os == BlockToken && fileName == FILENAME )
+			syntaxError("Only one \"defaults\" record allowed per os" )
+
+		skipToToken("}");
+	}
+	if ( DeBug > 0 ) Depth--
+}
+# -------------------------------------------------------------
+#  syntaxError
+#      bail out
+#
+# (optionally) mail a message to an administrator if a syntax 
+# error occurs in a database.
+#
+# -------------------------------------------------------------
+function syntaxError(reason) {
+	if ( DeBug > 0 ) {
+		Depth++
+		for ( i=1; i < Depth; i++ )
+			printf(" ") > DeBugFile
+		print "Entering function syntaxError:" > DeBugFile
+	}
+	print "Syntax ERROR line: " NR " of file: " FILENAME 
+	if (reason)
+		print "	" reason
+	system( "rm -f /tmp/SyntaxError" )
+	system( "touch /tmp/SyntaxError" )
+	print "Syntax ERROR line: " NR " of file: " FILENAME > "/tmp/SyntaxError"
+	if (reason)
+		print "	" reason >> "/tmp/SyntaxError"
+	close( "/tmp/SyntaxError" )
+	if ( mailTo != "" ) {
+		system( "mailx -s \"database syntax error\"  "mailTo"  < /tmp/SyntaxError" )
+	}
+	system( "rm -f /tmp/SyntaxError" )
+	exit 1
+}
+# -------------------------------------------------------------
+#  fillDefaults
+#    This routine reads the defaults in the OS
+#  defaults section of the database.  It saves the defaults
+#  in the "defaults" awk-style string array.
+#
+# -------------------------------------------------------------
+function fillDefaults() {
+	if ( DeBug > 0 ) {
+		Depth++
+		for ( i=1; i < Depth; i++ )
+			printf(" ") > DeBugFile
+		print "Entering function fillDefaults:" > DeBugFile
+	}
+	tempDflt = ""
+	NumEntries = 1
+	do {
+		if ( tempDflt != "" ) {
+			keyword = tempDflt
+			tempDflt = ""
+		}
+		else
+			keyword = nextToken()
+	
+		if ( keyword == "}" )
+			break;
+		if ( "=" != nextToken())
+			syntaxError("Keyword: " keyword " not followed by \"=\" ");
+		tempDflt = nextToken();
+		if ( lookAhead() == "=" )
+			defaults[keyword]=""
+		else {
+			if ( tempDflt == "<SRC>" ) {
+				SrcDefault = keyword;
+				tempDflt = ""
+			}
+			if ( tempDflt == "<LNK>" ) {
+				LnkDefault = keyword;
+				tempDflt = ""
+			}
+			if ( tempDflt == "<TYPE>" ) {
+				TypDefault = keyword;
+				tempDflt = "file"
+			}
+			if ( tempDflt == "<DEST>" ) {
+				DestDefault = keyword;
+				tempDflt = ""
+			}
+			if ( tempDflt == "<MODE>" ) {
+				ModeDefault = keyword;
+				tempDflt = "0444"
+			}
+			if ( tempDflt == "<OWNER>" ) {
+				OwnerDefault = keyword;
+				tempDflt = "bin"
+			}
+			if ( tempDflt == "<GROUP>" ) {
+				GroupDefault = keyword;
+				tempDflt = "bin"
+			}
+			defaults[keyword]= tempDflt
+
+			tempDflt = ""
+		}
+		defOrder[NumEntries++] = keyword;
+	} while ( 1 )
+	if ( DeBug > 3 ) {
+		DBGprintArray(defaults,"defaults") 
+		print "SrcDefault =" SrcDefault  > DeBugFile
+		print "LnkDefault =" LnkDefault  > DeBugFile
+		print "TypDefault =" TypDefault  > DeBugFile
+	}
+	if ( DeBug > 0 ) Depth--
+}
+# -------------------------------------------------------------
+#  getOS
+#    This routine scans the database for an 
+#  open brace, then a token, then a ":" indicating 
+#  the start of an OS defaults section.
+#
+# -------------------------------------------------------------
+function getOS()
+{
+	if ( DeBug > 0 ) {
+		Depth++
+		for ( i=1; i < Depth; i++ )
+			printf(" ") > DeBugFile
+		print "Entering function getOS:" > DeBugFile
+	}
+	osQual = ""
+	gotOS = 0
+
+	if ( "{" != nextToken() )
+		syntaxError("Missing initial {")
+	os = nextToken();
+	if ( lookAhead() == ":" ) {
+		nextToken();
+		osQual= nextToken();
+	} else 
+		osQual= ""
+	if ( DeBug > 0 ) Depth--
+	return os
+}
+# -------------------------------------------------------------
+#  nextToken
+#    parse the incoming data stream into tokens.
+#
+# -------------------------------------------------------------
+function nextToken() {
+	if ( DeBug > 0 ) {
+		Depth++
+		for ( i=1; i < Depth; i++ )
+			printf(" ") > DeBugFile
+		print "Entering function nextToken:" > DeBugFile
+	}
+	if ( EOF_Reached == 1 )
+		syntaxError("Premature EOF");
+	tmpToken=tokens[TK++]
+	while ( TK > Ntokens || tokens[TK] == ";" ) {
+		TK++
+		if ( TK > Ntokens )
+			if ( newLine() <= 0 ) {
+				EOF_Reached = 1;
+				break;
+			}
+	}
+	if ( DeBug > 2 )
+		print "Returning token: " tmpToken > DeBugFile
+	if ( DeBug > 0 ) Depth--
+	return tmpToken
+}
+# -------------------------------------------------------------
+#  lookAhead
+#     return the token at the head of the current list of
+#  tokens, but do not bump the token count in TK
+#
+# -------------------------------------------------------------
+function lookAhead() {
+	if ( DeBug > 0 ) {
+		Depth++
+		for ( i=1; i < Depth; i++ )
+			printf(" ") > DeBugFile
+		print "Entering function lookAhead" > DeBugFile
+	}
+	if ( DeBug > 0 ) Depth--
+	return tokens[TK];
+}
+# -------------------------------------------------------------
+#  newLine, tokenize
+#    read a new line of input and tokenize it.
+#
+# -------------------------------------------------------------
+function newLine() {
+	if ( DeBug > 0 ) {
+		Depth++
+		for ( i=1; i < Depth; i++ )
+			printf(" ") > DeBugFile
+		print "Entering function newLine:" > DeBugFile
+	}
+	if ( (retval = getline) <= 0 ) {
+		if ( DeBug > 0 ) Depth--
+		return retval
+	}
+	retval =  tokenize()
+	if ( DeBug > 0 ) Depth--
+	return retval
+}
+function tokenize() {
+	if ( DeBug > 0 ) {
+		Depth++
+		for ( i=1; i < Depth; i++ )
+			printf(" ") > DeBugFile
+		print "Entering function tokenize:" > DeBugFile
+	}
+	# Skip blank/comment lines
+	while ( NF == 0 || $0 ~ /^[ 	]*#/  ) {
+		if ( (getline) <= 0 ) {
+			if ( DeBug > 0 ) Depth--
+			return 0
+		}
+	}
+	
+
+	#
+	# Make sure syntactically meaningful characters are surrounded by
+	# white space.  (I gave up on gsub for this purpose).
+	#
+	last=1
+	Str=""			# temp string for modified input line
+	tstStr=$0		# part of input line being tested
+	newStr=$0		# current input line image with modifications
+##########################################################################
+# REPLACE THE FOLLOWING LINE WITH A WORK_AROUND FOR A PROBLEM WITH
+# THE MATCH FUNCTION FOR THE SUN VERSION OF "nawk"
+#
+#	while ( match(tstStr,"[^\\\][:=}{;]") ) {
+#
+	while ( match(tstStr,"[:=}{;]") ) {
+		if ( RSTART-1 > 0 && substr(tstStr,RSTART-1,1) != "\\") {
+			RSTART=RSTART-1
+			LENGTH=LENGTH+1
+		} else {
+			#
+			# The character was escaped with a backslash.
+			# Patch things up -- continue testing the rest
+			# of the line.
+			# 
+			Str=Str substr($0,last,RSTART+1) 
+			last = last + RSTART + 1
+			tstStr =substr($0,last)
+			newStr = Str tstStr
+			continue;	
+		}
+#######################   end of workaround ################################
+############################################################################
+		if ( DeBug > 1 ) {
+			print "Tokenize: Match found in: " tstStr
+			print "RSTART= " RSTART " ; RLENGTH = " RLENGTH
+		}
+                # match found -- 
+		# the temp string is now modified to contain:
+		# 1) all characters up to the match and the first char of match
+		# 2) blank before the  syntactically significant char
+		# 3) the significant character
+		# 4) blank following the significant character
+
+                Str=Str substr($0,last,RSTART) " " substr($0,last+RSTART,1) " "
+                last = last + RSTART + 1;
+		#
+		# Test remaining part of input line for additional occurances
+		# of syntactically significant characters.
+		#
+                tstStr=substr($0,last)
+		#
+		# Our best guess for the new string is the part of the
+		# input line already tested plus the part yet to be tested.
+		#
+                newStr=Str tstStr
+        }
+	#
+	# Check for any instances of syntax chars at the start of the line
+	#
+        sub("^[:=}{;]","& ",newStr);
+        $0 = newStr
+
+	#
+        # allow escaping of significant syntax characters
+        #
+        gsub("[\\\][{]","{")
+        gsub("\\\:",":")
+        gsub("\\\;",";")
+        gsub("\\\=","=")
+        gsub("[\\\][}]","}")
+
+	#
+	# Having insured that interesting chars are surrounded by blanks
+	# now tokenize the input line.
+	#
+
+	Ntokens = split($0,tokens)
+	TK = 1
+	if ( DeBug > 3 )
+		DBGprintTokens()
+	if ( DeBug > 0 ) Depth--
+	return Ntokens
+}
+function DBGprintTokens()
+{
+	for ( i = 1; i <= Ntokens ; i++ )
+		print "tokens[" i "] = " tokens[i] > DeBugFile
+	return 0
+}
+function DBGprintArray(array,name) {
+	for ( i in array) {
+		print name "[" i "] = " array[i]  > DeBugFile
+	}
+}
+# -------------------------------------------------------------
+#  skipToToken
+#     read until the passed in token is encountered
+#
+# -------------------------------------------------------------
+function skipToToken(tok)
+{
+	if ( DeBug > 0 ) {
+		Depth++
+		for ( i=1; i < Depth; i++ )
+			printf(" ") > DeBugFile
+		print "Entering function skipToToken:" > DeBugFile
+	}
+	while ( nextToken() != tok )
+		;
+	if ( DeBug > 0 ) Depth--
+}
+# -------------------------------------------------------------
+#  readData
+#
+# -------------------------------------------------------------
+function readData() {
+	if ( DeBug > 0 ) {
+		Depth++
+		for ( i=1; i < Depth; i++ )
+			printf(" ") > DeBugFile
+		print "Entering function readData" > DeBugFile
+	}
+	while ( EOF_Reached == 0 ) {
+		if ( fileName != FILENAME ) {
+			if ( DeBug > 1 ) {
+				print "====>Files Changed" > DeBugFile
+				print "fileName= " fileName > DeBugFile
+				print "FILENAME= " FILENAME > DeBugFile
+			}
+			fileName = FILENAME
+			# skip over defaults section of the new file
+			while ( lookAhead() == "{" ) {
+				# This should be another default spec
+				# skip it. (watch out for syntax errors)
+				os = getOS()
+				if ( osQual != "defaults" )
+					syntaxError("Expected os:defaults found: \"" os ":" osQual "\"")
+				#
+				# Relax this restriction since we are
+				# ignoring this defaults record
+				#if ( os == BlockToken )
+				#	syntaxError("Only one \"defaults\" record allowed per os" )
+
+				skipToToken("}");
+			}
+		}
+		if ( getNextRecord(record) > 0 )
+			PRTREC(record);
+		# skip remaining os entries for this source
+		# sorry no error checking.
+		while ( EOF_Reached == 0 && lookAhead() == "{" )
+			skipToToken("}")
+	if ( DeBug > 1 )
+		print "EOF_Reached = " EOF_Reached > DeBugFile
+	}
+	if ( DeBug > 0 ) Depth--
+}
+
+# -------------------------------------------------------------
+#  getNextRecord
+#
+#    this function fills the rec[] array with defaults
+#
+#    then it scans for a block that has a token maching
+#    BlockToken, or accepts a block with the "default" 
+#    token.  The "default" token is not accepted if 
+#    defaults are disallowed.
+#
+#    finally fillRecord is called to read in the lines
+#    in the block and override the entries in the rec[] array.
+#
+# -------------------------------------------------------------
+function getNextRecord(rec) {
+	if ( DeBug > 0 ) {
+		Depth++
+		for ( i=1; i < Depth; i++ )
+			printf(" ") > DeBugFile
+		print "Entering function getNextRecord:" > DeBugFile
+	}
+	# fill with defaults
+	for ( i in defaults ) 
+		rec[i] = defaults[i];
+	do {
+		src = nextToken()
+		if ( DeBug > 2 )
+			print "src=" src > DeBugFile
+# Allow special characters to appear in src names if they have been backslashed
+#			if ( src ~ /[{:=}]/ )
+#				syntaxError("Invalid source: \"" src "\"");
+		do {
+			os = getOS()
+			if ( DeBug > 1 ) {
+				print "Got os " os " and qual= " osQual > DeBugFile
+				print "NR= " NR " : " $0 > DeBugFile
+			}
+			if (( os != BlockToken || osQual == "not" ) \
+				&& ( os != "default" || UseDefaultBlocks != "Y" ) ) {
+
+				if ( DeBug > 2)
+					print "Skipping to end of os rec" > DeBugFile
+				skipToToken("}");
+			}
+			if ( EOF_Reached == 1 || fileName != FILENAME ){
+				if ( DeBug > 0 ) Depth--
+				return 0
+			}
+			if ( DeBug > 2 )
+				print "Look Ahead is: " tokens[TK] > DeBugFile
+		} while ( lookAhead() == "{" )
+	} while (( os != BlockToken ) && ( os != "default" || UseDefaultBlocks != "Y"))
+		if ( DeBug > 2)
+			print "About to call fillRecord" > DeBugFile
+	fillRecord(rec)
+	if ( DeBug > 0 ) Depth--
+	return 1
+}
+function fillRecord(rec) {
+	if ( DeBug > 0 ) {
+		Depth++
+		for ( i=1; i < Depth; i++ )
+			printf(" ") > DeBugFile
+		print "Entering fillRecord:" > DeBugFile
+	}
+	tempEntry = ""
+	do {
+		if ( tempEntry != "" ) {
+			keyword = tempEntry;
+			tempEntry = ""
+		} else
+			keyword = nextToken();
+		if ( keyword == "}" )
+			break;
+		if ( "=" != nextToken())
+			syntaxError("Keyword: " keyword " not followed by \"=\"");
+		tempEntry = nextToken();
+		if ( lookAhead() == "=" )
+			rec[keyword] = ""
+		else {
+			rec[keyword] = tempEntry
+			tempEntry = ""
+		}
+	} while (1)
+	#
+	# check for source entry
+	# THIS IMPLIES KNOWLEDGE OF .db FILE ENTRIES!!
+	if ( DeBug > 2)
+		print "TYPE= " rec[TypDefault]	> DeBugFile
+	if ( src == "-" )
+		if ( rec[TypDefault]=="directory" || rec[TypDefault]=="empty_dir")
+		{
+			# no source required for a directory
+			if ( rec[SrcDefault] != "" )
+				syntaxError(SrcDefault " \"" rec[SrcDefault] "\" specified for a directory.")
+			if ( rec[LnkDefault] != "" )
+				syntaxError(LnkDefault " \"" rec[LnkDefault] "\" specfied for a directory.")
+   
+			rec[SrcDefault] = src;
+		} else if ( rec["status"] == "---cu-" ) {
+			# This is used for some reason (X11-SERV.db)
+			if ( rec[SrcDefault] != "" )
+				syntaxError( "File: \"" rec["install_target"] "\" with special status: \"---cu-\" should have no source.");
+		} else
+			syntaxError("Invalid source: \"" src "\" for type: \"" rec[TypDefault] )
+	else if ( rec[TypDefault] ~ /link/ )
+		if ( src ~ /^\// || src ~ /^\./ ) {
+			if ( rec[SrcDefault] != "")
+				syntaxError( SrcDefault ": \""	rec[SrcDefault] "\" specified for link: \"" src "\"")
+			if ( rec[LnkDefault] == "" )
+				rec[LnkDefault]=src;
+		} else
+			syntaxError("Invalid source: \"" src "\" for type: \"" rec[TypDefault] "\"")
+	else if ( rec[TypDefault] == "file" || rec[TypDefault] == "control" )
+		rec[SrcDefault] = src;
+	else
+		syntaxError("Unrecognized type:\"" rec[TypDefault] "\"")
+
+	if ( DeBug > 0 ) Depth--
+	
+}
+
+# -------------------------------------------------------------
+#  printDB
+#	Print records in ".db" format
+# -------------------------------------------------------------
+function printDb(rec) {
+	if ( DeBug > 0 ) {
+		Depth++
+		for ( i=1; i < Depth; i++ )
+			printf(" ") > DeBugFile
+		print "Entering printDb:"	 > DeBugFile
+	}
+	# NumEntries should be one greater than the number of defaults
+	# read in.
+	for ( i = 1; i< NumEntries; i++ ) {
+		printf("%-40s %s %s\n",defOrder[i], ":",rec[defOrder[i]])
+	}		
+	print "#"
+	if ( DeBug > 0 ) Depth--
+}
+
+
+# -------------------------------------------------------------
+#  printLst
+#	Print records in ".lst" format
+# -------------------------------------------------------------
+function printLst(rec) {
+	if ( DeBug > 0 ) {
+		Depth++
+		for ( i=1; i < Depth; i++ )
+			printf(" ") > DeBugFile
+		print "Entering printLst:"	 > DeBugFile
+	}
+	if ( rec[TypDefault] ~ /link/ ) 
+		Source = LnkDefault
+	else
+		Source = SrcDefault
+
+	printf("%s %s %s %s %s %s %s %s %s\n",
+				   rec[ DestDefault],
+				   rec[ ModeDefault ],
+				   rec[ Source ],
+				   rec[ TypDefault ],
+				   rec[ OwnerDefault ],
+				   rec[ GroupDefault ],
+				   rec[ "status" ],
+				   rec[ "processor" ],
+				   rec[ "responsible_project" ] ) 
+				
+	if ( DeBug > 0 ) Depth--
+}
+
+# -------------------------------------------------------------
+#  printGather
+#	print records in one of the formats expected by Gather.ksh
+#	(Jim Andreas print routine).
+# -------------------------------------------------------------
+function printGather(rec) {
+# print "Entering printRecord:  "
+
+    if (( BlockToken == "hp-ux" ) && ( rec[ "processor" ] != "378" ))
+    {
+	if ( index( rec[ "processor" ], Machine ) == 0 )
+	{
+#printf( "skipping %s, Machine %s machines %s\n", src, Machine, rec[ "processor" ] );
+	    return
+	}
+    }
+    if ( action == "toSDD" )
+    {
+	if ( rec[ "type" ] == "file" )
+	{
+	    printf("%s:F:%s:%s:%s:*::\n", 
+		rec[ "install_target" ], rec[ "owner" ],
+		rec[ "group" ], rec[ "mode" ])
+	}
+    }
+    else if ( action == "toReleaseTree" )
+    {
+      if ( ( rec[ "type" ] == "hard_link" ) ||
+	     ( rec[ "type" ] == "sym_link" )  || 
+	     ( rec[ "type" ] == "file" )   ) 
+      {
+
+#
+# if this is a link, then fudge a source file for Gather.ksh
+# to check on.  Really we are linking two dest files together
+# so the hack is to get around the check in Gather.ksh
+#
+
+	if ( ( rec[ "type" ] == "hard_link" ) ||
+	     ( rec[ "type" ] == "sym_link" ) )
+	{
+	    printf( "   {s}%s {d}%s\n", "-", rec[ "install_target" ] );
+	}
+	else if ( length( src ) > 34 )
+		printf( "   {s}%s {d}%s\n",   src, rec[ "install_target" ] );
+	    else
+		printf( "   {s}%-34s {d}%s\n", src, rec[ "install_target" ] );
+
+	if ( rec[ "install_rule_name" ] == "c-" )
+	{
+	    printf( "compress -c < {s}%s > {d}%s\n", src, 
+		rec[ "install_target" ] );
+	}
+	else if ( rec[ "type" ] == "sym_link" )
+	{
+	    printf( "ln -s %s {d}%s\n", src, 
+		rec[ "install_target" ] );
+	}
+	else if ( rec[ "type" ] == "hard_link" )
+	{
+	    printf( "ln {d}%s {d}%s\n", src, 
+		rec[ "install_target" ] );
+	}
+	else if ( rec[ "uncompress" ] == "true" )
+	{
+	    printf( "uncompress -c < {s}%s > {d}%s\n", src, 
+		rec[ "install_target" ] );
+	}
+	else if ( length( src ) > 34 )
+	{
+	    printf( "cp {s}%s {d}%s\n", src, 
+		rec[ "install_target" ] );
+	}
+	else
+	{
+	    printf( "cp {s}%-34s {d}%s\n", src, 
+		rec[ "install_target" ] );
+	}
+	printf( "%s %s %s\n", rec[ "owner" ], rec[ "group" ], rec[ "mode" ])
+	rec[ "install_rule_name" ] = "";
+	rec[ "uncompress" ] = "";
+      }
+    }
+    else if ( action == "toDeliverArgs" )
+    {
+	temp = rec[ "install_target" ];
+	m = n = index( temp, "/" );
+	while ( n != 0 )
+	{
+	    temp = substr( temp, n+1 );
+	    n = index( temp, "/" );
+	    m += n;
+	}
+	dirnametarget = substr( rec[ "install_target" ], 1, m-1 );
+
+	if ( length( rec[ "install_target" ] ) > 40 )
+	{
+	    printf("%s -d .%s\n", rec[ "install_target" ], dirnametarget );
+	}
+	else
+	{
+	    printf("%-40s -d .%s\n", rec[ "install_target" ], dirnametarget );
+	}
+    }
+    else if ( action == "toCheckBuild" )
+    {
+# print "Entering printRecord - toCheckBuild:  "
+	#
+	# skip any link info
+	#
+	if ( rec[ "type" ] == "file" )
+	{
+	    #
+	    # just print the source path for the checker tool
+	    #
+	    printf("%s\n", src );
+	}
+    }
+    else if ( action == "toFileList" )
+    {
+	#
+	# skip any link info
+	#
+	if ( rec[ "type" ] == "file" )
+	{
+	    #
+	    # print the source and install_target for the human person
+	    #
+	    if ( length( src ) > 40 || length( rec[ "install_target" ] ) > 40 )
+	    {
+		printf("%s -> %s %s\n", src,
+		   rec[ "install_target" ], rec[ "mode" ] );
+	    }
+	    else
+	    {
+		printf("%-40s -> %-40s %s\n", src,
+		   rec[ "install_target" ], rec[ "mode" ] );
+	    }
+	}
+    }
+    else if ( action == "toTargetList" )
+    {
+	#
+	# skip any link info
+	#
+	if ( rec[ "type" ] == "file" )
+	{
+	    #
+	    # just print the install_target
+	    #
+	    printf("%s\n", rec[ "install_target" ] );
+	}
+    }
+}
+

+ 437 - 0
cde/admin/IntegTools/dbTools/udbToAny.ksh

@@ -0,0 +1,437 @@
+#!/bin/ksh 
+
+# ------------------------------------------------------------- 
+#  udbToAny.ksh 
+# 
+#     This script was leveraged from "databaseConversionTool.ksh" 
+# it should provide a superset of the functionality of that script; 
+# however the primary motivation was to get away from the use of
+# multiple divergent parsers for the ".udb" style database.  The
+# parser has been moved into an awk "library" file: udbParseLib.awk.
+# this parser can and should be used by all scripts wishing to parse
+# the ".udb" data bases. 
+#
+# ----------------------------
+# new features:
+#
+#  -toDB		to convert to old mksubmit-style ".db" format
+#  -toLst  		to convert to old domain-port-style ".lst" files
+#  -toCustom <prt>	to specify a print routine for a custom format
+#  -custom <awklib>	to specify a library containing custom print routines.
+#  -udbParseLib <awkLib> to specify a library containing an alternate parser. 
+#  -mailTo  <user>	to specify an administrator who will receive mail
+#			concerning parsing errors. 
+#
+#  -Database		is now obsolete (although it will still work)
+#  <udbfile> ... ...	The script can now take multiple udb files (Only the
+#			defaults specified in the first udb file will apply).
+#  
+# ----------------------------
+#
+#     This script converts a universal database to an 
+# HP OSF style System Definition Database (SDD) file,
+# or a set of args suitable to supply to the Chelmsford deliver
+# tool, or a set of commands to build a delivery tree.
+# For more details, please refer to the "X11 and VUE for HP_OSF/1.0"
+# document.
+#
+#  This script was leveraged (read hacked extensively) from
+#  the "udbToDb" script by Jim Andreas.  Ron Voll authored the
+#  original "udbToDb" script.
+#
+# -------------------------------------------------------------
+
+# usage:  databaseToSDD.ksh Option udbFile
+#
+# where Option is one of the following:
+#
+# -toDB		     convert a .udb to ".db" format
+# -toLst	     convert a .udb to ".lst" format
+# -toSDD             convert a .udb to SDD format
+# -toDeliverArgs     convert a .udb to args that the deliver tool likes
+# -toReleaseTree     convert a .udb to a script to build a delivery tree
+# -toCheckBuild      convert a .udb to a script to check the items in a build
+# -toFileList        convert a .udb to a list of files for carbon units
+# -Machine           specifies 3,7,8 for hp-ux releases
+# -ReleaseStream     {hp-ux, osf, whatever} 
+# -NoDefaults        do not convert any records labeled default
+# -toTargetList      convert a .udb to a list of target files in product tree
+#                      the leading path is stripped and just the target
+#                      file is left - for easy diffing with some other
+#                      version of a release
+# -custom <awkFile>		Supply a custom "awk" print library
+# -toCustom <prt routine>
+# -udbParseLib <awkFile>	Supply an alternate  "awk" parser library
+
+
+# -------------------------------------------------------------
+#  ConvertRoutine
+# 
+#   This ksh function invokes awk to do all of the dirty
+# work.  The DoAction variable is consulted only in the
+# final stages of printing the desired info after the
+# .udb "phrases" are parsed.
+#
+# -------------------------------------------------------------
+ConvertRoutine()
+{
+
+
+#
+# set what we are going to do
+#
+    typeset DoAction=$1
+
+#
+# set the "release stream" or token in a block in the .udb
+# file for which we will scan.
+#
+    typeset BlockToken=$2
+
+# 
+# and for HP-UX releases, the particular machine 68k/Snake/S800 3/7/8
+#
+    typeset machine=$3
+# 
+# set flag if default blocks are to be processed
+#
+    typeset UseDefaultBlocks=$4
+
+    shift
+    shift
+    shift
+    shift
+
+    AWK=/usr/bin/awk
+    if [ -x /usr/bin/nawk ]; then
+	AWK=/usr/bin/nawk
+    fi
+
+#
+# Custom print routines may use the following parser variables:
+#	defOrder[]	--- An array containing the names of the fields in
+#			    a data base record (in the correct order).
+#	NumEntries	--- One MORE than the number of entries in the
+#			    "defOrder" array.  This is the number of fields
+#			    in a data base record.
+#	rec[]		--- An associative array indexed by data base record
+#			    field name containing the value of the field.
+#
+# Assign custom print routines to be used for output.  The default is to
+# use the "printDb" function associated with the library.
+#
+
+    typeset	PRT=printDb
+    case "$DoAction" in
+    toDB)
+	PRT=printDb
+        ;;
+    toLst)
+	PRT=printLst
+        ;;
+    toFileList|toTargetList|toCheckBuild|toReleaseTree|toDeliverArgs|toSDD)
+	PRT=printGather;
+	;;
+    toCustom) 
+	CUSTOM_PRINT="-f $CUSTOM_PRINT_LIB"
+	PRT=$CUS_PRT
+	;;
+    *)	# Unknown Action
+	echo "$0: Unknown Action>> \"$doAction\""
+	exit 1;
+	;;
+    esac
+
+   cat > /tmp/awk$$ <<EOF
+#
+# The function name "PRTREC" is used by the parsing routines
+# to do the output. By providing a custom output function you
+# can print the database any way you want.  The default is to
+# use the "printRecord" function built defined in the awk file
+# containing the awk parser.
+#
+function PRTREC(rec) {
+	$PRT(rec)
+}
+BEGIN {
+	parseUdb()
+}
+{
+	print "Getting New Line AWK style -- Problem?"		
+	exit 1
+}
+EOF
+
+   #
+   # Create a single awk file for use with the "-f" parameter.
+   # IBM's awk only allows one "-f"
+   #
+    cat "$UDB_PARSE_LIB" >> /tmp/awk$$
+    [ -z "$CUSTOM_PRINT" ]  || cat "$CUSTOM_PRINT_LIB" >> /tmp/awk$$
+
+    $AWK -v mailTo="$Administrator" \
+	 -v action="$DoAction" \
+	 -v BlockToken="$BlockToken" \
+	 -v Machine="$machine" \
+	 -v UseDefaultBlocks="$UseDefaultBlocks" \
+	 -v DeBugFile="$DEBUGFILE" \
+	 -v DeBug="$DEBUGLEVEL" \
+	 -f /tmp/awk$$ $*
+
+
+#
+# Removed from parameter list because IBM's awk only allows one "-f"
+#	 $CUSTOM_PRINT \
+#	 -f "$UDB_PARSE_LIB" \
+#
+
+     rm /tmp/awk$$
+}
+
+#
+#  print a handy usage message to stderr (file descriptor 2 )
+#
+#
+usage()
+{
+    exec >&2
+
+    echo "$ScriptName: usage:" 
+    echo ""
+    echo "  $ScriptName [Options] <UdbFile> ..."
+    echo ""
+    echo "     -toDB              convert a .udb to \".db\" format"
+    echo "     -toLst              convert a .udb to \".lst\" format"
+    echo "     -toSDD             convert a .udb to SDD format"
+    echo "     -toDeliverArgs     convert a .udb to args that the deliver tool likes"
+    echo "     -toReleaseTree     convert a .udb to a script to build a delivery tree"
+    echo "     -toCheckBuild      convert a .udb to a script to check a build"
+    echo "     -toFileList        convert a .udb to a list of files"
+    echo "     -toTargetList      convert a .udb to a list of product files"
+    echo "     -ReleaseStream     {hp-ux, osf, whatever}"
+    echo "     -Machine           specifies machine 3,7,8 for hp-ux"
+    echo "     -NoDefaults        do not convert any records labeled \"default\""
+    echo "     -Database path     (obsolete) specifies full path to the .udb file to convert"
+    echo "   -mailTo  <user>	  Specify a user to receive mail on errors."
+    echo "   -toCustom	<prt>	  Specify the name of a custom print routine."  
+    echo "   -custom <awkFile>    Supply a custom "awk" print library."
+    echo " -udbParseLib <awkFile> Supply an alternate 'awk' parser library"
+    exit 1
+}
+
+
+# OK, here is where we really start execution.
+#   Check that the first argument defines what this script is
+#  supposed to do:
+
+#    Obscurity footprint-in-the-sand:  "${1##*/}" is equivalent
+#      to basename(1)
+#
+ScriptName=${0##*/}
+
+# -toSDD             convert a .udb to SDD format
+# -toDeliverArgs     convert a .udb to args that the deliver tool likes
+# -toReleaseTree     convert a .udb to a script to build a delivery tree
+# -toCheckBuild      convert a .udb to a script to check the items in a build
+
+if [ $# -le 3 ]; then
+    usage $0
+fi
+
+typeset TakeDefaultBlocks="Y"
+typeset Administrator=""
+#typeset DBTOOLSRC=/x/toolsrc/dbTools
+typeset DBTOOLSRC=`dirname $0`
+typeset UDB_PARSE_LIB="$DBTOOLSRC/udbParseLib.awk"
+typeset CUSTOM_PRINT_LIB=""
+typeset DEBUGFILE="/dev/tty"
+typeset DEBUGLEVEL=0
+
+if [ $# -gt 2 ]; then 
+    while [ $# -gt 0 ]
+    do
+	case $1 in 
+	-NoDefaults)
+	    TakeDefaultBlocks=N
+	    shift
+	    continue
+	    ;;
+	-toDB)
+	    Action=toDB
+	    shift;
+	    continue;
+	    ;;
+	-toLst)
+	    Action=toLst
+	    shift;
+	    continue;
+	    ;;
+	-toSDD)
+	    Action=toSDD
+	    shift
+	    continue
+	    ;;
+	-toDeliverArgs)
+	    Action=toDeliverArgs
+	    shift
+	    continue
+	    ;;
+	-toReleaseTree)
+	    Action=toReleaseTree
+	    shift
+	    continue
+	    ;;
+	-toCheckBuild)
+	    Action=toCheckBuild
+	    shift
+	    continue
+	    ;;
+	-toTargetList)
+	    Action=toTargetList
+	    shift
+	    continue
+	    ;;
+	-toFileList)
+	    Action=toFileList
+	    shift
+	    continue
+	    ;;
+	-Machine)
+	    if [ "x$2" = "x" ]; then
+		usage
+	    fi
+	    Machine=$2
+	    shift
+	    shift
+	    continue
+	    ;;
+	-ReleaseStream)
+            if [ "x$2" = "x" ]; then
+                usage
+            fi
+            ReleaseStream=$2
+            shift
+            shift
+            continue
+	    ;;
+	-Database)
+            if [ "x$2" = "x" ]; then
+                usage
+            fi
+	    if [ ! -r "$2" ]; then 
+		usage
+	    fi
+            Database="$Database $2"
+            shift
+            shift
+            continue
+	    ;;
+	-udbParseLib) # specify alternate "awk" parser location
+            if [ "x$2" = "x" ]; then
+                usage
+            fi
+	    if [ ! -r "$2" ]; then 
+		usage
+	    fi
+            UDB_PARSE_LIB=$2
+            shift
+            shift
+            continue
+	    ;;
+	-toCustom) # specify custom "awk" print routines
+            if [ "x$2" = "x" ]; then
+                usage
+            fi
+	    Action=toCustom
+            CUS_PRT=$2
+            shift
+            shift
+            continue
+	    ;;
+	-custom) # specify custom "awk" print routines
+            if [ "x$2" = "x" ]; then
+                usage
+            fi
+	    if [ ! -r "$2" ]; then 
+		usage
+	    fi
+            CUSTOM_PRINT_LIB=$2
+            shift
+            shift
+            continue
+	    ;;
+	-mailTo) # specify an administrator who receives mail about errors.
+            if [ "x$2" = "x" ]; then
+                usage
+            fi
+            Administrator=$2
+            shift
+            shift
+            continue
+	    ;;
+	-DeBugFile) # specify a debug file and debug level for parser debug info
+            if [ "x$2" = "x" ]; then
+                usage
+            fi
+            if [ "x$3" = "x" ]; then
+                usage
+            fi
+            DEBUGFILE=$2
+	    shift 2
+            continue
+	    ;;
+	-DeBugLevel) # specify a debug level for parser debug info
+            if [ "x$2" = "x" ]; then
+                usage
+            fi
+            if [ "x$3" = "x" ]; then
+                usage
+            fi
+            DEBUGLEVEL=$2
+	    shift 2
+            continue
+	    ;;
+	-*)
+	    echo "unknown option: $1"
+	    echo ""
+	    usage
+	    exit 1;
+	    ;;
+	*) if [ ! -r $1 ]; then
+		usage
+	   fi
+	   Database="$Database $1"
+	   shift;
+	   ;;
+	esac
+    done
+fi
+
+if [ "$Action" = "toCustom" ]; then
+	if [ -z "$CUSTOM_PRINT_LIB" ]; then
+		echo "You Must specify an awk file containing the custom print routine \"$CUS_PRT\""
+		exit 1;
+	fi
+fi
+
+
+if [ "$Machine" = "" ]; then
+    Machine=NA
+elif [ "$Machine" = "300" ]; then
+    Machine="3"
+elif [ "$Machine" = "700" ]; then
+    Machine="7"
+elif [ "$Machine" = "800" ]; then
+    Machine="8"
+fi
+if [ "$ReleaseStream" = "" ]; then
+    echo "$ScriptName: need to specify a -ReleaseStream" >&2
+    exit 1
+fi
+if [ "$Database" = "" ]; then
+    echo "$ScriptName: need to specify a -Database" >&2
+    exit 1
+fi
+
+
+ConvertRoutine $Action $ReleaseStream $Machine $TakeDefaultBlocks $Database 

+ 9 - 0
cde/admin/IntegTools/dbTools/uncomment

@@ -0,0 +1,9 @@
+#! /bin/ksh
+
+#
+# Script to remove comments and blank lines from ".lst" files
+# and coalesce multiple blanks/tabs into a single blank
+#
+
+cat $@ | egrep -v '^[ 	]*#|^[ 	]*$' | sed 's/[ 	][ 	]*/ /g'|\
+sed 's/ $//'

+ 8 - 0
cde/admin/IntegTools/deinstall.dt

@@ -0,0 +1,8 @@
+#=============================================================================
+#=============================================================================
+# deinstall.dt
+#
+#   This script has been replaced with dinstall.dt.src.
+# 
+#=============================================================================
+#=============================================================================

+ 783 - 0
cde/admin/IntegTools/dinstall.dt.src

@@ -0,0 +1,783 @@
+XCOMM!/bin/ksh
+XCOMM $XConsortium: dinstall.dt.src /main/6 1996/04/23 11:18:22 drk $
+
+XCOMM ==========================================================================
+XCOMM ==========================================================================
+XCOMM deinstall.dt
+XCOMM
+XCOMM   Script to deinstall the April 1994 Snapshot Desktop on
+XCOMM   HP, IBM, Sun, Fujitsu,  or Novell Unix systems from a CDROM
+XCOMM
+XCOMM ==========================================================================
+XCOMM ==========================================================================
+
+
+
+XCOMM ==========================================================================
+XCOMM
+XCOMM DtiClearScreen - clears the screen
+XCOMM
+XCOMM Input - none
+XCOMM Output - none
+XCOMM Return -none
+XCOMM ==========================================================================
+
+#define HASH #
+#define STAR *
+
+DtiClearScreen() {
+  clear 1>&2
+  HASH DtiPrint "clear"
+}
+
+
+XCOMM ==========================================================================
+XCOMM
+XCOMM Log - echo to log
+XCOMM
+XCOMM Input
+XCOMM   $1 - data to echo to log
+XCOMM Output - none
+XCOMM Return -none
+XCOMM ==========================================================================
+
+Log()
+{
+  printf "$1" $2 $3 $4 $5  >> $LOG_FILE
+}
+
+XCOMM ==========================================================================
+XCOMM
+XCOMM DtiPrint - echo to stderr and log
+XCOMM
+XCOMM Input
+XCOMM   $1 - data to echo to stdout
+XCOMM Output - none
+XCOMM Return -none
+XCOMM ==========================================================================
+
+DtiPrint()
+{
+  printf "$1" $2 $3 $4 $5 $6 $7 $8 $9 >&2
+  Log "$1" $2 $3 $4 $5 $6 $7 $8 $9
+}
+
+XCOMM ==========================================================================
+XCOMM
+XCOMM DtiShow - echo to stdout
+XCOMM
+XCOMM Input
+XCOMM   $1 - data to echo to stdout
+XCOMM Output - none
+XCOMM Return -none
+XCOMM ==========================================================================
+
+DtiShow()
+{
+  printf "$1" $2 $3 $4 $5 $6 $7 $8 $9 >&2
+}
+
+
+XCOMM ==========================================================================
+XCOMM
+XCOMM DtiReturn - return a string to stdout
+XCOMM
+XCOMM Input
+XCOMM   $1 - data to return
+XCOMM Output - none
+XCOMM Return -none
+XCOMM ==========================================================================
+
+DtiReturn()
+{
+  echo "$1"
+}
+
+
+
+XCOMM ==========================================================================
+XCOMM
+XCOMM DtiWhoami
+XCOMM
+XCOMM Input - none
+XCOMM Output - none
+XCOMM Return
+XCOMM   result of system 'whoami' command
+XCOMM
+XCOMM ==========================================================================
+
+DtiWhoami()
+{
+  $WHOAMI_PATH/whoami
+}
+
+
+XCOMM ==========================================================================
+XCOMM
+XCOMM Exit - log and exit
+XCOMM
+XCOMM Input
+XCOMM   $1 - data to echo to log
+XCOMM Output - none
+XCOMM Return -none
+XCOMM ==========================================================================
+
+Exit()
+{
+  Log "\n==================================================================\n"
+  Log "* $(date) $($WHOAMI_PATH/whoami)@$(hostname)*"
+  Log "* $1*"
+  Log "\n*exit_code = $2*"
+  Log "\n==================================================================\n"
+  exit $2
+}
+
+
+XCOMM ==========================================================================
+XCOMM
+XCOMM GetPlatform
+XCOMM
+XCOMM Input - none
+XCOMM Output - none
+XCOMM Return
+XCOMM   "hpux"
+XCOMM   "aix"
+XCOMM   "sun"
+XCOMM   "uxp"
+XCOMM   "usl"
+XCOMM   "dec"
+XCOMM ==========================================================================
+
+GetPlatform()
+{
+  if [ -z "$getPlatform" ]; then
+    os=`uname -s`
+    case $os in
+        *HP-UX*)    getPlatform=hp;;
+        *AIX*)      getPlatform=ibm;;
+        *SunOS*)    getPlatform=sun;;
+        *UNIX_System_V*)  getPlatform=uxp;;
+        *UNIX_SV*)  getPlatform=usl;;
+	*OSF1*)     getPlatform=dec;;
+    esac
+  fi
+  DtiReturn $getPlatform
+}
+
+
+
+XCOMM ==========================================================================
+XCOMM
+XCOMM ValidOS - Verify OS is valid to deinstall on
+XCOMM
+XCOMM Input - none
+XCOMM Output - Error message if invalid platform, will exit.
+XCOMM Return
+XCOMM   "hpux"
+XCOMM   "aix"
+XCOMM   "sun"
+XCOMM   "uxp"
+XCOMM   "usl"
+XCOMM   "dec"
+XCOMM ==========================================================================
+
+ValidOS()
+{
+    platform=$(GetPlatform)
+    case "$platform"  in
+         hp|ibm|sun|uxp|usl|dec)
+                         DtiReturn $platform
+                         ;;
+                      *) Exit $INVALID_OS_MSG 1
+                         ;;
+    esac
+}
+
+
+XCOMM ==========================================================================
+XCOMM
+XCOMM ResolvePathName
+XCOMM
+XCOMM Input  - File Name to be resolved to actual file
+XCOMM Output - none
+XCOMM Return
+XCOMM       Actual File Name resolved down to through all links
+XCOMM
+XCOMM ==========================================================================
+ResolvePathName() {
+        if [ "/" = "$1" ]; then
+                echo $1$2
+        elif [ -L $1 ]; then
+                ResolvePathName `/bin/ls -l $1 | awk '{print $NF}'` $2
+        else
+                ResolvePathName `dirname $1` `basename $1`${2+/}$2
+        fi
+}
+
+
+XCOMM ==========================================================================
+XCOMM
+XCOMM FileIsLink
+XCOMM
+XCOMM Input  - File Name
+XCOMM Output - none
+XCOMM Return
+XCOMM       TRUE, if file is a link
+XCOMM       FALSE, if file is not a link
+XCOMM ==========================================================================
+FileIsLink() {
+  if [[ -L $1 ]] && [[ -a $1 ]]
+  then
+      DtiReturn "TRUE"
+  else
+      DtiReturn "FALSE"
+  fi
+
+}
+
+
+XCOMM ==========================================================================
+XCOMM
+XCOMM StateObjective  - States the objective of the Script to the user
+XCOMM
+XCOMM Input - none
+XCOMM Output - none
+XCOMM
+XCOMM ==========================================================================
+
+
+StateObjective() {
+
+XCOMM Display information to the user, ask if user wishes to continue
+
+while :
+do
+       DtiClearScreen
+       DtiShow "$HERALD_MSG"
+       DtiPrint "$OBJECTIVE_MSG"
+       DtiPrint "$YESNO_MSG"
+
+       read response
+       Log "$RESPONSE_MSG"
+       Log "$response"
+       Log "\n"
+
+       case $response in
+           [yY]*) return 0
+                  ;;
+           [nN]*) exit 0
+                  ;;
+               *) continue
+       esac
+
+done
+
+}
+
+XCOMM ==========================================================================
+XCOMM
+XCOMM DoFilesetScript  - Runs a unconfiguration script in the post_install dirs
+XCOMM
+XCOMM Input - none
+XCOMM Output - none
+XCOMM
+XCOMM ==========================================================================
+
+DoFilesetScript()
+{
+  FilesetName=$1
+
+  HASH
+  HASH Check for the lowercase PLATFORM dir. If doesn't exist then
+  HASH the tree is in uppercase.
+  HASH
+  if [ ! -f $TAR_TREE/dt.pkg ];
+  then
+        typeset -u ScriptName
+  fi
+
+
+  if [ "$BUILD_TREE" = "" ]
+  then
+    ScriptName=$3
+  else
+    ScriptName=$2
+  fi
+
+  test_string=${DATABASE_FILES#*$FilesetName}
+  if (( ${#DATABASE_FILES} > ${#test_string} ))
+  then
+    if [ -x $POST_INSTALL_DIR/$PLATFORM_SCRIPT_DIR/$ScriptName ]
+    then
+        DtiPrint "\n\nExecuting $PLATFORM specific $FilesetName unconfigure script...\n"
+        $POST_INSTALL_DIR/$PLATFORM_SCRIPT_DIR/$ScriptName -d 2>&1 | \
+                                tee -a $LOG_FILE
+    elif [ -x $POST_INSTALL_DIR/$ScriptName ]
+    then
+        DtiPrint "\n\nExecuting $FilesetName unconfigure script...\n"
+        $POST_INSTALL_DIR/$ScriptName -d 2>&1 | tee -a $LOG_FILE
+    fi
+  fi
+}
+
+
+XCOMM ==========================================================================
+XCOMM
+XCOMM RunUnconfigScripts  - Runs relevant unconfiguration scripts, based on
+XCOMM                       fileset installed, calls DoFilesetScript
+XCOMM Input - none
+XCOMM Output - none
+XCOMM
+XCOMM ==========================================================================
+RunUnconfigScripts()
+{
+  DtiPrint "\n\nRunning unconfigure scripts...\n"
+
+  DoFilesetScript CDE-TT       configTT      tt.cfg
+  DoFilesetScript CDE-MIN      configMin     min.cfg
+  DoFilesetScript CDE-RUN      configRun     run.cfg
+  DoFilesetScript CDE-HELP     configHelp    help.cfg
+  DoFilesetScript CDE-HELP-PRG configHelpPrg helpprg.cfg
+  DoFilesetScript CDE-HELP-RUN configHelpRun helprun.cfg
+  DoFilesetScript CDE-SHLIBS   configShlibs  shlibs.cfg
+  DoFilesetScript CDE-AB       configAb      ab.cfg
+  DoFilesetScript CDE-DEMOS    configDemos   demos.cfg
+  DoFilesetScript CDE-ICONS    configIcons   icons.cfg
+  DoFilesetScript CDE-INC      configInc     inc.cfg
+  DoFilesetScript CDE-MAN      configMan     man.cfg
+  DoFilesetScript CDE-MAN-DEV  configManDev  mandev.cvg
+  DoFilesetScript CDE-MSG-CAT  configMsgCat  msgcat.cfg
+  DoFilesetScript CDE-PRG      configPrg     prg.cfg
+
+}
+
+
+XCOMM ==========================================================================
+XCOMM
+XCOMM ValidConfiguration  - Checks to see if the desktop was installed or
+XCOMM                       partially installed on your system
+XCOMM
+XCOMM Input - none
+XCOMM Output - none
+XCOMM Return - TRUE, if valid configuration
+XCOMM          FALSE, for no desktop was found on the system
+XCOMM
+XCOMM ==========================================================================
+ValidConfiguration() {
+ if (( [[ -a $ABSOLUTE_USR_LOCATION ]] ||  [[ -a $DEFAULT_USR_LOCATION ]] ) &&
+     ( [[ -a $ABSOLUTE_ETC_LOCATION ]] ||  [[ -a $DEFAULT_ETC_LOCATION ]] ) &&
+     ( [[ -a $ABSOLUTE_VAR_LOCATION ]] ||  [[ -a $DEFAULT_VAR_LOCATION ]] ))
+ then
+    DtiReturn "TRUE"
+ else
+     STATUS="FALSE"
+
+     for i in $ABSOLUTE_USR_LOCATION $ABSOLUTE_ETC_LOCATION \
+              $ABSLOUTE_VAR_LOCATION $DEFAULT_USR_LOCATION \
+              $DEFAULT_ETC_LOCATION $DEFAULT_VAR_LOCATION
+     do
+        if [ -a $i ]
+        then
+            STATUS="TRUE"
+            break
+        fi
+     done
+
+     DtiReturn "$STATUS"
+ fi
+}
+
+
+XCOMM ==========================================================================
+XCOMM
+XCOMM DisplayDirs  - Determines if directories should be presented
+XCOMM                to the user to determin if they will be deleted or not.
+XCOMM
+XCOMM
+XCOMM Input - none
+XCOMM Output - none
+XCOMM Return - TRUE, if some directories will be deleted
+XCOMM          FALSE, if NO directories will be deleted
+XCOMM
+XCOMM ==========================================================================
+DisplayDirs() {
+  if [[ -d $ABSOLUTE_USR_LOCATION ]] && [[ -a $ABSOLUTE_USR_LOCATION ]]
+  then
+     DtiReturn "TRUE"
+  elif [[ -d $ABSOLUTE_ETC_LOCATION ]] && [[ -a $ABSOLUTE_ETC_LOCATION ]]
+  then
+     DtiReturn "TRUE"
+  elif
+      [[ -d $ABSOLUTE_VAR_LOCATION ]] && [[ -a $ABSOLUTE_VAR_LOCATION ]]
+  then
+      DtiReturn "TRUE"
+  else
+      DtiReturn "FALSE"
+  fi
+
+}
+
+
+XCOMM ==========================================================================
+XCOMM
+XCOMM DisplayDirs  - Determines if links should be presented
+XCOMM                to the user to determine if they will be deleted or not.
+XCOMM
+XCOMM
+XCOMM Input - none
+XCOMM Output - none
+XCOMM Return - TRUE, if some links will be deleted
+XCOMM          FALSE, if NO links will be deleted
+XCOMM
+XCOMM ==========================================================================
+DisplayLinks() {
+  if [[ -L $DEFAULT_USR_LOCATION ]] && [[ -a $DEFAULT_USR_LOCATION ]]
+  then
+     DtiReturn "TRUE"
+  elif [[ -L $DEFAULT_ETC_LOCATION ]] && [[ -a $DEFAULT_ETC_LOCATION ]]
+  then
+     DtiReturn "TRUE"
+  elif
+      [[ -L $DEFAULT_VAR_LOCATION ]] && [[ -a $DEFAULT_VAR_LOCATION ]]
+  then
+      DtiReturn "TRUE"
+  else
+      DtiReturn "FALSE"
+  fi
+
+}
+
+XCOMM ==========================================================================
+XCOMM
+XCOMM ShowDirsToBeDeleted - Shows what dirs and links will be deleted to the user
+XCOMM
+XCOMM Input - none
+XCOMM Output - none
+XCOMM
+XCOMM ==========================================================================
+
+
+ShowDirsToBeDeleted() {
+
+XCOMM Display information to the user, ask if user wishes to continue
+
+while :
+do
+       DtiClearScreen
+       DtiShow "$HERALD_MSG"
+
+       if [ $(DisplayDirs) = "TRUE" ]
+       then
+          DtiPrint "$DELETE_DIRS_MSG"
+          if [ -a $ABSOLUTE_USR_LOCATION ]
+          then
+             DtiPrint "$DIR_MSG" "$ABSOLUTE_USR_LOCATION"
+          fi
+
+          if [ -a $ABSOLUTE_ETC_LOCATION ]
+          then
+             DtiPrint "$DIR_MSG" "$ABSOLUTE_ETC_LOCATION"
+          fi
+
+          if [ -a $ABSOLUTE_VAR_LOCATION ]
+          then
+             DtiPrint "$DIR_MSG" "$ABSOLUTE_VAR_LOCATION"
+          fi
+       fi
+
+       if [ $(DisplayLinks) = "TRUE" ]
+       then
+          DtiPrint "\n\n$DELETE_LINKS_MSG"
+          if [ $(FileIsLink $DEFAULT_USR_LOCATION) = "TRUE" ]
+          then
+              DtiPrint "$LINK_DIR_MSG" "$DEFAULT_USR_LOCATION"
+          fi
+
+          if [ $(FileIsLink $DEFAULT_ETC_LOCATION) = "TRUE" ]
+          then
+              DtiPrint "$LINK_DIR_MSG" "$DEFAULT_ETC_LOCATION"
+          fi
+
+          if [ $(FileIsLink $DEFAULT_VAR_LOCATION) = "TRUE" ]
+          then
+              DtiPrint "$LINK_DIR_MSG" "$DEFAULT_VAR_LOCATION"
+          fi
+        fi
+
+       DtiPrint "\n\n$WARNING_MSG"
+       DtiPrint "\n\n\n$YESNO_MSG"
+
+       read response
+       Log "$RESPONSE_MSG"
+       Log "$response"
+       Log "\n"
+
+       case $response in
+           [yY]*) return 0
+                  ;;
+           [nN]*) exit 0
+                  ;;
+               *) continue
+       esac
+
+done
+
+}
+
+
+XCOMM ==========================================================================
+XCOMM
+XCOMM StopDesktop  - Stops the desktop if it was running
+XCOMM
+XCOMM Input - none
+XCOMM Output - none
+XCOMM
+XCOMM ==========================================================================
+StopDesktop() {
+
+    if [ -f $ABSOLUTE_VAR_LOCATION/Xpid ]
+    then
+        DtiPrint "\n\nStopping Desktop... \n"
+        kill -TERM `cat $ABSOLUTE_VAR_LOCATION/Xpid` 2> /dev/null
+    fi
+
+}
+
+XCOMM ==========================================================================
+XCOMM
+XCOMM RemoveDesktop  - Deletes Desktop files from the system
+XCOMM
+XCOMM Input - none
+XCOMM Output - none
+XCOMM
+XCOMM ==========================================================================
+
+RemoveDesktop () {
+
+  DtiPrint "Removing files from Desktop Directories...\n"
+  rm -rf $ABSOLUTE_USR_LOCATION
+  rm -rf $ABSOLUTE_ETC_LOCATION
+  rm -rf $ABSOLUTE_VAR_LOCATION
+
+  rm -rf $DEFAULT_USR_LOCATION
+  rm -rf $DEFAULT_ETC_LOCATION
+  rm -rf $DEFAULT_VAR_LOCATION
+  DtiPrint "The Desktop was successfully removed from your system.\n"
+
+}
+
+
+XCOMM ==========================================================================
+XCOMM
+XCOMM
+XCOMM               This is the MAIN of the script
+XCOMM
+XCOMM
+XCOMM ==========================================================================
+
+XCOMM Set up Messages
+USAGE_MSG="\
+Usage: deinstall.dt [-noprompt]\n"
+
+PERMISSION_MSG="\
+You must be ROOT to run this command\n"
+
+RESPONSE_MSG="\n
+response is: "
+
+HERALD_MSG="\
+The Common Open Systems Environment Desktop\n\
+April 1994 Snapshot Deinstallation Procedure\n\n"
+
+OBJECTIVE_MSG="\
+This procedure will REMOVE the Desktop from your system.\n\n\n"
+
+YESNO_MSG="\
+Do you wish to continue?  [y/n] "
+
+DELETE_DIRS_MSG="\
+The deinstallation will remove files from the following\n\
+directories listed below:\n\n"
+
+DIR_MSG="\
+'%s'\n"
+
+DELETE_LINKS_MSG="\
+The deinstallation will remove the following symbolic \n\
+link(s) listed below:\n\n"
+
+LINK_DIR_MSG="\
+'%s'\n"
+
+WARNING_MSG="\
+Any customizations made will be LOST!\n"
+
+
+
+
+
+
+INVALID_OS_MSG="\
+The Desktop does not support this system configuration.\n\
+The deinstallation procedure will terminate.\n"
+
+INVALID_CONFIGURATION_MSG="\
+The deinstallation procedure could not locate any Desktop files\n\
+on your system. The deinstallation will terminate. Please check\n\
+that you are running the deinstallation script on a system that\n\
+has the Desktop already installed.\n"
+
+
+
+
+
+
+XCOMM Set up variables
+NO_PROMPT="FALSE"
+
+DEFAULT_USR_LOCATION="/usr/dt"
+DEFAULT_ETC_LOCATION="/etc/dt"
+DEFAULT_VAR_LOCATION="/var/dt"
+
+ABSOLUTE_USR_LOCATION=$(ResolvePathName $DEFAULT_USR_LOCATION)
+ABSOLUTE_ETC_LOCATION=$(ResolvePathName $DEFAULT_ETC_LOCATION)
+ABSOLUTE_VAR_LOCATION=$(ResolvePathName $DEFAULT_VAR_LOCATION)
+
+
+XCOMM Set up the log file
+LOG_FILE="/tmp/dinstall.dt.log"
+if [ -f $LOG_FILE ]
+then
+   rm -rf $LOG_FILE 2>/dev/null
+fi
+touch $LOG_FILE 2>/dev/null
+chmod 777 $LOG_FILE 2>/dev/null
+
+
+
+
+XCOMM change directories to deinstall.dt location as all
+XCOMM installation packages are relative to this
+XCOMM
+if [ ${0%/STAR} != "dinstall.dt" ]; then
+  cd ${0%/STAR}
+fi
+
+
+XCOMM set up the TOP directory of where the CD is mounted
+TOP=`pwd`
+
+
+XCOMM set up the path for whoami command
+ WHOAMI_PATH=/bin
+ platform=$(GetPlatform)
+ case "$platform"  in
+      hp)  WHOAMI_PATH=/usr/bin
+          ;;
+      ibm) WHOAMI_PATH=/bin
+          ;;
+      sun) WHOAMI_PATH=/usr/ucb
+          ;;
+      uxp) WHOAMI_PATH=/usr/ucb
+          ;;
+      usl) WHOAMI_PATH=/usr/ucb
+          ;;
+      dec) WHOAMI_PATH=/usr/bin
+          ;;
+ esac
+
+DTIDINSTALLDT=dinstall.dt
+DTICONFIGDIR=config
+dtiPlatform=$(GetPlatform)
+DTIPLATFORMDIR=$dtiPlatform
+DTIREADME=config/config.$dtiPlatform
+
+if [ ${0##STAR/} != $DTIDINSTALLDT ]; then
+  HASH
+  HASH CDROM driver folds filenames to uppercase
+  HASH
+  typeset -u DTIDINSTALLDT
+  typeset -u DTICONFIGDIR
+  typeset -u DTIPLATFORMDIR
+  typeset -u DTIREADME
+fi
+
+
+XCOMM Parse the command line
+while [ $# -ne 0 ];
+  do
+    case $1 in
+         -noprompt) NO_PROMPT=TRUE
+                    print "NO_PROMPT is set"
+                    shift
+                    ;;
+                 *)  print "$USAGE_MSG"
+                     DtiPrint $USAGE
+                     exit 1;;
+    esac
+done
+
+
+XCOMM Verify that we have the Root User
+if [ $(DtiWhoami) != "root" ]
+then 
+   DtiShow "$PERMISSION_MSG"
+   Exit "$PERMISSION_MSG" 1
+fi
+
+XCOMM Check to see if the Desktop is actually installed on the system
+if [ $(ValidConfiguration ) != "TRUE" ]
+then
+    DtiPrint "$INVALID_CONFIGURATION_MSG"
+    exit 1
+fi
+
+XCOMM Determine if the OS is supported
+PLATFORM=$(ValidOS)
+
+XCOMM
+XCOMM Initially PLATFORM is in lower case.
+XCOMM Check if the $PLATFORM directory exists.
+XCOMM if doesn't exist translate all to upper case.
+XCOMM
+
+if [ -d $PLATFORM ]
+then
+        TAR_TREE=$TOP/$PLATFORM
+        POST_INSTALL_DIR=$TAR_TREE/config
+        DATABASE_FILES=$(awk 'BEGIN {FS=":"} /FILESETS: /{print $2}' $TAR_TREE/dt.pkg 2>/dev/null)
+else
+        PLATFORM=`echo "$PLATFORM" | /usr/bin/tr "[a-z]" "[A-Z]"`
+        TAR_TREE=$TOP/$PLATFORM
+        POST_INSTALL_DIR=$TAR_TREE/CONFIG
+        DATABASE_FILES=$(awk 'BEGIN {FS=":"} /FILESETS: /{print $2}' $TAR_TREE/DT.PKG 2>/dev/null)
+fi
+
+
+XCOMM Tell the user what is going to happen
+if [ $NO_PROMPT = FALSE ]
+then
+   StateObjective
+fi
+
+XCOMM Show the user what directories are going to be deleted
+if [ $NO_PROMPT = FALSE ]
+then
+  ShowDirsToBeDeleted
+fi
+
+
+XCOMM Stop the Desktop
+StopDesktop
+
+XCOMM Run the Unconfigure Scripts
+RunUnconfigScripts
+
+XCOMM Remove the Desktop Files
+RemoveDesktop
+
+
+
+
+
+

+ 91 - 0
cde/admin/IntegTools/ezinstall.hp

@@ -0,0 +1,91 @@
+#!/bin/ksh
+
+echo ""
+echo "ezinstall.hp is a very plain, very vanilla, very simple installation"
+echo "script that installs the CDE Desktop and executes a set of config-"
+echo "uration scripts. It assumes that you have set aside ample space - "
+echo "about 46 Mb - for installation."
+echo ""
+echo "The Desktop is installed into the directory /usr/dt. This is the"
+echo "logical top of CDE. If you wish to change the physical location"
+echo "of the files, set up a symbolic link between /usr/dt and the actual"
+echo "location. E.g., if you wish to physically locate the CDE files in"
+echo "/bigdisk/opt, do a 'ln -s /bigdisk/opt /usr/dt' before executing the"
+echo "ezinstall.hp script."
+echo ""
+echo "Okay?"
+echo ""
+
+read response
+
+if [ `/usr/bin/whoami` != "root" ]
+then
+     echo ""
+     echo "You must be root to run this script"
+     echo ""
+     exit 1
+fi
+
+if [ "$1" = "" -o "$2" = "" ]
+then
+  echo "Usage: ezinstall <the compressed tar of dt> <the tar of the scripts>"
+  echo "                 [ -clean ]"
+  exit 1
+fi
+
+ztar=$1
+star=$2
+
+#
+# have to install in /usr/dt
+#
+# clean it first
+#
+
+if [ "$3" = "-clean" ]
+then
+  rm -rf /usr/dt/*
+  rm -rf /var/dt/*
+fi
+
+if [ "$1" != "skip" ]
+then
+  compress -d <$ztar | tar xvf -
+fi
+
+#
+# place the scripts in /tmp/ez
+#
+
+mkdir /tmp/ez
+echo "$PWD: copying $star to /tmp/ez"
+cp $star /tmp/ez
+
+cd /tmp/ez
+tarfile=${star##*/}
+tar xvf $tarfile
+
+#
+# execute each of the scripts
+#
+
+for i in config* hp/config*
+do
+  if [ -f $i ]
+  then
+    if [ ! -x $i ]
+    then
+      chmod 555 $i
+    fi
+    echo "executing $i script"
+    ./$i
+  fi
+done
+
+cd /tmp
+rm -rf /tmp/ez
+
+echo ""
+echo "All done!"
+echo "type /usr/dt/bin/dtlogin to start CDE"
+echo ""

Some files were not shown because too many files changed in this diff