Preface

DFdiscover Release 5.10.0

All rights reserved. No part of this publication may be re-transmitted in any form or by any means, electronic, mechanical, photocopying, recording, or otherwise, without the prior written permission of DF/Net Research, Inc. Permission is granted for internal re-distribution of this publication by the license holder and their employees for internal use only, provided that the copyright notices and this permission notice appear in all copies.

The information in this document is furnished for informational use only and is subject to change without notice. DF/Net Research, Inc. assumes no responsibility or liability for any errors or inaccuracies in this document or for any omissions from it.

All products or services mentioned in this document are covered by the trademarks, service marks, or product names as designated by the companies who market those products.

Google Play and the Google Play logo are trademarks of Google LLC. Android is a trademark of Google LLC.

App Store is a trademark of Apple Inc.

Nov 20 2025


Copyright © DF/Net Research, Inc.

Getting Help

For software support, Please contact the DFdiscover team:

Conventions

A number of conventions have been used throughout this document.

Any freestanding sections of code are generally shown like this:

 # this is example code
 code = code + overhead;

If a line starts with # or %, this character denotes the system prompt and is not typed by the user.

Text may also have several styles:

Introduction

Overview

DFdiscover 2025 Version 5.10.0 introduces meaningful enhancements that make clinical data management more efficient, secure, and reliable. It builds on the strong foundation of recent updates while adding new capabilities for participant engagement, efficient study builds, permission controls, improved system security, and overall usability.

Key features and enhancements in this release include:

These changes are described in New Features and Enhancements. The complete listing of all changes by product area and type of change, including bug fixes, is available under All Updates. The release notes also provide information about any Known Issues in the current release as well as any Advance Notices for planned changes in upcoming releases.

Version Numbering

DFdiscover 2025 Version 5.10.0 is a minor release in the DFdiscover 5.X family that started with DFdiscover 2018. DFdiscover version numbers have 3 components:

  1. The first number identifies a major release containing all software components.
  2. The second number identifies a minor release with bug fixes, backward compatible new features, and feature enhancements. It contains all software components. If there is no minor release for a major release, this number is 0.
  3. The third number identifies incremental patches to specific software components for the minor release identified by the first 2 digits of the version number. If there is no patch release, this number is 0.

For example, 5.0.2 is the second patch to the 5.0.0 major release. 5.2.1 is the first patch to the 5.2.0 minor release.

Software Components

Client Applications

DFdiscover 2025 Version 5.10.0 includes the following client applications:

Server Applications

DFdiscover 2025 Version 5.10.0 includes updates to the DFdiscover, DFws API, and DFweb server applications as well.

DFnet updates these components on its DFdiscover instances as part of the release, including multiple instances of DFweb and the DFdiscover DFws API. These are located in the USA, South Africa, Canada, Australia, and Europe, each with their own server name, DFweb URL, and DFws API URI.

For organizations hosting their own DFdiscover servers, the server installation packages for DFdiscover, DFws API, and DFweb are available as RPM files. DFdiscover report updates are also available from cdn.dfdiscover.com. Information for system administrators is provided in Server Upgrade.

Supported Devices

Desktop and client-side tools

Desktop and client-side tools are supported on Windows 10 and newer and macOS 10.14 (Mojave) and newer. We recommend keeping your operating system up to date.

DFweb supported browsers and devices

DFweb Version 5.10.0 is supported on devices (desktops, laptops, tablets, smartphones) that run the following web browsers: - Chrome 71 and newer - Edge 79 and newer - Firefox 65 and newer - Opera 58 and newer - Safari 12.1 and newer

The minimum recommended screen width is 400 pixels, except for studies using CRFs with backgrounds, where the minimum recommended screen width is 800 pixels. To avoid horizontal scrolling with CRF backgrounds and eCRF tables in portrait orientation, the minimum recommended screen width is 1280 pixels.

DFcollect supported devices

DFcollect Version 5.10.0 requires a mobile device (tablet or smartphone) running Android 5.1 and newer, iPadOS 13.1 and newer, or iOS 11 and newer.

DFdiscover, DFws API, and DFweb servers

For DFdiscover system administrators, refer to Server Upgrade, Supported Configurations.

Version Compatibility

We recommend all end users install version 5.10.0 of client applications such as DFexplore, DFweb, and DFcollect to take advantage of new features and fixes. However, after upgrading the DFdiscover server to 2025 Version 5.10.0, end users are not required to upgrade immediately as long as the study is configured in DFadmin to allow older versions to connect, with the exception of DFcollect in this release.

DFdiscover 2025 Version 5.10 is not compatible with DFcollect version 5.9.X or earlier. This is due to DFws API version 5.10 requiring TLS version 1.3 or later. Ensure all DFcollect users upgrade to version 5.10 on their devices before connecting to DFdiscover using DFws API 5.10.

Both DFweb and DFcollect are designed for backwards compatibility with older DFdiscover server and API versions, however some new features are only available when connecting to a DFdiscover server and API Version 5.10.0 or later, as noted in the following chapter.

If any version of any client application will be used that does not match the DFdiscover server version, ensure that the master or study Version Strict setting is ‘All minor versions supported’ or ‘Minimum version supported’ in DFadmin. When ‘All minor versions’ is enabled, the following versions of client applications may be used with DFdiscover 2025 Version 5.10.0 server: 2019 5.2.1, 2020 5.3.2, 2021 5.4.0, 2022 5.5.1, 2023 5.6.0, 2023 5.7.0, 2024 5.8.0, and 2024 5.9.0.

DFsetup and DFadmin users should use the new desktop client versions after the DFdiscover server upgrade to take advantage of new features.

Warning: Using older versions of DFsetup to make changes to a study that uses features added in later versions will result in losing that data. In DFsetup, users will be warned if setup is newer than the DFsetup version, and a notice appears if your DFsetup client app version is older or newer than the DFdiscover server version. Only study admins can save a newer setup to an older version.

Role Permission Considerations

When upgrading, review study role permissions to ensure new features are available users as intended. Permission requirements for API client applications are described below.

DFweb Permissions

DFcollect Permissions

DFengage Permissions

DFsources Permissions

New Features and Enhancements

This chapter describes the features and enhancements added to DFdiscover since the release of Version 5.9.0. See the next chapter, All Updates for a table listing all changes, including bug fixes.

General

Enhancements for ePRO User Management

Several updates have been made to DFadmin, the server, and the API to support ePRO user management capabilities. These enhancements establish a secure framework for managing DFengage ePRO (electronic patient reported outcome) users and their associated access and personal details, ensuring that personally identifying information (PII) remains protected while enabling authorized staff to support participant access to DFengage.

DFadmin Updates

How ePRO User Data is Handled

These enhancements ensure privacy compliance through controlled visibility of personal participant data, controls over access available to site personnel and study teams separate from system administrators, as well as improved oversight of ePRO-related actions and access permissions. Learn more about DFadmin’s ePRO Admin Permissions and updates to the User Profile.

Automated Email Activity Reminders to DFengage Web Users

A new feature has been added for sending email reminders about new or overdue ePRO activities to study participants using the web version of DFengage. When using the DFengage mobile app, participants receive reminders as push notifications on their device. When using the DFengage web app, reminders are sent via email from the DFdiscover server.

By default, the activity reminder emails use a generic template, matching the DFengage mobile reminders, and include a login link specific to the participant for immediate access to their activities on the web. This template can be customized per study using the DFmsgtemplates configuration file. Translations may be included to support multi-language studies.

This feature is implemented through a series of functions:

The same activity scheduling used by DFengage is used for email-based reminders, however when email reminders are sent is determined by when DFeproschedule is run. By comparison, push notifications in the DFengage mobile app are sent based on the user’s local time on their device at the time they last accessed DFengage.

Customize ePRO Registration Process in DFsetup

Each study may customize what details are collected during the subject registration process on the DFweb ePRO Management page. This allows study teams to determine what data is needed to keep the participant onboarding process streamlined. The following options are available in DFsetup under Study > Global Settings > ePRO:

Customize Email Templates for ePRO Participants

Templates for invitation, login, activity due, and activity overdue messages sent by the system via email to ePRO participants may be customized for each study. These customized messages are defined by creating a DFmsgtemplates configuration file stored on the server in the study lib directory.

The templates support placeholders for the study name, participant name, participant username, and user-specific invitation and login hyperlinks to DFengage. The templates also support multiple languages.

Details on the configuration file format, including an example, are provided in the Programmer Guide. When the configuration file is not provided, default message templates are used. In a future release, DFsetup will provide an interface to define and modify these templates.

Expanded Character Limits for Field Prompts and Tables in DFsetup

Prompts and text in eCRF tables now support up to 1500 characters, increased from the previous limit of 256. This allows for additional information and details to be displayed on the eCRF, and for the use of HTML to support basic formatting.

Note that when printing eCRFs to paper or PDF, questions may now be split across multiple pages. Be sure to review printed annotated or blank eCRFs to ensure all CRF questions are legible. You may wish to add line breaks in prompts, instructions, table headers or cells to ensure that, when the eCRF is printed, questions are not split across multiple pages in a way that makes them difficult to read. When printing completed CRFs with data, if string fields are auto-expanded when printing, the placement of text and input fields may be different from the blank CRF.

Field Navigation Taskbar Study Setting

A new global setting has been added in DFsetup to enable the new field navigation taskbar in DFcollect and DFweb on smaller screens where users may not have a physical keyboard or mouse. The navigation taskbar is displayed at the bottom of the CRF page and is designed to improve usability by simplifying navigation on tablets and phones. The taskbar is especially useful for studies using dynamic rules for showing and hiding fields. Learn more.

This setting only applies to DFcollect and DFweb on tablet and phone sized screens, to support users without a keyboard or mouse. DFweb has an additional setting to allow users to enable the field navigation taskbar on desktop as well.

Combine Visit Range into One Folder in DFexplore Subject Binder

Repeating CRFs may now be grouped into a single visit folder in the DFexplore subject binder, streamlining display and access for log forms like Adverse Events, Concomitant Medications, and Medical History.

To enable this option, a new property has been added to the DFsetup Visit Map specific to visits defined with a visit number range (e.g., 1001-1050). Select the ‘Combine visit range into one folder in subject binder’ checkbox to enable the option for that visit range.

When this option is enabled, all forms within that visit range will be displayed under a single folder in the DFexplore subject binder. The visit label is displayed without any visit-specific substitutions (e.g., a visit label of “Medical History #%{S.2}” will be displayed as “Medical History”), and all pages within the visit folder will be displayed with the label defined in the page map or the plate label.

We highly recommend updating the Page Map to include a substitution reflecting the visit number or other details to distinguish between the different pages in the visit folder. For example, update your Adverse Event CRF page label to “AE #%{S.2}: %9”, where field 9 is your AE Term, to display the page label as “AE #01: RASH” when the last two digits of the visit number are 01 and RASH is the AE term entered in field 9.

Learn more about this update to the visit map. This new feature requires both DFsetup and DFexplore version 5.10 or later. This subject binder update will be rolled out to DFweb and DFcollect in a future release.

DFexplore Timestamps with UTC Offset

All timestamps displayed in the DFexplore interface now include the UTC offset of the server time or the user’s local time as appropriate. This helps avoid confusion for users in time zones outside the server’s location. For reference, the User Profile dialog available from the File menu shows the UTC offset for both the user’s local time and the server time.

Indicator for Required and Essential Fields on eCRFs in DFexplore

A new setting in DFsetup controls when a red asterisk appears on the eCRF in DFexplore next to the prompt for fields that are defined as required or essential. This provides a visual indication of when fields must be completed without relying on color vision, supporting user accessibility.

By default, this setting is disabled, which results in no red asterisks appearing in DFexplore on eCRFs (even where they were displayed in previous versions). When the setting is enabled, the red asterisk appears in DFexplore for required and essential fields in the following locations:

The red asterisk does not appear next to key fields (visit/assessment number, subject ID). The red asterisks are included when saving or printing blank, completed, and annotated CRFs as well as when creating subject packages.

Audit Trail Update for Data Record Keys Change

DFdiscover has been updated so that in the case of a change in a record’s key fields (plate number, visit number, or subject ID), a “Keys changed” reason is added to the subject ID field of the new record. This reason provides a direct reference in the new record’s audit trail to the original record.

This is in addition to the existing “Keys changed” reason already added to the subject ID field of the original record before it is deleted, as well as the Change Keys option in the History of Changes report (DF_SBhistory) which lists all key changes. This update improves the ability to trace the full history of a CRF when key fields are modified.

Note that this change is not applied to key changes performed prior to upgrading both DFdiscover server and DFexplore to 5.10. If an older version of DFexplore connects to DFdiscover server version 5.10 or later, the “Keys changed” reason is not applied to new records, but any reason added by a key change performed in DFexplore 5.10 is visible in the audit trail.

Setup Import Feature Enhancements

The setup import functionality in DFsetup has been enhanced to provide greater flexibility, control, and visibility when importing study setups from another study or from external files (Excel or JSON). These improvements make it easier to aligned imported modules, styles, and fields with an existing study setup while maintaining consistency and preventing data loss.

The Import Definitions dialog now includes options to resolve conflicts between setup components and imported definitions. When a conflict is detected (for example, if an imported style, module, or field already exists in the current setup), DFsetup provides a conflict resolution difference table which allows users to review and resolve all detected conflicts before completing the import by choosing to keep the existing setup value or replace it with the imported value for each conflict.

For differences in existing style and module field properties, the difference table displays each property and its value in the current study and in the import file. When there are differences in fields within a module being imported, the difference table displays ‘Add field’ and ‘Keep field’ indicators to identify what fields will be added or removed from the existing module. These indicators help users understand exactly how the imported setup will affect existing configurations before confirming the update.

This setup import update allows users to safely update existing styles and modules already present in the study without encountering blocking conflicts. This updates now enables using the default SimpleStyles when creating new plates via Excel import. Updates to modules or styles used on an existing plate or added with a new plate are now possible, however it is not possible at this time to use setup import to update an existing plate.

This enhancement provides streamlined setup imports from Excel, JSON, or another study with interactive conflict resolution for controlled merging of setup changes. Visual indicators of additions and changes provide usability and transparency when importing changes to a study with existing definitions. Learn more about importing setup definitions.

Encryption of Sensitive Data Fields

To strengthen data privacy and regulatory compliance, a new field-level encryption feature has been added, enabling the protection of sensitive data stored within DFdiscover study databases. This enhancement introduces an Encrypted field property in DFsetup for applicable field types and ensures that sensitive information remains encrypted throughout the data lifecycle from entry to export while maintaining compatibility with existing tools and workflows.

The new Encrypted field property is available for string, number, and date field types in DFsetup. When enabled, values entered for that field will be encrypted when saved to the database. This property can be defined directly in DFsetup or may be imported via Excel or JSON setup fields, is included in the setup exports and recorded in change history to track configuration changes, and applies to both study data and derived fields, such as reported value fields in query records.

This enhancement allows database developers to identify specific data elements, such as personal identifiers, contact information, or sensitive clinical data that must be encrypted at rest.

Sensitive field values are encrypted using OpenSSL 256-bit AES, converted to Base64, and stored in the database. When data are exported or reported, the process is reversed. Encrypted values are recognizable in the database by a special leading character (^) which marks the field as encrypted. This allows DFdiscover components to detect and decrypt the data efficiently without compromising security.

Encrypted Base64 strings are typically up to twice the size of the original field value, depending on character encoding. For this reason, string fields designated as encrypted are recommended to be fewer than 250 characters. Plates containing many long encrypted string fields may approach or exceed the record size limit; carefully review and test your plate setup to ensure encrypted data can be stored in the database.

Field-level encryption in DFdiscover helps improve data security and supports compliance and privacy requirements while seamlessly integrating with existing data capture, import, export, and reporting tools, and providing a flexible configuration to meet data protection requirements for individual studies. Learn more about field-level encryption.

Optional Field Name Length Restriction to 32 Characters in DFsetup

A new global setting has been added to DFsetup to allow the restriction of field names and aliases from 80 characters to 32 characters. This helps ensure that projects using statistical packages such as SAS® with limitations on the length of variable names do not run into issues when exporting or analyzing data from DFdiscover.

To update this setting in your study, go to Study > Global Settings, navigate to the Fields tab, and find the Name and Alias setting. By default, 80 characters will be selected for both existing and new studies.

Require Microsoft Single Sign On for Specific Users

It is now possible to require specific users to login with their Microsoft account, preventing login with standard DFdiscover user credentials. This feature allows organizations to prevent DFdiscover access for specific individuals (for example, internal staff) without an active, valid Azure Entra ID account, providing an extra layer of security.

This option is enabled in DFadmin Users with the ‘SSO Only’ checkbox in the User Profile tab. With this feature enabled, users are required to login with their Microsoft account and will not be able to login with their DFdiscover credentials when accessing DFweb or any of the desktop applications. This feature is not supported when logging in to DFcollect, DFengage, or any command-line interfaces.

Require Microsoft Single Sign On for All Users

System administrators are now able to configure their DFdiscover server to accept logins from all client applications through Microsoft Single Sign On only, disabling login using standard DFdiscover username and password credentials. This option is enabled through a new setting in the DFedcservice.cf file using the ssologinonly parameter and is enforced across the server. Learn more.

When the SSO login only setting is enabled for a server, login interfaces connecting to that server will disable the username and password fields and only allow login with Microsoft.  This new setting is supported in all desktop applications as well as DFweb and DFcollect, but is not supported in DFengage or in any command-line interfaces. Note that DFcollect only supports SSO when online; offline access to DFcollect with SSO is not available.

Input Validation Setting for Enhanced Security

DFdiscover now includes a study configuration option to enable input validation to enhance protection against cross-site scripting (XSS) attacks.

When the ‘Input Validation’ setting is enabled for a study in the DFadmin Studies tab, DFweb performs automated validation and cleaning of all entered data in that study to ensure scripting cannot be used to attack a DFdiscover server. If any data values are changed by this process, the user is informed prior to saving that the data has been changed and is requested to review the data before saving. Learn more.

Since this security option changes data entered by users, it is disabled by default and may be enabled by a DFdiscover or study administrator in DFadmin.

User Profile Data Encryption

To enhance the protection of personally identifying information (PII) stored in DFdiscover, user profile records are now encrypted on the server. This ensures that anyone with backend access to the user database is not able to access user profile details without the appropriate permissions in place.

After the upgrade, new user records will be encrypted when they are saved to the server, and user records that existed before the upgrade will be encrypted when they are modified, whether through user updates in DFadmin, user profile changes in DFweb (User Profile page or ePRO Management page) or DFexplore, or user imports in DFadmin or using DFuserPerms command line interface.

Note that this change prevents USER records from being read directly from DFuserdb.log. Instead, use the API, DFuserPerms command line interface, or DFuserdb -export to retrieve user records.

Updated User Guide Access in Desktop Apps

Selecting Help > Topics from the application menu in any desktop application now opens the corresponding user guide in the system’s default web browser. This replaces the previous behavior of displaying the Topics dialog within the application.

The new web-based user guides include the following features:

New DFdiscover Report: Subject Schedule of Pages

A new standard report, Subject Schedule of Pages, is available listing the status and requirement of all pages at all visits by subject. This report provides an accounting of all visit and page requirements according to the visit map and conditional maps, providing a comprehensive look at data requirements and page status and assisting with troubleshooting visit scheduling issues. Learn more.

By default, the report output is limited to the first 100,000 rows. Use the report filters to restrict the output and load results more quickly in large studies. Filters available include by site, subject IDs, visits, and plates.

The report is available in DFexplore and DFweb under the Subject Scheduling group. To enable access to this report, select ‘DF_SBpageschedule’ under Tools & Reports > DFdiscover Reports in the role definition in DFadmin.

Tabular Listing Report Updates

All tabular listings in DFdiscover now display the number of results shown in the table. The number of results updates dynamically when applying search criteria to filter the results.

Optional pagination controls have been added to tabular listing reports in the DFexplore Reports and Dashboard Views. Use the -limit parameter in the report options to control how many results to display per page, and use the -start parameter to identify which result to start at (default 0). When pagination is enabled, you can navigate to the next, previous, last, and first pages in the report and see the total number of pages available.

The History of Changes report has been updated to limit the maximum number of results to 100,000 by default to prevent loading issues and delays. Custom tabular listings defined in DFexplore’s List View default to display all results.

When downloading the HTML version of a paginated report, only the current page is downloaded. To get the full listing of results, download the report in Excel, csv, or dat format.

DFengage Configuration for Administrators

For organizations using the DFengage web app and sending invite and login links through DFweb’s ePRO Management page, the DFengage web app’s fully qualified domain name (FQDN) must be defined in the server configuration. The DFnet-managed DFengage web instance is dfengage.dfdiscover.com. To implement, the system administrator must add the parameter dfengagefqdn followed by the FQDN as a new line in the DFedcservice.cf configuration file on the DFdiscover server. The invite and login links use the same API used by DFweb. Learn more.

DFadmin Study History Fix

A bug in DFadmin history has been fixed where a user could be incorrectly listed as active in the study history. This issue occurred when an inactive user with study role permissions was reactivated. By default previous study access is not reinstated when a user’s status changes from inactive to active, but the history had incorrectly reported the user as active in the previous study.

This fix requires the DFdiscover administrator to run the DFadmindb utility with the -reload option after the upgrade. Learn more.

DFws API Security Update to TLS Version 1.3

Important security improvements were made to the DFdiscover DFws API which require all API client connections to use TLS v1.3 or later.

As a result of this important update, DFcollect 5.9 and earlier will not be able to connect to DFdiscover API 5.10 or later. Before upgrading the DFws API to version 5.10 or later, ensure that all DFcollect users have upgraded to version 5.10 or later. Since DFcollect 5.9 and earlier does not support TLS v1.3, it will be unable to connect to DFws API version 5.10 or later.

DFweb

DFweb ePRO Management for Study Teams

A new page is available in DFweb for the management of ePRO users in studies using DFengage. This tool enables clinical site staff to register study participants, send invitation emails, and track ePRO progress for each participant while ensuring the security and protection of participant’s personal identifying information (PII). The registration process is configurable in DFsetup to customize the workflow by study.

Users are initially displayed as Inactive after the accounts are created by a study administrator in DFadmin at study start. Site staff register each participant by providing their details (name, email address, time zone, and language), verifying their information and eligibility, and confirming whether to send an invite email.

Once a participant is registered and their ePRO activities have been initiated, their status is updated to Upcoming, Due Now, Overdue, or Completed, according to the status of their activities in DFengage. Note that the ePRO Management tool provides study participants with access to the DFengage app but does not make activities available in DFengage. Activities still become available in DFengage to each study participant based on their visit schedule, triggered by the baseline visit date entered in the CRF.

The top of the ePRO Management page provides a search and filters to easily identify specific participants or those requiring follow-up for any overdue activities. Clicking any participant in the list displays additional details and provides multiple actions, including the ability to edit the subject profile, view last login and data sync, and provide support to participants with invitations and login links.

Audit trail logs are also available in the subject details view, including the ePRO account log which shows the audit trail of subject registration and any profile changes, and ePRO access log which shows the audit trail of participant actions in DFengage including login, logout, start activity, and submit activity. The audit trail of data changes for each activity is available at the page level in the CRF view in DFweb.

Access to the ePRO Management tool is controlled at the user and site level, with three different levels of access: ePRO Manager (full access), ePRO Monitor (view access including PII), and ePRO Viewer (view access without PII). Access to this feature is enabled per user account under ePRO Admin Permissions in DFadmin. DFweb ePRO Management is only available when connected to DFdiscover server and API version 5.10 and later.

Elevate the clinical site experience with an ePRO management portal that streamlines DFengage participant onboarding & follow-up, whether participants are in clinic or remote. Learn more.

DFweb Access Role Permission Updates

DFweb has been updated to implement additional permissions based on the role definition. These updates allow for more granular control over access to DFweb pages and features, specifically the Dashboard, Subjects, Tasks, Queries, and Reports page, and provides consistency with access controls over the same functionality in DFexplore.

The following permissions in the DFadmin role definition now define DFweb functionality access as follows:

This update impacts all users with permissions to access DFweb and applies when connecting to DFdiscover 5.10 or later. Review and update role permissions prior to upgrading to version 5.10 to ensure DFweb access is not disrupted for existing users. Learn more.

Field Navigation Taskbar in DFweb

A field navigation taskbar is now optionally available in DFweb on smaller screens where users may not have a physical keyboard or mouse. The navigation taskbar is displayed at the bottom of the CRF page and is designed to improve usability by simplifying navigation on tablets and phones. The taskbar is especially useful for studies using dynamic rules for showing and hiding fields.

This field navigation taskbar is available per study on tablet and phone sized screens based on the new global setting available in DFsetup. For users on desktop screens, a preference is available on the Settings page for individual users to enable as needed, if they wish. Learn more.

Require Microsoft Single Sign On for Specific Users

Specific DFweb users may be required to login with their Microsoft account, preventing login with standard DFdiscover user credentials. This feature allows organizations to prevent DFdiscover access for specific individuals (for example, internal staff) without an active, valid Azure Entra ID account, providing an extra layer of security.

This option is enabled by study administrators per user. With this feature enabled, DFweb users are required to login with their Microsoft account and will not be able to login with their DFdiscover credentials.

Input Validation for Enhanced XSS Protection

A new input validation and cleaning feature has been added to DFweb to enhance protection against cross-site scripting (XSS) attacks.

When this feature is enabled for a study, DFweb automatically validates all string data enter by users before saving to the database. If potentially unsafe content is detected, DFweb cleans the data and prompts the user to review and confirm the updated values before saving, ensuring data accuracy without compromising security.

This feature can be enabled or disabled per study in the DFadmin study configuration and is disabled by default.

By enabling this setting, system administrators can strengthen DFdiscover server security by preventing malicious scripting from being introduced through user-entered data.

DFcollect

DFcollect Access Role Permission Updates

DFcollect has been updated to implement additional permissions based on the role definition. These updates allow for more granular control over access to DFcollect pages and features, specifically the Dashboard, Subjects, Tasks, and Queries pages, and provides consistency with access controls over the same functionality in DFexplore and DFweb.

The following permissions in the DFadmin role definition now define DFcollect functionality access as follows:

This update impacts all users with permissions to access DFcollect and applies when connecting to DFdiscover version 5.10 or later. Review and update role permissions prior to upgrading to version 5.10 to ensure DFcollect access is not disrupted for existing users. Learn more.

Field Navigation Taskbar in DFcollect

A field navigation taskbar is now optionally displayed in DFcollect to support users on tablets and phones. The navigation taskbar is displayed at the bottom of the CRF page and is designed to improve usability by simplifying navigation. The taskbar is especially useful for studies using dynamic rules for showing and hiding fields.

This field navigation taskbar is available per study based on the new global setting available in DFsetup.

Login with Microsoft in DFcollect

Single sign on (SSO) with Microsoft is now supported in DFcollect when connecting to DFdiscover servers that have been configured to require SSO login for all users. SSO is not otherwise supported in DFcollect, even if the user has the ‘SSO Only’ option enabled in their profile.

Note that logging in with SSO prevents the offline use of DFcollect. Users require an active internet connection to log in with SSO and to remain logged in during their session. If the user’s connection is lost while logged in to DFcollect using SSO, they will be logged out.

As a result, enabling server-wide SSO login is not recommended for organizations allowing connections from DFcollect on their server.

All Updates

General

Includes updates to the DFdiscover server, API, and desktop client tools.

Order ID App Type Description
1 9970 DFadmin, Server, API New Several updates have been made to DFadmin, the server, and the API to support extended ePRO user management capabilities. See details.
2 11645 Server New DFdiscover now sends email reminders for new and overdue activities to ePRO study participants using DFengage web, providing an alternative to the push notifications sent to study participants using the DFengage mobile app. See details.
3 9446 DFsetup New DFsetup now provides global settings to customize a study’s ePRO registration process in DFweb. See details.
4 11898 Server & API New Templates for each study’s ePRO invitation, login, and activity reminder emails can be defined using the DFmsgtemplates configuration file. See details.
5 11571 DFsetup New We have expanded the character limits for the Prompt field property as well as the text defined in eCRF table headers and cells from 256 to 1500. See details.
6 12628 DFsetup New A new global setting has been added in DFsetup to enable the new field navigation taskbar in DFcollect and DFweb, designed to improve usability by simplifying navigation on tablets and phones. See details.
7 11626 DFsetup, DFexplore New A new visit property in the DFsetup visit map can be enabled to display repeating forms in one visit folder in the subject binder in DFexplore. See details.
8 10928 DFexplore Change Timestamps in DFexplore now display the UTC offset of the server time or the user’s local time as appropriate. See details.
9 11304 DFexplore, DFsetup Change A new setting in DFsetup controls when a red asterisk appears on the eCRF in DFexplore next to the prompt for fields that are defined as required or essential. See details.
10 11531 DFexplore, Server Change A reason is now added to the audit trail when a data record has been created by changing one or more key fields on an existing record. See details.
11 8976 DFsetup New The setup import functionality in DFsetup has been updated with options to replace or update existing modules and styles when importing setup from another study or from an Excel or JSON file. See details.
12 11602 Server, DFsetup New A new field property provides the option to encrypt data values for specific fields using OpenSSL 256-bit AESto ensure the protection of sensitive data. See details.
13 11676 DFsetup New A new global setting allows DFsetup users to restrict field names and aliases to 32 characters to ensure variable name length limits for statistical packages are followed. The default field name and alias character limit of 80 remains the default. See details.
14 12002 All New A user-specific ‘SSO Only’ option is now available in DFadmin to require login with Microsoft when logging in with DFweb or any of the desktop applications. See details.
15 10547 All New Administrators are now able to configure their DFdiscover server to accept logins through Microsoft Single Sign On only, disabling login with standard DFdiscover username and password credentials. See details.
16 12189 DFadmin New A new study configuration option has been added in DFadmin to enable input validation in DFweb to enhance protection against cross-site scripting (XSS) attacks. See details.
17 12196 All Change User profile data is now encrypted to enhance the protection of personally identifying information (PII), ensuring only authorized users are able to access PII such as name and email address for any DFdiscover user, including study participants. See details.
18 7884 Desktop apps Change The user guides for each desktop application now open in a web browser, replacing the Topics dialog. See details.
19 11530 Reports New A new standard report, Subject Schedule of Pages, is now available as a standard report. See details.
20 8541 Reports, DFexplore New Tabular listing reports have been updated to display the number of results in the listing and provide page navigation controls for large listings in DFexplore. See details.
21 12267 Server New For organizations deploying their own web instance of the DFengage ePRO application, the DFengage web fully qualified domain name (FQDN) must be defined in the server configuration to ensure the correct ePRO invitation and login links are sent to participants. See details.
22 12385 Server Fix A bug in DFadmin history has been fixed where a user could be incorrectly listed as active in the study history. Note that this fix requires the DFadmindb utility to be re-run with the -reload option. See details.
23 12081 API Change Important security improvements were made to the DFdiscover DFws API which require all API client connections to use TLS v1.3 or later. Before upgrading the DFws API to version 5.10 or later, ensure that all DFcollect users have upgraded to version 5.10 or later. See details.
24 11390 DFATK Change The Acceptance Test Kit has been updated to incorporate new features and enhancements available with the DFdiscover 5.10 release.
25 11395 Documentation Change Various fixes and improvements have been applied to the documentation.
26 10834 DFexplore, DFsend Fix The Microsoft SSO login process has been updated to recognize the application language used by DFexplore or DFsend (available in English, French, Spanish, and Chinese) and correctly display the Microsoft login dialog in the corresponding language.
27 11638 DFexplore, DFsetup, DFadmin, DFsend, DFATK Change The desktop login screens have been improved to support a more extensive server connection history for users working across multiple DFdiscover servers. The DFdiscover Server field dropdown now displays the last 20 servers you have connected to, increasing from the previous limit of five. When typing into the DFdiscover Server field, the server may be auto-completed from up to 100 previously connected servers, making it easier to reconnect to known servers without retyping the full name.
28 11359 DFexplore, DFsetup, DFadmin Fix A bug was fixed in DFexplore, DFadmin, and DFsetup on macOS when using dark mode. Previously, history saved to PDF in dark mode was not readable. This has been corrected.
29 12222 DFexplore, DFpdfpkg Change Printing eCRF plates which span multiple PDF pages has been improved. Previously, when creating subject packages or bookmarked PDFs, an eCRF plate with a length of more than one page was scaled down and printed as tiles on a single PDF page. Now, each page of an eCRF plate is printed on its own PDF page, with a corresponding bookmark. The bookmark adds “(data 1)”, “(data 2)”, etc. to each page to create unique labels. This update was previously applied to PDFs saved using File > Save as PDF in DFexplore’s Data View, and has now been applied to bookmarked PDFs and subject packages created in DFexplore or with the DFpdfpkg utility.
31 11627 DFexplore, Server Fix We’ve improved the display of page label substitutions using field values in the subject binder. Previously, if a value was blank or the CRF had yet been loaded, the field value was displayed as “???”. Now, the field value is displayed when the subject binder is loaded, and remains blank if the field is blank. This fix requires both DFexplore and DFdiscover server version 5.10 or later.
31 11383 DFexplore Change In the DFexplore metadata editor panel, when manually adding a reason on a data field, the reason ‘Set by user action’ is no longer auto-populated in the reason field. This avoids the likelihood of reasons being added without sufficient information.
32 11603 DFexplore, DFexport, DFexport.rpc Fix Issues with partial date fields defined without the day and/or month (e.g., yyyy/mm) have been addressed. The dfmissing() edit check function now correctly returns false if a date is provided (it previously returned true), and date imputation is now correctly applied to these partial date fields when enabled in DFexplore or data exports.
33 12041 DFexplore, DFexport, DFedcservice Fix A data export bug was fixed in DFexplore List View, DFexport, and the server when labels are displayed in place of codes, in the specific case where the “No Choice” code is not zero and the label is empty.
34 11926 DFexplore Fix A bug was fixed in DFexplore where the calendar date picker could not be opened on the active field after closing an edit check dialog.
35 11567 DFexplore Fix An issue in DFexplore with text (string) fields in an eCRF table has been addressed. Previously, in some scenarios text fields did not expand as expected when multiple lines of text were entered, making it difficult to see the data as it was being entered. Now, text fields in eCRF tables automatically expand on entry if multiple lines of text may be entered in the field.
36 11563 DFexplore Fix Scrolling is improved in DFexplore when navigating via keyboard through fields on a CRF in Data View, specifically for choice fields with radio button options displayed across multiple rows. The page now scrolls to display all choice options when a field is selected.
37 11573 DFsetup, DFexplore Fix A bug was fixed in DFsetup and DFexplore where choice fields within an eCRF table where the column alignment was set to “right” was not correctly right-aligned.
38 11750 DFexplore Fix A bug was fixed in DFexplore that caused the first check field in a group to be displayed incorrectly within an eCRF table when the prompt was more than one line.
39 11545 DFexplore, DFsas Fix A bug has been fixed that caused DFsas to fail with a “Connection refused” error when run in DFexplore with ‘Enforce role permission’ enabled, following an upgrade to version 5.9. The issue stemmed from a new BINDADDR entry introduced in DFedcservice.cf, which blocked DFexport -S DFSERVER connections to localhost. This update modifies the server behavior so that the DFSERVER environment variable is automatically set to the server’s fully qualified domain name (FQDN), resolving the connection issue. DFexport now uses this value in the same way it handles other authentication variables such as DFUSER and DFPASSWD.
40 11375 DFexplore Fix A bug was fixed in DFexplore where having the Show Field Properties dialog open when the user is automatically logged out could result in a crash on macOS.
41 11405 DFexplore Fix An issue in the DFexplore Image Router has been addressed where clicking the Identify button while a page was being processed would identify the next page in the list before it was displayed, leading to possible issues for those with slower network connections.
42 12293 DFexplore, DFweb, Server Fix A bug was fixed in DFexplore and on the server side that caused a study to freeze when opened by a user with a specific combination of permissions for a study. This issue occurred when the DFadmin user role permissions included two rows for the same study where Subjects was specified as ‘ALL’.
43 11334 DFsetup Change When a user connects to a DFdiscover server with a version older or newer than the DFsetup version, a warning message now appears below the Logout button before a study is selected. This helps ensure that the updated DFsetup version is used after the DFdiscover server is upgraded to take advantage of new features, and helps avoid the use of newer DFsetup versions with older DFdiscover servers.
44 12309 DFsetupdb Fix A bug was fixed where setup history could report timestamps that were off by 1 hour due to an issue with time zone calculations. This fix ensures the correct timestamp is shown in DFsetup history moving forward from the time of upgrade. To correct all past timestamps from prior to the upgrade to 5.10, re-run the DFsetupdb command-line utility program to reload the setup schema files to the DFsetup.db SQLite database.
45 10098 DFsetup Fix A bug was fixed in DFsetup where style inconsistencies could be incorrectly flagged in some scenarios when importing setup definitions from another study or a file.
46 12138 DFsetup Fix A bug was fixed in DFsetup where the ‘No choice’ label for a dropdown choice field in an eCRF table was not displayed in Desktop Preview mode.
47 11927 DFsetup Fix A bug was fixed in DFsetup where no setup state warning appeared if a field description exceeded its allowed number of characters. A warning is now displayed for any field description with more than 40 or 25 characters (based on the field description character limit defined under Global Settings > Fields).
48 11376 DFsetup Fix A bug has been fixed in DFsetup where the Edit Checks window could crash when saving changes.
49 11562 DFsetup Fix A bug was fixed in DFsetup’s Edit Checks window so that any reported syntax errors are still displayed when switching to a different edit check source file.
50 11486 DFsetup Fix A bug was fixed in DFsetup that extended the auto logout time in the login dialog, while user is logged in but no study is selected. The user is now logged out after one minute of inactivity.
51 11510 DFsetup Fix A bug was fixed in DFsetup’s Field List view where the Constant and Constant Value properties were not displayed correctly for non-string data fields.
52 11513 DFsetup Fix A bug was fixed in DFsetup’s Field List view where a custom selection of columns to display was not correctly remembered in later sessions.
53 11437 DFsetup Fix A bug has been fixed in DFsetup Custom Properties dialog where the Description field truncated values if more than 40 or 25 characters were entered (based on the field description character limit defined under Global Settings > Fields). The Description field now limits the number of characters that can be entered.
54 12193 DFadmin Fix Study history in DFadmin has been updated to exclude study administrator access changes prior to the creation of the first role in the study. This resolves the issue where study administrator access to all studies was shown in study history before the study was created.
55 12132 Reports Fix Corrections and improvements were made to the help information for DFdiscover standard reports.
56 12157 DFexport Fix A bug was fixed in DFexport that caused the subject ID to be included instead of the subject alias when exporting a custom view with the -usealias option.
57 11819 API Fix DFws been updated to ensure compatibility with two-digit minor versions (e.g., 5.10). When upgrading to DFdiscover server 5.10, the API must also be upgraded to 5.10, or have the appropriate patch applied to their 5.8 or 5.9 version of DFws.
58 12505 API New The DFws API request ‘resetpass’ accepts a new parameter ‘passwordChangeUrl’ from the DFengage API client account to support password reset requests through the DFengage web app. The API does not accept this parameter from any other API client accounts.
59 10546 API New All API responses now include the HTTP header ‘Cache-Control: no-store’. This change ensures that sensitive data returned by the API is not unintentionally cached on user devices or intermediary systems. The update aligns with best security practices for protecting confidential clinical data during transmission and access.
60 10102 Server, API New The ‘getrecord’ API request has been updated to support an optional ‘lock’ parameter so that a data record can be retrieved and locked with a single request. The API response will include the lock response together with the record response. Similarly, the ‘putrecord’ API request has been updated to support an optional ‘unlock’ parameter so that the data record can be unlocked after it is saved without sending a second request.
61 10103 Server, API Change The ‘setuppackage’ API has been expanded to include additional setup components and support selective content retrieval via a ‘?include=NAMES’ query parameter, with the aim of improving performance in API client applications. The new ‘include’ parameter enables API clients to request only the needed components such as setup, centers, visitmap, and the newly added logo and crftypemap in addition to receiving the full package in a single request. If no include parameter is specified, the full package, which has been expanded to include logo and crftypemap, will be returned by default. These improvements help streamline network communication while preserving flexibility for varied API use cases.
62 11693 Server, API Fix An issue in both DFedcservice and DFws was fixed to allow the dfexecute edit check function to include special characters % and :. Previously, if the dfexecute function included these special characters, the script failed to run. DFws has also been updated to accept POST requests for the dfexecute function and will continue to support GET requests for backwards compatibility.
63 12214 Server, API Change The server and API have been updated to support additional role permissions for API client applications including DFweb and DFcollect to align with DFexplore access rights. The permissions object in API requests now includes the following DFexplore tool permissions: Print/Save Images, Print/Save Reports, Dashboard View, Data View, Queries View, Reports View, and Miscellaneous - May disable edit checks.
64 11544 Server, API Fix A bug has been fixed in the API responses for ‘centers’ and ‘setuppackage’ to more accurately enforce role-based tool permissions. Previously, users with access to multiple sites under different roles could see all associated sites listed in DFweb, even when some roles lacked the required tool permissions. With this update, API responses now exclude any sites or subjects for which the user’s role lacks the appropriate tool permissions (e.g., DFweb). Additionally, any site with no accessible subjects is excluded from the ‘centers’ response, ensuring a cleaner and more accurate representation of user access.
65 11588 Server Fix A bug was fixed on the server related to the enforcement of hidden field permissions across all history and audit trail views. Previously, users without permission to view hidden fields could still see hidden or masked field data in some views, while the simplified page history correctly excluded this data. With this fix, users whose roles do not have permission to view hidden fields no longer see this data in any audit trail output or history view.
66 11871 Server Fix A bug in visit scheduling was fixed in relation to scheduled repeating visits. When a visit number range had the S (Scheduled) visit type, only the first visit in the range became required, and subsequent visits in the range remain required. Now each visit becomes required on the schedule date as the previous visit is completed.
67 11527 Server Fix A bug was fixed in visit scheduling that could impact studies using DFengage without capturing a visit date at ePRO visits. Previously, in studies that did not capture a visit date on ePRO pages, these activities could be incorrectly flagged as unexpected and therefore removed from DFengage when any data at the cycle termination visit was completed. With this update, when data is received at the termination visit but no valid visit date is available, that visit will no longer be marked as unexpected. This ensures proper availability of ePRO activities in DFengage when visit dates are not explicitly captured at ePRO visits.
68 11605 Server Fix A bug has been fixed where temporary files created on the server were not cleared. Temporary files are now deleted when the session is closed. In the rare case of a server crash, temporary files may need to be removed manually by an administrator.
69 11398 DFws, DFweb Change Both DFws and DFweb installers have been updated so that both services are run as dedicated accounts on the server rather than as root.

DFweb

Order ID App Type Description
1 5929 DFweb New DFweb now provides an ePRO Management page for site staff and study teams to securely register, track, and manage study participant access to the DFengage ePRO application. See details.
2 11855 DFweb Change DFweb has been updated to implement additional permissions based on the role definition. This impacts all users with permissions to access DFweb. Review and update role permissions prior to upgrading to version 5.10 to ensure DFweb access is not disrupted for existing users. See details.
3 12629 DFweb New A new field navigation taskbar may optionally be enabled in DFweb per study, through a global setting in DFsetup. The taskbar is designed to improve usability by simplifying navigation on tablets and phones. Users on desktop screens may additionally opt into the navigation taskbar on their Settings page. See details.
4 12586 DFweb New DFweb supports single sign-on (SSO) only login configuration at both the server and user level as defined by system or study administrators. This ensures that users authorized to login with their Microsoft account only are not able to login with standard DFdiscover username and password credentials. See details.
5 11669 DFweb New DFweb performs input validation on all string data values submitted to the database to enhance protection against cross-site scripting (XSS) attacks, when enabled for a study. If any data is cleaned through this process, the user is informed and asked to review the updated data values to ensure they remain accurate before saving. This setting may be enabled per study in the DFadmin study configuration and is disabled by default. See details.
6 11636 DFweb Fix DFweb’s login page has been updated to improve usability when pasting credentials from other windows or browser tabs. Previously, the username field was cleared as soon as the user navigated away from the login page, making it difficult to complete the login process if retrieving the password from another source. With this update, the entered username is only cleared after 90 seconds of inactivity. This provides a smoother, more reliable login experience across all supported browsers and devices without compromising security.
7 12612 DFweb Fix A bug was fixed in DFweb where it was not possible to open a CRF linked from a listing in a report or on the dashboard when the subject alias setting was enabled.
8 12560 DFweb Fix A bug was fixed in DFweb where, when navigating through eCRF fields using the Tab key on a plate with a table longer than the current window, the page would scroll when the field focus was in the middle of the page. The page now scrolls when the field focus reaches the bottom of the page.
9 12562 DFweb Fix A bug was fixed in DFweb where the subject alias was incorrectly displayed as an illegal value if it was longer than the subject ID store length and did not have a format defined.
11 12160 DFweb Fix A bug was fixed in DFweb where the value of the system field DFSTATUS was not correct on plate exit. The fix ensures that the DFSTATUS value matches DFweb’s evaluation of the plate’s status on plate exit. Note that in some circumstances the plate’s status may change when the record is saved to the server, after edit checks have run.
12 10771 DFweb Fix A bug was fixed in DFweb where, when referencing the current record’s DFRASTER field in an edit check, the DFRASTER value was not updated when a document was attached until after the record was saved. DFweb now updates the DFRASTER value immediately once a document is attached.
13 12159 DFweb Fix A bug was fixed in DFweb which prevented the dfdirection edit check function from functioning as expected.
14 12566 DFweb Fix A bug was fixed in DFweb where lookup table results from the dflookup() edit check function were sorted incorrectly under specific conditions. This occurred when the #F result specification in the lookup table included multiple fields in an order different from their column sequence (e.g., 4,3,1) or included more than nine fields. These conditions led to inconsistent sorting of lookup results, potentially impacting data retrieval accuracy. With the fix, lookup results now consistently maintain the expected order.
15 12051 DFweb Fix A bug was fixed in DFweb where if a field was hidden using the dfaccess() edit check function, any plate exit edit checks placed on that field did not run. The fix ensures that plate exit edit checks run on fields that have been hidden by edit checks.
16 12557 DFweb Fix A bug was fixed in DFweb where if a field was hidden using the dfaccess() edit check function, any plate enter edit checks placed on that field did not run. The fix ensures that plate enter edit checks run on fields that have been hidden by edit checks.
17 12568 DFweb Fix A bug was fixed in DFweb where fields changed to view-only using the dfaccess() edit check function could still be modified by clicking external buttons, specifically the Reset button for choice fields or the calendar button for date fields. This issue occurred when the field’s view-only status was applied dynamically on field enter by an edit check using the dfaccess() function, and the user interacted with the external button before entering the field. This unintended behavior allowed modifications to fields that should have remained read only. With the fix, fields set to view only now correctly maintain that status, regardless of user interactions with external buttons.
18 12570 DFweb Fix A bug was fixed in DFweb related to problems with edit checks that use the dfaccess() function to hide any field within a table other than the current field, combined with functions that require user interaction or otherwise cause DFweb to wait before exiting the field. The fix resolves the issue where the user is unable to move to the next field or save CRF changes when this edit check is run.
19 12555 DFweb Fix The dfmessage dialog displayed in DFweb in case of edit check assigned value errors has been fixed to ensure HTML code is not displayed.
20 11979 DFweb Fix A typo was fixed in the Two Factor Authentication dialog in DFweb, replacing “Trust this device” with “Trust this browser”.
21 11833 DFweb Fix DFweb has been updated for compatibility with DFdiscover product version numbers that include two digits, e.g., 5.10.0.
22 10237 DFweb Fix We have strengthened DFweb security by implementing Content Security Policy v2 (CSP) headers across all HTML content responses. This enhancement helps protect against cross-site scripting (XSS) vulnerabilities. A new ‘cdn’ variable has been added to the DFweb server’s environment.json with a default value of ‘cdn.dfdiscover.com’. This variable supports a space-delimited list of CDN or server URLs, allowing flexibility to define multiple CDNs or other URLs to be allow-listed. This update reduces exposure to XSS attacks while preserving compatibility with Angular, Flutter, and DFdiscover reports.
23 10238 DFweb Fix The security of DFweb is improved by helping ensuring sensitive data is not cached by the browser.
24 11413 DFweb Change Flutter has been upgraded to version 3.35.1.

DFcollect

Order ID App Type Description
1 11859 DFcollect Change DFcollect has been updated to implement additional permissions based on the role definition. This impacts all users with permissions to access DFcollect. Review and update role permissions prior to upgrading to version 5.10 to ensure DFcollect access is not disrupted for existing users. See details.
2 12266 DFcollect New A new field navigation taskbar may optionally be enabled in DFcollect per study, through a global setting in DFsetup. The taskbar is designed to improve usability by simplifying navigation. See details.
3 11592 DFcollect New Single sign on (SSO) with Microsoft is now supported in DFcollect when connecting to DFdiscover servers that have been configured to require SSO login for all users. See details.
4 12212 DFcollect New A link to the DFcollect User Guide is now provided in the app menu for online use. The user guide will open in the web browser on the device.
5 12247 DFcollect Change The attach document interface in DFcollect has been updated on Android to comply with device privacy policies. When selecting a photo or document to attach to a CRF, DFcollect now uses the device’s native file selection interface. Making a selection in the file browser attaches that file to the CRF immediately. To cancel attaching a new document, use the back button to return to the CRF in DFcollect.
6 11367 DFcollect Fix An issue has been fixed in DFcollect where fields with the designated usage defined in DFsetup for local eSignature timestamp, local creation and modification timestamps, and study language preference were not shown on the page immediately after saving the CRF.
7 11433 DFcollect Fix The layout of dropdown choice fields has been improved in DFcollect, removing unnecessary space displayed in some cases above and below the dropdown field.
8 11542 DFcollect Fix A bug was fixed in DFcollect with page labels that included a visit number substitution but no field 6 was defined on the plate (Sequence is = predefined in the plate properties). The page label now correctly displays the visit number whether field 6 is defined on the plate or not.
9 11361 DFcollect Fix A bug was fixed in DFcollect where the subject alias was displayed incorrectly after syncing with the server when the subject was created while offline.
10 11754 DFcollect Fix A bug was fixed in DFcollect to allow the dfexecute edit check function to include special characters % and :. Previously, if the dfexecute function included these special characters, the script failed to run. This fix requires DFdiscover server and API version 5.10 or later.
11 12305 DFcollect Fix An issue was fixed where the last field in a screen in DFcollect’s CRF view could become view-only when navigating back from another screen on the CRF.
12 12229 DFcollect Fix This fix resolves an issue in DFcollect where the CRF view would unexpectedly reset to the top of the screen when a field was dynamically shown or hidden with edit checks. The screen now retains focus on the appropriate field, preventing workflow disruptions on CRF pages with conditionally hidden fields.
13 7659 DFcollect Change DFcollect on iOS has been upgraded to use Qt 5.15 and now supports TLS 1.3.

Known Issues

This section provides information about low-severity, low-priority issues that exist in the current release, with details about available workarounds. Where possible, known issues are planned to be addressed in a future release.

ID App Description
8557 DFsetup In DFsetup, when pasting a table of data into the Edit Coding table for check, choice, and numeric fields, only code and label may be pasted, and sub label is ignored. As a workaround, type or paste individual sub labels into each field.
12095 DFsetup If the setup definition contains non-printable characters, for example pasted into field help from another application, the exported setup Excel file may not open and instead show an error message indicating there is a problem with the content. To address this issue, ask your system administrator or software support to help identify and remove the non-printable character.
10128 DFsetup In DFsetup, multi-line translation text cannot be imported into the Translations table. As a workaround, enter any multi-line translations directly in the table rather than using the import feature.
8970 DFsetup In DFsetup, when replacing an existing field with a new layout on a CRF background, the Replace Layout dialog appears twice.
10131 DFadmin In DFadmin, if another user modifies the Version Strict setting in the Master tab while a study administrator is logged in to DFadmin, those changes aren’t available to the study administrator until they next log in to DFadmin.
10432 DFweb When an edit check is used to calculate a number and then assign it to a data field, if the number does not fit in the data field, the number is truncated. DFweb shows the user a warning that the calculated value will be truncated, while DFexplore does not. To avoid this warning in DFweb, modify the edit check to truncate the value to the appropriate length before assigning it to the data field.
11355 DFweb When saving a CRF with a hidden field that is illegal (blank required or with a value outside the legal range), in DFweb the record is saved as incomplete, unlike in DFexplore where these records are saved as final. If the CRF needs to be saved as final, adjust your field properties or edit checks to avoid hidden illegal fields in DFweb.
9906 DFweb When logged into DFweb in one browser tab and working in another tab or browser window, you may be auto logged out of your DFweb session earlier than the auto-logout time window.
9914 DFweb In the DFweb CRF view, the Unsaved Changes dialog does not appear in some cases when clicking the back button on iOS and iPadOS devices. Users must save the CRF before using the back button to leave the page to avoid loss of unsaved data.
8041 DFweb When using browser settings to increase the font size, DFweb does not handle the increased text size consistently across the app. As a workaround, use the normal font size setting and instead use zoom settings to improve visibility.
8542 DFweb In DFweb Reports, when resizing the browser window between desktop and tablet size while a report filter popup is open, the popup may remain open after closing the report.
7434 DFweb On Windows, for some reports, scrolling quickly up and down can result in the options in the filter list dropdown disappearing. As a workaround, close and re-open the dropdown to view the options again.
8324 DFweb In DFweb Reports, if a report filter dropdown is open when the user is auto logged out after inactivity, the user is successfully logged out but the report will remain open until it is closed manually.
7594 DFweb When trying to view a PDF document in the Manage Documents dialog on Android mobile browsers, the PDF document may not be shown. As a workaround, use the download option provided in the dialog beside the expand button.
10410 DFweb In DFweb, if the dfpageinfo edit check function references a record not in the current subject binder, for instance for a plate in a visit where the visit number range doesn’t reach that visit yet, it may show the default plate label instead of the defined page label.
8053 DFweb DFweb may stop working if an edit check using the dftrigger function with ” ” in the edit check list is triggered. As a workaround, remove the space from the edit check list in the dftrigger function parameters.
7596 DFweb In the unlikely case an unexpected record is added to the subject binder in DFweb using the dfaddmpqc edit check function and then deleted with dfdelmpqc, the record status is not updated to blank. As a workaround, close and reopen the subject binder to see the correct status.
7570 DFweb In the unlikely case that the dftrigger edit check function is used to open an unexpected record for a different subject in DFweb, the subject binder will not load properly. As a workaround, add the unexpected record to the visit map and use the dfneed edit check function in the DFopen_patient_binder edit check to exclude the record from the subject binder when you don’t want it to be displayed.
10592 DFweb In the unlikely case that a page in DFweb requiring an eSignature includes a hidden field that is illegal (blank required or with a value outside the legal range), the eSignature, provided by a user without permission to show hidden fields or where fields have been hidden with edit checks, is removed when the page is saved to the server. This behavior does not match DFexplore, where the eSignature remains applied even if there a hidden illegal value or blank required field on the page.
7607 DFweb In the unlikely case that a user saves a record to a workflow level they do not have view access to, the record status shows as missed instead of blank. As a workaround, close and reopen the subject binder to see the correct record status.
10690 DFweb When DFweb displays links in the login banner text defined in the DFadmin Master tab, links are displayed with a white font color. As a workaround, use the HTML style attribute to display links in the desired color. For example:help@dfnetresearch.com
12684 DFweb In DFweb Reports, after sorting a table in a tabular listing report using the icons in the column headers, the regular cursor may be displayed instead of the hand cursor when hovering over rows in the listing, even though the row is linked to a data record. Actual interactivity is not affected and reports are still clickable as intended.
12707 DFcollect In DFcollect, the field prompt on a CRF is restricted to a single line for string, date, time, and number type fields, which translates to approximately 92 characters on large tablets and 45 characters on smartphones. Multi-line prompts up to 1500 characters are supported for choice, check, and VAS type fields only. As a workaround, use field instructions above prompt or above field where longer prompts are required for the affected data types.
11360 DFcollect DFcollect only supports lookup tables with a file size below 40 MB. Lookup tables larger than 40 MB in size cannot be loaded or used in DFcollect.
8965 DFcollect Edit check dialogs in DFcollect do not render HTML code. Instead use plain text messages. If required, use the dftool() function to separate plain text messages for DFcollect from HTML formatted messages for DFexplore and DFweb.
12703 DFexplore, Reports When opening a report with pagination in a floating window in DFexplore, the pagination controls do not work as expected. If a different report with pagination is open in the main DFexplore window, the pagination controls in the floating window update the report in the main window instead. As a result, keep paginated reports in the main window when using pagination controls.
12702 DFexplore, Reports After opening a tabular listing report with pagination in DFexplore Reports View from the History section and then attempting to download it, a missing parameter error is displayed and the report cannot be downloaded. As a workaround, run the report again with the same parameters from the DFdiscover Reports section, instead of the History section, and then download it.

Advance Notices

This section provides information about changes planned in a future release that may impact ongoing projects, in particular any features that will be deprecated. These notices are intended to support planning for future upgrades.

  1. Internal Queries Behavior: Internal queries permission implementation will be updated in a future release. The implementation of the Show Internal Queries “none” and “resolved” options in the DFadmin role permissions will be updated in DFexplore, DFweb, and DFcollect to ensure consistency across apps. The following behavior will be implemented:

    1. If internal queries permission is “none” and the role includes full permissions to modify queries, internal queries are view only.

      Current behavior: In DFexplore, internal queries are treated the same as external queries. In DFweb and DFcollect, internal queries are hidden.

    2. If internal queries permission is “none” and the role includes partial or no permissions to modify queries, internal queries are hidden. Internal queries can be created or modified by an edit check with partial query permissions, but the queries will remain hidden.

      No change from current behavior.

    3. If internal queries permission is “resolved” and the role includes full permissions to modify queries, outstanding internal queries are view only; resolved and pending internal queries are treated the same as external queries.

      Current behavior: In DFexplore, DFweb, and DFcollect, all internal queries are treated the same as external queries.

    4. If internal queries permission is “resolved” and the role includes partial or no permissions to modify queries, outstanding internal queries are hidden; resolved and pending internal queries are treated the same as external queries. Internal queries can be created or modified by an edit check with partial query permissions, but the queries will remain hidden when outstanding.

      Current behavior: In DFexplore, all internal queries are shown and view only. In DFweb and DFcollect, all internal queries are hidden.

  2. Edit Checks in View Only Mode: The behavior of edit checks on view-only data will be updated for consistency in a future release. Currently, when the ‘Run edit checks in view mode’ global setting in DFsetup is disabled, DFexplore/DFcollect and DFweb behave slightly differently:

    • DFexplore: Edit checks don’t run only when user is in ‘view mode’, which is enabled automatically for users who have only view-only permissions to all data but is not always enabled when the current page is view-only.

    • DFweb: Edit checks don’t run on a record any time the user has view-only/read only access to the data record for any reason (view mode, locked record, permissions).

    • DFcollect: Same as DFexplore.

    This discrepancy will be addressed by updating DFexplore and DFcollect to match DFweb, so that if the ‘run edit checks in view mode’ setting is disabled, edit checks will not run whenever a plate is view-only (not just when user is in view mode).

  3. Legacy Setup Formats: The modular and legacy XML setup formats have been fully replaced by the JSON format. The XML export options in DFsetup will be removed in a future release.

  4. Protus Fax Support: The Protus fax service is no longer supported in DFdiscover after MyFax sunsetted their API in 2021. The Protus functionality will be removed from DFadmin in a future release.

Server Upgrade

This section is applicable only to DFdiscover administrators hosting their own DFdiscover installation. This section outlines requirements and considerations for upgrading DFdiscover, DFws API, and DFweb to Version 5.10.0.

This release of DFdiscover is a complete release. It can be installed as a new install or as an upgrade of any previous release. Existing studies will continue to work in the updated installation.

See the Software Installation Guide for full details on upgrading your DFdiscover server as well as your DFws API and DFweb server instances.

Software Components

DFdiscover 2025 Version 5.10.0 includes updates to the DFdiscover server, DFws API, and DFweb server installation packages, as well as a new DFengage server installation package which are available as RPM files from the DFnet website under My Account > Software Release (account required). DFdiscover reports are available from cdn.dfdiscover.com (see Update CDN_URL). The build dates for all software components are:

Supported Configurations

DFdiscover 2025 Version 5.10.0 is supported on Novell openSUSE version Leap 42.1 and newer, SUSE Tumbleweed and Redhat Enterprise Linux (CentOS) versions 8.X and 9.X. DFdiscover is a 64-bit server application and will not run on 32-bit systems. Other Linux distributions may work but are unsupported. Debian distributions such as Ubuntu will not work at this time. The same configurations are required for the DFws API and DFweb servers.

Version Compatibility

For clients managing their own DFdiscover server and API and/or DFweb instance, we recommend upgrading all three components at the same time to ensure all new features, enhancements, and bug fixes are available.

It is possible to upgrade the DFws API & DFweb without also upgrading the DFdiscover server, however please note that not all updates in Version 5.10.0 will be supported with an older DFdiscover server. See All Changes for notes about the features and changes that require DFdiscover server and/or API Version 5.10.0 or later.

If using mismatched DFdiscover versions, key considerations include:

Upgrade Considerations

The following section outlines potential upgrade steps required for DFdiscover administrators (and study administrators, as appropriate) when upgrading an existing DFdiscover release to Version 5.10.0. Refer to the Software Installation Guide for complete details on new and upgrade installations.

Update CDN_URL

Required

To get the latest updates to the DFdiscover standard reports, the CDN_URL must be updated in DFadmin. The resources used to display the DFdiscover standard reports are specified in the value of CDN_URL in the system master configuration. To inspect and update the value:

  1. Log in to DFadmin. Click the Master tab to display the master configuration panel.

  2. Inspect the value specified for CDN_URL. If the value reads ‘https://cdn.dfdiscover.com/v5.10’, it is already up to date and no change is needed. Otherwise, update the value to read ‘https://cdn.dfdiscover.com/v5.10’.

  3. Click Save to apply the change.

Run DFauditdb

Required if upgrading from 5.4 or earlier

If upgrading from a DFdiscover version earlier than 5.5.0, existing journal files must be loaded into the new audit database for each study. DFauditdb is provided for this purpose. Until study journal files are loaded, it is not possible to view page or field history or run DF_SBhistory.

Load the new audit trail database for all ongoing studies using this command as either user datafax or root:

/opt/dfdiscover/utils/DFauditdb -reload -s all

Run DFadmindb

Required

Existing user and role history must be loaded (or reloaded, if loaded with a previous upgrade) into the admin history database. DFadmindb is provided for this purpose. Until the admin history is loaded, it is not possible to view User, Role, or Study History in DFadmin. If previously loaded, reloading is required with the 5.10 upgrade to fix a bug with incorrect study access details.

Load the new audit trail database for all ongoing studies using this command as either user datafax or root:

/opt/dfdiscover/utils/DFadmindb -reload  

Run DFsetupdb

Required

Existing study schema history must be loaded (or reloaded, if loaded with a previous upgrade) into the new setup database. DFsetupdb is provided for this purpose. Until the setup database is loaded, it is not possible to view History in DFsetup. If previously loaded, reloading is required with the 5.10 upgrade to fix a bug with incorrect timestamps.

Load the new audit trail database for all ongoing studies using this command as either user datafax or root:

/opt/dfdiscover/utils/DFsetupdb -reload -s all  

Obtain updated software license

Required if upgrading from 5.8 or earlier and using DFcollect and/or DFengage

Starting with Version 5.9.0, DFengage and DFcollect are licensed features per server. If you are using DFengage and/or DFcollect, you will need a new license that includes the appropriate feature(s) when upgrading your server.

Verify study role permissions

Required

For users of API client tools (DFweb, DFcollect, DFengage, and DFsources), verify that the study roles are set up with the required permissions See Role Permission Considerations for details. Any DFweb, DFcollect, DFengage, or DFsources users may lose their access after upgrading if their roles are not updated to enable access.

Verify version compatibility settings

Required

The Version Strict setting in DFadmin allows you to control version compatibility. If users will be connecting to DFdiscover 2025 Version 5.10.0 using older versions of DFexplore, or if users will be connecting to an older version of DFdiscover through the latest DFweb, DFcollect, or API version, the Version Strict setting must be updated to allow this.

If any version of any client application will be used that does not match the DFdiscover server version, ensure that the master or study Version Strict setting is ‘All minor versions supported’ or ‘Minimum version supported’ in DFadmin.

When ‘All minor versions’ is enabled, the following versions of client applications may be used with DFdiscover 2025 Version 5.10.0 server: 2019 5.2.1, 2020 5.3.2, 2021 5.4.0, 2022 5.5.1, 2023 5.6.0, 2023 5.7.0, 2024 5.8.0, and 2024 5.9.0.

Ensure all DFcollect users upgrade to 5.10

Required

DFdiscover 2025 Version 5.10 is not compatible with DFcollect version 5.9.X or earlier. This is due to DFws API version 5.10 requiring TLS version 1.3 or later. Ensure all DFcollect users upgrade to version 5.10 on their devices.

Copyrights

External Software Copyrights

DFdiscover software uses several third-party software components as part of its server side and/or client tools.

The copyright information for each is provided below. If you would like to receive source codes of these third-party components, please send us your request at help@dfnetresearch.com.

DCMTK software package

Copyright© 1994-2011, OFFIS e.V. All rights reserved.

This software and supporting documentation were developed by

OFFIS e.V. R&D Division Health Eschereg 2, 26121 Oldenburg, Germany

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS “AS IS” AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Jansson

Copyright© 2009-2014 Petri Lehtinen <petri&digip.org>

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Mimencode

Copyright© 1991 Bell Communications Research, Inc. (Bellcore)

Permission to use, copy, modify, and distribute this material for any purpose and without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies, and that the name of Bellcore not be used in advertising or publicity pertaining to this material without the specific, prior written permission of an authorized representative of Bellcore. BELLCORE MAKES NO REPRESENTATIONS ABOUT THE ACCURACY OR SUITABILITY OF THIS MATERIAL FOR ANY PURPOSE. IT IS PROVIDED "AS IS", WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES.

RSA Data Security, Inc., MD5 message-digest algorithm

Copyright© 1991-2, RSA Data Security, Inc. Created 1991. All rights reserved. License to copy and use this software is granted provided that it is identified as the "RSA Data Security, Inc. MD5 Message-Digest Algorithm" in all material mentioning or referencing this software or this function. License is also granted to make and use derivative works provided that such works are identified as "derived from the RSA Data Security, Inc. MD5 Message-Digest Algorithm" in all material mentioning or referencing the derived work. RSA Data Security, Inc. makes no representations concerning either the merchantability of this software or the suitability of this software for any particular purpose. It is provided "as is" without express or implied warranty of any kind. These notices must be retained in any copies of any part of this documentation and/or software.

mpack/munpack

Copyright© 1993,1994 by Carnegie Mellon University All Rights Reserved.

Permission to use, copy, modify, distribute, and sell this software and its documentation for any purpose is hereby granted without fee, provided that the above copyright notice appear in all copies and that both that copyright notice and this permission notice appear in supporting documentation, and that the name of Carnegie Mellon University not be used in advertising or publicity pertaining to distribution of the software without specific, written prior permission. Carnegie Mellon University makes no representations about the suitability of this software for any purpose. It is provided "as is" without express or implied warranty.

CARNEGIE MELLON UNIVERSITY DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL CARNEGIE MELLON UNIVERSITY BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

TIFF

Copyright© 1988-1997 Sam Leffler Copyright© 1991-1997 Silicon Graphics, Inc.

Permission to use, copy, modify, distribute, and sell this software and its documentation for any purpose is hereby granted without fee, provided that (i) the above copyright notices and this permission notice appear in all copies of the software and related documentation, and (ii) the names of Sam Leffler and Silicon Graphics may not be used in any advertising or publicity relating to the software without the specific, prior written permission of Sam Leffler and Silicon Graphics.

THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

PostgreSQL

Portions© 1996-2019, PostgreSQL Global Development Group Portions© 1994, The Regents of the University of California

Permission to use, copy, modify, and distribute this software and its documentation for any purpose, without fee, and without a written agreement is hereby granted, provided that the above copyright notice and this paragraph and the following two paragraphs appear in all copies.

IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, INCLUDING LOST PROFITS, ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE UNIVERSITY OF CALIFORNIA HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND THE UNIVERSITY OF CALIFORNIA HAS NO OBLIGATIONS TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.

OpenSSL License

Copyright© 1998-2019 The OpenSSL Project. All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

  1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.

  2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

  3. All advertising materials mentioning features or use of this software must display the following acknowledgment: "This product includes software developed by the OpenSSL Project for use in .the OpenSSL Toolkit." (https://www.openssl.org/)

  4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to endorse or promote products derived from this software without prior written permission. For written permission, please contact openssl-core@openssl.org.

  5. Products derived from this software may not be called "OpenSSL" nor may "OpenSSL" appear in their names without prior written permission of the OpenSSL Project.

  6. Redistributions of any form whatsoever must retain the following acknowledgment: "This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit. (https://www.openssl.org)

THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT "AS IS" AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

This product includes cryptographic software written by Eric Young (eay@cryptsoft.com). This product includes software written by Tim Hudson (tjh@cryptsoft.com).

Original SSLeay License

Copyright© 1995-1998 Eric Young (eay@cryptsoft.com) All rights reserved.

This package is an SSL implementation written by Eric Young (eay@cryptsoft.com). The implementation was written so as to conform with Netscapes SSL.

This library is free for commercial and non-commercial use as long as the following conditions are aheared to. The following conditions apply to all code found in this distribution, be it the RC4, RSA, lhash, DES, etc., code; not just the SSL code. The SSL documentation included with this distribution is covered by the same copyright terms except that the holder is Tim Hudson (tjh@cryptsoft.com).

Copyright remains Eric Young's, and as such any Copyright notices in the code are not to be removed. If this package is used in a product, Eric Young should be given attribution as the author of the parts of the library used. This can be in the form of a textual message at program startup or in documentation (online or textual) provided with the package.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

  1. Redistributions of source code must retain the copyright notice, this list of conditions and the following disclaimer.

  2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

  3. All advertising materials mentioning features or use of this software must display the following acknowledgement: "This product includes cryptographic software written by Eric Young (eay@cryptsoft.com)" The word "cryptographic" can be left out if the routines from the library being used are not cryptographic related :-).

  4. If you include any Windows specific code (or a derivative thereof) from the apps directory (application code) you must include an acknowledgement: "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"

THIS SOFTWARE IS PROVIDED BY ERIC YOUNG "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

The licence and distribution terms for any publically available version or derivative of this code cannot be changed. i.e. this code cannot simply be copied and put under another distribution licence [including the GNU Public Licence.]

gawk

GNU GENERAL PUBLIC LICENSE Version 2, June 1991

https://www.gnu.org/licenses/gpl-2.0.html

Copyright© 1989, 1991 Free Software Foundation, Inc.

        51 Franklin Street, Fifth Floor, 
        Boston, MA  02110-1301, USA

Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed.

The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Lesser General Public License instead.) You can apply it to your programs, too.

When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things.

To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it.

For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights.

We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software.

Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations.

Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all.

The precise terms and conditions for copying, distribution and modification follow.

TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION

  1. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you".

    Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does.

  2. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program.

    You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee.

  3. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions:

    1. You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change.

    2. You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License.

    3. If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it.

      Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program.

      In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License.

  4. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following:

    1. Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or,

    2. Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or,

    3. Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable.

      If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code.

  5. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance.

  6. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it.

  7. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License.

  8. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program.

    If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances.

    It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice.

    This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License.

  9. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License.

  10. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns.

    Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation.

  11. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY

  12. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.

  13. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

Ghostscript

The files in the base, psi, lib, toolbin, examples, doc and man directories (folders) and any subdirectories (sub-folders) thereof are part of GPL Ghostscript.

The files in the Resource directory and any subdirectories thereof are also part of GPL Ghostscript, with the explicit exception of the files in the CMap subdirectory (except "Identity-UTF16-H", which is part of GPL Ghostscript). The CMap files are copyright Adobe Systems Incorporated and covered by a separate, GPL compatible license.

The files under the jpegxr directory and any subdirectories thereof are distributed under a no cost, open source license granted by the ITU/ISO/IEC but it is not GPL compatible - see jpegxr/COPYRIGHT.txt for details.

GPL Ghostscript is free software; you can redistribute it and/or modify it under the terms the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

GPL Ghostscript is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program so you can know your rights and responsibilities. It should be in a file named doc/COPYING. If not, write to the

    Free Software Foundation, Inc.,
59 Temple Place Suite 330, 
Boston, MA, 02111-1307, USA.

GPL Ghostscript contains an implementation of techniques covered by US Patents 5,055,942 and 5,917,614, and corresponding international patents. These patents are licensed for use with GPL Ghostscript under the following grant:

Whereas, Raph Levien (hereinafter "Inventor") has obtained patent protection for related technology (hereinafter "Patented Technology"), Inventor wishes to aid the the GNU free software project in achieving its goals, and Inventor also wishes to increase public awareness of Patented Technology, Inventor hereby grants a fully paid up, nonexclusive, royalty free license to practice the patents listed below ("the Patents") if and only if practiced in conjunction with software distributed under the terms of any version of the GNU General Public License as published by the

Free Software Foundation, 59 Temple Place, Suite 330, Boston, MA 02111. 

Inventor reserves all other rights, including without limitation, licensing for software not distributed under the GNU General Public License.

5055942 Photographic image reproduction device using digital halftoning to para images allowing adjustable coarseness 5917614 Method and apparatus for error diffusion paraing of images with improved smoothness in highlight and shadow regions

MariaDB and FreeTDS

GNU LESSER GENERAL PUBLIC LICENSE Version 2.1, February 1999 https://www.gnu.org/licenses/lgpl-2.1.html

Copyright© 1991, 1999

    Free Software Foundation, Inc.
    51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA

Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed.

[This is the first released version of the Lesser GPL. It also counts as the successor of the GNU Library Public License, version 2, hence the version number 2.1.]

Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public Licenses are intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users.

This license, the Lesser General Public License, applies to some specially designated software packages--typically libraries--of the Free Software Foundation and other authors who decide to use it. You can use it too, but we suggest you first think carefully about whether this license or the ordinary General Public License is the better strategy to use in any particular case, based on the explanations below.

When we speak of free software, we are referring to freedom of use, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish); that you receive source code or can get it if you want it; that you can change the software and use pieces of it in new free programs; and that you are informed that you can do these things.

To protect your rights, we need to make restrictions that forbid distributors to deny you these rights or to ask you to surrender these rights. These restrictions translate to certain responsibilities for you if you distribute copies of the library or if you modify it.

For example, if you distribute copies of the library, whether gratis or for a fee, you must give the recipients all the rights that we gave you. You must make sure that they, too, receive or can get the source code. If you link other code with the library, you must provide complete object files to the recipients, so that they can relink them with the library after making changes to the library and recompiling it. And you must show them these terms so they know their rights.

We protect your rights with a two-step method:

  1. we copyright the library, and

  2. we offer you this license, which gives you legal permission to copy, distribute and/or modify the library.

To protect each distributor, we want to make it very clear that there is no warranty for the free library. Also, if the library is modified by someone else and passed on, the recipients should know that what they have is not the original version, so that the original author's reputation will not be affected by problems that might be introduced by others.

Finally, software patents pose a constant threat to the existence of any free program. We wish to make sure that a company cannot effectively restrict the users of a free program by obtaining a restrictive license from a patent holder. Therefore, we insist that any patent license obtained for a version of the library must be consistent with the full freedom of use specified in this license.

Most GNU software, including some libraries, is covered by the ordinary GNU General Public License. This license, the GNU Lesser General Public License, applies to certain designated libraries, and is quite different from the ordinary General Public License. We use this license for certain libraries in order to permit linking those libraries into non-free programs.

When a program is linked with a library, whether statically or using a shared library, the combination of the two is legally speaking a combined work, a derivative of the original library. The ordinary General Public License therefore permits such linking only if the entire combination fits its criteria of freedom. The Lesser General Public License permits more lax criteria for linking other code with the library.

We call this license the "Lesser" General Public License because it does Less to protect the user's freedom than the ordinary General Public License. It also provides other free software developers Less of an advantage over competing non-free programs. These disadvantages are the reason we use the ordinary General Public License for many libraries. However, the Lesser license provides advantages in certain special circumstances.

For example, on rare occasions, there may be a special need to encourage the widest possible use of a certain library, so that it becomes a de-facto standard. To achieve this, non-free programs must be allowed to use the library. A more frequent case is that a free library does the same job as widely used non-free libraries. In this case, there is little to gain by limiting the free library to free software only, so we use the Lesser General Public License.

In other cases, permission to use a particular library in non-free programs enables a greater number of people to use a large body of free software. For example, permission to use the GNU C Library in non-free programs enables many more people to use the whole GNU operating system, as well as its variant, the GNU/Linux operating system.

Although the Lesser General Public License is Less protective of the users' freedom, it does ensure that the user of a program that is linked with the Library has the freedom and the wherewithal to run that program using a modified version of the Library.

The precise terms and conditions for copying, distribution and modification follow. Pay close attention to the difference between a "work based on the library" and a "work that uses the library". The former contains code derived from the library, whereas the latter must be combined with the library in order to run.

TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION

  1. This License Agreement applies to any software library or other program which contains a notice placed by the copyright holder or other authorized party saying it may be distributed under the terms of this Lesser General Public License (also called "this License"). Each licensee is addressed as "you".

    A "library" means a collection of software functions and/or data prepared so as to be conveniently linked with application programs (which use some of those functions and data) to form executables.

    The "Library", below, refers to any such software library or work which has been distributed under these terms. A "work based on the Library" means either the Library or any derivative work under copyright law: that is to say, a work containing the Library or a portion of it, either verbatim or with modifications and/or translated straightforwardly into another language. (Hereinafter, translation is included without limitation in the term "modification".)

    "Source code" for a work means the preferred form of the work for making modifications to it. For a library, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the library.

    Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running a program using the Library is not restricted, and output from such a program is covered only if its contents constitute a work based on the Library (independent of the use of the Library in a tool for writing it). Whether that is true depends on what the Library does and what the program that uses the Library does.

  2. You may copy and distribute verbatim copies of the Library's complete source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and distribute a copy of this License along with the Library.

    You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee.

  3. You may modify your copy or copies of the Library or any portion of it, thus forming a work based on the Library, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions:

    1. The modified work must itself be a software library.

    2. You must cause the files modified to carry prominent notices stating that you changed the files and the date of any change.

    3. You must cause the whole of the work to be licensed at no charge to all third parties under the terms of this License.

    4. If a facility in the modified Library refers to a function or a table of data to be supplied by an application program that uses the facility, other than as an argument passed when the facility is invoked, then you must make a good faith effort to ensure that, in the event an application does not supply such function or table, the facility still operates, and performs whatever part of its purpose remains meaningful. (For example, a function in a library to compute square roots has a purpose that is entirely well-defined independent of the application. Therefore, Subsection 2d requires that any application-supplied function or table used by this function must be optional: if the application does not supply it, the square root function must still compute square roots.)

      These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Library, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Library, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it.

      Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Library.

      In addition, mere aggregation of another work not based on the Library with the Library (or with a work based on the Library) on a volume of a storage or distribution medium does not bring the other work under the scope of this License.

  4. You may opt to apply the terms of the ordinary GNU General Public License instead of this License to a given copy of the Library. To do this, you must alter all the notices that refer to this License, so that they refer to the ordinary GNU General Public License, version 2, instead of to this License. (If a newer version than version 2 of the ordinary GNU General Public License has appeared, then you can specify that version instead if you wish.) Do not make any other change in these notices.

    Once this change is made in a given copy, it is irreversible for that copy, so the ordinary GNU General Public License applies to all subsequent copies and derivative works made from that copy.

    This option is useful when you wish to copy part of the code of the Library into a program that is not a library.

  5. You may copy and distribute the Library (or a portion or derivative of it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange.

    If distribution of object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place satisfies the requirement to distribute the source code, even though third parties are not compelled to copy the source along with the object code.

  6. A program that contains no derivative of any portion of the Library, but is designed to work with the Library by being compiled or linked with it, is called a "work that uses the Library". Such a work, in isolation, is not a derivative work of the Library, and therefore falls outside the scope of this License.

    However, linking a "work that uses the Library" with the Library creates an executable that is a derivative of the Library (because it contains portions of the Library), rather than a "work that uses the library". The executable is therefore covered by this License. Section 6 states terms for distribution of such executables.

    When a "work that uses the Library" uses material from a header file that is part of the Library, the object code for the work may be a derivative work of the Library even though the source code is not. Whether this is true is especially significant if the work can be linked without the Library, or if the work is itself a library. The threshold for this to be true is not precisely defined by law.

    If such an object file uses only numerical parameters, data structure layouts and accessors, and small macros and small inline functions (ten lines or less in length), then the use of the object file is unrestricted, regardless of whether it is legally a derivative work. (Executables containing this object code plus portions of the Library will still fall under Section 6.)

    Otherwise, if the work is a derivative of the Library, you may distribute the object code for the work under the terms of Section 6. Any executables containing that work also fall under Section 6, whether or not they are linked directly with the Library itself.

  7. As an exception to the Sections above, you may also combine or link a "work that uses the Library" with the Library to produce a work containing portions of the Library, and distribute that work under terms of your choice, provided that the terms permit modification of the work for the customer's own use and reverse engineering for debugging such modifications.

    You must give prominent notice with each copy of the work that the Library is used in it and that the Library and its use are covered by this License. You must supply a copy of this License. If the work during execution displays copyright notices, you must include the copyright notice for the Library among them, as well as a reference directing the user to the copy of this License.

    Also, you must do one of these things:

    1. Accompany the work with the complete corresponding machine-readable source code for the Library including whatever changes were used in the work (which must be distributed under Sections 1 and 2 above); and, if the work is an executable linked with the Library, with the complete machine-readable "work that uses the Library", as object code and/or source code, so that the user can modify the Library and then relink to produce a modified executable containing the modified Library. (It is understood that the user who changes the contents of definitions files in the Library will not necessarily be able to recompile the application to use the modified definitions.)

    2. Use a suitable shared library mechanism for linking with the Library. A suitable mechanism is one that

      1. uses at run time a copy of the library already present on the user's computer system, rather than copying library functions into the executable, and

      2. will operate properly with a modified version of the library, if the user installs one, as long as the modified version is interface-compatible with the version that the work was made with.

    3. Accompany the work with a written offer, valid for at least three years, to give the same user the materials specified in Subsection 6a, above, for a charge no more than the cost of performing this distribution.

    4. If distribution of the work is made by offering access to copy from a designated place, offer equivalent access to copy the above specified materials from the same place.

    5. Verify that the user has already received a copy of these materials or that you have already sent this user a copy. For an executable, the required form of the "work that uses the Library" must include any data and utility programs needed for reproducing the executable from it. However, as a special exception, the materials to be distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable.

      It may happen that this requirement contradicts the license restrictions of other proprietary libraries that do not normally accompany the operating system. Such a contradiction means you cannot use both them and the Library together in an executable that you distribute.

    6. You may place library facilities that are a work based on the Library side-by-side in a single library together with other library facilities not covered by this License, and distribute such a combined library, provided that the separate distribution of the work based on the Library and of the other library facilities is otherwise permitted, and provided that you do these two things:

      1. Accompany the combined library with a copy of the same work based on the Library, uncombined with any other library facilities. This must be distributed under the terms of the Sections above.

      2. Give prominent notice with the combined library of the fact that part of it is a work based on the Library, and explaining where to find the accompanying uncombined form of the same work.

    7. You may not copy, modify, sublicense, link with, or distribute the Library except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense, link with, or distribute the Library is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance.

    8. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Library or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Library (or any work based on the Library), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Library or works based on it.

    9. Each time you redistribute the Library (or any work based on the Library), the recipient automatically receives a license from the original licensor to copy, distribute, link with or modify the Library subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties with this License.

    10. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Library at all. For example, if a patent license would not permit royalty-free redistribution of the Library by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Library.

      If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply, and the section as a whole is intended to apply in other circumstances.

      It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice.

      This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License.

    11. If the distribution and/or use of the Library is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Library under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License.

    12. The Free Software Foundation may publish revised and/or new versions of the Lesser General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns.

      Each version is given a distinguishing version number. If the Library specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Library does not specify a license version number, you may choose any version ever published by the Free Software Foundation.

    13. If you wish to incorporate parts of the Library into other free programs whose distribution conditions are incompatible with these, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally.

      NO WARRANTY

    14. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.

    15. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

QtAV

© Wang Bin wbsecg1@gmail.com Shanghai University->S3 Graphics->Deepin, Shanghai, China 2013-01-21

QtAV is free software licensed under the term of LGPL v2.1. The player example is licensed under GPL v3. If you use QtAV or its constituent libraries, you must adhere to the terms of the license in question.

Rather than repeating the text of the LGPL v2.1, the original text can be found in GNU LESSER GENERAL PUBLIC LICENSE, Version 2.1.

FFmpeg

Most files in FFmpeg are under the GNU Lesser General Public License version 2.1 or later (LGPL v2.1+). Read the file `COPYING.LGPLv2.1` for details. Some other files have MIT/X11/BSD-style licenses. In combination the LGPL v2.1+ applies to FFmpeg.

Rather than repeating the text of the LGPL v2.1, the original text can be found in GNU LESSER GENERAL PUBLIC LICENSE, Version 2.1.

c3.js

The MIT License (MIT) © 2013 Masayuki Tanaka

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

d3.js

Copyright© 2010-2017 Mike Bostock All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of the author nor the names of contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

jwt-cpp

MIT License

Copyright © 2018 Dominik Thalhammer

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

QXlsx

The MIT License

Copyright © 2017-, https://github.com/j2doll/QXlsx

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.