UNA SDK β Local Patches to Vendored (Third-Party) Codeο
This document tracks deliberate modifications to files under ThirdParty/ that
diverge from the upstream vendor drop. These are not part of the SDKβs own
source: when a vendored component is re-imported at a new version, the drop will
overwrite these files and each patch below must be re-applied.
This is distinct from the SDKβs own source (e.g. the simulator OS shims documented in
Simulator.md): changes to our own code survive a vendor bump; the patches here do not.
How to use this documentο
Before bumping a vendored component, read its entry so you know what local divergence exists.
After re-importing the vendor drop, re-apply each patch that is still relevant (the upstream bug may have been fixed β verify), then update the version, PR references, and status in the table below.
Vendored componentsο
Component |
Version |
Location |
|---|---|---|
TouchGFX |
4.26.1 ( |
|
Patchesο
TouchGFX 4.26.1ο
# |
Area |
Files |
PR |
|---|---|---|---|
1 |
Linux converter execute bit |
|
#186 |
2 |
|
|
#189 |
1 β Linux converter execute bit (#186)ο
The prebuilt Linux asset converters ship without the execute bit, so make assets
fails on Linux/macOS until they are chmodβd by hand.
Change: file mode
100644β100755on the twobuild/linux/*.outbinaries.Blobs are unchanged β mode only.
Re-apply:
chmod +xthe two Linux.outbinaries after a re-import. (No action needed for the Windows binaries underbuild/win/β the execute bit is a git no-op on Windows checkouts.)
2 β textconvert Ruby 3.1/3.2 compatibility (#189)ο
TouchGFX 4.26.1 still uses Ruby APIs that were removed in supported Ruby releases, so the text converter crashes on any modern Ruby:
File.exists?/File::exists?βFile.exist?β theexists?alias was removed in Ruby 3.2.ERB.new(str, 0, "<>")βERB.new(str, trim_mode: "<>")β ERBβs positionalsafe_levelargument was removed in Ruby 3.1. Thetrim_modevalue ("<>") is preserved, so generated output is byte-identical.
Both replacements are valid back to Ruby 2.6, so they are also safe on the Ruby bundled with the TouchGFX environment (backward- and forward-compatible).
Re-apply: if the new drop still uses the dead APIs, re-run the same substitutions across
framework/tools/textconvert/. Verify none remain:no
File.exists?/File::exists?βgrep -rn -E 'File[.:]+exists\?' framework/tools/textconvert/every
ERB.new(...)uses thetrim_mode:keyword (no positional 2nd arg).