Implement researched Guix package outcome for #146: [Guix packaging] noctalia-dev/noctalia #754
Labels
No labels
accessibility
bug
category:ai-tool
category:browser
category:command-line-tool
category:compiler-toolchain
category:desktop-application
category:developer-tool
category:editor-extension
category:emulator
category:font
category:game
category:input-accessibility
category:library-framework
category:mud-client
category:multimedia
category:networking-client
category:programming-language
category:roguelike
category:storage-media-tool
category:system-tool
category:terminal-application
complexity:high
complexity:low
complexity:medium
difficulty:blocked
difficulty:easy
difficulty:hard
difficulty:moderate
documentation
duplicate
enhancement
good first issue
gooflow:guix-package-high
gooflow:guix-package-moderate
gooflow:guix-package-quality-gates
gooflow:guix-research-disposition
gooflow:guix-runtime-evidence-refresh
help wanted
invalid
kind:disposition
kind:packaging
needs:license-investigation
priority:quick
question
ready-for-agent
state:available-elsewhere
state:blocked
state:deferred
state:out-of-scope
state:ready
state:research
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
tay/guix-channel#754
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Context
This delivery ticket was created from research issue #146 ([Guix packaging] noctalia-dev/noctalia).
The host-validated research finding follows:
Package noctalia version 5.0.0 from canonical https://github.com/noctalia-dev/noctalia at fixed revision ab2cfdf6e7b93ff0dffb80fb4b406294de54430d (checked 2026-09-21; current main is e61100350bc9a45a7279edad165813b61ee828b2). Direct inspection confirms the MIT License file at that revision. Four required vendored origins are checked into this same source tree, not separately fetched submodules: third_party/fzy is MIT, third_party/luau is MIT, third_party/wuffs is dual Apache-2.0/MIT, and third_party/material_color_utilities is Apache-2.0; each directory contains its own license file at the fixed revision. The channel has no existing noctalia package (only a-n files were listed; no matching name or upstream origin). This is therefore an ordinary initial delivery. Add guix/tay/packages/noctalia.scm and register it in the channel package module using meson-build-system. Build with Meson release mode, tests disabled, native optimizations false, and portable code generation; retain the default auto jemalloc behavior only if Guix's GCC/glibc toolchain supports it, otherwise disable it. Expected native/build inputs from meson.build and the authoritative upstream Nix metadata include sdbus-c++, wayland-client, wayland-protocols, wayland-scanner, EGL/GLES or libepoxy/libglvnd, freetype, fontconfig, cairo, pango, harfbuzz, librsvg, xkbcommon, glib, libsecret >= 0.20, libsodium >= 1.0.18, polkit agent and GObject libraries, pipewire 0.3, wireplumber 0.5, curl, libqalculate, libxml2, md4c, nlohmann-json, tomlplusplus, libical, linux-pam, stb with stb_image_resize2.h and stb_image_write.h, and jemalloc when available. Meson and ninja are the build backend; pkg-config and git build tooling are also expected. Wrap the installed noctalia executable so git remains on PATH for documented plugin git behavior, and preserve Guix font, GL,PipeWire/WirePlumber and other native-library search paths as needed. Install assets through Meson; the package must include the required share/noctalia/assets tree plus the desktop entry and icon. Generate and install Bash, Zsh, and Fish completions from the freshly built executable as upstream documents. The daemon remains the canonical runtime behavior via noctalia --daemon, with noctalia msg ... as IPC; it requires a Wayland layer-shell compositor, D-Bus, and XDG_RUNTIME_DIR. For the research contract, use the installed executable's non-Wayland theme template-list mode: create a deterministic empty TOML template configuration, run noctalia theme --list-templates --config FILE, and assert the exact single-line stdout marker 'Template config' while exit status is zero. This drives real TOML/catalog code without touching an active desktop session, networking, secrets, PAM, notifications, or the user configuration. Guix lint/build and daemon-backed nested/headless Wayland control-command verification remain later acceptance checks; no daemon or complete upstream build was available in this research phase, so this disposition is source/build metadata feasibility, not package proof. The host Guix daemon was absent and direct guix shell validation was prohibited; authoritative PACKAGING.md, meson.build, meson_options.txt, and Nix package metadata establish a concrete, legally redistributable, source-buildable delivery brief.
Acceptance criteria
Runtime evidence contract
Implementation workflow:
guix-package-quality-gatesReviewed contract file:
.goocastle/runtime-evidence-contracts.jsonRequired proof phase:
safe-package-proof; screenshot phase:runtime-screenshotEvidence adapter:
github-issue-commentCopy this reviewed contract into the named file before running the package proof workflow.
Goocastle blocked this ticket after the bounded repair budget was exhausted for the required command gate.
The failure receipt and task branch provenance remain preserved; inspect the branch and repair the failing gate before retrying.
Bounded failure evidence:
Failed command: node /opt/goocastle/bin/guix-package-proof.mjs '--package-name' noctalia '--module-path' guix/tay/packages/noctalia.scm '--runtime-json' '{"executable":"noctalia","invocation":{"file":"noctalia","args":["theme","--list-templates","--config","/tmp/goocastle-noctalia-empty.toml"]},"successMarker":"Template config"}'
Exit status: 1
Final failure lines:
[stderr] Guix package proof failed: target module is missing or not a regular file: /workspace/guix/tay/packages/noctalia.scm
OMP work update: source implementation and dependency work are in progress, but this delivery is NOT proved or closed. Local one-core builds were externally terminated with SIGTERM under severe memory/swap pressure; the exact killer remains unconfirmed because /var/log/earlyoom.log requires sudo (noninteractive sudo was denied). Live earlyoom configuration and full swap make userspace memory protection the leading explanation, not a compiler error. The user chose to continue lighter issues first. No memory protection, vault state, host service or installed profile changes were made. Successful prerequisite builds do not substitute for this package’s full build/reproducibility/isolated runtime/screenshot acceptance.