Release Notes
4D 20 R5
Read What’s new in 4D 20 R5, the blog post that lists all new features and enhancements in 4D 20 R5.
Highlights
- New Component manager to handle components through a
dependencies.json
file. - Support of
Try...Catch...End try
error handling structures. - QUIC network layer now supports broadcasting, SSO, and IPv6.
- Support of restricted entity selections.
- Support of shared classes and singleton classes. New Class properties:
isShared
,isSingleton
,me
. - Support for initializing a class property in its declaration line.
- New force login mode for REST requests with a specific support in Qodly Studio for 4D.
- New $format REST parameter.
Session
object is now available in remote user sessions and stored procedures session.- 4D Language commands: What's new page on doc.4d.com.
- 4D Write Pro: What's new page on doc.4d.com.
- Fixed bug list: list of all bugs that have been fixed in 4D 20 R5.
Behavior changes
- The plug-ins 4D Internet Commands and 4D for OCI are no longer included in 4D installers. To get these plug-ins, you need to connect to the 4D Product Download portal.
- Changes made in the Structure editor regarding graphical appearance of tables and fields (color, position, order...) are now saved in a separate file named
catalog_editor.json
stored in the project'sSources
folder.
4D 20 R4
Read What’s new in 4D 20 R4, the blog post that lists all new features and enhancements in 4D 20 R4.
Highlights
- Support of
ECDSA
encryption format for TLS certificates. - Client/server and SQL server TLS connections are now configured dynamically (no certificate files are required).
- Direct HTML format for structure definition exports.
- New Code Live Checker that enhances code control during code typing, syntax checking, and compilation steps to prevent execution errors.
- Method parameters declared in
#DECLARE
prototypes are no longer necessary in "Compiler_" methods. - Support of custom date and time formats
- New
Try(expression)
keyword to handle simple error cases. - New
HTTP Parse message
command. - New Non-blocking printing compatibility option.
- New editing mode in the Data Explorer.
- 4D Language commands: What's new page on doc.4d.com.
- 4D Write Pro: What's new page on doc.4d.com.
- Fixed bug list: list of all bugs that have been fixed in 4D 20 R4.
Behavior changes
- Using a legacy syntax for declaring parameters (e.g.
C_TEXT($1)
orvar $1 : Text
) is now deprecated and generates warnings at code typing, syntax checking, and compilation steps. - Selections are now kept consistent after some records have been deleted and others records created (see this blog post.
- In the updated OpenSSL library, the default SSL/TLS security level has been changed from 1 to 2. RSA, DSA and DH keys of 1024 bits and above and less than 2048 bits as well as ECC keys of 160 bits and above and less than 224 bits are now no longer allowed. By default, TLS compression was already disabled in previous OpenSSL versions. At security level 2 it cannot be enabled.
- In order to allow password verification when the 4D user directory uses the bcrypt algorithm, the "password" value in the connectionInfo parameter of the
Open datastore
command is now sent in clear form by default. Make sure your "On REST authentication" database method can handle passwords in clear form (third parameter is then False) and thatOpen datastore
encrypts your connection by passing the "tls" option to True in connectionInfo. In specific cases, a new "passwordAlgorithm" option can also be used for compatibility (seeOpen datastore
command).
4D 20 R3
Read What’s new in 4D 20 R3, the blog post that lists all new features and enhancements in 4D 20 R3.
Highlights
- New
collection.multiSort
function. - Support of context parameter in
Formula from string
. - Support of
headers
property in connectionHandler parameter of 4D.WebSocket.new. - Global modification stamp to help implementing data synchronization modules. New functions:
ds.getGlobalStamp
andds.setGlobalStamp
. - Assigning file references to picture/blob attributes is supported in ORDA.
- Support for initializing the variable's value and data type in the declaration line.
- Log file settings are now saved with the current data file
- New syntax for declaring variadic parameters
- 4D View Pro: Support for the import and export of 4D View Pro documents in Blob format.
- 4D Language commands: What's new page on doc.4d.com.
- 4D Write Pro: What's new page on doc.4d.com.
- Fixed bug list: list of all bugs that have been fixed in 4D 20 R3.
Behavior changes
- Some errors were catchable by your error handling method in interpreted mode only. A fix has been done, so that the following errors will now be caught also in compiled mode: Indice out of range, Type incompatible, and Dereferencing a Null pointer. However, for such errors on Intel processors, the procedure is still interrupted as before, whereas on Apple Silicon processors the procedure is only interrupted if you call the
ABORT
command. - 4D no longer includes an internal PHP interpreter. You need to set up and run your own PHP interpreter to use PHP commands.
4D 20 R2
Read What’s new in 4D 20 R2, the blog post that lists all new features and enhancements in 4D 20 R2.
If your 4D applications use TLS connections, it is recommended that you upgrade to 4D 20 R2 HF1 build 100440 or higher. For more information, refer to this Security bulletin.
Highlights
- New WebSocket class to create and manage client WebSocket connections from 4D.
- New QUIC network layer interface setting.
- 4D View Pro: Support of the .sjs file format for the import and export of documents.
- 4D Language commands: What's new page on doc.4d.com.
- 4D Write Pro: What's new page on doc.4d.com.
- 4D Write Pro Interface: New Table Wizard.
- Fixed bug list: list of all bugs that have been fixed in 4D 20 R2.
Behavior changes
- Warning: The starting
offset
value of 4D.FileHandle objects was incorrectly set to 1 instead of 0. A fix has been made in 4D as of versions 20.1 HF1 and 20 R2 and the value is now 0.
4D 20.x
Read What’s new in 4D 20, the blog post that lists all new features and enhancements in 4D 20.
For internal reasons, the version of remote clients connecting to 4D Server 20.2 and later must be at least 4D 20.2.
If your 4D applications use TLS connections, it is recommended that you upgrade to 4D 20.2 LTS build 100956 or higher. For more information, refer to this Security bulletin.
Index rebuild warning
4D 20 includes an ICU library update (see below) which will force an automatic rebuild of indexes of type alpha, text, and object. Depending on the size of the data file, this operation can take a while and may require to be planned.
4D 20.1 also includes an ICU library update, which has the following consequences:
- It will force an automatic rebuild of indexes of type alpha, text, and object.
- Because of sorting consistency, it requires that 4D remote clients and 4D Server use the same version: only remote 4D 20.1 can connect to 4D Server v20.1 and vice versa.
Highlights
- 4D 20.2 is certified on macOS Sonoma (macOS 14).
- (4D 20.1) New
plugins
property in the options parameter for theCompile project
command. - 4D Server automatically integrates multiple journals: Automatic restore.
- IMAP Transporter Class:
.getBoxInfo()
returns id,.selectBox()
returns id, flags and permanentFlags,.addFlags()
and.removeFlags()
support custom keywords. - New WebSocketServer and WebSocketConnection classes to create and manage WebSocket connections from 4D.
- Support of
property
keyword in user class definitions. - New functions to lock/unlock the datastore:
.flushAndLock()
,.locked()
,.unlock()
. - New
.at()
function in the Entity selection class. - New functions in the Collection class:
.at()
,.first()
,.flat()
,.flatMap()
,.includes()
,.last()
,.reduceRight()
. - Code editor: enhanced Find and replace features.
- New searchable "property" Language element in the Find in design... dialog box.
- To simplify code, some comparison operators can now be used with Undefined values without generating errors.
- Support of headerOnly parameter in
POP3Transporter.getMail()
. - Support of
count values
option inentitySelection.distinct()
andcollection.distinct()
functions. - New
entitySelection.distinctPaths()
function. - ORDA requests logs are now available on the server, new parameter for
.startRequestLog()
function. - New tools for code execution in CLI: tool4d and 4D Server in utility mode.
- Data Explorer: new button and display in a 4D window.
- New properties for buttons, check boxes and radio buttons: Image hugs title and Horizontal Alignment.
- Support of
WinIcon
infile.setAppInfo()
function. - New
validateTLSCertificate
option for4D.HTTPRequest.new()
allowing you to control the automatic certificate validation. - 4D Language commands: What's new page on doc.4d.com.
- 4D Write Pro: What's new page on doc.4d.com.
- Fixed bug lists: 4D 20 - 4D 20.1 - 4D 20.2 - 4D 20.3 - 4D 20.4.
Behavior changes
- As of 20.3, in order to allow password verification when the 4D user directory uses the bcrypt algorithm, the "password" value in the connectionInfo parameter of the
Open datastore
command is now sent in clear form by default. Make sure your "On REST authentication" database method can handle passwords in clear form (third parameter is then False) and thatOpen datastore
encrypts your connection by passing the "tls" option to True in connectionInfo. In specific cases, a new "passwordAlgorithm" option can also be used for compatibility (seeOpen datastore
command). - As of 20.2, 4D 20 LTS is no longer compatible with Windows Server 2012 R2.
- Warning: The starting
offset
value of 4D.FileHandle objects was incorrectly set to 1 instead of 0. A fix has been made in 4D as of versions 20.1 HF1 and 20 R2 and the value is now 0. - For HTTP RFC compliance,
HTTPRequestClass.response.headers
property now returns all header names in lowercase. If you want your code to continue working as before, use the newHTTPRequestClass.response.rawHeaders
property. - TLS certificates are now automatically validated by 4D when sending HTTP requests with
4D.HTTPRequest.new()
, and rejected with an error if they are invalid. A new option property allows you to control this validation. - TLS v1.0 and TLS v1.1 are deprecated, they are no longer supported as
Min TLS version
on 4D Server. Version 1.3 is now selected by default and is automatically used if_o_TLSv1_0
or_o_TLSv1_1
constants are set withSET DATABASE PARAMETER
. - For consistency, all buttons, checkboxes, and radio buttons are now rendered with a "3D" type at runtime: respectively
Object type 3D button
,Object type 3D checkbox
, andObject type 3D radio button
are returned byOBJECT Get type
for these objects. - As of 4D 20, 4D for Mobile is no longer installed by default in the 4D environment. To benefit from the 4D for Mobile development features in 4D, you need to install the 4D Mobile App component in the "Components" folder of your projects. If a converted project uses features from the 4D Mobile App Server component, make sure you also install it in the "Components" folder of the project.
4D 19 R8
Read What’s new in 4D 19 R8, the blog post that lists all new features and enhancements in 4D 19 R8.
Highlights
- Error management methods can be installed for global and component execution contexts.
- Listboxes with collection or entity selection datasources now support Automatic Row Height column property.
- ORDA: Support of the roles.json file to define privileges assigned to the session with
setPrivileges()
. - Support of SDI mode in test application mode on Windows.
- 4D View Pro:
- support of themes in tables: new VP SET TABLE THEME and VP Get table theme commands, support of theme options in VP CREATE TABLE
- new VP Get table dirty rows command
- 4D Language commands: What's new page on doc.4d.com.
- 4D Write Pro: What's new page on doc.4d.com.
- Fixed bug list: list of all bugs that have been fixed in 4D 19 R8.
Behavior changes
- For HTTP RFC compliance,
HTTPRequestClass.response.headers
property now returns all header names in lowercase. If you want your code to continue working as before, use the newHTTPRequestClass.response.rawHeaders
property. - When a bevel button with linked pop-up menu is assigned a standard action, the standard action is no longer generated if a pop-up menu option is selected.
- In Web areas using blink (CEF), dialogs displayed from external scripts are now blocking if not called from a
setTimeout()
JS function. This is due to the current CEF updates, in which dialogs displayed by functions such asalert()
orprint()
are no longer handled by the OS but by the Web area. SeeWA Evaluate JavaScript
andWA EXECUTE JAVASCRIPT
.
4D 19 R7
Read What’s new in 4D 19 R7, the blog post that lists all new features and enhancements in 4D 19 R7.
Highlights
- Related data and computed/alias attributes can be displayed in the Data Explorer.
- New FileHandle class and new
.open()
function in theFile
class. - Entity selection Class:
.add()
supports an entitySelection parameter,.minus()
supports a keepOrder parameter. - Support of automaticRedirections and decodeData options in
4D.HTTPRequest.new()
. - New 4DHTTPClientLog.txt log file.
- 4D View Pro: new table commands VP Find table, VP Get table column attributes, VP Get table column index, VP Get tables, VP INSERT TABLE COLUMNS, VP INSERT TABLE ROWS, VP REMOVE TABLE COLUMNS, VP REMOVE TABLE ROWS, VP RESIZE TABLE, VP SET TABLE COLUMN ATTRIBUTES.
- Component namespaces are now displayed in the Explorer.
- Text area and Input form objects now support the corner radius property.
- 4D Language commands: What's new page on doc.4d.com.
- 4D Write Pro: What's new page on doc.4d.com.
- Fixed bug list: list of all bugs that have been fixed in 4D 19 R7.
Behavior changes
- For consistency with standard interfaces (e.g. OS file explorers), list box rules for row selection/drag and drop have been modified. A continuous or discontinuous selection of rows can be dragged by simply clicking on and moving a selected row; the Alt key is not longer necessary (but can still be used like in previous previous). When the Shift or Ctrl/Command key is pressed, a mouse click is taken into account when the click is down. For more information on drag and drop in list boxes, you can refer to this blog post and download this HDI 4D project.
- The 4D internal build numbering has been modified as of 4D 19 R7:
- releases up to 4D 19 R6 (included) are numbered 282xxx,
- releases from 4D 19 R7 will be numbered 100xxx.
Note that a specific 4D version is still uniquely identified by a branch name and a build number. The build number increases chronologically.
- The ability to use Wakanda/4D Mobile REST protocol to call a project method has been removed. You can use ORDA data model class functions or /4DACTION urls instead.
4D 19 R6
- New HTTPRequest class.
- Collection functions that can call code now support function objects as formula parameter:
.every()
,.filter()
,.find()
,.findIndex()
,.map()
,.orderByMethod()
,.reduce()
,.some()
,.sort()
- Listbox cells support horizontal and vertical padding.
- 4D View Pro: new VP CREATE TABLE and VP REMOVE TABLE commands to handle tables in sheets.
- Ability to see related, computed, and alias attributes in the Web Data Explorer.
- To help us make our products always better, we now automatically collect data regarding usage statistics on running 4D Server applications. This will have no impact on performance. See the new page explaining why and how 4D collects data.
- Components compiled for Silicon: On macOS Silicon platforms (Apple ARM CPUs), components must be recompiled with 4D 19 R6 or higher to be used with this release.
4D 19 R5
- The project directory.json file can now be embedded in the server at build time, allowing you to deploy a client/server application with a basic security user and group configuration.
- You can now deselect useless modules in your built applications.
- The MeCab library is included by default in all 4D applications on macOS. In previous releases, this library, specifically designed to manage Japanese text, was only available in the Japanese version of 4D on macOS. If you do not need this library in your final applications, you can now deselect it.
- Client/Server optimization: New class functions allow you to handle the ORDA cache and the contents of an optimization context. See Preconfiguring contexts and ORDA Cache for more information.
These functions are intended for developers who need to customize ORDA default features for specific configurations. In most cases, you will not need to use them.
- DataClass class: The new .getCount() function returns the number of entities in a dataclass.
- The 4DDiagnosticLog.txt file only records high-level information by default (INFO level. You can now select the information level to record (for example DEBUG level information) using the
Diagnostic log level
selector of theSET DATABASE PARAMETER
command or the log configuration file. - Calling
Use()
on a non-shared object or a non-shared collection does nothing (it no longer generates an error). Thus, it is now useless to test if the object or collection passed to Use() is actually shared. - For clarification purposes, two SQL commands have been prefixed:
GET DATA SOURCE LIST
has been renamed toSQL GET DATA SOURCE LIST
,Get current data source
has been renamed toSQL Get current data source
. - 4D View Pro:
- The new VP SET DATA CONTEXT, VP Get data context, VP SET BINDING PATH, VP Get binding path commands allow you to create data contexts and bind their contents to sheet cells.
- VP EXPORT DOCUMENT and VP Export to object now accept the new
includeBindingSource
option that exports the contents of a data context as cell values. - (Windows only) 4D View Pro areas now use a new print settings window.
- Web areas:
- New Windows system rendering engine: Web Areas using the Windows system rendering engine are now based upon Microsoft Edge WebView2. This impacts the following features:
- The
WA Create URL history menu
andWA GET URL HISTORY
commands only return the current URL.
- The Progression variable is no longer updated.
- Drag and drop features are handled by a Windows API which is tagged "experimental" by Microsoft. Consequently, web areas may not work as expected when this API is not installed: Drag and drop may seem allowed even when the
WA enable URL drop
preference has been set to False. However, the drop action is blocked by default, and you can control the allowed URLs using theOn Window Opening Denied
event (see below).
- The
- (Windows only) When the user selects Print... from a web area using the embedded web rendering engine, a new print settings window is now displayed.
- To reflect their actual effect in web areas (increase or decrease page zoom level), two commands have been renamed:
WA SET PAGE TEXT LARGER
has been renamedWA ZOOM IN
,WA SET PAGE TEXT SMALLER
has been renamedWA ZOOM OUT
. - Enhanced security in web areas that use the embedded web rendering engine or the Windows system rendering engine (based on Microsoft Edge WebView2):
- CORS policies now apply when accessing files on disk in web areas. For example, when opening a .html file with
WA OPEN URL
, that .html file cannot contain links that point to files outside its folder - Dropping external contents in web areas is now always blocked and triggers the
On Window Opening Denied
event when theWA enable URL drop
preference is set to True (when set to False, theWA enable URL drop
preference only modifies the drop cursor icon and filters theOn Window Opening Denied
event). To allow a drop action, you need to execute additional code in the object method of the web area:
- CORS policies now apply when accessing files on disk in web areas. For example, when opening a .html file with
- New Windows system rendering engine: Web Areas using the Windows system rendering engine are now based upon Microsoft Edge WebView2. This impacts the following features:
WA OPEN URL(*;"WebArea";WA Get last filtered URL(*;"WebArea"))
4D 19 R4
- Alias attributes are available in ORDA classes.
- Support for break and continue statements in loops.
- Support for return statement and return expression to return values.
- Support for compound assignment operators, short-circuit operators, and ternary operator
- The Code Editor now includes an dropdown tool and supports markers for better code navigation.
- New Preferences: Include tokens in project source files and Show clipboards option on the Methods page.
- New REST request to lock/unlock entities.
- 4D View Pro chapter added with new commands: VP Copy to object, VP MOVE CELLS, VP PASTE FROM OBJECT.
- New SystemWorker class.
- The
Alias selection
constant has been renamedAllow alias files
to resolve a conflict resulting from the support of alias attributes in ORDA. - For better compliance with ORDA specifications, the Map NULL values to blank values field property is now unchecked by default in databases created with 4D 19 R4 and higher. You can also enable this default behavior in your databases converted from previous versions by selecting the Map NULL values to blank values unchecked by default at field creation compatibility setting. Working with Null values is now recommended since they are fully supported by ORDA.
- Because of the support of the ternary operator, the colon ":" is no longer allowed in variable, field, constant, function, plugin and project method names. If your database/project contains identifiers with colons, you must replace them before converting it to 4D 19 R4 or higher, otherwise errors may occur in your code. For example, if you have a variable named a:b, it could be interpreted as ternary operator syntax:
$value:=($size>1000)? a:b // Here 'a:b' is viewed as a ternary operator.
4D 19 R3
- Computed properties are available in classes.
- Computed attributes are available in ORDA classes. They are similar to computed properties but also support query and orderBy functions.
- New ORDA dataclass attributes:
exposed
andreadOnly
. - ZIP archives now supports LZMA and xz compression algorithms.
- A new build option makes it easier to include Silicon Mac clients in Server applications on Windows.
- Extended support of dark mode on macOS.
- Support of OAuth2 token object in
IMAP New transporter
,POP3 New transporter
, andSMTP New transporter
. - Users can now load a log configuration file using a button in the server administration window.
- Handling optional parameters is more flexible in the 4D language when accessing parameters declared but not passed. For example, the following code no longer provokes an error:
// "concate" function of myClass
Function concate ($param1 : Text ; $param2 : Text)
ALERT($param1+" "+$param2)
// Calling method
$class:=cs.myClass.new()
$class.concate("Hello";" world") // Displays "Hello world"
$class.concate("Hello") // Displays "Hello "
$class.concate() // Displays " "
For detailed information, please refer to this blog post. To benefit from this overall simplification, you need to recompile both calling and called methods; thus components must be recompiled.
-
Debugging web server sessions is easier on 4D Server.
-
The new 4D NetKit component allows you to connect to third-party APIs such as Microsoft Graph.
-
4D 19 R3 uses a stronger hashing algorithm for 4D user passwords: Bcrypt. This new algorithm is automatically used when a password is changed using the Tool Box, the
CHANGE PASSWORD
command, or theSet user properties
command. Once a password is modified, opening the database with a version prior to 4D 19 R3 will cause an authentication denial for this account. If you use 4D passwords, it is highly recommended to backup the .4db file (binary databases) or directory.json file (projects) before upgrading to 4D 19 R3 or later. -
For accuracy, the
4D digest
constant has been renamed4D REST digest
. -
End-of-line and BOM management for XML commands: When opened in 4D 19 R3, projects or databases created with previous releases behave differently regarding default end-of-line characters and BOM management in XML documents: line feed (LF) characters are used instead of CR (on macOS), and byte order marks (BOM) are not included. This allows a better compatibility with VCS tools. If necessary, you can restore the 4D 19 R2 behavior using the
XML SET OPTIONS
command. In projects or databases converted from releases prior to 19 R2, these options are managed by two compatibility settings. -
Runtime Explorer shortcut removed in built projects: The Cmd/Ctrl+Shift+F9 shortcut does no longer display the Runtime Explorer window in single-user merged project applications. This shortcut can now be a user application shortcut. You can call the Runtime Explorer window using the new
OPEN RUNTIME EXPLORER
command. -
Extended debugging capabilities with 4D Server: In interpreted mode, 4D Server can now debug all kinds of processes, including scalable web sessions. This is available when the debugger is attached to the server or to a remote client.
Warning: In interpreted mode, in order to make extented debugging available on the server machine, all server processes are now automatically executed in cooperative mode when the debugger is attached to the server (default setting). This can have a significant impact on the performance of your converted applications when they run with 4D Server 19 R3 and higher. To restore preemptive execution on the server in this case, all you need to do is detach the debugger from the server (and attach it to a remote client if necessary). -
On Windows, 4D projects and databases created with 4D 19 R3 and higher use the DirectWrite API in forms. This API improves text rendering, especially in high DPI configurations. DirectWrite is used for text rendering with static and input text, checkboxes, buttons, and radio buttons. Note that listboxes already use DirectWrite. A compatibility option allows you to enable DirectWrite in projects and databases created with previous 4D versions.
-
If you use components compiled with 4D 19.0 for Silicon (Apple ARM CPUs) which call the
Count parameters
command, we recommend to recompile them with 4D 19 R3 to provide compatibility with 4D 19 R3 and future releases. If a component is not compiled for Silicon, there is no need to recompile.
4D 19 R2
- A default .gitignore file can be created with new projects
- New Blob class API to handle new
4D.Blob
objects no-bom
support and new default end-of-line characters in.setText()
Previous releases
Click to see the release notes for previous versions
4D 19
If your 4D applications use TLS connections, it is recommended that you upgrade to 4D 19.7 LTS build 288986 or higher. For more information, refer to this Security bulletin.
- IMAPTransporter Class: new
.createBox()
,.deleteBox()
,.renameBox()
,.subscribe()
, and.unsubscribe()
functions. - File Class: new
setAppInfo()
andgetAppInfo()
functions. - New 4DEACH transformation tag.
- Web Server: new SameSite session cookie setting.
- Dark and light color scheme support for forms and style sheets
- New default dark and light themes in Code Editor preferences.
- Native compilation for Silicon processors.
- Variable calculation property is now supported by entity selection list box columns.
- New, comprehensive CLI page.
4D 18 R6
- Entity Selection Class:
.average()
,.max()
and.min()
functions now return undefined if the entity selection is empty. - IMAP Mail, POP3 Mail and SMTP Mail:
authenticationMode
property enables OAuth 2.0 - IMAP Mail: new
.expunge()
and.append()
functions - New WebAdmin web server component
- New DataExplorer interface
- New web user sessions and their API.
Library table
Library | Current version | Updated in 4D | Comment |
---|---|---|---|
ICU | 73.2 | 20.1 | This major upgrade forces an automatic rebuild of alphanumeric, text and object indexes. |
CEF | 121 | 20 R5 | Chromium 6167 |
Hunspell | 1.7.2 | 20 | Used for spell checking in 4D forms and 4D Write Pro |
PDFWriter | 4.3 | 20 | FreeType dependency in 12.2.1 |
SpreadJS | 16.2.6 | 20 R4 | 4D View Pro engine |
OpenSSL | 3.2.0 | 20 R4 | Default TLS/SSL security level has been upgraded. See Behavior changes for release 20 R4 |
libZip | 1.9.2 | 20 | Used by zip class, 4D Write Pro, svg and serverNet components |
LZMA | 5.4.1 | 20 | |
Zlib | 1.2.13 | 20 | |
webKit | WKWebView | 19 | |
PHP | 8.2.4 | 20 | |
libldap | 2.6.4 | 20 R3 | |
libsasl | 2.1.28 | 20 |