Linux application-local runtime libraries

The package's SOURCE/linux-runtime-bundle.json records every bundled Ubuntu
runtime library, its source package/version, original bytes, delivered bytes
and package copyright notice. ICU73.2 retains its exact Qt-kit bytes and has
its complete separate vendor notices in LICENSES/ICU-73.2-LICENSE.txt. Each
Ubuntu package copyright file and the accompanying GNU licence texts control
the material they identify; these libraries do not all have one licence.

For packages whose notices refer to /usr/share/common-licenses, the equivalent
licence texts are supplied as LICENSES/Ubuntu-common-<licence-name>.txt.
For the source package/version pairs listed in the mapping's source_archives,
the package includes original source archives, Debian/Ubuntu packaging and
patches, and .dsc source descriptors for those exact installed source versions.
Other libraries retain their controlling notices and licence texts; this does
not assert that every permissively licensed library requires accompanying
source. Source acquisition used authenticated Ubuntu source
indices and the Ubuntu archive keyring. The descriptors record individual
source-file digests. This is accompanying source, not a promise that a future
latest-version URL will supply the same source.

Rebuilding an Ubuntu library

Use an Ubuntu24.04 x86_64 build environment. Locate the source package/version
in linux-runtime-bundle.json's source_archives and the matching .dsc descriptor in SOURCE. Put
its corresponding original and Debian source archive files in the same
directory and run dpkg-source -x <descriptor.dsc>. This applies the supplied
Ubuntu/Debian packaging and patches. The unpacked debian/control identifies
build dependencies, and debian/rules supplies the package build commands and
options. After installing those dependencies in your chosen build environment,
dpkg-buildpackage -b -uc -us rebuilds the package. Extract the resulting binary
package with dpkg-deb -x <package.deb> <output-directory> and select the
interface-compatible library with the SONAME shown in the original mapping.
The supplied original source, packaging, build rules and licence notices may
be modified under their controlling licences.

Replacing a runtime library

Close Soter and its processes before replacing libraries. Preserve a backup
of your installation. Bundled Ubuntu libraries live in soter_runtime/lib
beside the application. The deployment's modification to these libraries is
only their ELF RPATH, set with patchelf --set-rpath '$ORIGIN' <library> so
dependencies resolve beside the library. The original and resulting hashes
are both recorded; there is no claim that a changed search path is identical
to the original vendor file. Supply an interface-compatible replacement with
the same expected SONAME and filename, apply that relative search path when
needed, and copy it over the corresponding installed library. Ensure the
dependencies of the replacement are available. You may use an installation
directory you control; overwriting a system-wide installation may require
administrator permissions. These source, build and replacement instructions
do not require Varinomics to sign a modified Linux library.

Soter's separate Qt library/source/replacement information is in
QT_LINUX_REPLACEMENT.md and the exact Qt source archives. The proprietary
Soter grant does not restrict rights granted by the controlling library
licences or debugging modifications to those libraries.
