# changelog

author: Michael Stauber <mstauber@solarspeed.net>
changelog:
  - version 2.96-4
  - Modified scanouts for 5210R/5211R/5212R to ignore 'api-admin':
  - Modified scripts/5210Rscanout.pl
  - Modified scripts/5211Rscanout.pl
  - Modified scripts/5212Rscanout.pl
  - Modified chown to use ':' as UID/GID separator instead of '.'
    in perl_modules/Archive.pm and scripts/cmuExport


author: Michael Stauber <mstauber@solarspeed.net> 1.2.0-0BX01
changelog:
  - Resolved the issue that free memory calculation isn't added Cached. 
  - Remove .svn directory from rpm package.


author: Michael Stauber <mstauber@solarspeed.net> 2.4.0-0BX09
changelog:
  - Modified glue/etc/admserv/php.ini for CodeIgniter 4.2.5
  - Modified glue/etc/admserv/php-fpm/pools/admserv.conf as well


author: Michael Stauber <mstauber@solarspeed.net> 2.4.0-0BX12
changelog:
  - Modified glue/systemd/admserv-php-fpm.service to disable private /tmp
    directory for AdmServ PHP-FPM. We really need to be able to access
    /tmp from within PHP directly.


author: Michael Stauber <mstauber@solarspeed.net> 2.4.0-0BX13
changelog:
  - Added missing glue/systemd/admserv-ssl-gencerts
  - Fixed cert paths in glue/systemd/admserv-init.service
  - Modified glue/Makefile to install admserv-ssl-gencerts


author: Michael Stauber <mstauber@solarspeed.net> 2.4.0-0BX14
changelog:
  - Changed PID and Socket location of admserv-php-fpm to separate directory
    /run/admserv-php-fpm to make it independent of system related php-fpm.
  - Modified glue/etc/admserv/conf/httpd.conf
  - Modified glue/etc/admserv/php-fpm/php-fpm.conf
  - Modified glue/etc/admserv/php-fpm/pools/admserv.conf
  - Modified glue/systemd/admserv-php-fpm.service


author: Michael Stauber <mstauber@solarspeed.net> 2.4.0-0BX15
changelog:
  - Set more sensible timeouts in glue/etc/admserv/php.ini
  - Same in glue/etc/admserv/php-fpm/pools/admserv.conf


author: Michael Stauber <mstauber@solarspeed.net> 2.4.0-0BX16
changelog:
  - Modified glue/etc/admserv/conf/httpd.conf to add long timeouts to 
    ProxyPassMatch to make CCEd Socket connections a happier affair.


author: Michael Stauber <mstauber@solarspeed.net> 2.4.0-0BX19
changelog:
  - Ability added to modify GUI port and Admin URIs
  - Modified glue/etc/admserv/conf/httpd.conf
  - Added glue/etc/admserv/conf.d/admserv.conf


author: Michael Stauber <mstauber@solarspeed.net> 2.4.0-0BX21
changelog:
  - Modified glue/etc/admserv/conf.d/incus_proxy.conf to add a Spice Proxy
    for Incus VM console access


author: Michael Stauber <mstauber@solarspeed.net> 2.4.1-2
changelog:
  - Modified glue/etc/admserv/conf.d/api_proxy.conf to added proxy to
    /v2/services and /v2/metrics as well.


author: Michael Stauber <mstauber@solarspeed.net> 2.4.1-3
changelog:
  - Modified glue/etc/admserv/conf.d/incus_proxy.conf with provisions
    to get around 'Requestor mismatch with Websockets' as outlined in
    https://discuss.linuxcontainers.org/t/requestor-mismatch-with-websockets/24812


author: Michael Stauber <mstauber@solarspeed.net> 5.0-1
changelog:
  - Integration of Elmer theme.
  - Added/changed some alpine locales
  - Added web/.elm/ for theme CSS and scripts
  - Modified ci4/app/Libraries/BxPage.php provisionally to support
    both the old Adminica and the new Elmer theme.
  - Added ci4/Modules/Base/Gui/Views/elmer_full_view.php for basic
    GUI appearance.
  - Modified ci4/app/Helpers/blueonyx_helper.php to parse menus for
    'elmer_icon'
  - Added 'elmer_icon' to ui/chorizo/menu/programs.xml
  - Added 'elmer_icon' to ui/chorizo/menu/programsPersonal.xml
  - Added 'elmer_icon' to ui/chorizo/menu/programsSite.xml
  - Moved ci4/app/Libraries/uifc to ci4/app/Libraries/uifc1 for
    retaining Adminica compat
  - Added ci4/app/Libraries/uifc2 for Elmer Theme compat
  - Modified BxPage.php, ReportHelper.php and ServerScriptHelper.php
    to detect which theme to use and included the correct uifc dir.
  - Streamlined app/Libraries/I18n.php and added experimental cache.
  - Massively streamlined app/Libraries/I18nNative.php
  - Added experimental app/Libraries/I18nExtension.php
  - Modified ci4/app/Helpers/uifc_ng_helper.php
  - Modified ci4/app/Libraries/uifc2/PagedBlock.php
  - Added ci4/Modules/Base/Gui/Controllers/Metrics.php for gathering
    of metrics via Prometheus and node_exporter. Returns JSON.
  - Added route for metrics to ci4/Modules/Base/Gui/Config/Routes.php
  - Modified ci4/app/Helpers/blueonyx_helper.php with metrics handling
    and plotting functions.
  - Extended ci4/Modules/Base/Gui/Controllers/Metrics.php with Theme
    switching provisions.
  - Rewrote ci4/app/Libraries/uifc2/Button.php from scratch.
  - Added ci4/app/Libraries/uifc2/FeatureButton.php
  - Added ci4/Modules/Base/Gui/Views/elmer_simplified_view.php and
    provisions in BxPage for it.
  - Added requirements for: golang-github-prometheus 
    golang-github-prometheus-alertmanager 
    golang-github-prometheus-node-exporter 
    python3-prometheus_client 
  - Added src/base-alpine-prometheus
  - Modified ci4/Modules/Base/Gui/Views/pluginsmin.php - see: [BlueOnyx:26663]


author: Michael Stauber <mstauber@solarspeed.net> 5.0-2
changelog:
  - Finalized Elmer integration and overhaul of Adminica. Too many
    changes to list them in detail. See SVN/Trac.


author: Michael Stauber <mstauber@solarspeed.net> 5.0-3
changelog:
  - Added provisions to allow the GUI on a different port
  - Modified ci4/Modules/Base/Gui/Controllers/WorkFrame.php
  - Modified ci4/app/Controllers/BaseController.php
  - Modified ci4/app/Helpers/uifc_ng_helper.php
  - Modified ci4/app/Libraries/BxPage.php


author: Michael Stauber <mstauber@solarspeed.net> 5.0-4
changelog:
  - Bugfix to ci4/app/Libraries/uifc2/MultiChoice.php related to 
    hidden fields of Radios and Checkboxes. Hidden field got added
    twice. Once with 'checkbox-' prefixed and once without.


author: Michael Stauber <mstauber@solarspeed.net> 5.0-5
changelog:
  - Modified getMultiChoice() to add option setHideOptions()
  - Modified ci4/app/Libraries/uifc1/MultiChoice.php
  - Modified ci4/app/Libraries/uifc2/MultiChoice.php


author: Michael Stauber <mstauber@solarspeed.net> 5.0-6
changelog:
  - Small fix in DatePicker ci4/app/Libraries/uifc2/DatePicker.php
    initialization script to handle AM/PM display correctly.


author: Michael Stauber <mstauber@solarspeed.net> 5.0-8
changelog:
  - Overhauled jQuery scripts for password validation yet AGAIN in
    ci4/app/Libraries/uifc2/FormFieldBuilder.php to make them work
    with and without password repeat field.


author: Michael Stauber <mstauber@solarspeed.net> 5.0-11
changelog:
  - Modified ci4/app/Views/errors/html/production.php
  - Modified ci4/app/Views/errors/html/production.php.bx


author: Michael Stauber <mstauber@solarspeed.net> 5.0-12
changelog:
  - Added spinning icon to top right of Elmer GUI to display pending
    service restarts:
  - Added ci4/Modules/Base/Gui/Controllers/DaemonServices.php
  - Modied ci4/Modules/Base/Gui/Config/Routes.php
  - Modified ci4/Modules/Base/Gui/Views/elmer_full_view.php
  - Modified ci4/app/Libraries/BxPage.php for the icon logic.
  - Modified ci4/app/Helpers/blueonyx_helper.php with network related
    functions similar to those in Network.pm
  - Bugfix in ci4/app/Libraries/I18nNative.php
  - Locales updated


author: Michael Stauber <mstauber@solarspeed.net> 5.0-14
changelog:
  - Fix in ci4/app/Libraries/BxPage.php function setErrors() to more
    reliably remove empty error messages as well as filter out double
    entries.


author: Michael Stauber <mstauber@solarspeed.net> 5.0-15
changelog:
  - Modified ci4/Modules/Base/Gui/Controllers/DaemonServices.php to
    fix incorrect ACL.
  - Modified ci4/app/Libraries/BxPage.php to remove stray Vsite
    management capabilities from Users with cap 'ManageVPS' who are
    lacking the cap 'ManageIncus'. This is done to hide the site
    management menu entry from plain Incus users.


author: Michael Stauber <mstauber@solarspeed.net> 5.0-16
changelog:
  - Modified ci4/app/Controllers/BaseController.php to no longer log
    /gui/metrics and /gui/services calls to /var/log/gui-debug.log
  - Modified ci4/app/Controllers/BaseController.php to ignore URIs
    /gui/metrics and /gui/services from being valid targets after
    logging in again after a timeout. Redirect to /gui instead.


author: Michael Stauber <mstauber@solarspeed.net> 5.0-19
changelog:
  - The upcomming solarspeed-aventurine module needs some extra menu
    handling provisions for Incus instance management.
  - Modified ci4/app/Helpers/blueonyx_helper.php to handle get_form_data
    key 'instance' in addition to the already existing 'group'.
  - Also modified ci4/app/Libraries/BxPage.php to handle get_form_data
    'instance' in addition to 'group'. And added menu assembly exceptions
    for menu items 'solarspeed_ave_menu_SINGLE' and 'solarspeed_ave_menu'
    to show only one of the layered menus. Like we do for Vsite mgmt.


author: Michael Stauber <mstauber@solarspeed.net> 5.0-20
changelog:
  - Added Xterm.js to web/.xterm
  - Modified ci4/app/Helpers/blueonyx_helper.php find_eth_ifaces() to
    removed veth from list of auto-detected interfaces. This was way
    too problematic in Incus context as it may detect a veth as
    primary interface.


author: Michael Stauber <mstauber@solarspeed.net> 5.0-21
changelog:
  - Modified ci4/app/Helpers/blueonyx_helper.php PoorMansBabelFish()
    to wire locale 'browser' to 'en_US'.


author: Michael Stauber <mstauber@solarspeed.net> 5.0-25
changelog:
  - Modified getAllCapabilityGroups() to disable ACL caching for now
  - Modified ci4/app/Libraries/Capabilities.php
  - Modified ci4/app/Libraries/ServerScriptHelper.php


author: Michael Stauber <mstauber@solarspeed.net> 4.0-19
changelog:
  - Modified ci4/app/Controllers/BaseController.php to externalize
    the MySQL statustrigger call for ACL reasons.


author: Michael Stauber <mstauber@solarspeed.net> 4.0-20
changelog:
  - Modified ci4/app/Libraries/BXEncoding.php to fix code where 
    performing a floating-point division and then trying to perform 
    a bitwise OR operation with a string value was a suboptimal idea.


author: Michael Stauber <mstauber@solarspeed.net> 4.0-21
changelog:
  - Modified ci4/app/Libraries/BxPage.php. To avoid clutter in the
    horizontal menu for regular user accounts all Solarspeed added
    menu entries are no longer shown. They only show in the vertical
    menu instead.


author: Michael Stauber <mstauber@solarspeed.net> 4.0-23
changelog:
  - Small ACL fix
  - Modified ci4/app/Libraries/Capabilities.php
  - Modified ci4/app/Libraries/ServerScriptHelper.php


author: Michael Stauber <mstauber@solarspeed.net> 5.1-6
changelog:
  - Modified ci4/app/Libraries/BxPage.php function setGETPOST() and
    added function sanitizeInput() to sanitize FORM_GET and  FORM_POST 
    data via sanitizeInput() to protect against XSS attacks performed 
    against logged in users. The issue was reported by Alec Romano.


author: Michael Stauber <mstauber@solarspeed.net> 5.1-7
changelog:
  - The recent introduction of function sanitizeInput($input) in
    BxPage.php broke our scalar_to_array() functions, as '&' got
    converted into the HTML-Entity '&amp;'.
  - Fixed scalar_to_array() in ci4/app/Helpers/blueonyx_helper.php
  - Fixed scalar_to_array() in ci4/app/Libraries/CceClient.php


author: Michael Stauber <mstauber@solarspeed.net> 5.1-8
changelog:
  - Fixed a reflected/stored XSS vulnerability triggered via the 
    file name when rendering the uploaded file preview in
    Dropify.prototype.setPreview() - as reported by Alec Romano
  - Modified web/.elm/vendors/bower_components/dropify/dist/js/dropify.js
  - Modified web/.elm/vendors/bower_components/dropify/dist/js/dropify.min.js


author: Michael Stauber <mstauber@solarspeed.net> 5.1-9
changelog:
  - BxPage function sanitizeInput() was too aggressive. We can't
    filter '&' without opening a massive can of worms. Edited
    ci4/app/Libraries/BxPage.php to make function sanitizeInput()
    a little more accomodating and leave '&' unfiltered, but we
    still filter anything else.
  - Modified ci4/app/Libraries/CceClient.php to remove '&amp'
    handling from scalar_to_array()
  - Modified ci4/app/Helpers/blueonyx_helper.php to remove '&amp'
    handling from scalar_to_array()


author: Michael Stauber <mstauber@solarspeed.net> 5.1-10
changelog:
  - Added cced-api support
  - Added new ci4/app/Libraries/CceApiClient.php with API calls for
    all CceClient.php needs
  - Modified ci4/app/Libraries/CceClient.php to remove Zend API cce.so
    support and integrated cced-api support with fallback to CCE.php
    in case the API is down.
  - Modified ci4/Modules/Base/Gui/Controllers/DaemonServices.php to
    use cced-api with fallback to use the old method in case the
    API endpoint is unresponsive.


author: Michael Stauber <mstauber@solarspeed.net> 5.1-13
changelog:
  - Improved error-handling for API related functions.
  - Modified ci4/app/Libraries/CceApiClient.php
  - Modified ci4/app/Libraries/CceClient.php


author: Michael Stauber <mstauber@solarspeed.net> 5.1-14
changelog:
  - Modified ci4/app/Libraries/CceClient.php to enable GUI API usage
    by default - unless /etc/NOAPI is present.


author: Michael Stauber <mstauber@solarspeed.net> 5.1-15
changelog:
  - Modified ci4/app/Libraries/CceClient.php getAll() to not record
    API errors via recordApiErrors() as this causes issues with
    Vsite creation.


author: Michael Stauber <mstauber@solarspeed.net> 5.1-16
changelog:
  - The server utilization stats via Prometheus and node_exporter were
    a resource hog. Like mailing a single bottle of whisky in a 40t
    trailer truck. Now that cced-api has a new /v2/metrics endpoint
    that seamlessly (more or less) replaces Prometheus AND 
    node_exporter, the GUI coude could be adapted to make use of that
    instead. Which is much lighter on the load, as the load is only
    generated when someone accesses the GUI on a page that actually
    uses the statistics. Otherwise: Zero extra load.
  - Modified ci4/Modules/Base/Gui/Controllers/Metrics.php to use
    /v2/metrics cced-api endpoint AND to store the results in
    session data.
  - Updated ci4/app/Helpers/blueonyx_helper.php
  - Updated ci4/app/Helpers/uifc_ng_helper.php


author: Michael Stauber <mstauber@solarspeed.net> 5.1-17
changelog:
  - Bugfixes in ci4/Modules/Base/Gui/Controllers/Metrics.php to trim
    the list of shown interfaces and labels down to br0/eth0.


author: Michael Stauber <mstauber@solarspeed.net> 5.1-19
changelog:
  - Modified ci4/app/Libraries/BxPage.php
  - Switched fetching of ActiveMonitor and its NameSpaces to use the
    newer and faster getAll() method. But kept the older method using
    external_cce_get.pl around as a fallback in case API access to
    ActiveMonitor failed. Which it might if CCEd is restarted just
    at the right or wrong time due to PKG installs via the GUI.
    Also added more ruggedness to continue processing if even the
    fallback method fails. At the worst the page processing is then
    continued w/o reporting AM errors, but it continues.


author: Michael Stauber <mstauber@solarspeed.net> 5.1-20
changelog:
  - Modified ci4/app/Controllers/BaseController.php so that the 
    internal SQL functions properly trap underlying CI code exceptions
    on SQL usage and instead set a proper BX_MySQL_Error for usage
    in standard BlueOnyx error reporting via the GUI.


author: Michael Stauber <mstauber@solarspeed.net> 5.1-22
changelog:
  - Backported from 5212R 5.2-4:
  - Modified debugging in ci4/app/Libraries/AutoFeatures.php
  - Made ci4/app/Libraries/CCE.php more resilient
  - Backported from 5212R 5.2-4:
  - Modified ci4/app/Helpers/blueonyx_helper.php to modify function
    find_eth_ifaces() to properly detect 'enp5s0' style interfaces
    as well.
  - Modified ci4/app/Helpers/uifc_ng_helper.php StartPageStats() to
    use generic interface name localization if we're not using eth0
  - Modified ci4/Modules/Base/Gui/Controllers/Metrics.php to detect
    and use primary interface in aggnet metrics.


author: Michael Stauber <mstauber@solarspeed.net> 5.2-5
changelog:
  - Modified debugging in ci4/app/Libraries/AutoFeatures.php
  - Made ci4/app/Libraries/CCE.php more resilient

  - Modified ci4/app/Helpers/blueonyx_helper.php
  - Modified ci4/app/Helpers/uifc_ng_helper.php
  - Modified ci4/app/Libraries/I18n.php
  - Modified templates/rpmdefs.tmpl
  - Added web/fqdn.php


author: Michael Stauber <mstauber@solarspeed.net> 5.1-23
changelog:
  - Backported from 5212R: 5.2-8 and earlier:
  - Modified ci4/app/Helpers/blueonyx_helper.php to add new function
    renderSingleFlotChartDeltas() for better rendering of network
    traffic with deltas instead of totals.
  - Modified ci4/app/Helpers/uifc_ng_helper.php to edit function
    StartPageStats() to use renderSingleFlotChartDeltas() for the
    block with the network traffic Flot.
  - Added web/fqdn.php which we need for determining the GUI
    hostname from within /var/www/html/error/suspended.html
  - Fix in ci4/app/Libraries/I18n.php to return early on empty tag.


author: Michael Stauber <mstauber@solarspeed.net> 5.1-24
changelog:
  - Modified Helpers/blueonyx_helper.php to reject passwords with 
    double-quote characters in them.
  - Modified Modules/Base/Gui/Controllers/Check_password.php to perform
    illegal character check on raw POST data.


author: Michael Stauber <mstauber@solarspeed.net> 5.1-25
changelog:
  - Modified ci4/app/Libraries/I18n.php so that get() uses en_US locales
    for '_swupdate' entries with 'name' or 'nameTag'.
  - Modified ci4/app/Libraries/uifc2/SetSelector.php to sort the output
    of the selected and not selected colums.


author: Michael Stauber <mstauber@solarspeed.net> 5.1-26
changelog:
  - Small fix in ScrollList.php to only use setExtraHeaders() if we do have
    Variable tableExtraWidthHeader defined. It is undefined if we have not
    used setColumnWidths() when setting up getScrollList(). 
  - Modified /ci4/app/Libraries/uifc1/ScrollList.php
  - Modified /ci4/app/Libraries/uifc2/ScrollList.php


author: Michael Stauber <mstauber@solarspeed.net> 5.1-5
changelog:
  - Modified ci4/app/Controllers/BaseController.php to make sure SQL
    port is now always an integer.
  - Updated ci4/app/Views/errors/html/production.php
  - Updated ci4/app/Views/errors/html/production.php.bak


author: Michael Stauber <mstauber@blueonyx.it>
changelog:
  - [4.0-8] Version number bump
  - Added back cbowden/Ratchet and React related modules as
    we need them again for Websockets in the IncusAPI.
    This also added a ton of dependency modules.


author: Michael Stauber <mstauber@blueonyx.it>
changelog:
  - [4.0-9] Version number bump
  - Adding symfony/yaml and cbowden/Ratchet had dropped the
    auto-loading of sonata-project/google-authenticator and
    it needed to be added in again for 2FA
  - Modified composer/autoload_psr4.php
  - Modified composer/autoload_static.php
  - Modified composer/installed.json
  - Modified composer/installed.php


author: Michael Stauber <mstauber@blueonyx.it>
changelog:
  - [1.0-5] Disable prometheus and node_exporter as cced-api
    now takes over the job. Eventual removal of this RPM
    is planned, but for compat reasons it has to remain
    present for the moment.


author: Michael Stauber <mstauber@solarspeed.net> 2.2.0-2
changelog:
  - Small fix in ui/chorizo/web/Controllers/Amstatus.php related to
    AM pages from Vendors other than 'Base'.


author: Michael Stauber <mstauber@solarspeed.net> 2.3.0-1
changelog:
  - Modified ui/chorizo/web/Controllers/Amstatus.php for Elmer theme
  - Fixed invalid regexp in glue/schemas/am.schema
  - Modified ui/chorizo/web/Controllers/Amstatus.php
  - Modified ui/chorizo/web/Controllers/Cpu_details.php
  - Modified ui/chorizo/web/Controllers/Memory_details.php


author: Michael Stauber <mstauber@solarspeed.net> 2.3.0-3
changelog:
  - Updated GUI pages to use new cced-api enhanced functions to display
    cpu and memory usage statistics.


author: Michael Stauber <mstauber@solarspeed.net> 2.3.0-4
changelog:
  - Flot charts weren't loading the required JS. Fixed:
  - Modified ui/chorizo/web/Controllers/Cpu_details.php
  - Modified ui/chorizo/web/Controllers/Memory_details.php


author: Michael Stauber <mstauber@solarspeed.net> 2.4.0-0BX07
changelog:
  - Modied glue/handlers/reload_httpd.pl to restart php-fpm first of all.
    Also added '/usr/bin/systemctl reset-failed service' to the mix to
    reset the restart limits. And added 'nobg' to not shoot the restarts
    into the background.


author: Michael Stauber <mstauber@solarspeed.net> 2.4.0-0BX09
changelog:
  - Modified ui/chorizo/extensions/10_PHP.php.create.Vsite
  - Modified ui/chorizo/extensions/10_PHP.php.defaults.Vsite
  - Modified ui/chorizo/extensions/10_PHP.php.modifyPHP.Vsite


author: Michael Stauber <mstauber@solarspeed.net> 2.4.0-0BX10
changelog:
  - Small improvement to ui/chorizo/extensions/10_PHP.php.modifyPHP.Vsite
    in order to add a final sense check to the selected PHP version.


author: Michael Stauber <mstauber@solarspeed.net> 2.4.0-0BX11
changelog:
  - Modified glue/handlers/virtual_host.pl to allow 'open_basedir' for 
    Vsites to be set to 'none' if the Vsite has it configured that way and
    the server allows it.


author: Michael Stauber <mstauber@solarspeed.net> 2.4.0-0BX12
changelog:
  - Making sure Apache gets restarted on GUI related changes.
  - Modified glue/handlers/reload.pl
  - Modified glue/handlers/reload_httpd.pl
  - Modified ui/chorizo/web/Controllers/Apache.php


author: Michael Stauber <mstauber@solarspeed.net> 2.4.0-0BX14
changelog:
  - Modified Sauce::Service calls to remove 'nobg' parameter.
  - Modified glue/handlers/reload.pl
  - Modified glue/handlers/reload_httpd.pl


author: Michael Stauber <mstauber@solarspeed.net> 2.4.1-1
changelog:
  - Elmer related fixes in /ui/chorizo/extensions/52_REDIRECT.php.create.Vsite
  - Elmer related fixes in /ui/chorizo/extensions/52_REDIRECT.php.modifyWeb.Vsite
  - Elmer related fixes in ui/chorizo/web/Controllers/Apache.php
  - Elmer'ized ui/chorizo/extensions/52_REDIRECT.php.create.Vsite
  - Elmer'ized ui/chorizo/extensions/52_REDIRECT.php.modifyWeb.Vsite


author: Michael Stauber <mstauber@solarspeed.net> 2.4.1-3
changelog:
  - Added ability to change GUI port and GUI URIs
  - Modified glue/httpd/00-default-vsite.pl
  - Added glue/httpd/admserv.conf


author: Michael Stauber <mstauber@solarspeed.net> 2.4.1-7
changelog:
  - Fixed error handling in ui/chorizo/extensions/52_REDIRECT.php.create.Vsite
  - Fixed error handling in ui/chorizo/extensions/52_REDIRECT.php.modifyWeb.Vsite


author: Michael Stauber <mstauber@solarspeed.net> 2.4.2-1
changelog:
  - Modified glue/conf/Apache.conf to add triggers for Vsite over_quota event.
  - Modified glue/handlers/virtual_host.pl to edit PHP-FPM pool file of Vsite
    and php.ini to set 'disable_functions' and 'disable_classes' appropriate
    to disable all common functions to write or create files.


author: Michael Stauber <mstauber@solarspeed.net> 2.4.3-3
changelog:
  - Added script /usr/sausalito/sbin/switch_php_to_fpm.pl to allow quick
    switch of all Vsites to PHP-FPM.


author: Michael Stauber <mstauber@solarspeed.net> 2.4.3-5
changelog:
  - Modified glue/httpd/00-default-vsite.pl so that an enabled 
    'GUIredirects' now directly redirects to https://<FQDN>:81/login
    without triggering SSL certificate warnings on the Vsite FQDN first.


author: Michael Stauber <mstauber@solarspeed.net> 2.4.4-1
changelog:
  - Modified glue/handlers/virtual_host.pl to remodel PHP-FPM integration.
    Switched it to use Unix sockets in Vsites wwwroot directories for
    FPM, as the check for free TCP ports was never going to work with
    the degree of reliability that it needed. Unix sockets are also
    a wee bit faster, as we don't have to take the roundabout through
    the TCP/IP stack.


author: Michael Stauber <mstauber@solarspeed.net> 2.4.5-1
changelog:
  - Modified glue/httpd/security.conf to add fallback error pages in
    case the siteAdmin has deleted the /error directory from /web
  - Updated glue/schemas/apache.schema to extend 'System' . 'Web'
  - Modified glue/httpd/00-default-vsite.pl to add provisions to Apache
    to automatically detect and block a list of bad bots and to serve
    a sensible robots.txt file if the Vsite doesn't already have one. 
    We also save a separate deny-allrobots.txt if the visit is from
    a bad bot.
  - Added default glue/httpd/robots.txt
  - Added default glue/httpd/robots_deny_all.txt
  - Modified constructor/import_apache_settings.pl to automatically
    populate 'System' . 'Web' with 'good_useragents' and also
    'bad_useragents' if the Array is empty. Like on first definition
    via the Schema.
  - Modified glue/handlers/writeback_blueOnyx_conf.pl to update
    /var/www/html/robots.txt and /var/www/html/robots_deny_all.txt
  - Modified ui/chorizo/web/Controllers/Apache.php to make these 
    new features editable.
  - Locales updated
  - Handling of /etc/httpd/conf.d/blueonyx.conf in regards to
    'Options' and 'AllowOverride' wasn't folliwng proper Apache 2.4
    syntax. Specific items now must be set via 'Options=' explicitly.
  - Updated constructor/import_apache_settings.pl for that.
  - Updated constructor/import_apache_settings.pl for that.
  - Modified ui/chorizo/web/Controllers/Apache.php to set the Options
    'FollowSymLinks' and 'SymLinksIfOwnerMatch' to '1' if the Option
    'All' is ticked. Because these are then active anyway as they are
    included in 'All'. 'Indexes' and 'Multiviews' are not included
    and must still be set individually.


author: Michael Stauber <mstauber@solarspeed.net> 2.4.5-2
changelog:
  - Modified glue/httpd/00-default-vsite.pl to chunk 'bad_useragents'
    if the list is too long for Apache regexp handling.
  - Rolled back edit_blueonyx() in glue/handlers/writeback_blueOnyx_conf.pl
    to handle 'Options' and 'AllowOverride' same as before. Even if it's 
    flawed.
  - Modified constructor/import_apache_settings.pl to be able to import
    both old-style and new-style 'Options' and 'AllowOverride' configs.


author: Michael Stauber <mstauber@solarspeed.net> 2.4.6-1
changelog:
  - Modified glue/handlers/reload_httpd.pl extensively. We now checksum
    the PHP-FPM pool directories for config file changes. Based on these
    changes we do or don't 'reload' the PHP-FPM daemons. We also check
    which Vsites use PHP-FPM and which version and based on that we
    enable and disable the PHP-FPM daemons on an as needed basis.
  - Apache and Nginx are now also handled via 'reload' instead of
    'restart' and there is now a better check in place that determines
    if we need to handle Nginx or not.


author: Michael Stauber <mstauber@solarspeed.net> 2.4.6-2
changelog:
  - Modified PHP extensions to use the new getAll() function.
  - Modified ui/chorizo/extensions/10_PHP.php.create.Vsite
  - Modified ui/chorizo/extensions/10_PHP.php.defaults.Vsite
  - Modified ui/chorizo/extensions/10_PHP.php.modifyPHP.Vsite


author: Michael Stauber <mstauber@solarspeed.net> 2.4.6-9
changelog:
  - Backported from 5212R: v2.4.6-9
  - Modified glue/schemas/vsite_services.schema to set 'VsiteServices'
    'PHP' to enabled and to turn on PHP-FPM by default for Vsite
    template.
  - Modified glue/httpd/security.conf to expose .elm for new error pages
  - Modified glue/httpd/00-default-vsite.pl to overhaul the badbot
    mechanism. Additionally added provisions to create frontloading
    <VirtualHost> containers (HTTP and HTTPS if needed) for suspended
    Vsites. These block all traffic but to /var/www/html/suspended.html
    and show that the Vsite has been suspended. If a suspension reason
    was given, this will be shown as well.


author: Michael Stauber <mstauber@solarspeed.net> 2.4.6-11
changelog:
  - Modified glue/handlers/virtual_host.pl to set -t parameter to
    phpsendmail. While redundant, this satisfies module checks.


author: Michael Stauber <mstauber@solarspeed.net> 2.4.6-13
changelog:
  - Modified ui/chorizo/web/Controllers/Apache.php to bring back the 
    AllowOverride switch 'Options'. 
  - Modified glue/handlers/writeback_blueOnyx_conf.pl to handle 
    AllowOverride 'Options' correctly and to insert AllowOverride 'None'
    in case no other parameter is set.


author: Michael Stauber <mstauber@solarspeed.net> 2.4.6-14
changelog:
  - Modified glue/handlers/writeback_blueOnyx_conf.pl to swap out entire
    edit_blueonyx() sub with one that properly constructs the AllowOverride
    'Options' based on what Options are actually set.


author: Michael Stauber <mstauber@solarspeed.net> 1.2.1-3
changelog:
  - Added ability to change GUI ports and GUI URIs
  - Modified ui/chorizo/web/Controllers/Desktopcontrol.php


author: Michael Stauber <mstauber@solarspeed.net> 1.2.1-5
changelog:
  - Modified ui/chorizo/web/Controllers/Desktopcontrol.php to fix a
    Command Injection/RCE via GUI_PORT var as reported by Alec Romano.


author: Michael Stauber <mstauber@solarspeed.net> 7.20221121-BX5
changelog:
  - Added requirement for perl-String-ShortHostname
  - Modified glue/root/network_settings.sh as we now HAVE to set servername
  - Added glue/sbin/set_servername.pl to easily set servername
  - Modified glue/sbin/updateSystem.pl


author: Michael Stauber <mstauber@solarspeed.net> 7.20221208-BX8
changelog:
  - Modified glue/sbin/bx_runonce.sh to only run scripts if initial setup has
    not yet been completed. This is a bloody overdue change.
  - Modified glue/scripts/initSendmail.sh to copy the right sendmail.mc in
    and screw the previous Majordomo and Mailman provisions. We have neither.
  - Modified glue/scripts/initServices.sh to leave /root/.bashrc the fuck alone
    if initial setup has already been completed.


author: Michael Stauber <mstauber@solarspeed.net> 7.20240222-BX11
changelog:
  - Modified glue/scripts/initServices.sh to run activate_prometheus.sh as
    well. We need this for the ISO installed version of BlueOnyx.


author: Michael Stauber <mstauber@solarspeed.net> 7.20240222-BX12
changelog:
  - Modified glue/root/network_settings.sh to run swatch in the background and
    to also execute /usr/sausalito/constructor/base/wizard/serverNameGui.pl


author: Michael Stauber <mstauber@solarspeed.net> 7.20240608-BX13
changelog:
  - Massive overhaul of /root/network_settings.sh to allow to set bridged network
    as well as DHCP as additional options. Uses proper NetworkManager options now.
  - Modified constructor/el9fixex.sh
  - Modified glue/root/network_settings.sh
  - Modified glue/sbin/nethelper.pl
  - Modified glue/sbin/set_servername.pl
  - Modified glue/scripts/initServices.sh


author: Michael Stauber <mstauber@solarspeed.net> 7.20250115-BX20
changelog:
  - Modified glue/scripts/init.sh to make sure every newly set up BlueOnyx 
    starts with a freshly generated /etc/machine-id during firstboot.


author: Michael Stauber <mstauber@solarspeed.net> 1.2.0-1
changelog:
  - Elmer'ized ui/chorizo/web/Controllers/Ddnsapi.php
  - Elmer'ized ui/chorizo/web/Controllers/Ddnsconfig.php


author: Michael Stauber <mstauber@solarspeed.net> 1.2.1-1
changelog:
  - Due to CSRF and other protection mechanism GUI no longer accepts
    foreign POST requests. Hence /ddns/ddnsapi and ddns-client.pl need
    to be switched to GET requests instead.
  - Modified glue/sbin/ddns-client.pl to send GET request
  - Modified ui/chorizo/web/Controllers/Ddnsapi.php to disable POST
    request handling, set BxPage to use setOutOfStyle() and trigger
    ACLs not via BaseController (needs AUTH), but via BX_SESSION vars.
    Not being 'systemAdministrator' or absence of sessionId triggers
    403 error.


author: Michael Stauber <mstauber@solarspeed.net> 1.2.0-0BX03
changelog:
  - Modified src/base-disk-am/get_quotas.pl to only look under /home/.sites/ for
    the Vsites, as this is the only place where we really support them to be at
    this time. This is faster and more reliable.


author: Michael Stauber <mstauber@solarspeed.net> 1.3.1-1
changelog:
  - Modified am_disk.pl to work with enabled user and group quotas
    on the file-system level and without.
  - Modified am_disk.pl to work with enabled user and group quotas
    on the file-system level and without.
  - Extended am_disk.pl to set and remove the flag 'vsite_over_quota' in
    Vsite . Disk as needed.


author: Michael Stauber <mstauber@solarspeed.net> 1.3.1-4
changelog:
  - Locale related fixes in src/base-disk-am/am_disk.pl
  - Locale related fixes in src/base-disk-am/get_quotas.pl


author: Michael Stauber <mstauber@solarspeed.net> 1.4.0-1
changelog:
  - Usage of Unix::PasswdFile and Unix::GroupFile turns out to be         
    problematic because even for read-only transactions it locks the
    /etc/passwd and /etc/group files. Sooner or later this will lead
    to runtime issues with locks being left around.
  - Added our own Base::CustomPasswdFile and Base::CustomGroupFile
    which serve as drop in replacements for our common read-only
    access types. These are part of base-disk now.
  - Modified src/base-disk-am/am_disk.pl accordingly
  - Modified src/base-disk-am/get_quotas.pl accordingly


author: Michael Stauber <mstauber@solarspeed.net> 1.4.0-2
changelog:
  - Modified am_disk.pl by extending the emailing routine with an eval.
    Emailing to over-quota users fails and then the 'lastemailed' flag
    never gets set. So we encapsulate the sending of emails in an eval.


author: Michael Stauber <mstauber@solarspeed.net> 1.4.0-3
changelog:
  - Modified am_disk.pl to rework the over-quota suspend/unsuspend 
    Email for Users by introducing a new CODB key as <useroid> . 
    'Disk' 'quota_toggle'. This allows us to run the quota-treatment 
    on Users even if their over-quota status hasn't changed. We also
    now parse the Sendmail and Postfix access files to find users with
    email set to over-quota rejects. These then get re-checked for their
    quota status and if need be we use the 'quota_toggle' to trigger 
    a cleanup run for their settings.


author: Michael Stauber <mstauber@solarspeed.net> 1.4.1-1
changelog:
  - Modified am_disk.pl for rework of over-quota suspend/unsuspend mechanism. 
  - Warn-at-95%, block-at-100% model:
    - Default thresholds: red_pcnt=95, yellow_pcnt=90, red_free=100, yellow_free=125.
    - Users are notified when usage >= 95% (once per day); "over_quota" is set ONLY at 100%.
    - Added quota_toggle timestamp whenever over_quota flips.
  - Suppress user mail when delivery would be blocked:
    - Skip staging and sending user email if the user is already flagged over_quota
      or current usage >= 100%. Also re-check in the send loop to avoid races.
  - Admin notifications:
    - Daily 04:00 summary includes users over quota (as user@vsite_fqdn) and vsites over quota.
    - DEBUG mode forces admin mail regardless of time window.
    - i18n locale is respected for admin and per-user emails; UTF-8 / EUC-JP charset set accordingly.
  - Vsite flags and server state:
    - Set Vsite.Disk.vsite_over_quota=1 when site usage >= 100%; clear it when recovered.
    - If any vsite is over quota, bump Active Monitor server status to YELLOW.
    - Maintain Vsite.Disk.user_over_quota based on current users over quota.
  - Quota detection & accounting:
    - Prefer real quotas via `repquota -O csv` for users and groups.
    - Fallback path (no FS quotas): compute usage with find/stat; pull allowances from CODB.
    - Include /web directory (owned by site admin) in that admin user’s usage on fallback path.
    - Treat vsites whose /web owner is over quota as over-quota sites for admin reporting.
  - Mail-block cleanup aligned with 100% policy:
    - Scan /etc/mail/access and /etc/postfix/suspended_users; clear CODB flags for users
      no longer at/over 100% (or without site quotas), triggering unblocking.
  - Disk usage warnings & CCE protection:
    - df-based device warnings respect yellow/red % and free-MB thresholds.
    - If root filesystem free falls below root_thresh, lock/suspend CCE; otherwise sync lock.
  - Robustness & polish:
    - Safer truthiness checks (e.g., DEBUG), use of `// 0` where appropriate.
    - Reset and then set flags in batch to reflect current state.
    - Minor log/message cleanups and consistent comparisons (use >= where appropriate).


author: Michael Stauber <mstauber@solarspeed.net> 1.4.1-2
changelog:
  - Added exclusion of serverAdmins for quota related suspensions
  - Added cleanup of email map files for stale suspensions


author: Michael Stauber <mstauber@solarspeed.net> 3.3.0-1
changelog:
  - Elmer'ized ui/chorizo/web/Controllers/GroupDiskUsage.php
  - Elmer'ized ui/chorizo/web/Controllers/ServerDiskUsage.php
  - Elmer'ized ui/chorizo/web/Controllers/UserDiskUsage.php


author: Michael Stauber <mstauber@solarspeed.net> 3.3.2-1
changelog:
  - Modified glue/handlers/Disk.pm to work with enabled user and group
    quota on the filesystem level as well as without. If no disk quota
    is supported by the filesystem, we skip setquota and use find and
    stat to determine actual disk usage.
  - Modified glue/handlers/user_overquota.pl to switch usage of 
    Unix::PasswdFile to Base::HomeDir to prevent run-time issues with
    am_disk.pl or or get_quotas.pl
  - Modified glue/schemas/disk.schema to add the key 'vsite_over_quota'
    to Vsite . Disk.


author: Michael Stauber <mstauber@solarspeed.net> 3.4.0-1
changelog:
  - Usage of Unix::PasswdFile and Unix::GroupFile turns out to be
    problematic because even for read-only transactions it locks the
    /etc/passwd and /etc/group files. Sooner or later this will lead
    to runtime issues with locks being left around.
  - Added our own Base::CustomPasswdFile and Base::CustomGroupFile
    which serve as drop in replacements for our common read-only 
    access types.
  - Modified src/base-disk-am/am_disk.pl accordingly
  - Modified src/base-disk-am/get_quotas.pl accordingly


author: Michael Stauber <mstauber@solarspeed.net> 3.4.1-2
changelog:
  - Reworked the over-quota suspend/unsuspend Email for Users by 
    introducing a new CODB key as <useroid> . 'Disk' 'quota_toggle'.
    This allows us to run the quota-treatment on Users even if their
    over-quota status hasn't changed.
  - Modified glue/schemas/disk.schema accordingly.


author: Michael Stauber <mstauber@solarspeed.net> 3.4.1-3
changelog:
  - Modified glue/schemas/disk.schema to set default 0 for 'quota_toggle'
    as we can't have an undefined integer as default.


author: Michael Stauber <mstauber@solarspeed.net> 3.4.1-4
changelog:
  - Modified ui/chorizo/web/Controllers/ServerDiskUsage.php for better
    display of totals for users with unlimited quota.


author: Michael Stauber <mstauber@solarspeed.net> 1.1-0BX04
changelog:
  - Modified am_dns.sh to call constructor fixDNS.pl if needed. Which 
    has provisions to fix up the Systemd Unit-File named-chroot in case
    a YUM update rolls it back to a nonfunctional version.


author: Michael Stauber <mstauber@solarspeed.net> 2.1.0-0BX09
changelog:
  - Threw in /etc/logrotate.d/named-chroot.conf
  - Made sure that verbose DNS logging is now off by default.


author: Michael Stauber <mstauber@solarspeed.net> 2.3.0-3
changelog:
  - Modified Schema and UI to allow MS 365 CNAME selectors
  - Modified glue/schemas/dns.schema
  - Modified ui/chorizo/web/Controllers/Dns_add.php
  - Modified ui/chorizo/web/Controllers/Vsite_dns_add.php


author: Michael Stauber <mstauber@solarspeed.net> 2.3.0-4
changelog:
  - Small fix in ui/chorizo/web/Controllers/Dns_add.php
  - Small fix in ui/chorizo/web/Controllers/Vsite_dns_add.php


author: Michael Stauber <mstauber@solarspeed.net> 2.3.0-5
changelog:
  - Added missing IgnoreAttributes for the Elmer pulldowns
  - Modified ui/chorizo/web/Controllers/Primarydns.php
  - Modified ui/chorizo/web/Controllers/Secondarydns.php
  - Modified ui/chorizo/web/Controllers/VsiteDNS.php


author: Michael Stauber <mstauber@solarspeed.net> 2.3.0-6
changelog:
  - Modified glue/handlers/dns_generate.pl to split TXT records into
    255 character chunks to stay within the RFC limit.


author: Michael Stauber <mstauber@solarspeed.net> 2.3.1-1
changelog:
  - Modified glue/conf/base-dns.conf to effect that the 'dirty' flag 
    restarts the DNS.
  - Modified glue/handlers/dns_restart.pl to not only use the call
    service_toggle_init() but also service_run_init() to flip DNS
    into the desired run state.


author: Michael Stauber <mstauber@solarspeed.net> 1.3.2-1
changelog:
  - Modified am_smtp.exp to work even if the MTA has been configured
    to force STARTTLS (smtpd_tls_security_level = encrypt). In which
    case we then use openssl_client for the test instead of telnet.


author: Michael Stauber <mstauber@solarspeed.net> 2.1.0-18
changelog:
  - Modified glue/bin/blueonyx-postfix-confgen to set a default hostname
    if /usr/bin/hostname --domain returns nothing.


author: Michael Stauber <mstauber@solarspeed.net> 2.1.0-19
changelog:
  - Modified Sauce::Service calls to remove 'nobg' parameter.
  - Modified glue/handlers/personal.pl
  - Modified glue/handlers/restart.pl


author: Michael Stauber <mstauber@solarspeed.net> 2.1.0-23
changelog:
  - Modified glue/bin/blueonyx-postfix-confgen to automatically add
    RELAY hosts and IPs from 'Network Services' / 'Email' / 'Advanced'
    'Relay Email From Hosts/Domains/IP Addresses' to 'mynetworks'.


author: Michael Stauber <mstauber@solarspeed.net> 2.2.0-1
changelog:
  - Fixed invalid regexp in glue/schemas/email.schema
  - Elmer related fixes in ui/chorizo/web/Controllers/Blacklist.php
  - Elmer related fixes in ui/chorizo/web/Controllers/Emailsettings.php


author: Michael Stauber <mstauber@solarspeed.net> 2.2.0-3
changelog:
  - Modified glue/conf/user.conf to run base/email/user_disable.pl on
    change of User.Disk.over_quota
  - Modified glue/handlers/user_disable.pl to not only handle full
    suspension of users via GUI, but also soft suspension via over_quota.
    In cases of over_quota case we just turn off email with a proper
    error message in the MTA about the reason. If email or user is
    completly disabled for the user, we set a generic REJECT as before.
  - Small fixes in glue/handlers/personal.pl


author: Michael Stauber <mstauber@solarspeed.net> 2.2.1-1
changelog:
  - Small fixes in Handler and Constructor to determine IP via Network.pm
  - Modified constructor/syncEmailService.pl
  - Modified glue/handlers/enable.pl


author: Michael Stauber <mstauber@solarspeed.net> 2.2.3-1
changelog:
  - glue/bin/blueonyx-postfix-canonical.pl more debugging added
  - glue/handlers/user_disable.pl code reformatted


author: Michael Stauber <mstauber@solarspeed.net> 2.2.4-2
changelog:
  - Modified constructor/syncEmailService.pl to handle postfix.pem too
  - Modified glue/handlers/copy_certs.pl to handle postfix.pem too


author: Michael Stauber <mstauber@solarspeed.net> 2.2.4-3
changelog:
  - Modified glue/bin/blueonyx-postfix-confgen to create the AdmServ
    /etc/admserv/certs/nginx_cert_ca_combined if it is missing.


author: Michael Stauber <mstauber@solarspeed.net> 2.2.4-4
changelog:
  - Added glue/etc/httpd/conf.d/radicale_redirects.conf to provide URL
    redirects so that Apple fondleslabs can reach Caldav/Carddav.
    Many thanks to Christoph Schneeberger for pointing this out.


author: Michael Stauber <mstauber@solarspeed.net> 2.2.4-6
changelog:
  - Reworked the over-quota suspend/unsuspend Email for Users by
    introducing a new CODB key as <useroid> . 'Disk' 'quota_toggle'.
    This allows us to run the quota-treatment on Users even if their
    over-quota status hasn't changed.
  - Added 'quota_toggle' trigger to glue/conf/user.conf
  - Modified glue/handlers/user_disable.pl to not freak out over Users
    of type 'serverAdmin', who belong to no Vsite group. Implemented
    better and cleaner written out access files by ditching the old
    'replaceblock' with a newer function.


author: Michael Stauber <mstauber@solarspeed.net> 2.2.4-7
changelog:
  - Modified glue/bin/blueonyx-postfix-confgen with Mailman exceptions
    for both BlueOnyx 5211R and 5212R.


author: Michael Stauber <mstauber@solarspeed.net> 2.2.4-9
changelog:
  - Code cleanup and fixes to make sure Milter uses 127.0.0:8891
  - Modified constructor/syncEmailOpenDKIM.pl
  - Modified glue/handlers/opendkim_enable.pl
  - Modified glue/handlers/enable.pl for cleaner Dovecot config.
  - Modified glue/handlers/virtual_server.pl to NOT include server name
    in /etc/mail/local-host-names. Sendmail doesn't need it and Postfix
    otherwise complains about it.
  - Modified constructor/syncEmailService.pl to make sure /etc/shells
    has all relevant Jailkit shells. Otherwise Vacation messages will
    not work if Sendmail is the MTA and the user has Jails.


author: Michael Stauber <mstauber@solarspeed.net> 2.2.4-10
changelog:
  - Making sure to enforce proper ownership on /etc/opendkim/
  - Modified constructor/syncEmailOpenDKIM.pl
  - Modified glue/handlers/opendkim_enable.pl


author: Michael Stauber <mstauber@solarspeed.net> 1.9.0-3
changelog:
  - Added requirement for base-ftp-configs
  - Added src/base-ftp-configs with copy of pam.d/proftp and proftp.conf
  - Modified constructor/syncFTP.pl to copy configs over if defective


author: Michael Stauber <mstauber@solarspeed.net> 1.9.0-5
changelog:
  - Modified glue/conf/ftp.conf to add triggers for Vsite and User
    over_quota events.
  - Modified glue/handlers/ftpnonsideadmin.pl to turn off FTP WRITE
    access if a user goes over_quota. And to restore it once his
    quota goes back to normal.
  - Modified glue/handlers/user_ftp_access.pl to turn off FTP WRITE
    access to Vsite Users with FTP enabled when a Vsite itself goes
    over_quota. And to restore it once the Vsite quota returns to
    normal.


author: Michael Stauber <mstauber@solarspeed.net> 1.9.0-6
changelog:
  - Over-Quota users get the right to delete stuff via FTP if they
    had FTP access to begin with.
  - Modified glue/handlers/ftpnonsideadmin.pl
  - Modified glue/handlers/user_ftp_access.pl


author: Michael Stauber <mstauber@solarspeed.net> 2.0.0-1
changelog:
  - Integrated web based elFinder FTP client into GUI.
  - Modified ui/chorizo/web/Config/Routes.php
  - Added ui/chorizo/menu/ftpc_personal.xml
  - Added ui/chorizo/menu/ftpc_server.xml
  - Added ui/chorizo/menu/ftpc_vsite.xml
  - Added ui/chorizo/web/Controllers/Filemanager.php
  - Added ui/chorizo/web/Controllers/Filemgr.php
  - Added ui/chorizo/web/Views/elmer_file_manager.php


author: Michael Stauber <mstauber@solarspeed.net> 2.0.0-2
changelog:
  - Modified constructor/syncFTP.pl with check for PassivePorts and
    provisions to rotate a fixed proftpd.conf in if missing.


author: Michael Stauber <mstauber@solarspeed.net> 2.7.0-4
changelog:
  - Added ability to server admin users to assign previously unassigned
    SQL databases to the management of Vsites.
  - Added glue/Makefile
  - Modified glue/ccewrap/systemctl.xml
  - Added glue/sbin/list_mysql_dbs.pl
  - Modified ui/chorizo/web/Controllers/VsiteMySQL.php
  - Updated locales


author: Michael Stauber <mstauber@solarspeed.net> 2.7.0-5
changelog:
  - Changed SQL dump location to a more sensible place.
  - Modified glue/handlers/mysql-del-backup.pl
  - Modified glue/handlers/mysql-dump.pl
  - Modified ui/chorizo/web/Controllers/Mysqlserver.php


author: Michael Stauber <mstauber@solarspeed.net> 2.8.0-1
changelog:
  - Propper error handling via BxPage added.
  - Elmer'ized ui/chorizo/web/Controllers/Dbbackup.php
  - Elmer'ized ui/chorizo/web/Controllers/Dbupload.php
  - Elmer'ized ui/chorizo/web/Controllers/Mysqlconfig.php
  - Elmer'ized ui/chorizo/web/Controllers/Mysqlserver.php
  - Elmer'ized ui/chorizo/web/Controllers/VsiteMySQL.php
  - Elmer'ized ui/chorizo/web/Controllers/Dbdownload.php
  - Elmer'ized ui/chorizo/web/Controllers/Dbload.php


author: Michael Stauber <mstauber@solarspeed.net> 2.8.0-4
changelog:
  - Modified ui/chorizo/extensions/15_MYSQL_Vsite.php.create.Vsite to
    use BaseController.php methods to check SQL connectivity.
  - Modified ui/chorizo/extensions/11_MYSQL_Vsite.php.defaults.Vsite
    to turn the choices into a getMultiChoice() that allows enabling
    of SQL for Vsites AND choose how many DBs can be used.
  - Modified ui/chorizo/extensions/15_MYSQL_Vsite.php.modifyMySQL.Vsite
    to use BaseController.php methods to check SQL connectivity.


author: Michael Stauber <mstauber@solarspeed.net> 2.8.1-1
changelog:
  - Small fix in ui/base-mysql.mod/glue/handlers/mod_mysql.pl
  - Modified ui/base-mysql.mod/glue/handlers/mysql-changePass.pl to make
    sure we have all the SQL 'root' users we may need AND that their
    passwords are being set correctly.


author: Michael Stauber <mstauber@solarspeed.net> 2.8.1-2
changelog:
  - Modified glue/handlers/mysql-changePass.pl to better deal with
    root access needing no password for root socket auth access and
    with the possibility of having various root accounts.


author: Michael Stauber <mstauber@solarspeed.net> 2.8.1-3
changelog:
  - Modified glue/handlers/mysql-changePass.pl to add provisions to
    remove 'unix_socket' auth method from root@localhost as it is
    not worth the hassles and causes issues with the GUI left and right.


author: Michael Stauber <mstauber@solarspeed.net> 2.2.0-3
changelog:
  - Modified ui/chorizo/web/Controllers/Ethernet.php to fetch the 'System'
    object via 'cce_nocache' option from CCE to make sure we're not
    operating with cached values.


author: Michael Stauber <mstauber@solarspeed.net> 2.3.0-1
changelog:
  - Elmer'ized ui/chorizo/web/Controllers/Network_details.php
  - Elmer'ized ui/chorizo/web/Controllers/Pooling.php
  - Elmer'ized ui/chorizo/web/Controllers/PoolingModify.php


author: Michael Stauber <mstauber@solarspeed.net> 3.0.1-1
changelog:
  - Added automatic takedown of any eth0:X network aliases that remain
    around after conversion to keyfile format.
  - Modified glue/handlers/network_apply.pl
  - Modified glue/sbin/network_apply_settings.pl


author: Michael Stauber <mstauber@solarspeed.net> 3.0.2-1
changelog:
  - Modified glue/handlers/Network.pm with fixes derived from test
    installs on a production server. get_primary_dns_servers() now
    also parses /etc/resolve.conf. And blueonyx_dhcp() now reports
    'manual' connection method if DHCP isn't enabled for BOTH IPv4
    and IPv6. This covers legacy cases where one or the other might
    be set to DHCP, but a static connection was desired.


author: Michael Stauber <mstauber@solarspeed.net> 3.0.3-1
changelog:
  - Deleted obsolete glue/handlers/getmac.pl
  - Deleted obsolete glue/handlers/rewrite-ifcfg.pl
  - Added more debugging output:
  - Modified constructor/30_addNetwork.pl
  - Modified glue/handlers/network_apply.pl
  - Modified glue/sbin/network_apply_settings.pl
  - RPM post-install now forces CCed rehash and it also forces a run of
    /usr/sausalito/sbin/network_apply_settings.pl with the output logged
    into /tmp/network_apply_settings.log
  - Added missing locales for 'Bridged Network' switch
  - Fixed get_primary_ipv6_ip() in Network.pm


author: Michael Stauber <mstauber@solarspeed.net> 3.0.4-1
changelog:
  - Regexp fixes in glue/handlers/network_apply.pl for eth0:X removals
  - Regexp fixes in glue/sbin/network_apply_settings.pl for eth0:X removals


author: Michael Stauber <mstauber@solarspeed.net> 3.0.5-1
changelog:
  - After conversion to keyfile force application of network changes:
  - Fixes in glue/handlers/network_apply.pl
  - Fixes in glue/sbin/network_apply_settings.pl


author: Michael Stauber <mstauber@solarspeed.net> 3.0.6-1
changelog:
  - Improved release of file locking in glue/handlers/network_apply.pl
  - Improved release of file locking in glue/sbin/network_apply_settings.pl
  - Added file locking to constructor/30_addNetwork.pl as well. We release
    it only just before we update the 'System' object to allow the handler
    to exclusively access the file lock to apply the changes. 
  - The improved locking should make sure that the /sbin script as well as
    the handler and constructor cannot perform actions at the same time.


author: Michael Stauber <mstauber@solarspeed.net> 3.0.7-1
changelog:
  - Updated the unholy trinity of network scripts to work in Incus CTs
    as well as there is no point in blocking that. Also added provisions
    to write out and updated /etc/issue at the end of each run.
  - Modified constructor/30_addNetwork.pl
  - Modified glue/handlers/network_apply.pl
  - Modified glue/sbin/network_apply_settings.pl


author: Michael Stauber <mstauber@solarspeed.net> 3.0.10-1
changelog:
  - Small fix in glue/sbin/network_apply_settings.pl related to veth
  - Small fix in ui/chorizo/web/Controllers/Ethernet.php


author: Michael Stauber <mstauber@solarspeed.net> 3.0.12-1
changelog:
  - Modified constructor/30_addNetwork.pl to use separate lockfile and
    to (on Incus) check for and use /tmp/bx_cloud_cfg as source for the
    network configuration. It processes it once, updates CODB and then
    removes it. This is the only way how we can reliably get a proper
    network config in Incus from the get go.
  - Bugfix in glue/handlers/Network.pm string_to_array() function.
  - Modified glue/handlers/network_apply.pl to fix non-working IPv6
    disabling procedure. Sadly nmcli is really picky about how to do
    this in the proper order.


author: Michael Stauber <mstauber@solarspeed.net> 3.0.16-1
changelog:
  - Fixes in constructor/30_addNetwork.pl to improve hostname provisions
  - Added /usr/sausalito/sbin/sync_hostname.pl


author: Michael Stauber <mstauber@solarspeed.net> 3.0.18-1
changelog:
  - Updated network scripts to set 'bridge.stp no' and to also 
    'bridge.vlan-filtering yes' for br0 bridges.
  - Modified glue/handlers/network_apply.pl
  - Modified glue/sbin/network_apply_settings.pl


author: Michael Stauber <mstauber@solarspeed.net> 3.0.18-2
changelog:
  - Modified ui/chorizo/web/Controllers/Ethernet.php to add a fallback
    if primary interface dosn't have the 'real' flag set.


author: Michael Stauber <mstauber@solarspeed.net> 3.0.18-3
changelog:
  - Modified ui/chorizo/web/Controllers/Network_details.php to use new
    cced-api enhanced methods to display network usage statistics.


author: Michael Stauber <mstauber@solarspeed.net> 3.0.19-1
changelog:
  - With our increased dependency on NetworkManager we NEED to make sure
    that bloody contraption is running and stays up. To that end I added
    /etc/systemd/system/NetworkManager.service.d/ignore-restarts.conf
    to make sure NetworkManager restarts itself if it falls on its nose.


author: Michael Stauber <mstauber@solarspeed.net> 3.0.18-4
changelog:
  - Modified constructor/30_addNetwork.pl debugging extended
  - Modified glue/handlers/Network.pm to improve find_eth_ifaces()
  - Modified glue/schemas/network.schema to revise typedef "interface"


author: Michael Stauber <mstauber@solarspeed.net> 3.0.20-1
changelog:
  - Modified Controllers/Network_details.php to use the new function
    renderSingleFlotChartDeltas() to show deltas of network usage.


author: Michael Stauber <mstauber@solarspeed.net> 3.0.0-1
changelog:
  - Major version number bump. This module now uses proper NetworkManager
    methods to configure the network. Mostly via 'nmcli', but also with
    some calles to 'ip', 'route', 'ifconfig' and other shell tools.
  - Removed constructor/01_setIPType.pl
  - Removed constructor/31_handle_aws_dhcp.pl
  - Removed constructor/40_addGateway.pl
  - Removed constructor/checkInterfaceConfigure.pl
  - Modified constructor/10_fix_ifup.pl
  - Complete rewrite of constructor/30_addNetwork.pl
  - Modified glue/conf/base-network.conf
  - Modified glue/handlers/Network.pm
  - Modified glue/handlers/change_route.pl
  - Modified glue/handlers/check_bridgedhcp.pl
  - Modified glue/handlers/delnetwork.pl
  - Modified glue/handlers/enforce_deps.pl
  - Modified glue/handlers/etchosts.pl
  - Modified glue/handlers/ip_forwarding
  - Modified glue/handlers/ip_masqing
  - Modified glue/handlers/network_apply.pl
  - Modified glue/handlers/no_duplicates.pl
  - Added glue/Makefile
  - Added glue/sbin/dhcp_enable.pl
  - Added glue/sbin/get_nmcli_uuid.pl
  - Added glue/sbin/network_apply_settings.pl
  - Added glue/sbin/set_system_bridge.pl
  - Modified glue/schemas/network.schema
  - Modified src/base-network-am/am_network.sh
  - Modified src/base-network-am/base-network-am.spec
  - Modified ui/chorizo/web/Controllers/Ethernet.php
  - Modified ui/chorizo/web/Controllers/Network_details.php
  - Added requirement for NetworkManager 
  - Added requirement for perl-Net-DBus 
  - Added requirement for perl-File-Find 
  - Added requirement for perl-File-Slurp


author: Michael Stauber <mstauber@blueonyx.it> 1.0.2-1
changelog:
  - Small bugfixes dealing with restores of users and not yet existing
    radicale user directories.
  - Modified glue/bin/radicale_backup.pl
  - Modified glue/handlers/user_restore.pl


author: Michael Stauber <mstauber@blueonyx.it> 1.0.3-1
changelog:
  - Ported glue/handlers/toggle_radicale.pl over from 5210R to keep
    foundation on the same basis.
  - Modified ui/chorizo/web/Controllers/Organizer.php to remove
    debugging line on POST request.


author: Michael Stauber <mstauber@blueonyx.it> 1.0.5-1
changelog:
  - Bugfix in ui/chorizo/web/Controllers/AddCollection.php
  - Bugfix in ui/chorizo/web/Controllers/PersonalOrganizerEdit.php


author: Michael Stauber <mstauber@blueonyx.it> 1.1.0-1
changelog:
  - Elmer'ized ui/chorizo/web/Controllers/Organizer.php
  - Elmer'ized ui/chorizo/web/Controllers/PersonalOrganizer.php
  - Elmer'ized ui/chorizo/web/Controllers/PersonalOrganizerEdit.php
  - Elmer'ized ui/chorizo/web/Controllers/PersonalOrganizerExt.php


author: Michael Stauber <mstauber@solarspeed.net> 1.3-3
changelog:
  - Modified ui/chorizo/web/Controllers/PersonalSSH.php shell variable handling
  - Modified ui/chorizo/web/Controllers/Shellconfig.php shell variable handling


author: Michael Stauber <mstauber@solarspeed.net> 1.3-4
changelog:
  - Added support for Google Authenticator 2FA for SSH
  - Modified glue/Makefile
  - Modified glue/conf/shell.conf
  - Modified glue/handlers/user_shell.pl
  - Modified glue/handlers/vsite_shell.pl
  - Modified glue/schemas/shell.schema
  - Modified templates/rpmdefs.tmpl
  - Modified ui/chorizo/extensions/60_Shell.php.create.Vsite
  - Modified ui/chorizo/extensions/60_Shell.php.defaults.Vsite
  - Modified ui/chorizo/extensions/Shell.php.create.User
  - Modified ui/chorizo/extensions/Shell.php.defaults.User
  - Modified ui/chorizo/extensions/Shell.php.modify.User
  - Modified ui/chorizo/web/Controllers/PersonalSSH.php
  - Modified ui/chorizo/web/Controllers/Shellconfig.php
  - Modified ui/chorizo/web/Controllers/VsiteShell.php
  - Added glue/handlers/vsite_gauth.pl
  - Added glue/sbin/gauth_add.sh
  - Added glue/sbin/gauth_check.sh
  - Added glue/ccewrap/google_auth.xml


author: Michael Stauber <mstauber@solarspeed.net> 1.3-6
changelog:
  - Modified glue/handlers/vsite_shell.pl to restart jailer with 'nobg'
    to avoid runtime issue.
  - Modified glue/handlers/user_shell.pl to add more debugging.


author: Michael Stauber <mstauber@solarspeed.net> 1.4-1
changelog:
  - Elmer'ized ui/chorizo/web/Controllers/PersonalSSH.php
  - Elmer'ized ui/chorizo/web/Controllers/Shellconfig.php
  - Elmer'ized ui/chorizo/web/Controllers/VsiteShell.php


author: Michael Stauber <mstauber@solarspeed.net> 1.4-3
changelog:
  - Modified ui/chorizo/menu/personalShell.xml to remove ACL
    'shellAccessEnabled' as that would only grant users with shell
    access the privilege to view their 2FA config.
  - Modified ui/chorizo/web/Controllers/PersonalSSH.php with a two
    stage ACL check. If 'validUser' is set, user gets to see only
    the 2FA details. If 'shellAccessEnabled' ACL is true, he gets
    to see the SSH details as well. Added setHideOptions() to
    MultiChoice that displays 2FA state to add show/hide button.
  - Modified ui/chorizo/extensions/Shell.php.modify.User to show
    a full MultiChoice with setHideOptions(true) if 2FA is enabled
    and 2FA details are present. Otherwise it shows a simple
    getBoolean() instead to turn 2FA on.


author: Michael Stauber <mstauber@solarspeed.net> 1.4-5
changelog:
  - Small bugfix in ui/chorizo/web/Controllers/PersonalSSH.php
  - Small bugfix in ui/chorizo/web/Controllers/Shellconfig.php


author: Michael Stauber <mstauber@solarspeed.net> 1.4-6
changelog:
  - Fix in ui/chorizo/web/Controllers/PersonalSSH.php for AdminUsers
    w/o shell access. They now get an info-text and not a 500 error.


author: Michael Stauber <mstauber@solarspeed.net> 1.4-7
changelog:
  - Updated glue/schemas/shell.schema to set the default for 
    'GoogleAuthentication' to '0'. Because unless it's turned on at
    the server level this might cause inconsistent display of 
    feature status if Vsite wasn't created by the GUI.


author: Michael Stauber <mstauber@solarspeed.net> 1.4-9
changelog:
  - Modified glue/handlers/vsite_shell.pl to set perms 'g-s' on the
    /home/.sites/siteX as well as the /home/.sites/siteX/dev dirs.


author: Michael Stauber <mstauber@solarspeed.net> 2.3-11
changelog:
  - Modified glue/systemd/goaccess.service to fix Unit sort order
  - Modified ui/chorizo/web/Controllers/SummaryWeb.php to strip
    leading 0's from months and days in array handling.


author: Michael Stauber <mstauber@solarspeed.net> 2.3-13
changelog:
  - Modified glue/handlers/set_logrotate.pl to check for and fix if
    needed if Vsite's 'SiteStats' NameSpace has the wrong owner for
    logfiles stored in CODB. This will also automatically fix the
    logrotate configs of Vsites if needed.


author: Michael Stauber <mstauber@solarspeed.net> 2.3-15
changelog:
  - More ACL tweaks:
  - Modified ui/chorizo/web/Controllers/SummaryEmail.php
  - Modified ui/chorizo/web/Controllers/SummaryWeb.php
  - Modified ui/chorizo/web/Controllers/Webalizer.php


author: Michael Stauber <mstauber@solarspeed.net> 2.4-1
changelog:
  - Elmer'ized ui/chorizo/web/Controllers/GoAccessView.php
  - Elmer'ized ui/chorizo/web/Controllers/Goaccess.php
  - Elmer'ized ui/chorizo/web/Controllers/Logconfig.php
  - Elmer'ized ui/chorizo/web/Controllers/StatSettings.php
  - Elmer'ized ui/chorizo/web/Controllers/Summary.php
  - Elmer'ized ui/chorizo/web/Controllers/SummaryWeb.php
  - Elmer'ized ui/chorizo/web/Controllers/Webalizer.php
  - Elmer'ized ui/chorizo/web/Controllers/SummaryEmail.php and
    mostly rewrote it to get it fully working again. Holy mother
    of God. That alone took five bloody days. This is indeed by
    far the most complex GUI page we have. Nothing else comes
    even remotely close.


author: Michael Stauber <mstauber@solarspeed.net> 2.4-5
changelog:
  - Modified ui/chorizo/web/Controllers/Webalizer.php to fix a
    file traversal issue reported by Alec Romano.


author: Michael Stauber <mstauber@solarspeed.net> 2.4-6
changelog:
  - Modified ui/chorizo/web/Controllers/Logconfig.php to add a 
    conditional before processing potential 'AVSPAM_Settings' config
    changes. Also used getAll() for fetching the 'System' Object and
    all its NameSpaces in one go.


author: Michael Stauber <mstauber@solarspeed.net> 2.3-2
changelog:
  - Integrated GoAccess support into logrotate and split_logs
    This required more permissive directory permissions for the server
    and Vsite /var/logs directories as well.
  - Modified post-install to NOT enable the blood iptables firewall
    anymore, as we use Firewalld.


author: Michael Stauber <mstauber@solarspeed.net> 1.4.0-1
changelog:
  - Modified for Elmer theme integration
  - Modified ui/chorizo/web/Controllers/Snmpconfig.php to MultiChoice


author: Michael Stauber <mstauber@solarspeed.net> 1.0.1-1
changelog:
  * Tue Sep 13 2016 Michael Stauber <mstauber@solarspeed.net> 1.0.0-1BX02
  - Bugfix to allow functionality on InitV and Systemd servers.


author: Michael Stauber <mstauber@solarspeed.net> 2.2-2
changelog:
  - Modified constructor/import_sshd_settings.pl
  - Modified glue/conf/ssh.conf
  - Modified glue/handlers/sshd_handler.pl
  - Modified glue/schemas/ssh.schema
  - Modified ui/chorizo/extensions/20_SSH.php.shell.System
  - Added glue/handlers/ssh_user_gauth_destroy.pl
  - Added glue/handlers/ssh_user_gauth.pl


author: Michael Stauber <mstauber@solarspeed.net> 2.2-5
changelog:
  - Added requirements for openssh-server openssh-clients.
  - Yes, really. There are Incus/LXC4 OS templates out w/o them.


author: Michael Stauber <mstauber@solarspeed.net> 2.2-6
changelog:
  - Modified constructor/import_sshd_settings.pl to detect truncated
    or incomplete sshd_config (like after a cloud-init run) and add
    the missing bits and pieces again.


author: Michael Stauber <mstauber@solarspeed.net> 1.5.0-7
changelog:
  - Added provisions to force Vsite to HTTPS
  - Modified glue/schemas/ssl.schema
  - Modified ui/chorizo/web/Controllers/SiteSSL.php
  - Updated locales


author: Michael Stauber <mstauber@solarspeed.net> 1.5.0-3
changelog:
  - Extended glue/handlers/le_install.pl with quota checks and email
    functionality to warn if a Vsite or its web owner is over quota.
    In that case we skip LE cert creation and renewal and warn instead.
  - Locales extended with text for warning email.


author: Michael Stauber <mstauber@solarspeed.net> 1.5.0-4
changelog:
  - Modified glue/sbin/reload_webservers.pl to make AdmServ restart
    conditional based on recent cert changes.


author: Michael Stauber <mstauber@solarspeed.net> 1.6.1-1
changelog:
  - glue/handlers/le_install.pl Over-Quota checks for Vsite and User
    before attempted LE request were not working as intended. Fixed
    free Vsite disk space check to make sure 1MB of space remains.
    Fixed 'prefered_siteAdmin' free space check as the old check
    depended on the deprecated 'User' . 'Disk' 'used' key in CODB,
    which is no longer set or updated by Swatch. Implemented new sub
    called check_siteadmin_quota() which takes username, uses 
    /usr/sausalito/sbin/get_quotas.pl to check usage against allowance
    and returns true or false depeding if at least 1MB is free.


author: Michael Stauber <mstauber@solarspeed.net> 1.6.1-2
changelog:
  - Small fix in glue/handlers/le_install.pl to deal with 'nobody'
    and 'apache' users, who need to be excluded from siteAdmin quota
    checks.


author: Michael Stauber <mstauber@solarspeed.net> 1.6.1-4
changelog:
  - Something over at Let's Encrypt changed and the 'Issuer:' line was
    no longer getting parsed correctly, causing auto-renews to fail.
  - Modified ssl_get_cert_info() in glue/handlers/SSL.pm accordingly
  - Modified glue/sbin/letsencrypt_autorenew.pl


author: Michael Stauber <mstauber@solarspeed.net> 1.6.1-5
changelog:
  - OpenSSL on EL8/EL9 present cert info differently. Fixed code to
    make it work on both.
  - Modified glue/handlers/SSL.pm
  - Modified glue/sbin/letsencrypt_autorenew.pl


author: Michael Stauber <mstauber@solarspeed.net> 1.6.1-6
changelog:
  - Rewrote glue/handlers/ia5string_check.pl as it was still using
    the legacy IA5String encoding for SSL certs, whereas modern SSL
    certs use X.509 ASN.1 Encoding, which supports international 
    characters, including umlauts. Hence this was rewritten to now
    check for valid UTF-8 in the input fields.


author: Michael Stauber <mstauber@solarspeed.net> 1.6.1-7
changelog:
  - Modified sbin/letsencrypt_autorenew.pl to add a provision that allows
    to turn off renewal of LE AdmServ certs in one-off solutions.
    See: [Devel:01877] and following.


author: Michael Stauber <mstauber@solarspeed.net> 1.6.2-1
changelog:
  - Modified glue/handlers/le_install.pl to not write the semi-cleaned
    letsencrypt.log to CODB as JSON. There is just too good a chance
    that we will be unable to decode it in PHP, which then breaks error
    reporting. Instead we now write selected logfile snipptes (if any)
    to a tempfile and store the file-path for that in CODB. The GUI then
    reads and deletes that file.
  - The recent XSS filterin added to BxPage.php also enforces a non-
    empty 'group' parameter, for which the GUI pages of base-ssl did
    not really have provisions. Overhauled the GUI pages accordingly.
  - Modified ui/chorizo/web/Controllers/CaManager.php
  - Modified ui/chorizo/web/Controllers/CreateCert.php
  - Modified ui/chorizo/web/Controllers/LetsencryptCert.php
  - Modified ui/chorizo/web/Controllers/SiteSSL.php
  - Modified ui/chorizo/web/Controllers/UploadCert.php


author: Michael Stauber <mstauber@solarspeed.net> 1.6.2-2
changelog:
  - Small fix in glue/handlers/le_install.pl
  - Improved error handling ui/chorizo/web/Controllers/LetsencryptCert.php
  - Locales updated


author: Michael Stauber <mstauber@solarspeed.net> 1.6.2-3
changelog:
  - Small fix in glue/handlers/le_install.pl to refresh group disk usage
    before the check if enough disk space is available. Or else it would
    run on historic data that may or may not be there.


author: Michael Stauber <mstauber@solarspeed.net> 1.6.2-4
changelog:
  - Fix in glue/handlers/le_install.pl to ignore update of Disk usage
    for 'System' Object.
  - Fix in ui/chorizo/web/Controllers/LetsencryptCert.php in parsing 
    of 'LEclientRet'.
  - Fixed localization error in ui/chorizo/web/Controllers/SiteSSL.php


author: Michael Stauber <mstauber@solarspeed.net> 2.6.0-2
changelog:
  - Modified glue/handlers/subdomain-new.pl to remove Apache and FPM
    restart events, as they are now handled by base-apache.
  - Modified ui/chorizo/web/Controllers/VsiteAddSub.php to tigger
    Apache to perform an FPM and Apache restart on GUI initiated changes.
  - Modified ui/chorizo/web/Controllers/VsiteSub.php to do the same.


author: Michael Stauber <mstauber@solarspeed.net> 2.6.0-3
changelog:
  - Modified glue/handlers/subdomain-new.pl to allow 'open_basedir' to
    be set to 'none' if the server allows it and the Vsite has it
    configured.


author: Michael Stauber <mstauber@solarspeed.net> 2.7.0-3
changelog:
  - Modified glue/conf/subdomains.conf
  - Modified glue/handlers/subdomain-new.pl for disabling PHP write
    access on over-quota situations.


author: Michael Stauber <mstauber@solarspeed.net> 2.7.0-4
changelog:
  - Modified glue/conf/subdomains.conf to trigger Apache cfg rebuild
    on Vsite PHP changes.
  - Modified glue/handlers/subdomain-new.pl to set proper PHP params
    on 'vsite_over_quota' and fixed FPM-Port assignment to search for
    and parse Vsites PHP FPM pool file to extract the exact port.


author: Michael Stauber <mstauber@solarspeed.net> 2.7.1-1
changelog:
  - Modified glue/handlers/subdomain-new.pl to use Unix sockets for
    PHP-FPM to be in line with todays base-apache modification.


author: Michael Stauber <mstauber@solarspeed.net> 2.2.0-3
changelog:
  - Caching Support details causes issues right after setting details.
    Modified relevant GUI pages to force loading of Support data from
    CODB and ignoring cache.


author: Michael Stauber <mstauber@solarspeed.net> 2.3.0-1
changelog:
  - Elmer'ized ui/chorizo/web/Controllers/Bugreport.php
  - Elmer'ized ui/chorizo/web/Controllers/Ticket.php


author: Michael Stauber <mstauber@solarspeed.net> 2.3.0-2
changelog:
  - Modified 'Support Request' to include server serialNumber and to
    also report the 2FA settings of the server. If 2FA is enabled and
    required, the Support-Account will also get 2FA enabled and the
    relevant data from the .google_authenticator file is included
    in the submitted request.
  - Modified glue/handlers/ticket.pl
  - Modified glue/schemas/support.schema
  - Modified ui/chorizo/web/Controllers/Bugreport.php
  - Modified ui/chorizo/web/Controllers/SOSReport.php
  - Modified ui/chorizo/web/Controllers/SupportSettings.php
  - Modified ui/chorizo/web/Controllers/Ticket.php


author: Michael Stauber <mstauber@solarspeed.net> 2.3.0-4
changelog:
  - Tickets now support requests with non standard GUI ports and URIs
  - Modified ui/chorizo/web/Controllers/Ticket.php


author: Michael Stauber <mstauber@solarspeed.net> 2.3.0-5
changelog:
  - Modified ui/chorizo/web/Controllers/Ticket.php to get primary IPs 
    via PHP'ized Network.pm methods.


author: Michael Stauber <mstauber@solarspeed.net> 1.8.0-1
changelog:
  - Release version for BlueOnyx 5211R
  - Deprecated glue/sbin/almalinux-deploy.sh
  - Deprecated glue/sbin/is_centos.pl
  - Added GUI bits for 5211R


author: Michael Stauber <mstauber@solarspeed.net> 1.8.0-3
changelog:
  - Service 'admserv' must be restarted 'nobg', or GUI launched PKG installs
    might get interrupted by delayed service restarts of AdmServ.
  - Modified glue/handlers/apache.pl
  - Modified glue/sbin/pkg_install.pl
  - Modified glue/sbin/pkg_prepare.pl
  - Modified glue/sbin/pkg_uninstall.pl


author: Michael Stauber <mstauber@solarspeed.net> 1.8.1-1
changelog:
  - Modified ui/chorizo/web/Controllers/Swupdate.php to work with Elmer and 
    Adminica. On Elmer it shows CPU, Memory, Network and Disk-Usage on top. 
    Moved display of Donation call and the news into a PagedBlock. Properly
    generate all error messages with the function for that and also generate
    all buttons properly with the respective Button UIFC calls.
  - Modified ui/chorizo/web/Controllers/Yum.php for better buttons
  - Elmer'ized ui/chorizo/web/Controllers/Download.php
  - Elmer'ized ui/chorizo/web/Controllers/Autoinstall.php
  - Elmer'ized ui/chorizo/web/Controllers/CheckHandler.php
  - Elmer'ized ui/chorizo/web/Controllers/Checkupdates.php
  - Elmer'ized ui/chorizo/web/Controllers/DownloadHandler.php
  - Elmer'ized ui/chorizo/web/Controllers/License.php
  - Elmer'ized ui/chorizo/web/Controllers/ManualInstall.php
  - Elmer'ized ui/chorizo/web/Controllers/NewSoftware.php
  - Elmer'ized ui/chorizo/web/Controllers/Status.php
  - Elmer'ized ui/chorizo/web/Controllers/StatusFrame.php
  - Elmer'ized ui/chorizo/web/Controllers/Yum.php
  - Elmer'ized ui/chorizo/web/Controllers/Shop.php


author: Michael Stauber <mstauber@solarspeed.net> 1.8.1-3
changelog:
  - Modified ui/chorizo/web/Controllers/Shop.php changed a getHtml()
    to get() as header texts don't need HTML escaping.


author: Michael Stauber <mstauber@solarspeed.net> 1.8.1-4
changelog:
  - The overhauled and lightweight i18n always uses the users locale
    to decode locale files for PKGs. Which only have 'en_US' locales.
    This results in PKG localizations only to be shown correctly if
    the GUI language is 'en_US'. Modified all PKG locale related calls
    in base-swupdate to use 'en_US' i18n calls to decode PKG locales.
  - Modified ui/chorizo/web/Controllers/Download.php
  - Modified ui/chorizo/web/Controllers/License.php
  - Modified ui/chorizo/web/Controllers/NewSoftware.php
  - Modified ui/chorizo/web/Controllers/SoftwareList.php


author: Michael Stauber <mstauber@solarspeed.net> 1.8.1-6
changelog:
  - Modified glue/ccewrap/pkg.xml to allow exec of get_serial.pl
  - Modified ui/chorizo/web/Controllers/Autoinstall.php for serial stuff


author: Michael Stauber <mstauber@solarspeed.net> 1.8.2-1
changelog:
  - Modified ui/chorizo/web/Controllers/Shop.php with an extra check
    to see what the NL response is.


author: Michael Stauber <mstauber@solarspeed.net> 1.8.2-2
changelog:
  - Fix in ui/chorizo/web/Controllers/CheckHandler.php for situation
    when server is linked, but no new PKGs are available. Incorrect
    variable name was used to run the regexp on.


author: Michael Stauber <mstauber@solarspeed.net> 1.8.4-1
changelog:
  - Cronjob 'SWupdate' doesn't get created on new servers OR when
    constructor/addSWUpdateServer.pl runs. Change Schema file to
    add a separate trigger for the handler and updated constructor.
  - Modified constructor/addSWUpdateServer.pl
  - Modified glue/conf/swupdate.conf
  - Modified glue/handlers/cron.pl
  - Modified glue/schemas/update.schema


author: Michael Stauber <mstauber@solarspeed.net> 1.8.4-3
changelog:
  - Fixed ui/chorizo/web/Controllers/Settings.php to rewrite 'emailField'
    to 'updateEmailNotification' for those case where no AM email address
    has been specified in Active Monitor Settings yet.


author: Michael Stauber <mstauber@solarspeed.net> 1.8.5-1
changelog:
  - Bugfix in ui/chorizo/web/Controllers/Settings.php for handling of
    auto-updates of PKGs that are no longer installed.
  - Modified glue/handlers/yum-update.sh with suggestions from Greg
    to make it only email if there is something worthwhile to report.


author: Michael Stauber <mstauber@solarspeed.net> 1.8.6-1
changelog:
  - Incus nodes with many BlueOnyx CTs get stressed if they all run
    YUM updates at the same time. Added a random delay for cron based
    execution of YUM updates for Incus CTs
  - Added --now parameter to /glue/handlers/yum-update.sh for instant
    execution. Needed for the GUI call of this script.
    Added random 10-300 seconds delay if run via Cron inside an Incus
    CT
  - Modified /ui/chorizo/web/Controllers/Yumupdate.php to call the
    yum-update.sh script with the added --now parameter for instant
    execution


author: Michael Stauber <mstauber@solarspeed.net> 1.8.6-2
changelog:
  - Modified ui/chorizo/web/Controllers/Autoinstall.php to redirect to
    'Third Party Software' if server is already linked.


author: Michael Stauber <mstauber@solarspeed.net> 1.8.6-3
changelog:
  - Removed /root/.gnupg from module. It has no place being here as
    we properly imported the RPM GPG key in base-blueonyx already.


author: Michael Stauber <mstauber@solarspeed.net> 1.8.6-4
changelog:
  - Properly ghosted /root/.gnupg so that RPM upgrades don't mess with
    these. This makes this module backwards-compatible again, too.


author: Michael Stauber <mstauber@solarspeed.net> 1.8.6-5
changelog:
  - Removed glue/gnupg
  - Backported from 5212R v1.8.7-2:
  - Modified ui/chorizo/web/Controllers/Settings.php to fetch our
    'ActiveMonitor' Object directly and not pull it from the cache.


author: Michael Stauber <mstauber@solarspeed.net> 1.8.6-6
changelog:
  - Modified constructor/addSWUpdateServer.pl to always make sure that
    'base' and 'webapp' are are on the list of auto-updated PKGs.


author: Michael Stauber <mstauber@solarspeed.net> 1.4.0-0BX01
changelog:
  - Modified glue/handlers/csrf.pl to deal with CI4's CSRF configuration
  - Modified glue/schemas/system.schema


author: Michael Stauber <mstauber@solarspeed.net> 1.4.0-0BX03
changelog:
  - Removed constructor/csrf_initially_off.pl
  - Modified default MTA to POSTFIX in constructor/15_defaultMTA.pl
  - Platform fixes in constructor/10_addSystem.pl


author: Michael Stauber <mstauber@solarspeed.net> 1.5.0-2
changelog:
  - Modified constructor/10_addSystem.pl to make sure we install wrappers
    for both the YUM and DNF command.


author: Michael Stauber <mstauber@solarspeed.net> 1.6.0-1
changelog:
  - Started Elmer integration
  - Modified glue/handlers/modsystem.pl
  - Elmer'ized ui/chorizo/web/Controllers/Sysinfo.php
  - Modified glue/schemas/system.schema for GUI theme switching


author: Michael Stauber <mstauber@solarspeed.net> 1.6.0-4
changelog:
  - Modified constructor/10_addSystem.pl to write the correct build
    version even if this module isn't a 5211R.


author: Michael Stauber <mstauber@solarspeed.net> 1.7.0-1
changelog:
  - Updated to use the NetworkManager conforming methods and to allow
    bridged network on the primary interface.
  - Modified glue/handlers/csrf.pl
  - Modified glue/handlers/modsystem.pl
  - Modified glue/schemas/system.schema
  - Modified src/blueonyx-nm-resolver/50-blueonyx
  - Modified src/blueonyx-nm-resolver/blueonyx-nm-resolver.spec
  - Modified src/blueonyx-nm-resolver/refresh_resolver.pl
  - Modified ui/chorizo/web/Controllers/Sysinfo.php


author: Michael Stauber <mstauber@solarspeed.net> 1.7.2-1
changelog:
  - Modified constructor/15_defaultMTA.pl to set MTA alternatives
  - Modified glue/handlers/mta.pl to set MTA alternatives


author: Michael Stauber <mstauber@solarspeed.net> 1.2.0-0BX05
changelog:
  - Updated for 5211R:
  - Dropped requirement for 'ntpd' and replaced it with 'chrony'
  - Modified handlers to work with either 'ntpd' or 'chrony'


author: Michael Stauber <mstauber@solarspeed.net> 1.3.0-2
changelog:
  - Modified templates/rpmdefs.tmpl as base-wizard needs to be able to
    read 'System' . 'Time' 'timeZone' even if not authed yet.


author: Michael Stauber <mstauber@solarspeed.net> 1.3.1-2
changelog:
  - Modified glue/handlers/ntp.pl to use Chrony on 5210R, too
  - Modified glue/handlers/time.pl to use Chrony on 5210R, too
  - Modified src/am_ntpd.pl to use Chrony on 5210R, too


author: Michael Stauber <mstauber@solarspeed.net> 1.3.1-3
changelog:
  - Added conditional constructor/setTimeZone.pl that triggers on 5210R
    if run under OpenVZ. In that case the NTP server is set to disabled.


author: Michael Stauber <mstauber@solarspeed.net> 1.3.2-1
changelog:
  - Incus/LXC fixes to constructor/setTimeZone.pl to prevent NTPd/Crony starts
  - Incus/LXC fixes to glue/handlers/ntp.pl to prevent NTPd/Crony starts
  - Incus/LXC fixes to glue/handlers/time.pl to prevent NTPd/Crony starts
  - Modified am_ntpd.pl to ignore NTPd/Chrony on Incus/LXC


author: Michael Stauber <mstauber@solarspeed.net> 2.3.0-13
changelog:
  - Changed cryptpw() to hash passwords with SHA-512
  - Changed sel() for more inclusive randomnes of saltchars
  - Modified glue/handlers/handle_user.pl
  - Modified perl/Group.pm


author: Michael Stauber <mstauber@solarspeed.net> 2.3.0-14
changelog:
  - The saga with proper encoding continues.
  - Modified glue/sbin/get_vacationMsg.pl to remove extra hard return.
  - Modified ui/chorizo/web/Controllers/UserMod.php so that we bypass
    GUI CCE handling for fetching the 'fullName' of a user. Otherwise
    we're dropping umlauts, accents and kanji.


author: Michael Stauber <mstauber@solarspeed.net> 2.3.0-15
changelog:
  - The description field needed the same encoding treatment:
  - Modified ui/chorizo/web/Controllers/UserMod.php


author: Michael Stauber <mstauber@solarspeed.net> 2.3.0-16
changelog:
  - Modified ui/chorizo/web/Controllers/UserMod.php to handle AutoFeature
    processing of 'User.Email' before 'modify.User'. Otherwise 
    Easy-Backup has problems restoring the user-backup from within the
    UserMod.php page.


author: Michael Stauber <mstauber@solarspeed.net> 2.4.0-1
changelog:
  - Integration of Elmer theme into login page
  - Modified ui/chorizo/web/Controllers/Login.php
  - Added ui/chorizo/web/Views/elmer_login.php
  - Elmer'ized ui/chorizo/web/Controllers/UserList.php
  - Modified glue/schemas/user.schema to add 'lc_alphanum_plus'
  - Elmer'ized ui/chorizo/web/Controllers/UserAdd.php
  - Elmer'ized ui/chorizo/extensions/10_EmailSettings.php.User.Email
  - Elmer'ized ui/chorizo/web/Controllers/UserMod.php
  - Elmer'ized ui/chorizo/extensions/20_ImapSync.php.User.Email
  - Elmer'ized ui/chorizo/web/Controllers/ImapSyncLog.php


author: Michael Stauber <mstauber@solarspeed.net> 2.4.0-4
changelog:
  - Fixed 2FA input hider in ui/chorizo/web/Views/elmer_login.php
  - Fixed 2FA input hider in ui/chorizo/web/Views/login_page.php


author: Michael Stauber <mstauber@solarspeed.net> 2.4.0-5
changelog:
  - Modified ui/chorizo/web/Controllers/PersonalEmail.php to only set
    Adminica Fullcalender/Datepicker headers if Adminica is used.


author: Michael Stauber <mstauber@solarspeed.net> 2.4.0-6
changelog:
  - Fixed ui/chorizo/extensions/10_EmailSettings.php.User.Email so that
    'Email Forwarding' again accepts more than one email address.


author: Michael Stauber <mstauber@solarspeed.net> 2.4.0-7
changelog:
  - Small fix in ui/chorizo/extensions/10_EmailSettings.php.User.Email
    to make it work in Adminica and Elmer


author: Michael Stauber <mstauber@solarspeed.net> 2.5.0-1
changelog:
  - Fixes related to login page redirect to Wizard as well as user
    creation and error handling.
  - Modified perl/Group.pm
  - Modified ui/chorizo/web/Controllers/Login.php
  - Modified ui/chorizo/web/Controllers/UserAdd.php


author: Michael Stauber <mstauber@solarspeed.net> 2.5.0-2
changelog:
  - Modified ui/chorizo/web/Controllers/Login.php to detect CSRF
    enabling state and if enabled AND CSRF cookie is invalid, redirect
    to login form again to get a fresh cookie.


author: Michael Stauber <mstauber@solarspeed.net> 2.5.0-3
changelog:
  - Modified glue/handlers/suspend_user.pl to set 'emailDisabled' as
    well when updating the 'User' object during suspend/unsuspend.
    This is the only reliable way to clear up stale entries in
    /etc/mail/access and /etc/postfix/suspended_users


author: Michael Stauber <mstauber@solarspeed.net> 2.5.1-1
changelog:
  - Modified glue/schemas/user.schema to allow end user to modify 
    'User' field 'emailDisabled' value.
  - Modified ui/chorizo/web/Controllers/PersonalEmail.php to allow 
    logged in user to enable/disable his email account and to edit
    the Email Aliases.


author: Michael Stauber <mstauber@solarspeed.net> 2.5.3-1
changelog:
  - Newer CodeIgniter has $this->request->getMethod() return the strings
    in bloody upper-case instead of lower case. So 'POST' instead of
    'post'.
  - Modified ui/chorizo/web/Controllers/Login.php


author: Michael Stauber <mstauber@solarspeed.net> 2.5.4-1
changelog:
  - Fixed salt generation in subroutine 'sel' glue/handlers/handle_user.pl
  - Fixed salt generation in subroutine 'sel' perl/Group.pm


author: Michael Stauber <mstauber@solarspeed.net> 2.5.4-2
changelog:
  - Modified /ui/chorizo/extensions/20_ImapSync.php.User.Email password
    check to remove restrictions from target password field.


author: Michael Stauber <mstauber@solarspeed.net> 2.5.5-1
changelog:
  - cced-api support added
  - Modified ui/chorizo/web/Controllers/Login.php
  - Modified ui/chorizo/web/Controllers/UserList.php
  - Modified ui/chorizo/web/Controllers/UserMod.php


author: Michael Stauber <mstauber@solarspeed.net> 2.5.5-2
changelog:
  - Modified perl/Group.pm function groupdel() to run a pkill on any
    processes belonging to the group we're trying to delete. Then we
    delete the Vsite loguser and THEN we can delete the group. That
    should fix the issue that groups sometimes remain around even
    after Vsite deletion.


author: Michael Stauber <mstauber@solarspeed.net> 2.5.5-4
changelog:
  - Modified ui/chorizo/web/Controllers/UserList.php to make sure the
    label of the feature icon renders correctly.


author: Michael Stauber <mstauber@solarspeed.net> 2.5.5-5
changelog:
  - Modified ui/chorizo/web/Controllers/UserMod.php to merge errors
    from AutoFeatures into the main errors array before returning.


author: Michael Stauber <mstauber@solarspeed.net> 2.5.5-8
changelog:
  - Added debugging to glue/handlers/deluser.pl
  - Modified ui/chorizo/web/Controllers/UserDel.php to reset suspension
    and over-quota state of users prior to deletion.


author: Michael Stauber <mstauber@solarspeed.net> 4.5-17
changelog:
  - Allow memory related upper limit of 2048M
  - Modified ui/chorizo/web/Controllers/Phpconfig.php
  - Modified ui/chorizo/web/Controllers/VsitePHP.php


author: Michael Stauber <mstauber@solarspeed.net> 4.5-23
changelog:
  - Modified ui/chorizo/menu/sitemaintenance.xml to change sort order
    and to add an icon. This menu item wasn't used before, but 
    Easy-Backup uses it now.


author: Michael Stauber <mstauber@solarspeed.net> 4.5-24
changelog:
  - Additional sense check in ui/chorizo/web/Controllers/VsitePHP.php
    for currently used PHP version.


author: Michael Stauber <mstauber@solarspeed.net> 4.6-1
changelog:
  - Elmer Theme integation
  - Added 'elmer_icon' to ui/chorizo/menu/manageAdmin.xml
  - Modified ui/chorizo/web/Controllers/VsiteList.php


author: Michael Stauber <mstauber@solarspeed.net> 4.6-4
changelog:
  - PHP integration extended
  - Small fixes in glue/conf/vsite.conf
  - Small fixes glue/handlers/php_fpm-checker.pl


author: Michael Stauber <mstauber@solarspeed.net> 4.7-3
changelog:
  - Modified ui/chorizo/web/Controllers/ManageAdmin.php to conditionally
    handle new Aventurin{e} caps 'ManageIncus' and 'ManageVPS'.


author: Michael Stauber <mstauber@solarspeed.net> 4.7-8
changelog:
  - Added /usr/sausalito/sbin/vsite_list.pl to quickly identify 
    which PHP version and implementation Vsites use.


author: Michael Stauber <mstauber@solarspeed.net> 4.7-9
changelog:
  - Modified ui/chorizo/web/Controllers/VsiteList.php to properly
    make use of the new getAll() function to increase speed and
    efficiency when fetching and presenting the list of Vsites.


author: Michael Stauber <mstauber@solarspeed.net> 4.7-10
changelog:
  - Updated serveral GUI pages to use getAll() for speed improvement.
  - Modified ui/chorizo/web/Controllers/FileOwner.php
  - Modified ui/chorizo/web/Controllers/VsiteAdd.php
  - Modified ui/chorizo/web/Controllers/VsiteList.php
  - Modified ui/chorizo/web/Controllers/VsitePHP.php


author: Michael Stauber <mstauber@solarspeed.net> 4.7-14
changelog:
  - Modified ui/chorizo/web/Controllers/VsiteList.php to make sure 
    the label of the feature icon renders correctly.


author: Michael Stauber <mstauber@solarspeed.net> 4.7-16
changelog:
  - Backported from 5212R v4.8-2 and earlier:
  - Added post-install mechanism to update Vsite skel HTML templates
  - Modified glue/sbin/vsite_destroy.pl to reset 'over_quota' state
    of Users on Vsite deletion to remove any over-quota users of
    this Vsite from Sendmail/Postfix over-quota handling access map.
    Also reset over-quota state of Vsite . Disk before deletion.
  - Modified glue/php/set_php_headers.php to append header/footer to
    rendered PHP pages if a Vsite is over quota.
  - Added provisions so that when a Vsite is disabled, the only 
    access that is possible is to suspended.html, which is served
    out of /var/www/html/error/. This also shows (if specified) the
    reason for the suspension or a custom message to visitors.
  - Added glue/etc/skel/vsite/*/web/error/suspended.html
  - Modified glue/schemas/vsite.schema to add 'SuspendMsg' to Vsite
    Class.
  - Modified ui/chorizo/web/Controllers/VsiteMod.php to turn the
    suspension switch into a MultiChoice that also allows giving a
    reason.
  - Added ui/chorizo/web/Controllers/SuspendMsg.php which is polled
    by suspended.html to return the 'SuspendMsg' as JSON for our
    suspended.html page.
  - Locales extended
  - Modified constructor/import_php_ini_settings.pl for code cleanup
  - Added provisions to replace the old style skel index.html and
    error pages of Vsites with the modernized ones. Action will
    only be taken if index.html is present and contains 'libImage'.
    Sane for the error pages. This is triggered by the 'Vsite' Object
    field 'force_skel_update'. Mass conversion can be triggered by 
    running /usr/sausalito/sbin/update_vsite_templates.pl and 
    Easy-Migate will also trigger this on Vsite imports.
  - Modified glue/Makefile
  - Modified glue/conf/vsite.conf
  - Added glue/handlers/skel_update.pl
  - Added glue/sbin/update_vsite_templates.pl
  - Modified glue/schemas/vsite.schema
  - Modified glue/schemas/vsite.schema to extend VsiteDefaults with
    fields for siteAdmin email alias handling
  - Modified ui/chorizo/web/Controllers/Template.php to add ability
    to define default email aliases for siteAdmin user of new Vsites
  - Modified ui/chorizo/web/Controllers/VsiteAdd.php to use defaults
    from VsiteDefaults for email aliases of siteAdmins of new Vsites.
  - Modified ui/chorizo/web/Controllers/VsiteAdd.php to also force
    direct creation of a 'siteAdmin' which then also is set as owner
    of /web. He receives the same quota as the Vsite, same shell
    settings as granted for the Vsite and the email alias 'webmaster'.
    Any further customization of that user can be done later.
  - In case of a submit error all form fields from 'Basic Settings'
    are now properly pre-filled again. Except for the siteAdmin
    password fields. The second tab cannot be handled the same way
    as the data for that is handle by AutoFeatures.
  - Skel files for index.html retouched again.
  - Skel files for index.html fixed
  - Modified all glue/etc/skel/vsite pages to use a trimmed down
    Elmer style WITH automatic localization.
  - Added dependency perl-Config-INI


author: Michael Stauber <mstauber@solarspeed.net> 4.7-18
changelog:
  - Bugfix in /ui/chorizo/web/Controllers/ManageAdmin.php: Check if
    serverAdmin was created must only run on create transaction.
  - Bugfix in /ui/chorizo/web/Controllers/VsiteList.php: Table for
    ResellerStats was only correctly rendered for Adminica - not Elmer.
    Additionally it still used array formats for Vsite data that was
    from before we switched that to be fetched via GetAll().


author: Michael Stauber <mstauber@solarspeed.net> 4.7-19
changelog:
  - Modified glue/schemas/vsite.schema to add TypeDef 'lc_alphanum'
    used for Vsite and User prefixes. Must start with a letter, can
    contain lower case letters and numbers. Modified prefix fields
    in Class Vsite to use the new TypeDef.
  - Modified ui/chorizo/web/Controllers/VsiteAdd.php to validate
    Prefix field with new TypeDef 'lc_alphanum'.
  - Locale texts for Vsite prefix updated to new realities.


author: Michael Stauber <mstauber@solarspeed.net> 4.7-20
changelog:
  - Modified glue/handlers/php_handler.pl to set -t parameter to 
    phpsendmail. While redundant, this satisfies module checks.


author: Michael Stauber <mstauber@solarspeed.net> 4.7-1
changelog:
  - Updated to use the new Network.pm nmcli conforming methods
  - Modified constructor/z_create_dummy_site.pl
  - Modified glue/handlers/Vsite.pm
  - Modified glue/handlers/change_net_info.pl
  - Modified glue/handlers/iptype_watcher.pl
  - Modified glue/handlers/ipv4_ipv6_check.pl
  - Modified glue/handlers/network_destroy.pl
  - Modified glue/handlers/vsite_create.pl
  - Modified glue/handlers/vsite_destroy.pl
  - Modified glue/sbin/MassIPChange.pl
  - Modified glue/sbin/fix_vsite_ips.pl
  - Modified ui/chorizo/web/Controllers/VsiteAdd.php
  - Modified ui/chorizo/web/Controllers/VsiteMod.php
  - Added missing glue/etc/skel/vsite/es/web/index.html
  - Added missing glue/etc/skel/vsite/fr/web/index.html


author: Michael Stauber <mstauber@solarspeed.net> 2.2.0-1
changelog:
  - CodeIgniter 4 needs /usr/sausalito/ui/chorizo/ci4/.env adjusted to have
    the correct TimeZone and App URL set. Added CCE events and handlers for
    that specific purpose.
  - Modified glue/conf/wizard.conf
  - Added glue/handlers/serverNameGui.pl
  - Added glue/handlers/timeZoneGui.pl


author: Michael Stauber <mstauber@solarspeed.net> 2.2.0-3
changelog:
  - Bugfixes in ui/chorizo/web/Controllers/Wizard.php
  - We now fetch 'System' object with vars 'cce_nocache' past the initial
    auth to make sure we get all the data we need.


author: Michael Stauber <mstauber@solarspeed.net> 2.2.0-4
changelog:
  - Modified glue/conf/wizard.conf to take config changing handlers out
    of CONFIGURE state, as CCEd may not have the correct info yet.
  - Made glue/handlers/serverNameGui.pl smarter to not set empty host
    or domain name.
  - Added constructor/serverNameGui.pl to conditionally fix config if
    CCEd and config file don't have the same FQDN.


author: Michael Stauber <mstauber@solarspeed.net> 2.2.0-5
changelog:
  - Modified ui/chorizo/web/Controllers/Wizard.php as 'serialNumber'
    empty cannot be a condition that triggers Wizard::wizard_reload(),
    as it's always empty on a fresh install.


author: Michael Stauber <mstauber@solarspeed.net> 2.2.0-6
changelog:
  - Modified ui/chorizo/web/Controllers/Wizard.php again, as we should
    be able to auth as 'admin' at the stage we're using 
    Wizard::wizard_reload(), but the current authing was a bit cheesy.
    Improved that and also updated the conditions for the looping.


author: Michael Stauber <mstauber@solarspeed.net> 2.3.0-1
changelog:
  - Added provisions toui/chorizo/web/Controllers/Wizard.php to use
    'adminica' theme for Wizard, even if the server is configured to
    use 'elmer' by default. This is totally suboptimal.


author: Michael Stauber <mstauber@solarspeed.net> 2.3.0-3
changelog:
  - Added ability to change GUI port and GUI URIs
  - Modified constructor/serverNameGui.pl
  - Modified glue/conf/wizard.conf
  - Modified glue/handlers/serverNameGui.pl
  - Modified templates/rpmdefs.tmpl
  - Modified ui/chorizo/web/Controllers/WizardElmerProper.php


author: Michael Stauber <mstauber@solarspeed.net> 2.3.0-5
changelog:
  - Modified constructor/serverNameGui.pl to only set 'login' as GUI
    Apache alias. Anything else would be a behavior change.


author: Michael Stauber <mstauber@solarspeed.net> 3.0.0-1
changelog:
  - Major version number bump as the Wizard now uses proper NetworkManager
    methods to configure the network.
  - Modified constructor/serverNameGui.pl
  - Modified glue/ccewrap/copy.xml
  - Modified glue/handlers/serverNameGui.pl
  - Modified glue/handlers/timeZoneGui.pl
  - Modified ui/chorizo/web/Controllers/WizardElmerProper.php


author: Michael Stauber <mstauber@solarspeed.net> 3.0.1-1
changelog:
  - Modified constructor/serverNameGui.pl to set GUI port correctly 
    in .env file
  - Modified glue/handlers/serverNameGui.pl as well for that.


author: Michael Stauber <mstauber@solarspeed.net> 3.0.1-2
changelog:
  - Modified ui/chorizo/web/Controllers/WizardElmerProper.php to make
    sure that if we show the NTP server field, then it is not empty.


author: Michael Stauber <mstauber@solarspeed.net> 3.0.1-3
changelog:
  - Modified ui/chorizo/web/Controllers/WizardElmerProper.php to fix
    network config errors that prevented the wizard from completing.
  - Modified ui/chorizo/web/Controllers/WizardElmer.php to fix
    network config errors that prevented the wizard from completing.


author: Michael Stauber <mstauber@solarspeed.net> 1.0.0-0BX02
changelog:
  - Commented out 'X-Frame-Options SAMEORIGIN' in security.conf to
    allow the GUI to access internal pages not hosted on AdmServ.


author: Tomas Korbar <tkorbar@redhat.com> - 2:3.5.9-20
changelog:
  - Backport dns SRV record resolution feature (RFC6186)
    Resolves: rhbz#2134789
  - Fix building in ZUUL CI
    Resolves: rhbz#2193363


author: Michael Stauber <mstauber@solarspeed.net> - 2:3.5.25-2
changelog:
  - Build of 'blueonyx-postfix' based on Alma9 2:3.5.25-2
  - Modified Systemd Unit-File postfix.service to run our custom
    ExecStartPre=-/usr/sausalito/bin/blueonyx-postfix script
  - Included /usr/sausalito/bin/blueonyx-postfix
  - User 'postfix' is now also added to groups 'mailnull' and 'smmsp'
    in order to avoid socket access problems with the AV-SPAM milters.


author: Jaroslav Škarvada <jskarvad@redhat.com> - 2:3.5.9-14
changelog:
  - Fixed cleanup crash when processing messages with whitespace only fullname
    Resolves: rhbz#1978901


author: Michael Stauber <mstauber@solarspeed.net> - 2:3.5.9-15
changelog:
  - Initial build of 'blueonyx-postfix' based on RH9 2:3.5.9-15
  - Modified Systemd Unit-File postfix.service to run our custom
    ExecStartPre=-/usr/sausalito/bin/blueonyx-postfix script
  - Included /usr/sausalito/bin/blueonyx-postfix
  - User 'postfix' is now also added to groups 'mailnull' and 'smmsp'
    in order to avoid socket access problems with the AV-SPAM milters.


author: Michael Stauber <mstauber@blueonyx.it>
changelog:
  - [0.1.6-1] PHP versions and methods are now correctly 
    imported and set and no longer revert to defaults.
  - Host of MySQL settings is no longer forced to 127.0.0.1
    if it was localhost before.


author: Michael Stauber <mstauber@blueonyx.it>
changelog:
  - [0.1.7-1] Modified easy-migrate.pl to correctly import
    all TXT and MX Records by extending the CCE_Tramp query
    to contain the correct payload field in the query as
    well. Otherwise they may be treated as duplicates and
    get a SET transaction and not a CREATE.


author: Michael Stauber <mstauber@blueonyx.it>
changelog:
  - [0.2.5-1] This is essentially a rollback to v0.2.0-1
  - Fix in easy-migrate.pl for WebApp NameSpaces


author: Michael Stauber <mstauber@solarspeed.net> - 2.23-1
changelog:
  - Updated to 2.23 for EL9, as we need the added Python-3 support
  - Added Systemd Unit File jailkit.service


author: Michael Stauber <mstauber@blueonyx.it> 0.7.2-0BX18
changelog:
  - Reverted back to our 5210R sources from 0.7.2-0BX16
  - Added 'export CXXFLAGS="-std=c++11 -no-pie -fPIC"' to get it to compile


author: Michael Stauber <mstauber@solarspeed.net> 1.6.0-1
changelog:
  - Overhauled and streamlined version for 5211R and 5210R. Renmoved
    InitV/Upstart support. Added queueing again for all services which
    don't use 'nobg'. Special provisions for ignoring xinetd and inetd
    on 5211R, added function service_get_state(), took more Systemd
    related oddities and helpful features into account. All around
    improvements in code sanity.


author: Michael Stauber <mstauber@solarspeed.net> 1.6.0-2
changelog:
  - Updated Sauce/Service.pm so that service_get_state() also knows
    state 'inactive' and recognizes it as service is stopped.


author: Michael Stauber <mstauber@solarspeed.net> 1.7.0-1
changelog:
  - Modified Sauce::Service so that 'sauce_serviced' is now a full
    Daemon that runs all the time and is managed my Systemd. It does 
    queue processing of systemctl calls in a delayed fashion to minimize
    the multiple restarts of the same services on massive CODB updates.
  - Modified Sauce/Service/Client.pm to only handle the transaction
    queue. It does so in a flat file format in /usr/sausalito/services
  - Modified Sauce/Service.pm to use the new feature set.
  - Added Sauce/Service/sauce_serviced.pl as starter for the Daemon
  - Added sauce_serviced.service as Systemd Unit-File
  - Updated Makefile


author: Michael Stauber <mstauber@solarspeed.net> 1.7.0-4
changelog:
  - Added missing requirement perl(Proc::Daemon) 
  - Added missing requirement perl(Proc::ProcessTable)


author: Michael Stauber <mstauber@solarspeed.net> 1.7.0-5
changelog:
  - Several 5209R have weird issues with perl(Proc::Daemon). Devised
    a method to not use perl(Proc::Daemon) on 5209R.
  - Modified Sauce/Service/sauce_serviced.pl
  - Modified sauce_serviced.service


author: Michael Stauber <mstauber@solarspeed.net> 1.7.0-6
changelog:
  - Modified Sauce/Service/Daemon.pm:
  - Service queue files are now expunged after five minutes
  - Added MTA check to process_queue() to expunge queue files of the
    MTA we are no longer using. This will get rid of sendmail queue
    files if postfix is active and vice versa.
  - Added a check to process_queue() to expunge queue files for services
    that do not exists in first place.


author: Michael Stauber <mstauber@solarspeed.net> 1.8.0-1
changelog:
  - Modified 'sauce_serviced.service' to write a JSON encoded file to
    /usr/sausalito/sessions/.sauce_serviced_daemon.state which the GUI
    can parse via /gui/services?q=services in order to find out if there
    are pending service changes and which ones those are.
  - Modified Sauce/Service/Daemon.pm
  - Updated requirements


author: Michael Stauber <mstauber@solarspeed.net> 1.8.2-1
changelog:
  - Blindly restarting Apache and ALL PHP-FPM daemons is not really the
    greatest way to do things. We can make do with 'reload' IF we check
    if the services is running before we issue the 'reload'. If it is
    not running or in failed state, then we need to upgrade the request
    to a 'restart', but otherwise a 'reload' is fine.
  - Modified Sauce/Service.pm to treat all 'httpd' PHP-FPM restarts as
    reloads - unless the service is dead. If it's dead: Upgrade to
    'restart' instead.
  - Modified Sauce/Service/Client.pm accordingly.


author: Michael Stauber <mstauber@solarspeed.net> 1.8.3-1
changelog:
  - Small improvement in Sauce/Service/Daemon.pm in process_queue()
    We now wait two seconds after triggering a service reload and then
    check with 'systemctl is-active' if the service is up again. This
    is more reliable than just parsing the exit state of systemctl,
    because that just checks if Systemd did what it was supposed to do.
    And not if it really worked. The 'is-active' check tells us the
    whole story.


author: Michael Stauber <mstauber@solarspeed.net> 1.8.5-1
changelog:
  - Modified Sauce/Service/Daemon.pm to upgrade 'reload' to 'restart'
    if a 'reload' attempt hasn't gone through successfully.


author: Michael Stauber <mstauber@solarspeed.net> 3.4.1-1
changelog:
  - Updated with latest sources from https://github.com/phpsysinfo/
  - Added cookie auth to index.php to prevent information leakage.


author: Michael Stauber <mstauber@blueonyx.it> 2.1-0BX08
changelog:
  - Added Requirement for perl-DB_File as it was outsourced into a 
    separate module on EL7 and is no longer part of Perl itself.


author: Michael Stauber <mstauber@solarspeed.net> 0.99.4-5
changelog:
  - Fixed fq_email_address_or_username in server/basetypes.schema
  - Modified alphanum_plus_space in server/basetypes.schema to allow
    single quote.
  - Modified definition if 'int' as the minus was escaped and doesn't
    need to be.


author: Michael Stauber <mstauber@solarspeed.net> 0.99.4-7
changelog:
  - Modified client/httpd/blueonyx.conf to remove GUI redirects.
    These are handled by /etc/httpd/conf.perl/00-default-vsite.pl


author: Michael Stauber <mstauber@solarspeed.net> 0.99.4-8
changelog:
  - Modified server/basetypes.schema to allow dot in username part of
    schema rule 'fq_email_address_or_username'


author: Michael Stauber <mstauber@solarspeed.net> - 1.0.3-1
changelog:
  - Modified cced-api.go to swap out the deprecated rand function and to
    fix the logging. We DO want to log the exact commands that are sent
    to CCEd. With all bells and whistles and the kitchen sink. In the
    format that they WERE sent to CCEd. But: We don't want to see
    the cleartext of AUTH, because it has the password. We hide the many 
    AUTHKEYS, because there are too many of them. We only log then now
    if they fail. And BYE is also something we do not need or want to
    log to keep the signal to noise ratio down.


author: Michael Stauber <mstauber@solarspeed.net> - 1.0.4-1
changelog:
  - Logging related fixes. Logging is now better sanitized and more 
    streamlined. SessionId is now only partially logged, too.


author: Michael Stauber <mstauber@solarspeed.net> - 1.0.5-1
changelog:
  - More logging related fixes. AUTH and commands like SET were still
    logging the key 'password' in plaintext. Chose a more radical
    approach to fix it this time.


author: Michael Stauber <mstauber@solarspeed.net> - 1.0.6-1
changelog:
  - Modified output to stdout to omit the date and time, because otherwise
    /var/log/messages ends up with a double date/time-stamp for entries.


author: Michael Stauber <mstauber@solarspeed.net> - 1.1.0-1
changelog:
  - Added API endpoint /v2/metrics to summarily replace Prometheus and
    node_exporter by providing the same server utiliztations statistics
    on demand, without retaining and with a hell of a lot less overhead.
    Like /v2/services the new endpoint is secured against remote access
    and requires IP whitelisting and valid TOKEN, but can be polled
    without authentication from localhost.


author: Michael Stauber <mstauber@solarspeed.net> 0.7.0-0BX01
changelog:
  - Production ready build for BlueOnyx 5211R with new directory layout
  - Added /usr/sausalito/bin/ucfirst.pl as new dependency for module.mk


author: Michael Stauber <mstauber@solarspeed.net> 0.81.3-0BX01
changelog:
  - First build for 5211R on RHEL9 Beta.
  - Fixed cracklib with patches from Gentoo to make it PHP-8.0 compatible
  - The i18n PHP module remains disabled, as we don't need it anymore.


author: Michael Stauber <mstauber@solarspeed.net> 0.81.3-0BX02
changelog:
  - Release version for BlueOnyx 5211R.
  - Removed Cracklib support. Although I got it working for PHP-8.0 with a
    hell of a lot of effort, there is no way I'll do this again for PHP-8.1
    Anyway, the GUI no longer uses Cracklib, so we're good.


author: Michael Stauber <mstauber@solarspeed.net>
changelog:
  - [14.4.0-1:] Updated to latest release for 5210R/5211R
  - Added autogeneration of ioncube.ini for 8.4


author: Michael Stauber <mstauber@solarspeed.net> 4.0.5-8
changelog:
  - Updated hotfixes.sh to check and fix integrity of YUM/DNF wrapper links
  - Updated hotfixes.sh to restart/rehash CCEd if the respective files are
    present for more than 38 minutes. That's two full swatch runs and at
    least one swatch run past the end of a YUM/DNF update.


author: Michael Stauber <mstauber@solarspeed.net> 4.0.5-10
changelog:
  - Modified swatch-cobalt.pl to include longer 'top' lines and if there
    is an AM email with 'top' report, include it also as attachment.
    Also fixed code formatting.


author: Michael Stauber <mstauber@solarspeed.net> 4.0.5-14
changelog:
  - Hotfixes adapted for base-alpine dir permissions
  - Hotfixes adapzed to remove /login redirects from Apache cfgs that
    no longer need them (blueonyx.conf and preview.conf)


author: Michael Stauber <mstauber@solarspeed.net> 4.0.5-15
changelog:
  - Hotfixes extended to edit /etc/NetworkManager/NetworkManager.conf
    to add 'hostname-mode=preserve' if it's missing.


author: Michael Stauber <mstauber@solarspeed.net> 4.0.5-26
changelog:
  - Added /usr/sausalito/sbin/incus_load.sh
  - Updated /usr/sbin/swatch to conditionally run incus_load.sh on
    Incus nodes and to include the results in the emailed load report.


author: Michael Stauber <mstauber@solarspeed.net> 4.0.5-27
changelog:
  - Removed /usr/sausalito/sbin/incus_load.sh
  - Added Python version /usr/sausalito/sbin/incus_load instead


author: Michael Stauber <mstauber@solarspeed.net> 4.0.5-28
changelog:
  - Modified and re-added /usr/sausalito/sbin/incus_load.sh
  - Added Python source version /usr/sausalito/sbin/incus_load.py instead
  - Attempts to turn this *.py into a binary via pyinstaller resulted
    into way too much drama.


author: Michael Stauber <mstauber@solarspeed.net> 4.0.5-31
changelog:
  - Fixes in /usr/sausalito/sbin/incus_load.py for LoadAvg display
  - Moved incus_load.py to /usr/sausalito/bin/ instead.


author: Michael Stauber <mstauber@solarspeed.net> 4.0.5-32
changelog:
  - Added (so far unused) parameter 'd' to swatch-cobalt.pl to add a 
    possibe random 0-180 second delay before execution of tasks.
  - Added random 0-180 second delay to swatch.sh if this runs in an
    Incus instance. As swatch.sh is only triggered via cron.d it will
    make sure that not all Incus instances run swatch at the same time.


author: Michael Stauber <mstauber@solarspeed.net> 4.0.5-33
changelog:
  - Modified swatch.sh to add provisions for --no-delay so that cced_yum
    can call it on Incus without the random startup delay being enforced.


author: Michael Stauber <mstauber@solarspeed.net> 4.0.5-35
changelog:
  - Replaced /usr/sausalito/sbin/incus_load.py and incus_load.sh with
    a compiled golang version called /usr/sausalito/sbin/incus_load
  - Added incus_load.go
  - Modified incus_load.sh check/call in swatch-cobalt.pl to use 
    incus_load instead.
  - Updated Makefile to build incus_load from incus_load.go
  - Added 'golang' requirement, although devel-tools now has it, too


author: Michael Stauber <mstauber@solarspeed.net> 4.0.5-36
changelog:
  - Small fix to incus_load.go for user display formatting
  - Removed requirement for golang. We only need and have it for devel


