Repository navigation
feat(cli): make MIT license compliant - #1042
Merged
najuna-brian merged 5 commits intoNov 13, 2026
Merged
najuna-brian merged 5 commits into
najuna-brian merged 5 commits into
Conversation
- Replace yeqown/go-qrcode/writer/standard with custom stdlib qrcode.Writer - Embed qr_logo.png in internal/cmd package for portable execution - Purge fogleman/gg and golang/freetype GPL dependencies via go mod tidy - Update synkronus-cli/LICENSE back to MIT - Update licensing notices in READMEs, docs, and THIRD_PARTY_NOTICES - Add unit tests for FRMLS encoding and PNG QR generation
Member
|
Thanks @Agaba-derrick, nice work.
|
Agaba-derrick
commented
Nov 12, 2026
Agaba-derrick
left a comment
Contributor
Author
There was a problem hiding this comment.
Thanks for the thorough and helpful review! All 7 requested changes have been addressed in commit 0af5df4:
- Use only the built-in logo:
loadQRLogo()now decodesdefaultQRLogoBytesdirectly without filesystem lookups or fallback logic. RemovedlogoPathfromqr.goand deleted the duplicatesynkronus-cli/qr_logo.png. - Restore logo size limit: Re-introduced
const logoSizeMultiplier = 5inrenderQRImage, ensuring the logo is skipped on smaller QR codes (images under ~900 px) to preserve scannability. - Private atomic file write & error reporting: Rendered PNG into an in-memory buffer, written via a private temporary file (
0600) in the destination directory, flushed/synced, closed, and atomically renamed. Exposedw.Err()and added error checks inqr.go. - Image content and permission tests: Added pixel-level checks in
qr_test.gofor:- Quiet zone and corner finder patterns
- Logo rendering on large payloads vs. skipping on small payloads
- Mode
0600file permissions (skipped on Windows) - Atomicity on write failure (no partial files left behind)
- Exact string comparison against Formulus
generateQR.tsoutput (including passwords with;,:,\, and non-ASCII UTF-8 characters)
- SBOM regeneration & notice wording: Updated
THIRD_PARTY_NOTICES.mdwording. Regenerated the SBOM usingnode scripts/sbom/generate-sboms.mjs --out sbom-distand confirmedsynkronus-cli.cdx.jsoncontains zero GPL, AGPL, or LGPL identifiers. - CONTRIBUTING.md: Updated the license section to reflect repo-wide MIT licensing without the former GPL exception.
- PR description: Updated the description with the appropriate checkboxes, the governance council license approval note, and the SBOM audit summary.
najuna-brian
approved these changes
Nov 13, 2026
najuna-brian
left a comment
Member
There was a problem hiding this comment.
Thanks @Agaba-derrick, all requested changes are in!
Approving. 🎉
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What & Why
Returns
synkronus-clito the MIT License by removing the GPL-licensed QR dependencies.yeqown/go-qrcode/writer/standardwith a writer that uses only Go's standard library.fogleman/gg,golang/freetypeandgolang.org/x/imagefromgo.modandgo.sum.0600, never leaves a partial file, and reports write errors.License change: synkronus-cli GPL-2.0-or-later → MIT (approved by the governance council).
Closes #545.
Type of Change
Component(s) Changed
Testing
Checklist