Three separate reasons the packaged build didn't behave like the one Rider
launches:
- dotnet-runtime must be aspnetcore_10_0, not runtime_10_0. Tome.App's
runtimeconfig.json requires Microsoft.AspNetCore.App as well as
Microsoft.NETCore.App, because Photino hosts a local Kestrel server, and
only the aspnetcore bundle ships it.
- wrapGAppsHook3, so gappsWrapperArgs get spliced into buildDotnetModule's
own wrap step (it sets dontWrapGApps itself; same pattern as nixpkgs'
libation). Without it nothing sets XDG_DATA_DIRS/GSETTINGS_SCHEMA_DIR, so
GTK/WebKitGTK found neither the icon theme nor GTK settings — missing icons
and a denser default font than in an already-initialized session.
- glib in runtimeDeps. It doesn't arrive via gtk3/webkitgtk's RPATH because
the consumer is Photino.Native.so, a prebuilt binary out of the nuget
package rather than something Nix built and patched.
tome-deps.json is the regenerated nuget lock for the aspnetcore switch.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Tome (née AudibleLibrary) is darman's own Photino/.NET desktop app, private
repo on our own gitea. Fetched as a flake input over ssh with darman's
ambient key — same mechanism as any other git input, private or not.
buildDotnetModule package: the Preact/Vite frontend (Tome.App/ClientApp)
builds as its own buildNpmPackage derivation and gets copied into the
published app's wwwroot, since upstream's in-project MSBuild npm target has
no network access in the Nix sandbox. Photino.Native's runtime deps (gtk3,
webkitgtk_4_1, libnotify) are wrapped in — confirmed via readelf/ldd that
this Photino build already targets webkit2gtk-4.1, not the now-removed 4.0.
Also added dotnet-sdk + nodejs to terra for developing Tome locally, and
vivaldi (unfree, extends the existing allowUnfreePredicate).
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>