Implement researched Guix package outcome for #81: [Guix packaging] Toqozz/wired-notify #629
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#629
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 #81 ([Guix packaging] Toqozz/wired-notify).
The host-validated research finding follows:
Implementation-ready delivery brief for the requested
wiredexecutable. Canonical upstream is https://github.com/Toqozz/wired-notify at fixed Git commit6b6f3c15b1a1304120f80ebf56c3accace40095a; that commit'sCargo.tomlidentifies package version0.10.7. The local channel already records the same codeload source astoqozz-wired-notify-sourceintay/packages/starred-s-z.scm, with immutable source hash0q7fd416nrzczyc25qyn711v2zr5x2gl1nr5xq0l2w2kn6lhd0i5. The commit tree'sLICENSEis the complete MIT License naming Michael Palmos and copyright 2020;wired_deriveis an in-tree path crate at that same Git revision, not a separately fetched origin. The tree has no.gitmodules, no submodule entries, no Git dependency, and no other independently fetched upstream source. For the 295 crates.io package entries in the exactCargo.lock(each fixed by its locked name, version, and checksum), exact-version crates.io API metadata checked on 2026-08-26 returned a nonempty license expression for all 295: 110 MIT OR Apache-2.0, 73 MIT, 49 MIT/Apache-2.0, 8 Apache-2.0/MIT, 6 Apache-2.0, 6 Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT, 5 Apache-2.0 OR MIT, 5 BSD-3-Clause, 4 ISC, 4 Unlicense/MIT, 3 MIT OR Apache-2.0 OR Zlib, 3 MIT / Apache-2.0, 3 MPL-2.0, 2 BSD-2-Clause OR Apache-2.0 OR MIT, 2 BSD-3-Clause OR MIT OR Apache-2.0, 2 MIT OR Zlib OR Apache-2.0, 2 Zlib OR Apache-2.0 OR MIT, and one each of (MIT OR Apache-2.0) AND Unicode-3.0, 0BSD OR MIT OR Apache-2.0, Apache-2.0 OR BSL-1.0, BSD-2-Clause, CC0-1.0, MIT OR Apache-2.0 OR LGPL-2.1-or-later, Unlicense OR MIT, and Zlib. The three yanked lock entries remain fixed downloadable archives and have clear grants:crossbeam-channel@0.5.1checksum06ed27e177f16d65f0f0c22a213e17c696ace5dd64b14258b52f9417ccb52db4is MIT OR Apache-2.0,futures-util@0.3.19checksumd9b5cf40b47a271f77a8b1bec03ca09044d99d2372c0de244e66430761127164is MIT OR Apache-2.0, andrgb@0.8.32checksume74fdc210d8f24a7dbfedc13b04ba5764f5232754ccebfdf5fff1bad791ccbc6is MIT. Thus no required source origin lacks a clear redistribution grant, including the separately fetched registry origins. The source is technically source-buildable: upstream uses ordinary Cargo with edition 2021, a checked-in lockfile, and no parent build script or runtime download; itsinstaller.shis deliberately unsuitable because it requires root, DNF,nc google.com, and an unpinned networked Cargo build. The local channel has no installablewireddefinition and the inspected GNU Guix/Nonguix/Guix Science/Guix HPC/Guix Past/Guix RDE coverage has no equivalent package from this upstream;dunstis only a different notification-daemon alternative. Implement a dedicated(tay packages wired)module, reusing(package-source toqozz-wired-notify-source),cargo-build-system,#:install-source? #f, and the channel's stablerusttoolchain. Enumerate all 295 locked crates as immutablecrate-sourceinputs (the localguix import crate --lockfile Cargo.lockresult matches the 295 registry entries), preserve and restoreCargo.lockaround Guix's configure phase because this Guix cargo system deletes it, and invoke build/tests with--locked; Cargo's Guix phases must remain offline. Required native/system inputs arepkg-config,cairo,pango,glib,dbus,libx11,libxscrnsaver,libxi,libxrandr,libxcursor, andlibxkbcommon, matching the cairo/pango/DBus/X11/XSS features in the Rust graph and upstream's X11 build inputs. Install only thewiredbinary, the MIT notice, and the two declarative exampleswired.ronandwired_multilayout.ron; omit README demo media, AUR/Nix files, and the networked installer. Preservewired.serviceas user-managed data but rewrite its/usr/bin/wiredExecStartto the immutable package$out/bin/wired; retain itsType=dbus,BusName=org.freedesktop.Notifications, andConditionEnvironment=DISPLAYcontract without enabling any service automatically. The daemon requires a session D-Bus and X11 or XWaylandDISPLAY(it forces winit's X11 event loop); it does not provide native Wayland support. Its font and icon lookups remain external system/user resources and must not download assets. The only optional subprocess integration isxdg-openfor clicked URL actions; either addxdg-utilsas an explicit runtime input and prepend it in a wrapper PATH, or document it as optional, and do not invoke it in the offline smoke. No credentials or credential files are needed. Add an isolatedtests/wired-smoke.shproof that builds the package with tests enabled, runswired --helpandwired --versionagainst the installed output, then inunshare -Urnmwith a private tmpfs/tmp, fresh HOME/XDG directories, an in-namespaceXvfb, anddbus-run-session, startswired --configwith a temporary text-only RON config, callsGetServerInformationandNotifyover the session bus to verify thewiredservice and a rendered notification path, invokeswired --killthrough the private/tmp/wired.sock, asserts clean exit, forbids network and host state, and compares the package-output file manifest before and after while checking the installed MIT notice, both RON examples, and rewritten service. Acceptance isguix lint -L . --no-network --exclude=cve,refresh,archival wiredwith no new errors andguix build -L . wiredsucceeding from commit6b6f3c15b1a1304120f80ebf56c3accace40095awith the locked graph and tests enabled; this research did not claim either proof because the host Guix daemon socket is unavailable.Acceptance criteria
Imported from GitHub issue/PR. Originally posted by htayj on 2026-08-26T12:05:01Z.
Completed by Goocastle
Imported from GitHub comment. Originally posted by htayj on 2026-08-27T04:56:47Z.