[Guix packaging] noctalia-dev/noctalia #146

Open
opened 2026-08-14 13:17:55 +00:00 by htayj · 1 comment
htayj commented 2026-08-14 13:17:55 +00:00 (Migrated from github.com)

Candidate

  • Upstream canonical URL: https://github.com/noctalia-dev/noctalia
  • Source pinned commit/release when known: default-branch HEAD ab2cfdf6e7b93ff0dffb80fb4b406294de54430d (checked 2026-08-14)
  • Target concrete installed deliverable: the Noctalia Wayland desktop shell
  • Primary category: desktop-application
  • Tags: wayland, window-manager
  • Primary language normalized: C++
  • Build system: meson-build-system
  • SPDX expression: MIT
  • License status: confirmed-free
  • License evidence: Inspected the upstream license text at this pinned commit; GitHub identifies it as MIT (MIT License). No GPL only-or-later term is inferred beyond the upstream evidence.
  • Difficulty: hard — Wayland compositor integration, native dependencies, and session testing are substantial.
  • Workflow state: research
  • Existing Guix coverage: Checked 2026-08-14: GNU Guix, Nonguix, Guix Science, Guix HPC, Guix Past, Guix 'R Us, and RDE; no equivalent package with the same upstream origin was found.

Scope and blockers

Package the Wayland shell and documented local configuration components.

Acceptance checks

  • guix lint -L . noctalia
  • guix build -L . noctalia
  • start Noctalia in a nested/headless Wayland session and verify its control command.

Imported from GitHub issue/PR. Originally posted by htayj on 2026-08-14T13:17:55Z.

## Candidate - Upstream canonical URL: https://github.com/noctalia-dev/noctalia - Source pinned commit/release when known: default-branch HEAD `ab2cfdf6e7b93ff0dffb80fb4b406294de54430d` (checked 2026-08-14) - Target concrete installed deliverable: the Noctalia Wayland desktop shell - Primary category: desktop-application - Tags: wayland, window-manager - Primary language normalized: C++ - Build system: meson-build-system - SPDX expression: MIT - License status: confirmed-free - License evidence: Inspected the upstream license text at this pinned commit; GitHub identifies it as `MIT` (MIT License). No GPL only-or-later term is inferred beyond the upstream evidence. - Difficulty: hard — Wayland compositor integration, native dependencies, and session testing are substantial. - Workflow state: research - Existing Guix coverage: Checked 2026-08-14: GNU Guix, Nonguix, Guix Science, Guix HPC, Guix Past, Guix 'R Us, and RDE; no equivalent package with the same upstream origin was found. ## Scope and blockers Package the Wayland shell and documented local configuration components. ## Acceptance checks - `guix lint -L . noctalia` - `guix build -L . noctalia` - start Noctalia in a nested/headless Wayland session and verify its control command. --- Imported from [GitHub issue/PR](https://github.com/htayj/guix-channel/issues/146). Originally posted by [htayj](https://github.com/htayj) on 2026-08-14T13:17:55Z.
Owner

Goocastle recorded disposition: implementation-ready.

Created implementation ticket: #754.

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.

<!-- goocastle-disposition:sequential-reviewer:146:1:implementation-ready --> Goocastle recorded disposition: implementation-ready. Created implementation ticket: #754. 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.
Sign in to join this conversation.
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
tay/guix-channel#146
No description provided.