Skip to content

Linux: modernize Ubuntu 26 build and ImageLoader - #529

Draft
jzhvymetal wants to merge 4 commits into
google:masterfrom
opensagetv-vibe:sagetv-review/ubuntu26-imageloader
Draft

jzhvymetal wants to merge 4 commits into
google:masterfrom
opensagetv-vibe:sagetv-review/ubuntu26-imageloader

Conversation

@jzhvymetal

@jzhvymetal jzhvymetal commented Sep 29, 2026 •

Copy link
Copy Markdown
Contributor

Summary

  • add a reproducible Ubuntu 26 development/build path
  • build ImageLoader against maintained system PNG, GIF, JPEG, and TIFF libraries
  • add generated image fixtures, JNI/ELF validation, malformed-input containment checks, packaging, and server smoke tests
  • package the Ubuntu media utilities needed by the supported runtime

Validation

  • Java and native builds passed in the Ubuntu 26 Vibe build environment.
  • JNI exports, ELF dependencies, ImageLoader fixtures, packaging, and server smoke gates passed.

Dependency

This is an intentional four-commit stack beginning with the GCC 15/64-bit compatibility topic.

Review state

Draft while the Ubuntu/native-library stack is split into independently reviewable maintenance changes. The applicable changes are intended for canonical SageTV so it can build and run on a current Ubuntu base with current GPU driver/userspace packages; upstream still needs to agree on the supported Linux, Windows, and macOS native-library matrix before merge.


This replaces OpenSageTV#14, which was opened against an intermediate fork instead of the canonical SageTV repository. The topic was replayed onto current canonical master; its only conflict retained both the newer canonical ignore entries and the topic build-output exclusions.

Maintenance triage (2026-09-29)

Disposition: active canonical Ubuntu modernization; draft until split into reviewable patches.

Maintenance need: the Vibe server has a reproducible Ubuntu 26/OpenJDK 11 build and uses maintained system image libraries so current GPU/userspace packages can coexist with SageTV. The stack passes Java/native builds, JNI/ELF checks, generated ImageLoader fixtures, malformed-input containment, packaging, startup, and repeated shutdown in that environment.

This remains too broad for maintenance merging as one stack: it combines compiler changes, native dependency policy, ImageLoader behavior, packaging, and a new development environment. The newer-Ubuntu requirement is not Vibe-only and is not being withdrawn. Upstream must decide its supported Linux, Windows, and macOS native-library matrix, then review independently justified compiler, ImageLoader, native-library, and reproducible-build changes.

Current-Ubuntu container dependency

This draft contains the current-Ubuntu build, ImageLoader/system-library, validation, and media-utility pieces needed to prove canonical SageTV on a current base. It follows #528 and is independent of #516 (launcher) and #519 (source-clean build). It should be split into reviewable Core changes before a separate OpenSageTV/sagetv-dockers PR proposes the non-root runtime image, supervisor, packages, health checks, and GPU device mappings. The future container PR must pass with stock Core plus these proposed patches as well as with Vibe Core.

Scope clarification after review

Repository-wide line-ending policy is excluded from this draft. The previously included five-line .gitattributes file has been removed; any line-ending change must be justified independently by a reproduced failure and reviewed separately.

@google-cla

google-cla Bot commented Sep 29, 2026

Copy link
Copy Markdown

Thanks for your pull request! It looks like this may be your first contribution to a Google open source project. Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA).

View this failed invocation of the CLA check for more information.

For the most up to date status, view the checks section at the bottom of the pull request.

@jzhvymetal
jzhvymetal force-pushed the sagetv-review/ubuntu26-imageloader branch from 1c134e1 to 538d952 Compare September 29, 2026 20:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant