Implement researched Guix package outcome for #62: [Guix packaging] A7R7/org-popup-posframe #619

Closed
opened 2026-08-25 17:37:05 +00:00 by htayj · 2 comments
htayj commented 2026-08-25 17:37:05 +00:00 (Migrated from github.com)

Context

This delivery ticket was created from research issue #62 ([Guix packaging] A7R7/org-popup-posframe).

The host-validated research finding follows:

Canonical source and fixed revision: use https://github.com/A7R7/org-popup-posframe at upstream Version 0.0.1, fixed to commit d39cb7c2c9a996689b0d6519695eed3d807c0c85 on main (2024-05-28); there is no release tag or published release. The local channel already records this exact codeload origin as a7r7-org-popup-posframe-source in tay/packages/starred-a-c.scm, with base32 source hash 1aalk02slmy50nhjdp3knw09qs44ms6ak5ch3c2k025cnn9cb0w and channel snapshot version 0-d39cb7c. The tree at that revision contains org-popup-posframe.el, readme.org, LICENSE, and two PNG screenshots; .gitmodules is absent and git submodule status is empty. License and source-build assessment: at the exact A7R7 revision, LICENSE is the complete GNU GPL version 3 text and org-popup-posframe.el carries SPDX GPL-3.0-or-later plus the full GPL grant and warranty notice; the README also identifies GPLv3. The screenshots are files in that same fixed origin, not separately fetched sources, and should not be installed by the Emacs build. The existing preservation snapshot narrows its metadata to license:gpl3, but the installed package should use license:gpl3+ to match the source header. The only runtime extension origin required beyond Emacs is https://github.com/tumashu/posframe tag v1.5.2, fixed at commit 74c8c56131ed866db47ae4191364b72dd4852456; posframe.el at that exact revision contains the full GPL version 3 or later grant, and the pinned Guix commit 21c3d6748b65dad0d23c5d72e406ffee42212884 defines emacs-posframe 1.5.2 from that tag with license:gpl3+ and no submodules. emacs-build-system supplies the pinned build-only emacs-minimal 30.2 origin, mirror://gnu/emacs/emacs-30.2.tar.xz with base32 hash 1nggbgnns7lvxn68gzlcsgwh3bigvrbn45kh6dqia9yxlqc6zwxk; the Guix emacs-minimal definition at that channel revision declares license:gpl3+. Org is bundled with supported Emacs, so emacs-org is not a required separately fetched input. This is a legal, source-buildable Elisp package with no native compilation, vendored code, downloads, or runtime helper. Equivalent coverage: the local channel has only the preservation source snapshot; neither the pinned GNU Guix package set nor the local tay modules has an installed package for A7R7/org-popup-posframe, so no equivalent with the same origin exists. Delivery brief: add an installed package named emacs-org-popup-posframe in a dedicated tay/packages/org-popup-posframe.scm module using emacs-build-system, upstream version 0.0.1-0.d39cb7c, the recorded package-source from a7r7-org-popup-posframe-source, and propagated-inputs containing emacs-posframe. Do not add emacs-org or a wrapper; emacs-build-system automatically uses emacs-minimal for compilation, while runtime is the user’s Emacs 28.1 or newer with propagated posframe. Add a phase to install the upstream LICENSE at share/doc/emacs-org-popup-posframe/LICENSE; the default Emacs include rules install the Elisp and generated package metadata but not the PNGs. Required runtime behavior is loading org-popup-posframe.el, requiring org and posframe, and enabling org-popup-posframe-mode; posframe-workable-p intentionally makes popup display a no-op in batch or non-graphic Emacs, so GUI behavior must be tested separately and needs no wrapper or environment setup. Specific smoke proof: add tests/emacs-org-popup-posframe-smoke.sh; create a fresh temporary HOME, XDG_CONFIG_HOME, XDG_DATA_HOME, and XDG_CACHE_HOME, run the installed library with emacs --batch -Q and no network, require org, posframe, and org-popup-posframe, enable the mode and assert the org-capture and org-insert-link advices are installed, disable it and assert they are removed, verify the installed GPL text, fingerprint every file under the package output before and after the run, and assert no output file is writable. Separately run the same installed package under Xvfb or a real isolated DISPLAY, show a temporary Org buffer through org-popup-posframe--show-buffer, assert the buffer-local posframe--frame is live, then hide and clean it up. Acceptance for the implementation is guix lint -L . emacs-org-popup-posframe and guix build -L . emacs-org-popup-posframe, followed by the isolated batch smoke and separate GUI check; no package proof is claimed by this research, and the current host could not realize packages because the Guix daemon socket was unavailable.

Acceptance criteria

  • Implement the viable package change identified in the host-validated research finding.
  • Preserve Guix source provenance, licensing, and deterministic build requirements recorded in the finding.
  • Add and pass a package-specific safe smoke proof using isolated HOME/XDG state before closure.

Imported from GitHub issue/PR. Originally posted by htayj on 2026-08-25T17:37:05Z.

<!-- goocastle-implementation-ticket:sequential-reviewer:62:1:implementation-ready --> ## Context This delivery ticket was created from research issue #62 ([Guix packaging] A7R7/org-popup-posframe). The host-validated research finding follows: Canonical source and fixed revision: use https://github.com/A7R7/org-popup-posframe at upstream Version 0.0.1, fixed to commit d39cb7c2c9a996689b0d6519695eed3d807c0c85 on main (2024-05-28); there is no release tag or published release. The local channel already records this exact codeload origin as a7r7-org-popup-posframe-source in tay/packages/starred-a-c.scm, with base32 source hash 1aalk02slmy50nhjdp3knw09qs44ms6ak5ch3c2k025cnn9cb0w and channel snapshot version 0-d39cb7c. The tree at that revision contains org-popup-posframe.el, readme.org, LICENSE, and two PNG screenshots; .gitmodules is absent and git submodule status is empty. License and source-build assessment: at the exact A7R7 revision, LICENSE is the complete GNU GPL version 3 text and org-popup-posframe.el carries SPDX GPL-3.0-or-later plus the full GPL grant and warranty notice; the README also identifies GPLv3. The screenshots are files in that same fixed origin, not separately fetched sources, and should not be installed by the Emacs build. The existing preservation snapshot narrows its metadata to license:gpl3, but the installed package should use license:gpl3+ to match the source header. The only runtime extension origin required beyond Emacs is https://github.com/tumashu/posframe tag v1.5.2, fixed at commit 74c8c56131ed866db47ae4191364b72dd4852456; posframe.el at that exact revision contains the full GPL version 3 or later grant, and the pinned Guix commit 21c3d6748b65dad0d23c5d72e406ffee42212884 defines emacs-posframe 1.5.2 from that tag with license:gpl3+ and no submodules. emacs-build-system supplies the pinned build-only emacs-minimal 30.2 origin, mirror://gnu/emacs/emacs-30.2.tar.xz with base32 hash 1nggbgnns7lvxn68gzlcsgwh3bigvrbn45kh6dqia9yxlqc6zwxk; the Guix emacs-minimal definition at that channel revision declares license:gpl3+. Org is bundled with supported Emacs, so emacs-org is not a required separately fetched input. This is a legal, source-buildable Elisp package with no native compilation, vendored code, downloads, or runtime helper. Equivalent coverage: the local channel has only the preservation source snapshot; neither the pinned GNU Guix package set nor the local tay modules has an installed package for A7R7/org-popup-posframe, so no equivalent with the same origin exists. Delivery brief: add an installed package named emacs-org-popup-posframe in a dedicated tay/packages/org-popup-posframe.scm module using emacs-build-system, upstream version 0.0.1-0.d39cb7c, the recorded package-source from a7r7-org-popup-posframe-source, and propagated-inputs containing emacs-posframe. Do not add emacs-org or a wrapper; emacs-build-system automatically uses emacs-minimal for compilation, while runtime is the user’s Emacs 28.1 or newer with propagated posframe. Add a phase to install the upstream LICENSE at share/doc/emacs-org-popup-posframe/LICENSE; the default Emacs include rules install the Elisp and generated package metadata but not the PNGs. Required runtime behavior is loading org-popup-posframe.el, requiring org and posframe, and enabling org-popup-posframe-mode; posframe-workable-p intentionally makes popup display a no-op in batch or non-graphic Emacs, so GUI behavior must be tested separately and needs no wrapper or environment setup. Specific smoke proof: add tests/emacs-org-popup-posframe-smoke.sh; create a fresh temporary HOME, XDG_CONFIG_HOME, XDG_DATA_HOME, and XDG_CACHE_HOME, run the installed library with emacs --batch -Q and no network, require org, posframe, and org-popup-posframe, enable the mode and assert the org-capture and org-insert-link advices are installed, disable it and assert they are removed, verify the installed GPL text, fingerprint every file under the package output before and after the run, and assert no output file is writable. Separately run the same installed package under Xvfb or a real isolated DISPLAY, show a temporary Org buffer through org-popup-posframe--show-buffer, assert the buffer-local posframe--frame is live, then hide and clean it up. Acceptance for the implementation is guix lint -L . emacs-org-popup-posframe and guix build -L . emacs-org-popup-posframe, followed by the isolated batch smoke and separate GUI check; no package proof is claimed by this research, and the current host could not realize packages because the Guix daemon socket was unavailable. ## Acceptance criteria - Implement the viable package change identified in the host-validated research finding. - Preserve Guix source provenance, licensing, and deterministic build requirements recorded in the finding. - Add and pass a package-specific safe smoke proof using isolated HOME/XDG state before closure. --- Imported from [GitHub issue/PR](https://github.com/htayj/guix-channel/issues/619). Originally posted by [htayj](https://github.com/htayj) on 2026-08-25T17:37:05Z.
htayj commented 2026-08-25 21:56:46 +00:00 (Migrated from github.com)

Completed by Goocastle


Imported from GitHub comment. Originally posted by htayj on 2026-08-25T21:56:46Z.

Completed by Goocastle --- Imported from [GitHub comment](https://github.com/htayj/guix-channel/issues/619#issuecomment-5417355327). Originally posted by [htayj](https://github.com/htayj) on 2026-08-25T21:56:46Z.
Owner

Published signed/authenticated commit f9d9ee4d9b after separately authorized remote object recovery. Main source build, --check reproducibility, offline lint, real isolated runtime and integrated targets passed; unchanged store and native screenshots verified. Actual isolated Org childframe capture menu, template selection/finalized content and show/hide/delete passed; PNG619 native childframe inspected. Existing compile warning disclosed. No Goocastle execution or user package-profile changes.

Published signed/authenticated commit f9d9ee4d9beed38faea8d013b125722e2f3a402f after separately authorized remote object recovery. Main source build, --check reproducibility, offline lint, real isolated runtime and integrated targets passed; unchanged store and native screenshots verified. Actual isolated Org childframe capture menu, template selection/finalized content and show/hide/delete passed; PNG619 native childframe inspected. Existing compile warning disclosed. No Goocastle execution or user package-profile changes.
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#619
No description provided.