Releases: tina4stack/tina4pascal
Release list
Tina4Pascal v1.1.1
Tina4Pascal v1.1.1
Windows — now signed & branded
tina4-htmlviewer-win64.exeis Authenticode code-signed with the Code Infinity (Pty) Ltd EV certificate (Certum SimplySign), SHA-256, RFC3161-timestamped — no more SmartScreen "unknown publisher".- The exe now carries the Tina4 app icon (Explorer, title bar, taskbar, Alt-Tab). It was silently dropped before because the cross-toolchain has no
windres; the build embeds a precompiled.resviafpcresinstead. tina4pascal.ps1updated to match (fpcres icon step;doctorchecks fpcres).
CSS engine
::before/::aftergenerated contenttext-decorationstyle + colour — wavy / dotted / dashed / doublebackground-clip: text(gradient-filled glyphs)- vertical
writing-mode(vertical-rl / lr / sideways) - conic & repeating gradients, multi-position stops, flex
aspect-ratio, mitered trapezoid borders
Compliance 139/139; test_dom 132 assertions.
Verify
Every asset has a SHA-256 and a GPG detached signature (.asc) — import tina4pascal-release-public.asc, then gpg --verify <asset>.asc <asset>. The Windows exe additionally verifies via its embedded Authenticode signature on Windows.
macOS and Linux binaries are fresh CI builds from the v1.1.1 source (they include the CSS features above).
Tina4Pascal v1.1.0
Full Changelog: v1.0.3...v1.1.0
Tina4Pascal v1.0.3
Tina4Pascal v1.0.3
Maintenance release — release tooling + clean-box robustness.
Changes
- macOS notarization —
release-macos.shnow Developer-ID-codesigns the
macOS binary (hardened runtime, timestamped) and notarizes it when a notary
credential is configured, so downloads open without a Gatekeeper warning. - Windows clean-box installer hardened — the CLI's one-time FPC auto-install
sends a browser User-Agent, tries a direct mirror, and validates the download
is a real PE installer (MZ header + full size) before running it — a
partial/HTML response now fails cleanly instead of executing a corrupt file. - CI — the Windows job installs FPC via the Lazarus setup action (reliable),
no longer gated on SourceForge rate-limiting runners. Linux + macOS + Windows
all green.
No API or rendering changes since v1.0.2 (bundled fonts on all platforms, WebP,
HTML→PDF, etc. carry over).
Assets & verification
Windows deliverables are Authenticode-signed (Certum EV, Code Infinity (Pty) Ltd);
Linux + macOS tarballs are GPG-signed with the release key
(tina4pascal-release-public.asc, fp E0B36CDD76676DD08E4F1FA641DA6E7645F494AF).
Each asset ships a .sha256.
gpg --import tina4pascal-release-public.asc && gpg --verify <asset>.asc <asset>
Get-AuthenticodeSignature tina4pascal.ps1 # Windows: Status = Valid
macOS Gatekeeper (if not notarized on your build)
gpg --verify tina4-htmlviewer-macos-arm64.tar.gz.asc tina4-htmlviewer-macos-arm64.tar.gz
tar xzf tina4-htmlviewer-macos-arm64.tar.gz
xattr -dr com.apple.quarantine tina4-htmlviewer-macos-arm64
Tina4Pascal v1.0.2
Tina4Pascal v1.0.2
Headline: bundle your app's fonts and render identically on every platform.
Bundled fonts — all 5 platforms
Drop .ttf files in a project's fonts/ folder and tina4pascal build
ships them with the app; the renderer registers them with the OS text engine and
resolves fonts bundled-first — the generic CSS families (sans-serif /
serif / monospace) are backed by the bundled DejaVu family when present,
otherwise the platform's system font. An explicit font-family resolves to any
bundled font of that name. Empty fonts/ → system fonts (unchanged behaviour).
| Platform | Mechanism | Verified |
|---|---|---|
| Linux | FreeType, fonts/ beside the exe |
✅ |
| Windows | GDI AddFontResourceExW (private) |
✅ DejaVu vs Segoe UI |
| macOS | CoreText CTFontManagerRegisterFontsForURL |
✅ DejaVu vs San Francisco |
| Android | Typeface.createFromFile from APK assets/fonts/ |
✅ on emulator |
| iOS | CoreText graphics-font registration | compiles; device build pending |
tina4pascal init now scaffolds the fonts/ folder (with a README), and the
build copies it next to the executable / into the app bundle / into the APK.
Also
- iOS:
deploy iosfixed (a mangled$udidunderset -u) and
CFBundleIdentifierparameterised so device builds sign + install. - macOS: downloads are GPG-signed, not Apple-notarized — if Gatekeeper warns,
verify thenxattr -dr com.apple.quarantine <binary>(documented in the notes).
Assets & verification
Windows deliverables are Authenticode-signed (Certum EV, Code Infinity (Pty) Ltd);
Linux + macOS tarballs are GPG-signed with the release key
(tina4pascal-release-public.asc, fp E0B36CDD76676DD08E4F1FA641DA6E7645F494AF).
Each asset ships a .sha256.
gpg --import tina4pascal-release-public.asc && gpg --verify <asset>.asc <asset>
Get-AuthenticodeSignature tina4pascal.ps1 # Windows: Status = Valid
macOS Gatekeeper (un-notarized)
gpg --verify tina4-htmlviewer-macos-arm64.tar.gz.asc tina4-htmlviewer-macos-arm64.tar.gz
tar xzf tina4-htmlviewer-macos-arm64.tar.gz
xattr -dr com.apple.quarantine tina4-htmlviewer-macos-arm64
Tina4Pascal v1.0.1
Tina4Pascal v1.0.1
Maintenance + feature release on top of v1.0.0.
New
- WebP images — pure-Pascal decoder: VP8L (lossless), lossy VP8, and lossy+ALPH alpha, wired into the image pipeline. Full WebP support, no external libraries.
- HTML → PDF — a headless
Tina4CanvasPdfrenders the same layout to a PDF (--pdf), FlateDecode-compressed with embedded images and text. - DrawRGBA on every shell (Windows/Cocoa/Linux) — on-screen WebP and faster Lottie.
- Linux text is now FreeType — scalable, Unicode, anti-aliased. The old X11 core-font path only reached 8-bit iso8859-1, so glyphs like
−,—,…,↔rendered as tofu; they now render correctly and text is crisp. libfreetype is loaded by soname at runtime (no dev symlink, no link-time dependency). - Bundled fonts — the Linux shell resolves a
fonts/directory beside the executable first, then system fonts, so an app can ship its own fonts and render identically everywhere (including minimal containers).
Fixed
- Inline
margin-rightwas dropped in the layout engine — inline-block elements withmargin-rightrendered flush against the next box (e.g. a horizontal strip of chips touched instead of sitting apart). Now honoured for inline-block,<img>, form controls and<svg>. Shared engine, so every backend benefits.
Tests / CI
- New webp and pdf suites wired into
tina4pascal test(12 suites total). The pdf suite inflates the content stream and asserts the emitted operators. - Cross-OS CI matrix (Linux/macOS/Windows) builds and tests on every push; tagging a release builds and attaches the Linux + macOS artifacts automatically.
Assets & verification
Windows deliverables are Authenticode-signed (Certum EV, Code Infinity (Pty) Ltd); the Linux tarball is GPG-signed with the release key (tina4pascal-release-public.asc, fingerprint E0B36CDD76676DD08E4F1FA641DA6E7645F494AF). Each asset ships a .sha256.
gpg --import tina4pascal-release-public.asc && gpg --verify <asset>.asc <asset>
Get-AuthenticodeSignature tina4pascal.ps1 # Windows: Status = Valid
macOS — if you see a Gatekeeper warning
The macOS build is a GPG-signed binary (not an Apple-notarized .app). If you download it with a browser, macOS may quarantine it and warn that it "cannot be checked for malware." Clear the quarantine flag after verifying the signature:
gpg --verify tina4-htmlviewer-macos-arm64.tar.gz.asc tina4-htmlviewer-macos-arm64.tar.gz
tar xzf tina4-htmlviewer-macos-arm64.tar.gz
xattr -dr com.apple.quarantine tina4-htmlviewer-macos-arm64
./tina4-htmlviewer-macos-arm64 page.htmlTina4Pascal v1.0.0
Tina4Pascal v1.0.0 — first release
Tina4Pascal is the Free Pascal sibling of Tina4Delphi: an HTML/CSS-driven, native UI engine. You write templates (Frond/HTML + CSS) and the engine paints them with the OS's own graphics — no browser, no web view — into a small, single native binary per target (Windows GDI+, Linux X11, Android JNI, macOS Cocoa, iOS).
Highlights
- Native rendering of HTML/CSS — shapes, AA rounded rects, rgba/box-shadow alpha, linear/radial gradients, images (data:/http/file), plus things a browser can't do natively (QR, Lottie, SVG).
- One project, many targets —
tina4 initscaffolds an app that builds for Windows, Linux, and Android from a single Windows box (macOS/iOS from a Mac). - Zero-setup desktop start — the CLI auto-installs Free Pascal on first
init/build/run. - AI-drivable — a Streamable-HTTP MCP server (
tools/mcp) exposes 21 dev tools (build/run/render/inspect/debug/script/deploy) so an agent can drive the whole loop. - Windows compliance — 130/130 of the bundled W3C-style reftests pass.
What landed in 1.0.0
Clean-box + Windows-portability fixes so a newcomer (and an AI) can actually get running:
- CLI:
new/devaliases, FPC auto-install onbuild/run/render/debug, dashlessnorun. - MCP server: now works on Windows (drives the PowerShell CLI, portable host target,
app.pyentry point, mounted endpoint). Verified end-to-end:initialize+tools/list= 21 tools;tools/call tina4_doctorreturns OK.
Assets (all Authenticode-signed, Certum EV — Code Infinity (Pty) Ltd — and timestamped)
| File | What it is |
|---|---|
tina4pascal.ps1 |
the Windows developer CLI (doctor/init/build/run/render/debug/script/…) |
tina4-htmlviewer-win64.exe |
standalone HTML viewer — tina4-htmlviewer-win64.exe <page.html> (or --snapshot out.png) |
tina4-fpc-android-cross-3.2.2-win64.zip |
FPC→Android cross-compilers (arm64/armv7/x86_64) for building APKs from Windows; the .exe inside are signed |
Each asset ships with a .sha256 sidecar.
Verify
# checksum
Get-FileHash tina4pascal.ps1 -Algorithm SHA256
# signature (should say Valid, signed by Code Infinity (Pty) Ltd)
Get-AuthenticodeSignature tina4pascal.ps1 | Format-List Status, SignerCertificateQuickstart
# clone the repo, then from its root:
tools\tina4pascal.ps1 doctor # checks/install the toolchain
tools\tina4pascal.ps1 init hello # scaffold + build + launch a native appThe Android cross-pack .ppu/.o are FPC-version-stamped and are not committed to git — this signed pack is how you get them for FPC 3.2.2 without rebuilding the cross-compiler yourself. Unzip it into your FPC 3.2.2 tree (see docs/ANDROID.md).