Version 1.654

Released: 2023-10-03

GUI framework upgrade from vue.js 2 to vue.js 3 evolution new

With this release Evolution skin is finally upgraded to use lastest vue.js version 3 framework.

Previous versions used vue.js 2 which is bound to become EOL at the end of 2023. Upgrade to the next major vue.js version means it will continue receiving updates and improvements.

This upgrade required a lot of internal Evolution skin changes and even changing or updating other 3rd party libraries. This also helped us find and fix some long standing bugs.

In the end Evolution is now faster, more robust and easier to add new or improve existing features.

Fixed Light/Dark mode global option evolution new

New global customization option was added in the login page customization section (Admin level Admin Tools > Customize Evolution Skin > Login Page > Styles) which allows to disable Evolution Light/Dark mode selector.

There are three possible value for this option:

  • User selected - Dark/Light mode selector is visible and user can pick whichever mode he prefers (default option).
  • Light - Evolution always loads in light mode, the Dark/Light mode selector is not visible for the users.
  • Dark - Evolution always loads in dark mode, the Dark/Light mode selector is not visible for the users.

This option affects both login page and rest of the application after login.

Light/Dark Override

Software version changes custombuild improved

  • exim updated from 4.96.1 to 4.96.1-7-g79877b70e
  • PHP 8.1 updated from 8.1.23 to 8.1.24
  • PHP 8.2 updated from 8.2.10 to 8.2.11
  • snuffleupagus updated from 0.9.0 to 0.10.0
  • imagemagick updated from 7.1.1-15 to 7.1.1-19
  • composer updated from 2.6.3 to 2.6.4

Note: IMAP library for PHP extension was renamed from imap to wu-imap in the versions.txt.

Old session cleanup code optimization improved

Old session cleanup logic is improved. It runs in the background thread and periodically remove expired sessions instead of checking for sessions to be removed on each login attempt.

Periodic old session removal thread will report its results in DirectAdmin service log. It will report the amount of time it took to clean-up old sessions and number of expired sessions that were removed. Example log file entry:

removed old sessions      duration=284.613µs removed=1

cpanel_to_da: Use pigz for the compression improved

Cpanel import tool used only a single threaded gzip for a backup compression during the conversion phase. This change adds pigz support to the compression part to utilise multiple threads and speed up the import.

User deletion: users.list race condition improved

For very large user.list files, deletion of a User could result in a race condition if other process tries to add a User near the same time causing missing data.

  • Improved the re-read efficiency greatly so the process is exponentionally faster.
  • Should any re-read issues occur, push a task.queue call to rebuild all lists from scratch.
  • Suppress the users.list has been written to after this process read it. Not going to overwrite it. warnings.

Plugins no longer need to specify id field in plugin.conf improved

Plugin configuration file plugin.conf used to have mandatory field id with the plugin name. Starting this release this field is ignored (and can be omitted from plugin.conf file). Plugin ID will always be the name of plugin directory inside the /usr/local/directadmin/plugins.

More resilient PowerTools repo name detection on RHEL systems custombuild improved

Building 3rd party software requires some packages from the PowerTools repository, which is not enabled on RHEL based systems by default.

This repository has different names depending on linux distribution (for example powertools, PowerTools, cloudlinux-PowerTools, ...) so CB performs automatic repo name detection by searching the contents of /etc/yum.repos.d directory.

Previous version used to check all the files, however there could be some stray files that are not actually used by yum and mislead the automatic repo name detector.

New version only considers files that has *.repo suffix making sure we ignore any other files in the directory.

CustomBuild cron updates syncs with DirectAdmin auto-updates custombuild improved

CustomBuild can enable automatic software upgrades using cron=yes and updates=yes in custombuild/options.conf file.

Periodic CustomBuild cron update system used to update DirectAdmin. However update to DirectAdmin can cause new CustomBuild software components to be available for updates again. This created a circular updates dependency. Furthermore this bypassed DA internal gradual roll out logic and on systems with CB cron enabled made all DA instances to upgrade at the same time.

With this release CustomBuild will not automatically update DirectAdmin as part of its periodic updates routine, but DirectAdmin will detect if CustomBuild cron updates are enabled and if they are will enable internal DA auto updates mechanism.

So setting cron=yes and updates=yes in custombuild/options.conf file will automatically set autoupdate=1 and autopatch=1 in directadmin.conf file.

This will allow CustomBuild updates and DirectAdmin updates to work independently and not interfere with one another.

Updated CustomBuild PHP extensions build scripts custombuild improved

CustomBuild scripts that update, compile and install PHP extensions were updated. Key changes:

  • Extension sources will be downloaded from upstream rather than DirectAdmin files server. This allows using a wider range of PHP extension versions.
  • Extension source packages will be cached and reused locally when rebuild.
  • All extensions will report available updates for each PHP version separately. In previous versions only default PHP version was being checked for extensions updates.
  • Extension can be rebuilt for a single PHP version by adding extra PHP version parameter. For example da build php_bz2 would rebuild bz2 extension for all PHP versions, while da build php_bz2 8.1 would only rebuild it for PHP 8.1.

Date picker inputs evolution improved

Due to framework version change we have been forced to change the date-picker components. This was an opportunity to improve overall look and feel of date pickers and keep consistent component looks across the project.

Date Picker Input

Domain name in DNSSEC page header evolution improved

DNSSEC page used to have no indication of currently selected domain. It made it hard for admins and resellers see what domain is actually being modified.

The DNSSEC page was updated to include the currently active domain in the page header.

DNSSEC Page Header

Stepper component prevents navigation pass uncompleted steps evolution improved

Multi step pages (for example restore backup) used to allow navigating to any step, even if previous steps contained data validation errors.

Such pages were improved in a way that if one of the steps is not finished, navigation to the next steps would be prevented.

Steper component

Search results evolution improved

Menu search results used to have no indication of access level they belong to. This lead to poor experience when searching for the pages available present in more than one access level.

It was changed by adding access level next to the page name.

Search results

Internationalized domain entries in search results are now displayed in unicode.

Active request indicator color evolution improved

Active request indicator (narrow line at the top of the page when some data is being fetched) was improved to support customizable colors. From now on, it will use primary color for its background (blue by default). Customising primary color will change the request indicator color as well.

Tooltips style evolution improved

Sometimes tooltips could have been initialized without correct styling making them look like a transparent block.

Issue was fixed making sure correct styling is always used.

Remote users in "Show all users" evolution improved

When a server has "Show all users" option enabled with in the "Multi-Server Setup" page, the "Show All Users" (/admin/users) page would display a list of all users on both the local and remote server.

It was updated so that clicking on remote server user link a new tab would be opened with user info page on remote server.

Validation messages evolution improved

User input validation messages will not be shown as tooltips anymore, but instead will be shown below the input field.

On-submit Validation

Dialogs improvement evolution improved

  • Dialogs now correctly handling focus trap, allowing for better keyboard navigation inside the dialog box.
  • Click outside of the dialog box would close it, making it easier to dissmiss.

Code editor component upgrade evolution improved

Code editor component was updated to latest version and now supports editing large files.

Code editor no longer supports theming but it would adjust styles depending on dark or light mode being active.

Password change page evolution improved

When password change request fails it used to clear out entered data forcing user to fill the form from the scratch again.

Page was updated to handle such cases better.

Compilation errors on Debian based systems for PHP ldap extension on PHP 5.6 and 7.0 custombuild fixed

Older Debian 10/11 and Ubuntu 18/20 systems with old PHP versions 5.6/7.0 failed to compile ldap PHP extension with error:

configure: error: Cannot find ldap libraries in /usr/lib.

This release provides patches to compile extensions without issues.

Missing cagefs reload/remount actions after full system upgrade custombuild fixed

Upgrading all software components with CustomBuild da build update_versions command would not execute /usr/sbin/cagefsctl --force-update and cagefsctl --remount-all on CloudLinux systems with cagefs enabled.

This version fixes the issue.

User redis instance start failures on RHEL 7 systems custombuild fixed

After a full server reboot and sometimes during normal operations starting a new redis instance on RHEL 7 systems could fail with error:

Main PID: 950 (code=exited, status=233/RUNTIME_DIRECTORY)

It was caused by older systemd treating runtime directory create operation as critical failure. Issue was fixed by updating redis systemd service definition.

On affected systems rebuilding redis with da build redis is needed to install new version of redis systemd service file.

Database deletion on old systems fixed

DirectAdmin using older DBMS such as MySQL 5.7 used to have an issue where database deletion was incomplete, leaving leftover data, causing database re-creation with the same name to fail.

This release resolves the issue so database deletion cleans up the data it previously used to leave.

Apache restart errors from letsencrypt.sh script fixed

On some systems restarting apache from letsencrypt.sh script might fail with error message in errortaskq.log:

2023:01:02-03:04:05: Error gracefuling service httpd : uid 0 gid 0 : /usr/bin/systemctl graceful httpd.service        >/dev/null 2>/dev/null                      : returned 1

All supported distros are now using systemd and supports reload operation for apache service. This release simplifies letsencrypt.sh logic for apache restart mode and always uses reload action.

Unicode DNS records evolution fixed

In DNS Records tables, the Name column was showing domain names in ASCII encoding. It was changed to show values in Unicode.

Header in mobile with large resolution evolution fixed

When using phone or tablet with high resolution, header was missing making it hard to navigate between pages.

It was fixed and mobile mode header should be always visible.

Inputs in "Multi-Server Setup" on mobiles evolution fixed

Text inputs in the page were too small when user accessed the page on mobile device. User could type only a couple of characters before input would get overflown.

Now the inputs will be responsive to device size to improve the experience.

IP actions in Brute Force Monitor page evolution fixed

IP related actions that were visible when hovering on the IP column could get cut off by the table making them hard to access.

Page was updated to show IP actions on mouse-click.

Brute Force Monitor Actions

Unit route default app name evolution fixed

Fixed default nginx unit app name in Standard layout.

Persistent table sorting evolution fixed

After performing some table action (removing/modifying row) table would get reloaded.

Sorting logic was updated to make initial sorting and re-sorting after action use the same sorting rules.

Customizing classic shade colors evolution fixed

Override shade dialog was using incorrect name for classic layouts (Standard, Grid, Sidebar) causing errors, when trying to modify. Issue is fixed now.

 shade

SSH Key edit options evolution fixed

"Add Option" input field was not working correctly on the SSH key edit page, when trying to add custom options like environment or command.

Page was fixed to correctly add key options.

Multiple plugin widgets showing same contents evolution fixed

Adding multiple plugin widgets in the Refreshed layout showed data only from last added plugin.

Issue is fixed to allow multiple plugin widgets to work independently.

Pluggable menu categories in Refreshed layout missing expand icon evolution fixed

Pluggable menus (ones provided by plugins) were not showing expand icon in Refreshed layout.

Issue is fixed, and plugged categories would look the same as built-ins.

Pluggable menus

Language selector on mobiles evolution fixed

On mobile devices language selector width could be too small when expanded. This can make it hard to see the language names and select appropriate language.

Language selector is improved to always be fixed width.

Spamassassin page validation evolution fixed

In the spamassassin configuration page, failed validation used to not show a red border around inputs used in "Whitelisted E-mails" and "Blacklisted E-mails".

Admin DNS/Reseller DNS navigation evolution fixed

If admin was trying to edit DNS Records for some domain returning back to the domain list and selecting different domain could lead to error That is not your domain.

It was caused by navigation mismatch between admin level DNS management page and reseller level DNS management page.

There should be no such errors anymore.

Removed graceful_restarts option from directadmin.conf removed

This option is always true on all DA supported systems. To make configuration file simpler it is completely removed.

Last Updated: