Skip to content

feat!: rename to PoliNetwork eSign and publish Linux packages for Arch, Debian and Fedora - #7

Merged
lorenzocorallo merged 1 commit into
mainfrom
lorenzocorallo/linux-distro-packaging
Oct 17, 2026
Merged

lorenzocorallo merged 1 commit into
mainfrom
lorenzocorallo/linux-distro-packaging

Conversation

@lorenzocorallo

Copy link
Copy Markdown
Member

This renames the project to PoliNetwork eSign and makes Arch, Debian/Ubuntu and Fedora supported Linux targets, with packages that update along with the system.

Rename

The repository is now PoliNetworkOrg/esign (GitHub redirects the old URLs). The rename covers the Go module, cmd/esign, the app name, the binaries (esign, esign.exe, polinetwork-esign), the macOS bundle ID org.polinetwork.esign, the link scheme polinetwork-esign://, the config and install folders, the release file names, the ESIGN_* test env vars and the page's postMessage type pn-esign.

Migration from v0.1.x:

  • install (and opening the app) removes what PoliNetwork Sign Agent registered: login item or service, link handler, "Installed apps" entry and installed copy. It also stops a running old agent, so the two don't compete for port 47321.
  • config.Dir moves the old config folder, with its card pairings, to the new location.
  • The new .deb replaces polinetwork-sign-agent.

Dashboard counterpart: PoliNetworkOrg/admin#106.

Linux packages

  • Packages: every release builds a .deb, an .rpm and an Arch .pkg.tar.zst with nfpm. Dependencies use each distro's names (pcscd/pcsc-lite/pcsclite plus the CCID driver).
  • Install script: enables pcscd.socket (Arch leaves it off by default) and starts the agent for users who are logged in.
  • Removal script: it used to run on rpm upgrades and disable the service; it now runs only on real removal.
  • AUR: stable releases push polinetwork-esign-bin (packaging/aur/PKGBUILD, scripts/aur-package.sh), so Arch users can install with yay -S polinetwork-esign-bin or paru.
  • APT and DNF repositories: stable releases publish signed repositories on GitHub Pages (scripts/linux-repository.sh). The .deb and .rpm add these repositories, so after one manual install the agent updates through apt upgrade or dnf upgrade.
  • Keys: the AUR and repository steps are skipped with a warning until their keys exist. Set them up with scripts/setup-linux-publishing.sh; see docs/linux-packages.md.

Testing

  • Go tests pass on macOS and on Linux (in Docker, against SoftHSM). The Windows code passes go vet. actionlint passes on the workflows.
  • The packages install, upgrade and remove cleanly on Debian 12, Ubuntu 22.04, Fedora 44 and Arch.
  • With a throwaway key, apt and dnf verified and installed from the generated repositories. The AUR script built its package.
  • On Debian, the new .deb replaced the real v0.1.1 package. A running per-user v0.1.1 install was migrated: the new agent took over port 47321 and the config folder moved.
  • Not exercised: the actual AUR push, the Pages deploy, and migration on a real Mac or Windows machine.

…h, Debian and Fedora

The project is now PoliNetwork eSign (github.com/PoliNetworkOrg/esign): app and package names, the macOS bundle
identifier, the polinetwork-esign:// link scheme, the configuration and install folders, the release files and the
page's postMessage type all change. Installing eSign removes what PoliNetwork Sign Agent v0.1.x registered (login
item or service, link handler, installed copy, running agent) and moves its configuration folder; the .deb replaces
the polinetwork-sign-agent package.

Linux: every release also builds an .rpm and an Arch package next to the .deb. The packages depend on pcsc-lite and
the CCID driver under each distribution's names, enable pcscd.socket, and start the agent for the users logged in.
preremove.sh no longer disables the service when rpm upgrades the package. Stable releases publish:

- polinetwork-esign-bin to the AUR (scripts/aur-package.sh, packaging/aur/PKGBUILD);
- signed APT and DNF repositories on GitHub Pages (scripts/linux-repository.sh), which the .deb and .rpm add, so the
  agent updates with the system.

Both are skipped with a warning until their keys exist: scripts/setup-linux-publishing.sh, docs/linux-packages.md.

BREAKING CHANGE: the link scheme is polinetwork-esign:// and the page posts "pn-esign"; the dashboard must follow.
@coderabbitai

coderabbitai Bot commented Oct 17, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration
  • Configuration used: Organization UI
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 078461e8-eaf9-4be0-85bc-65d271b82cd4
📥 Commits

Reviewing files that changed from the base of the PR and between 97faba2 and 8c16235.

📒 Files selected for processing: 81
  • .github/workflows/build.yml
  • .github/workflows/release.yml
  • .gitignore
  • README.md
  • cmd/cie-vcard/main.go
  • cmd/esign/app_darwin.go
  • cmd/esign/app_linux.go
  • cmd/esign/app_windows.go
  • cmd/esign/doctor.go
  • cmd/esign/main.go
  • cmd/esign/main_test.go
  • cmd/esign/providers.go
  • docs/code-signing.md
  • docs/linux-packages.md
  • go.mod
  • internal/autostart/autostart.go
  • internal/autostart/autostart_darwin_test.go
  • internal/autostart/darwin.go
  • internal/autostart/linux.go
  • internal/autostart/unit.go
  • internal/autostart/windows.go
  • internal/backend/backend.go
  • internal/config/config.go
  • internal/install/bundle.go
  • internal/install/install.go
  • internal/install/install_darwin.go
  • internal/install/install_linux.go
  • internal/install/install_linux_test.go
  • internal/install/install_test.go
  • internal/install/install_windows.go
  • internal/install/legacy_darwin.go
  • internal/install/legacy_linux.go
  • internal/install/legacy_windows.go
  • internal/launch/launch.go
  • internal/launch/launch_test.go
  • internal/launch/os_unix.go
  • internal/launch/os_windows.go
  • internal/macapp/macapp.go
  • internal/server/server.go
  • internal/server/server_test.go
  • internal/server/web/assets/sign.js
  • internal/server/web/index.html
  • internal/server/web/sign.html
  • internal/token/cie/cardsim/card.go
  • internal/token/cie/cardsim/cardsim_test.go
  • internal/token/cie/cardsim/identity.go
  • internal/token/cie/cie.go
  • internal/token/cie/cie_test.go
  • internal/token/cie/pcsc.go
  • internal/token/cie/pcsc_interop_test.go
  • internal/token/p11/cie_interop_test.go
  • internal/token/p11/p11.go
  • internal/token/p11/p11_test.go
  • internal/token/p11/pair.go
  • internal/token/soft/soft.go
  • internal/token/worker/client.go
  • internal/token/worker/pinsent_test.go
  • internal/token/worker/protocol.go
  • internal/token/worker/serve.go
  • internal/token/worker/worker_test.go
  • packaging/aur/PKGBUILD
  • packaging/linux/nfpm-repository.yaml
  • packaging/linux/nfpm.yaml
  • packaging/linux/polinetwork-esign.desktop
  • packaging/linux/polinetwork-esign.service
  • packaging/linux/postinstall.sh
  • packaging/linux/preremove.sh
  • packaging/linux/repository/polinetwork-esign.repo
  • packaging/linux/repository/polinetwork-esign.sources
  • scripts/aur-package.sh
  • scripts/build-docker.sh
  • scripts/build-linux.sh
  • scripts/build-macos.sh
  • scripts/build-windows.sh
  • scripts/interop/in-container.sh
  • scripts/interop/run.sh
  • scripts/linux-repository.sh
  • scripts/setup-linux-publishing.sh
  • scripts/setup-macos-signing.sh
  • scripts/softhsm-tests.sh
  • scripts/test-softhsm.sh

Included review availability: This review used your included allowance. Your plan provides up to 1 included review per hour; 0 remain after this review.

Walkthrough

The pull request renames PoliNetwork Sign Agent to PoliNetwork eSign across the application, installers, packages, and documentation. It adds cleanup of legacy installations, expands Linux package outputs, and adds stable-release publishing for APT, DNF, and AUR.

Changes

eSign identity and distribution

Layer / File(s) Summary
Rename runtime identity and interfaces
go.mod, cmd/esign/*, internal/autostart/*, internal/launch/*, internal/server/*, internal/token/*, scripts/interop/*, README.md, docs/code-signing.md
The module path, command name, URL scheme, server headers, autostart identifiers, product labels, and test environment variables use eSign names.
Migrate installation paths and remove legacy registrations
internal/config/config.go, internal/install/*, README.md
Install and uninstall operations now attempt to remove legacy registrations on macOS, Linux, and Windows. The configuration directory moves to the eSign path if that path does not exist.
Build and package Linux releases
.github/workflows/build.yml, packaging/aur/*, packaging/linux/*, scripts/build-linux.sh, scripts/build-macos.sh, scripts/build-windows.sh, README.md, docs/linux-packages.md
Linux builds produce Debian, RPM, and Arch packages. Package files and service configuration use eSign names; the AUR recipe and Linux package instructions are added or updated.
Publish stable repositories and AUR updates
.github/workflows/release.yml, scripts/linux-repository.sh, scripts/setup-linux-publishing.sh, scripts/aur-package.sh, README.md, docs/linux-packages.md
Release automation classifies hyphenated tags as prereleases. Stable releases can generate signed APT/DNF repositories for GitHub Pages and publish package updates to AUR when credentials are available.

Sequence Diagram(s)

sequenceDiagram
  participant Tag as Stable release tag
  participant Workflow as Release workflow
  participant Repository as linux-repository.sh
  participant Pages as GitHub Pages
  participant AUR as AUR
  Tag->>Workflow: Start release jobs
  Workflow->>Repository: Build signed APT and DNF repositories
  Workflow->>Pages: Upload and deploy repository artifact
  Workflow->>AUR: Build and push package update
Loading

Priority: ➖ Normal

Change: Feature

Merge Risk: 🔵 Low · up to 8c162

This release changes the link scheme and message type, so the dashboard must be updated to match. Confirm the dashboard is deployed with the new scheme before releasing the installer, or users may be unable to open the app from it.

Pre-merge checks: Passed 3 · Inconclusive 1

Failed Failed checks: 1 inconclusive

Check name Status Explanation Resolution
Docstring Coverage Inconclusive Docstring coverage is 59.09% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 66 functions across 50 files. (30 skipped… Write docstrings for the functions missing them to satisfy the coverage threshold.
Passed Passed checks: 3 passed
Check name Status Explanation
Title check Passed The title clearly and concisely summarizes the two primary changes: renaming the application to PoliNetwork eSign and publishing Linux packages for Arch, Debian, and Fedora.
Linked Issues check Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check Passed Check skipped because no linked issues were found for this pull request.
Full details: Docstring Coverage

Explanation

Docstring coverage is 59.09% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 66 functions across 50 files. (30 skipped: 16 unsupported, 14 over the file limit.)

Resolution

Write docstrings for the functions missing them to satisfy the coverage threshold.

✨ Finishing Touches: 💡 1
📝 Generate docstrings: 💡
  • Commit to this branch
  • Create a new PR
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@lorenzocorallo
lorenzocorallo merged commit 64dc1ae into main Oct 17, 2026
15 checks passed
@lorenzocorallo
lorenzocorallo deleted the lorenzocorallo/linux-distro-packaging branch October 17, 2026 17:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant