[Guix packaging] Toqozz/wired-notify #81
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
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
tay/guix-channel#81
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?
Candidate
6b6f3c15b1a1304120f80ebf56c3accace40095aonmaster(default branch snapshot reviewed 2026-08-14).wireddesktop notification daemonCargo.toml/Cargo.lock; GTK/Pango/Cairo, X11/DBus)LICENSEcontains the MIT license andCargo.tomldeclares the Rust package.Scope and blockers
Package the pinned upstream source as the stated deliverable, retaining upstream notices and making runtime services, credentials, downloaded assets, and optional integrations explicit. Provide system inputs for Cairo/Pango/X11/DBus and preserve the declarative layout configuration while avoiding installer-side network access.
Acceptance checks
guix lint -L. wiredpasses with no new errors.guix build -L. wiredsucceeds from the pinned source with tests enabled where practical.cargo test/Guix build offline and launchwired --helpwith a temporary config, checking clean startup and shutdown.Imported from GitHub issue/PR. Originally posted by htayj on 2026-08-14T13:17:07Z.
Goocastle recorded disposition: implementation-ready.
Created implementation ticket: #629.
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.Imported from GitHub comment. Originally posted by htayj on 2026-08-26T12:05:06Z.
Implemented and published in signed, Guix-authenticated commit
62f09e33feb2119a835d7b346606d7811d9d3500.Wired: real isolated D-Bus Notify/CloseNotification, rendered X11 notification, clean --kill and unchanged store digest. Cargo check runs successfully but upstream contains zero tests. Output wrxmykhlfpaifvc28qzg9f4asas5cl6x.
Source build, final reproducibility
--check, offline lint without package-specific findings, standalone and integrated Make acceptance passed. README records exact commands and limits; unrelated Fourk/flex/legacy Cargo diagnostics are not claimed clean. No deployed system changed; no OKF deployment update applies.