[Guix packaging] johnelse/ocaml-irc-client #130

Closed
opened 2026-08-14 13:17:45 +00:00 by htayj · 3 comments
htayj commented 2026-08-14 13:17:45 +00:00 (Migrated from github.com)

Candidate

  • Upstream canonical URL: https://github.com/johnelse/ocaml-irc-client
  • Source pinned commit/release when known: d6f8b2a2e044bf36cc77edaf2ca261facd950d98 on main (default branch snapshot reviewed 2026-08-14).
  • Target concrete installed deliverable: OCaml IRC client libraries (irc-client, Unix, Lwt, TLS, and Lwt+SSL)
  • Primary category: networking-client
  • Tags: None
  • Primary language normalized: OCaml
  • Build system: Dune/opam (dune-project, irc-client*.opam, Makefile; optional Lwt/TLS variants)
  • SPDX expression: MIT
  • License status: confirmed-free
  • License evidence: LICENSE contains MIT and the opam packages declare the OCaml IRC client variants.
  • Difficulty: moderate — Package the core and optional variants with their exact dependency split and avoid network in tests by using a local fake IRC server.
  • Workflow state: ready
  • 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 pinned upstream source as the stated deliverable, retaining upstream notices and making runtime services, credentials, downloaded assets, and optional integrations explicit. Package the core and optional variants with their exact dependency split and avoid network in tests by using a local fake IRC server.

Acceptance checks

  • guix lint -L. ocaml-irc-client passes with no new errors.
  • guix build -L. ocaml-irc-client succeeds from the pinned source with tests enabled where practical.
  • App-specific offline smoke: Build/test offline and run the bundled examples against a local loopback fake server, then run guix lint/build for each output.

Context

This ticket has completed the upstream, license, and existing-channel discovery needed for unattended packaging. Package the pinned OCaml IRC client source and its optional variants as a source-built Guix package, with a loopback-only fake IRC server used for runtime proof.

Acceptance criteria

  • Add the core ocaml-irc-client package and any justified variants with exact dependency boundaries and retained MIT notice.
  • The package builds from the pinned source without runtime or build-time downloads, and guix lint -L . --no-network reports no package-specific findings.
  • Add tests/ocaml-irc-client-smoke.sh that uses fresh HOME/XDG paths and a local loopback fake IRC server to exercise a real client/library exchange without external network access.
  • The safe package proof builds with --check, installs into a temporary profile, runs the smoke, and demonstrates that the output is immutable.

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

## Candidate - Upstream canonical URL: https://github.com/johnelse/ocaml-irc-client - Source pinned commit/release when known: `d6f8b2a2e044bf36cc77edaf2ca261facd950d98` on `main` (default branch snapshot reviewed 2026-08-14). - Target concrete installed deliverable: OCaml IRC client libraries (`irc-client`, Unix, Lwt, TLS, and Lwt+SSL) - Primary category: networking-client - Tags: None - Primary language normalized: OCaml - Build system: Dune/opam (`dune-project`, `irc-client*.opam`, Makefile; optional Lwt/TLS variants) - SPDX expression: MIT - License status: confirmed-free - License evidence: `LICENSE` contains MIT and the opam packages declare the OCaml IRC client variants. - Difficulty: moderate — Package the core and optional variants with their exact dependency split and avoid network in tests by using a local fake IRC server. - Workflow state: ready - 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 pinned upstream source as the stated deliverable, retaining upstream notices and making runtime services, credentials, downloaded assets, and optional integrations explicit. Package the core and optional variants with their exact dependency split and avoid network in tests by using a local fake IRC server. ## Acceptance checks - `guix lint -L. ocaml-irc-client` passes with no new errors. - `guix build -L. ocaml-irc-client` succeeds from the pinned source with tests enabled where practical. - App-specific offline smoke: Build/test offline and run the bundled examples against a local loopback fake server, then run `guix lint`/build for each output. ## Context This ticket has completed the upstream, license, and existing-channel discovery needed for unattended packaging. Package the pinned OCaml IRC client source and its optional variants as a source-built Guix package, with a loopback-only fake IRC server used for runtime proof. ## Acceptance criteria - Add the core `ocaml-irc-client` package and any justified variants with exact dependency boundaries and retained MIT notice. - The package builds from the pinned source without runtime or build-time downloads, and `guix lint -L . --no-network` reports no package-specific findings. - Add `tests/ocaml-irc-client-smoke.sh` that uses fresh HOME/XDG paths and a local loopback fake IRC server to exercise a real client/library exchange without external network access. - The safe package proof builds with `--check`, installs into a temporary profile, runs the smoke, and demonstrates that the output is immutable. --- Imported from [GitHub issue/PR](https://github.com/htayj/guix-channel/issues/130). Originally posted by [htayj](https://github.com/htayj) on 2026-08-14T13:17:45Z.
htayj commented 2026-08-25 08:07:23 +00:00 (Migrated from github.com)

Completed by Goocastle


Imported from GitHub comment. Originally posted by htayj on 2026-08-25T08:07:23Z.

Completed by Goocastle --- Imported from [GitHub comment](https://github.com/htayj/guix-channel/issues/130#issuecomment-5407374915). Originally posted by [htayj](https://github.com/htayj) on 2026-08-25T08:07:23Z.
htayj commented 2026-08-25 08:07:38 +00:00 (Migrated from github.com)

Reopened: a Goocastle recovery defect incorrectly skipped a previously interrupted safe-package-proof phase during resume. The package remains under verification until the corrected proof has completed.


Imported from GitHub comment. Originally posted by htayj on 2026-08-25T08:07:38Z.

Reopened: a Goocastle recovery defect incorrectly skipped a previously interrupted safe-package-proof phase during resume. The package remains under verification until the corrected proof has completed. --- Imported from [GitHub comment](https://github.com/htayj/guix-channel/issues/130#issuecomment-5407377564). Originally posted by [htayj](https://github.com/htayj) on 2026-08-25T08:07:38Z.
htayj commented 2026-08-25 08:21:13 +00:00 (Migrated from github.com)

Recovered-package proof is now complete on master (c394bdf). Verified every exported IRC package variant (ocaml-irc-client, -unix, -lwt, -lwt-ssl) with guix build -L . --no-grafts, guix build --check, a fresh-profile loopback IRC smoke test, and immutable-output inspection. Also ran offline lint on all five exported packages (including ocaml-lwt-ssl) and make check-source-count in the pinned Gooflow tool profile.


Imported from GitHub comment. Originally posted by htayj on 2026-08-25T08:21:13Z.

Recovered-package proof is now complete on master (c394bdf). Verified every exported IRC package variant (`ocaml-irc-client`, `-unix`, `-lwt`, `-lwt-ssl`) with `guix build -L . --no-grafts`, `guix build --check`, a fresh-profile loopback IRC smoke test, and immutable-output inspection. Also ran offline lint on all five exported packages (including `ocaml-lwt-ssl`) and `make check-source-count` in the pinned Gooflow tool profile. --- Imported from [GitHub comment](https://github.com/htayj/guix-channel/issues/130#issuecomment-5407520469). Originally posted by [htayj](https://github.com/htayj) on 2026-08-25T08:21:13Z.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
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#130
No description provided.