June, 21th 2023 - kit version 2.0.37 - WORK IN PROGRESS
----------------------------------------------------------------------------

Important notes for upgrade case
--------------------------------
- Due to lots of changes between versions, it is recommended to perform a backup of the
  /opt/charon/utils folder and the /root/.charon* files
- If the default notification script is used, it will have to be reinstalled from the
  'Alerts management' menu option (this will be notified when starting the menu)
- If guests log monitoring is enabled, all monitoring services will have to be restarted
  from the 'Manage monitored guests logs' menu option. A restart of the aksusbd log
  monitoring service must also be performed ('Start or Restart aksusbd log monitor').
- As all single preferences and settings files have been merged to a unique file, the
  'menu' option must be used before any other option in case of upgrade
- The 'menu' option 'Manage recurring jobs' option must be used to apply the new entry
  related to process killing prevention

New features
------------
- 'Show host information' option is replaced by 'Generate Charon Report (for support
  cases)' using the last version of the CharonReport script available in the
  /opt/charon/utils folder
- 'Send configuration and log files via email' option removed, replaced by Charon
  Report
- Charon Report V1.55 included
- 'HASP license details' option now checks for license expiration
- If present, 'vim' is now by default the preferred editor
- 'Alerts management' menu option layout reworked 
- 'Preferences' menu option updated to manage only preferences
- 'Monitoring configuration' menu option added to configure monitoring settings
- New menu option 'Sentinel Admin Control Center - Text user interface' that can be
  used when a graphical user interface is not available. This utility can be used
  to initialize, update main parameters and edit or reset the HASP configuration
  file (/etc/hasplm/hasplm.ini)
- Options added in the 'Settings' menu option:
  - to enable/disable Charon Report automatic update check
  - HASP error log file monitoring (if not rotated log file)
  - View HASP error log file if it exists
- Configuration file update time can be monitored ('Settings' menu option)
- Log file size can be monitored ('Settings' menu option)
- Session log file size abnormal growth can be monitored ('Settings' menu option)
  Note: default value is 100 Kb per hour
- Immediate connection and disconnection of a USB dongle has a limitation feature: if
  more than 10 alerts are sent in less than 5 minutes, alerts are freezed. To resume the
  operation, use the 'Manage monitored guests logs' menu option then 'Restart aksusbd
  log monitor'
- Support of installation on Rocky Linux 8 and RHEL 9
- Warning color changed from magenta to orange (for 256 colors terminals)
- 'HASP license details' does not ask anymore to send output result via mail (not
  needed anymore as the Charon Report html file displays the license content)
- If an SEH UTN device is detected, the service is also monitored in conjunction with dongle
  immediate dongle (dis)connection monitoring (aksusbd)
- Charon VM process killing prevention is now enabled by default
- 'Manage monitored guests logs' menu option layout reviewed to make it easier to read (I hope)
- New option 'Alerts limitation' added in 'Alerts management' to disable sending alerts if
  there are more than a specified number of alerts in a specified interval in minutes.
  Default is set to 25 alerts in 10 minutes.
- bash is used instead of sh in all scripts
- Number of CPUs and memory free is removed when displaying the Charon virtual machines
  list. Please use 'free -h' command and or check content of /proc/cpuinfo
- Console connection/disconnection can be monitored (menu option 'Alerts management')
- 'vmlist' command has a new parameter '-n' to list only virtual machines names (shortened),
  emulator and service state
- 'Legacy server emulation' slogan replaced by 'Midrange System Emulation'
- During creation of a new virtual machine (guest), a short description is requested. The
  description can be changed later from the 'VM Management' menu option then 'Manage systemd
  services' and update service file
- OOM settings are no more managed via the 'menu', only the Charon emulator processes protection
  remains. OOM settings have to be managed manually by the system administrator. If the
  /etc/sysctl.d/charon.conf file exists, it will be deleted when running the 'menu'.
- License expiration check: email alerts have now priority
- Restriction on OS language is removed (language forced inside scripts)
- License management menu update: specific sub-menus added for HASP and VE licenses
- Emails layout reviewed (to match Windows toolkit format)
- Menu 'Alerts management': option 'Alerts simulator' has been simplified
- Guest creation process updated: more checks added
- Menu option 'Manage monitored guests logs': monitoring script version is now checked and
  if it does not correspond to the latest one (case of upgrade), a message is displayed asking
  to restart log monitoring services
- If 'Charon VM process killing prevention' is enabled from the 'Settings' menu, the Charon
  license management processes are also protected
- Added option to set the subject tag for email alerts (the tag is between the square brackets) to
  help identify the source or application for example
- When starting the 'menu':
  - if a new version of the log monitoring script has been installed (in case of upgrade), a
    warning is displayed asking user to restart all log monitoring services
  - if an update or an entry in missing in the recurring jobs (crontab), an update is performed
  - if the default alert script is updated, user is requested to update/check the 'Alerts
    management' menu option
- Manage monitored guests logs: 
  - removed "View monitoring log file": used internally for support and log is provided
    with Charon Report so no more needed
  - aksusbd monitoring (HASP license) is now optional
- If xhpterm-free package is installed, it can now be defined as the preferred console connection
  mode and recognized in the 'menu/VM Management/Connect to guest console' option or with the 
  'vmconsole' command
- License expiration check alert now tells the number of days remaining before expiration or 
  the number of days past the license expiration date

Problems fixed
--------------
- Accessing the 'Sentinel Admin Control Center' could sometime return a false error
- 'HASP license details' now reports empty licenses
- 'Request for new license or license update' option now generates .c2v files for
  empty licenses
- If a job name containing 'charon_' was present in the root's crontab, it was
  not possible to leave the 'Manage recurring jobs (cron)' menu option
- License expiration check job returned 'tput' error while executed in the crontab
  ('Served by' line)
- Menu title and chapters colors changed to make lines easier to read with black or
  white backgrounds
- If the 'Charon log monitoring (global)' option is disabled from the Settings menu
  option, the alerts are no more sent on USB dongle connection/disconnection
- If Charon kit installation is successfully completed and aksusbd service is installed, this
  service is restarted to avoid some issues with licenses that cannot be read after a Charon
  kit upgrade
- If a virtual machine log file did not exist when the monitoring service was created (1st start),
  alerts were not sent unless the monitoring service was restarted. The log monitoring service
  now waits for the log file to exist before monitoring it.
- 'support@stromasys.com' and 'platinum@stromasys.com' are no more allowed in the email alerts
  recipients list
- Displaying list of virtual machines (guest) was hanging if the log file full path was not
  specified. Now it displays an error as the full path must be specified
- To try to solve display problems with semi-graphics, when the terminal is set to 'putty', it
  is forced to 'xterm' when opening the 'menu'
- Fixed a problem where rotated log files could have their target zipped by the recurring log
  archive job
- /usr/bin/strings executable is mandatory and checked during 'menusetup' (found Linux servers
  where it was not installed)
- B132L model console settings are now taken into account (different syntax as for other models)
- Clean shutdown issue found when using expect: the 10 seconds timeout were not enough after
  the shutdown was completed to wait for the power off countdown (20 sec.). Timeout is now 30
  seconds and 'connection closed' message is managed to notify success

March, 3rd 2022 - kit version 1.4.6
----------------------------------------------------------------------------

Problems fixed by this patch
----------------------------
- Deleted software licenses are no more archived in /var/hasplm/installed/68704.bck
  folder as this generates errors in the HASP error.log file. They are now moved to
  /var/hasplm.bck
- Update in 'Request for new license or license update (send C2V file)' option: the
  update option 1 requires at least a USB license dongle or a software license already
  installed.
- When starting the menu, a check is performed in the root crontab file and if
  entries related to Charon are found, a message is displayed asking to remove
  or comment them and use the 'Manage recurring jobs' option to recreate these
  entries (which is done in the /etc/cron.d/charon file)
- 'Manage recurring jobs' menu option: now checks if Charon related entries are
  still present in the root crontab file and asks for editing it before updating
  the /etc/cron.d/charon file
- Added a check in the 'HASP license details' menu option to ensure 'atd' has been
  enabled and is running (this is mandatory to read license content via a remote
  connection)

January, 20th 2022 - kit version 1.4.5
----------------------------------------------------------------------------

Problems fixed by this patch
----------------------------
- Updated message related to _fmt.v2c files in 'License update tool (apply
 V2C file)' menu option
- License expiration check: bug solved with 'no expired product found'
  message, counters were not updated correctly + email layout update
- In case the emulator process has to be killed, 5 tries are performed with
  SIGTERM signal, if not successful a SIGKILL is sent. This is to try to
  avoid cases where the license is not freed after the process is killed
- Fixed issues when trying to unbind/bind USB controller when no one is
  defined on the Linux server

December, 23th 2021 - kit version 1.4.4
----------------------------------------------------------------------------

Problems fixed by this patch
----------------------------
- Issue solved when generating C2V files: licenses provided by other hosts
  than the local one will be skipped during the generation process

December, 21th 2021 - kit version 1.4.3
----------------------------------------------------------------------------

Problems fixed by this patch
----------------------------
- Issue solved when generating a C2V file when a software license and a
  dongle were present on the server and the 'menu' was executed from a
  remote session.

October, 7th 2021 - kit version 1.4.2
----------------------------------------------------------------------------

Problems fixed by this patch
----------------------------
- Rewording when displaying licenses found to make the difference between
  local licenses and remote licenses

October, 7th 2021 - kit version 1.4.1
----------------------------------------------------------------------------

Problems fixed by this patch
----------------------------
- The 'HASP license details' menu option:
  - failed to read licenses when a dongle and a software license were present
    on the server
  - did not correctly display license details after viewing license content
    when a USB dongle and a software license were present


September, 7th 2021 - kit version 1.4
----------------------------------------------------------------------------

New features
------------
- After Charon-PAR installation from menu option 1, if the PATH is not defined,
  the /etc/profile.d/charon.sh file is created automatically and it is asked to
  either execute it or logout/login to define the correct PATH to
  /opt/charon/bin
- When running the 'menu', checks are performed for 'atd' service: enabled and
  active. If this is not the case, alerts may not be sent and license could not
  be read from remote connection.
- License expiration check now displays the number of dongles connected and the
  number of software licenses found.
- When a virtual machine process ends abnormally, an entry in its log file is
  added with FATAL severity level (1). It provides information on the event 
  (example: signal/KILL if the process got killed)
- When editing stop, pre-start and check scripts, if vim is selected, a
  special vimrc file is used for ease of reading on black background
  screens and white background screens.
- During setup, if LS_COLORS is defined, the 'ls' command will highlight .cfg,
  and .dsk files.
  Note: in case of Toolkit upgrade, please run # ./menusetup -a
- crontab file is no more /var/spool/cron/root but /etc/cron.d/charon (2)
- When displaying list of virtual machines, the number of warning, error and
  fatal messages found in the log file is displayed (if greater than 0).
- The 'MPE system fail' message in the log file is now considered as a failure
  message (3).
- License expiration check now alerts in case a cloned Software License is
  possibly found.
- Alert emails now contain the kit version for ease of support (4).
- 'Request for new license or license update' and 'License update tool'
  now stop if the 'aksusbd' service is not running

(1): In case of Toolkit upgrade, this requires the systemd service to be
     updated (ExecStopPost line to add, this will be notified when displaying
     the virtual machines list).
     In this case, open the 'menu" → 'VM Management' → 'Manage 'systemd'
     services' and edit the .service file.
(2): In case of Toolkit upgrade, this requires the lines related to Charon in
     the /var/spool/cron/root file to be deleted and the menu option 
     '13 - Manage recurring jobs' to be executed
(3): In case of Toolkit upgrade, this requires the log monitoring processes to
     be restarted from the menu option "9 - Manage monitored guests logs" then
     "8 - Restart all log monitoring services"
(4): In case of upgrade, please update the alert script
     (if not already customized) from "menu" → "14 - Alerts management" →
     "6 - Update/reinstall alert script".

Problems fixed
--------------
- 'ed' added as a mandatory package
- 'mailx' added as a (highly) recommended package
- 'vim' added as a recommended package
- 'lsusb' required executable replaced by 'usbutils' required package
- Fixed a problem to detect network interface status with new V3.0.1 syntax
- 'ifconfig' commands used to get NIC information replaced by 'ip'
- If a network configuration issue is detected when starting a virtual machine,
  the message that was sent was related to Linux 6. It now asks correctly to
  restart the NetworkManager service.
- If 'rsh' needs to be installed for clean shutdown on RHEL 8, the installation
  procedure is detailed in the readme file ('menu' -> 'VM Management' ->
  'Create/Edit guest stop script' -> 'Read how-to setup 'rsh' with HP-UX file')
- For CentOS and RHEL 8, if 'yum' is not present, 'dnf' is used instead
- With the latest version of Charon-PAR, glibc.i686 is not more needed. The
  check is then removed from the "Install/Upgrade/Remove Charon" menu option.
- The vmlist command did not display Charon-PAR installed version
- For CentOS, the service status reported by 'logview' and 'logtail' commands
  reported unknown service state. Workaround added to get the ActiveState
  service parameter status.
- When checking the license expiration interactively, if a software license was
  present and a dongle was connected, only the software license was displayed.
  This did not affect automated checks executed from the crontab.
- When using the "logtail" command, the continuous view is not stopped when
  a virtual machine started or stopped message is found. Also, when aborted,
  it does not stop other logtail commands running on the same server.
- License expiration check: if more than one license available, if one was
  about to expired or had expired but not the other, the alert was not correct
  (no information below the one that was ok)
- Menu send log options:
  - the charon-report utility from kits 2.0 and below asks for email address
    even if option -e is not used and the report is generated is /root, not
    in /tmp. This special case is now taken into account
  - updated for rotated log files / kit 3.0.4
- When sending logs with the options '10 - Send configuration and log files via
  email', log files are displayed in reverse order in the email body
- Several issues solved due to log file names change starting with
  Charon-PAR 3.0.4


January, 22th 2021 - kit version 1.3
----------------------------------------------------------------------------

New features
------------
- 'expect' script updated for clean shutdown on MPE/iX due to change in console
  prompt in Charon-PAR 3.0.1 kit.
- When displaying virtual machines list, the "Start on boot" (Yes or No) has
  been replaced by "Startup type" (Automatic or Manual)
- When a virtual machine is created, the startup type now is requested
  (default is manual)
- When using multiple virtual machines (VM), the last selected one is no more
  global but is linked to the current session so that the configuration file
  or its shortened name has to be specified once and then all next commands
  will relate to this one. In case a new session is created the latest selected
  VM (in time) if any will become the current one. This eases usage of
  additional command lines like vmcfg, vmstart, vmstop, vmconsole and vmrmc.

Problems fixed
--------------
- Added one retry for login/password in 'expect' script for HP-UX shutdown 
  due to issues sometimes appearing on 1st try.
- when using "vim" as the favorite editor (from the preferences), the comments
  in the configuration file were displayed in gray which was not always easy
  to read. They are now in green.
- When updating the alert script from "menu" → "14 - Alerts management" ->
  "6 - Update/reinstall alert script" the message telling where the previous
  file will be saved was wrong ('.backup' has been removed). Its location has
  also changed to /opt/charon/archive and no more /charon/archive.
- It was possible in some cases to add a virtual machine with a configuration
  file already used for another virtual machine
- Menu option "1 - Install/Upgrade/Remove Charon" now checks if "Failed to"
  error messages are found during installation and not only the error code
  returned by 'yum'
- In some cases licenses could not be detected and their content read.
  Example: an invalidated software license and a valid license dongle


November, 25th 2020 - kit version 1.2 Beta3
----------------------------------------------------------------------------

Important note
--------------
The kit is validated with versions 2.0, 2.1 and 3.0 only.

New features
------------
- MPE/iX: 'expect' shutdown script enhanced: now CTRL-B is sent after the
  "(Shut 6)" message is displayed to get back to the "Main menu"
- License update tool (apply V2C file) interface has been simplified : no
  sub-menu, all in one page. A new option has been added too to define a
  description for licenses (optional). Can be used to display dongle location
  for example.
- The 'logview' and 'logtail' commands now display the virtual machine service
  state
- New preferences options: it is possible to adjust the blue color in menus
  so that it is easier to read when using black background: 'menu' ->
  '11 - Preferences' -> '10 Blue color adjust for white/black background'
- 'vmlist' command now accepts '-l' or '--lite' parameter to display only
  configuration file name, service status, model and description (this is
  for cases with several Charon virtual machines defined).
- Some features updated for Charon-PAR Version 3.0.0 compatibility
- 'putty' can be defined as default connection to the virtual machine console
  in the preferences. If 'putty' cannot be used (no X server), 'telnet' if
  installed will be used instead.
- When sending configuration and log files, the charon-report utility is also
  executed and the resulting tgz file is attached to the email.

Problems fixed
--------------
- The log severity checked was either ":warn:", ":err:" or ":ERR:" but it can
  also be ":WARNING:", ":ERROR:", ":FATAL:". These other severity levels are
  now taken into account.
  Note: in case of upgrade, all the monitoring services must be restarted. To
  do so, run the 'menu' -> '9 - Manage monitored guests logs' ->
  '8 - Restart all log monitoring services' option.
- If the log monitoring is disabled from the preferences, meaning log
  monitoring is performed by another software/utility, the menu option
  "10 - Manage monitored guests logs" allows only to view and send log
  files.
- Management of failed state corrected after the introduction of ExecStopPost
- The virtual machine state has been simplified, the REQUESTED  substate is no
  more displayed as in some cases the information reported was not correct.
- If the memory is not specified in the configuration file, the default value
  (2GB) is now displayed
- console log files stored in /opt/charon/log are now taken into account by
  the automatic log files cleaning system
- Added option 'q' to quit the menu option '5 - License driver management' as
  'n' was not usual.
- When editing the email recipients list in the option '14 - Alerts management'
  and using 'vim' as default editor, colors have been changed to make them
  easier to read when using black background
- When editing the configuration file at guest creation, if 'vim' is used,
  the correct color scheme (vimrc) is used to make it easier to read when using
  black background
- Some menu option were not testing correctly Firefox is installed or not
- Alerts management option: the simulator now checks at least one recipient
  is defined
- License update tool: when using black background, the listed v2c files were
  not all shown due to foreground color forced to black.

October, 20th 2020 - kit version 1.1
----------------------------------------------------------------------------
New features
------------
- Option added in the preferences to allow non root users to execute 'menu'
  with 'sudo'. Must be set first with root user. If connection with root
  is not allowed then run: $ sudo /opt/charon/utils/charon_menu
  to edit the preferences.
- Menu update: added option in '8 - VM Management' to create/edit guest
  check/run script

Problems fixed
--------------
- If the emulated server has more than one CPU:
  - the start message was sent for each CPU based on "run cpu loop" message
    detection. Only one message is now sent.
  - when starting an emulator, the continuous view of the log file did not
    stop and was looping. 


September, 17th 2020 - kit version 1.0
----------------------------------------------------------------------------
- First released version

