[MEDIUM] ThreadNet-Web: fix full-rebuild blockers #12

Closed
opened 2026-07-28 14:31:47 +00:00 by sorb · 2 comments
Owner

sorb/ThreadNet-Web (the Element Web fork) currently can't be built from a fresh clone via its own Dockerfile:

  1. scripts/docker-link-repos.sh / docker-package.sh aren't committed as executable (mode 644, needs 755).
  2. The matrix-js-sdk dependency is pinned via github:matrix-org/matrix-js-sdk#develop, but the lockfile's resolved commit is stale - missing src/oidc/authorize.ts which apps/web imports, causing a webpack resolution failure.

Worked around for the Element Call fork by patching only the /app/widgets/element-call/ layer on top of the existing v0.1.0 image instead of a full rebuild. Fixing this properly unblocks future full rebuilds of the Element Web fork itself (e.g. for the room list customization).

`sorb/ThreadNet-Web` (the Element Web fork) currently can't be built from a fresh clone via its own Dockerfile: 1. `scripts/docker-link-repos.sh` / `docker-package.sh` aren't committed as executable (mode 644, needs 755). 2. The `matrix-js-sdk` dependency is pinned via `github:matrix-org/matrix-js-sdk#develop`, but the lockfile's resolved commit is stale - missing `src/oidc/authorize.ts` which `apps/web` imports, causing a webpack resolution failure. Worked around for the Element Call fork by patching only the `/app/widgets/element-call/` layer on top of the existing `v0.1.0` image instead of a full rebuild. Fixing this properly unblocks future full rebuilds of the Element Web fork itself (e.g. for the room list customization).
sorb added the priority:mediumarea:element labels 2026-07-28 14:31:47 +00:00
Author
Owner

Behoben in ThreadNet-Web (Commits 5e3254d, 7839b56) und live end-to-end mit einem echten, vollstaendigen Docker-Build aus frischem Klon verifiziert.

Drei Bugs gefunden und gefixt (dritter war neu, nicht im urspruenglichen Issue-Text):

  1. Script-Rechte: 7 Skripte waren mit 644 statt 755 committed (docker-link-repos.sh, docker-package.sh + 5 weitere) - betraf nicht nur Docker-Builds, sondern auch die eigenen GitHub-Actions-Workflows des Forks (alle rufen diese Skripte direkt ohne bash-Praefix auf).

  2. matrix-js-sdk-Pin: github:matrix-org/matrix-js-sdk#develop war auf einen veralteten Commit resolved (fehlte src/oidc/authorize.ts). Naheliegender Fix (auf den aktuellen develop-HEAD gehen) haette es schlimmer gemacht - der komplette src/oidc/-Ordner wurde dort zu src/oauth/ umbenannt UND die API dabei geaendert (generateOidcAuthorizationUrl/completeAuthorizationCodeGrant/OidcError existieren unter diesen Namen nicht mehr). Stattdessen auf den letzten Commit VOR diesem Rename gepinnt (d19cb751), verifiziert dass Datei+API exakt passen - kein Codeumbau am sicherheitskritischen Login-Flow noetig.

  3. Gefunden: apps/web/package.json/webpack.config.ts referenzierten noch upstream @element-hq/element-call-embedded statt unseres eigenen Forks - ein Full-Rebuild haette bisher das unveraenderte Upstream-Element-Call-Widget gebuendelt und damit saemtliche Fork-Anpassungen (Video-Tab-Settings, deutsche Uebersetzungen, Codec-Liste) stillschweigend verworfen. Umgestellt auf @sorb/threadnet-call-embedded@0.19.2-threadnet.5 (frisch published, enthaelt den heutigen Stand).

Verifiziert: Docker-Build aus frischem Klon (git clone + docker build, kein Cache) lief komplett durch (erst bei 3.8GB Docker-RAM an OOM gescheitert, nach Erhoehung auf 7.75GB sauber durchgelaufen). Gebautes Image enthaelt nachweislich unseren Fork (deutsche Uebersetzung Kameraqualitaet im Bundle gefunden, H.265-Codec-Option vorhanden).

Scope-Hinweis: Das fixt den Build-Prozess - die Produktivumgebung bleibt beim bestehenden Patch-Image (threadnet-web:v0.2.6-elementcall-realcodecs), ein Umstieg auf ein komplett neu gebautes Image waere eine separate Entscheidung.

Behoben in ThreadNet-Web (Commits 5e3254d, 7839b56) und live end-to-end mit einem echten, vollstaendigen Docker-Build aus frischem Klon verifiziert. **Drei Bugs gefunden und gefixt (dritter war neu, nicht im urspruenglichen Issue-Text):** 1. **Script-Rechte**: 7 Skripte waren mit 644 statt 755 committed (`docker-link-repos.sh`, `docker-package.sh` + 5 weitere) - betraf nicht nur Docker-Builds, sondern auch die eigenen GitHub-Actions-Workflows des Forks (alle rufen diese Skripte direkt ohne `bash`-Praefix auf). 2. **matrix-js-sdk-Pin**: `github:matrix-org/matrix-js-sdk#develop` war auf einen veralteten Commit resolved (fehlte `src/oidc/authorize.ts`). Naheliegender Fix (auf den aktuellen develop-HEAD gehen) haette es schlimmer gemacht - der komplette `src/oidc/`-Ordner wurde dort zu `src/oauth/` umbenannt UND die API dabei geaendert (`generateOidcAuthorizationUrl`/`completeAuthorizationCodeGrant`/`OidcError` existieren unter diesen Namen nicht mehr). Stattdessen auf den letzten Commit VOR diesem Rename gepinnt (`d19cb751`), verifiziert dass Datei+API exakt passen - kein Codeumbau am sicherheitskritischen Login-Flow noetig. 3. **Gefunden**: `apps/web/package.json`/`webpack.config.ts` referenzierten noch upstream `@element-hq/element-call-embedded` statt unseres eigenen Forks - ein Full-Rebuild haette bisher das unveraenderte Upstream-Element-Call-Widget gebuendelt und damit saemtliche Fork-Anpassungen (Video-Tab-Settings, deutsche Uebersetzungen, Codec-Liste) stillschweigend verworfen. Umgestellt auf `@sorb/threadnet-call-embedded@0.19.2-threadnet.5` (frisch published, enthaelt den heutigen Stand). **Verifiziert**: Docker-Build aus frischem Klon (`git clone` + `docker build`, kein Cache) lief komplett durch (erst bei 3.8GB Docker-RAM an OOM gescheitert, nach Erhoehung auf 7.75GB sauber durchgelaufen). Gebautes Image enthaelt nachweislich unseren Fork (deutsche Uebersetzung `Kameraqualitaet` im Bundle gefunden, H.265-Codec-Option vorhanden). **Scope-Hinweis**: Das fixt den Build-*Prozess* - die Produktivumgebung bleibt beim bestehenden Patch-Image (`threadnet-web:v0.2.6-elementcall-realcodecs`), ein Umstieg auf ein komplett neu gebautes Image waere eine separate Entscheidung.
sorb closed this issue 2026-07-28 21:48:58 +00:00
Author
Owner

Migriert nach git.lab: axion1337.chat/axion1337.chat-gitops#12 (nur im Lab bzw. via VPN erreichbar — das Lab ist seit 2026-08-01 die Quelle der Wahrheit, siehe gitops#48). Weiterarbeit dort; dieses Gitea-Issue bleibt als Verweis stehen.

**Migriert nach git.lab**: [axion1337.chat/axion1337.chat-gitops#12](https://git.lab/axion1337.chat/axion1337.chat-gitops/-/issues/12) (nur im Lab bzw. via VPN erreichbar — das Lab ist seit 2026-08-01 die Quelle der Wahrheit, siehe gitops#48). Weiterarbeit dort; dieses Gitea-Issue bleibt als Verweis stehen.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: sorb/axion1337.chat-gitops#12