Move SigVisualizer into the monorepo as a GPLv3 component - #13
Merged
neuromechanist merged 1 commit intoJul 20, 2026
Merged
Conversation
Vendored at apps/SigVisualizer/ from neuromechanist/Secure-SigVisualizer branch feature/security-status, based on upstream aa754e6. Upstream SigVisualizer is GPLv3, not MIT. The fork had replaced that with proprietary terms; this restores the upstream GPLv3 license and relicenses the README to match. Because GPLv3 is copyleft, the security integration added here is GPLv3 too, even though (verified) it contains no cryptography: lsl_security_helper.py is a pylsl compatibility shim and the paintwidget changes read stream status through the public LSL API. The security implementation stays in liblsl-secure. - LICENSE: component policy generalized to name the GNU GPL and state that a copyleft component is aggregated under its own license (GPLv3 section 5) rather than brought under the proprietary terms - COMPONENT.md records the GPLv3 status, the pylsl runtime dependency, and flags the GPL-app-links-proprietary-library question for OIC - THIRD-PARTY-NOTICES.md references the component LICENSE rather than inlining 674 lines - docs/integration/sigvisualizer.md now builds the in-repo component against apps/pylsl instead of cloning upstream - Dropped vendored .github workflows Closes #10
8 tasks
neuromechanist
deleted the
10-move-sigvisualizer-into-the-monorepo-as-a-component
branch
July 20, 2026 03:48
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.
Closes #10. Third of three component moves (#8 pylsl, #9 LabRecorder both merged).
This one is different: upstream is GPLv3
Unlike pylsl and LabRecorder (both MIT), upstream SigVisualizer is licensed GPLv3. The fork
neuromechanist/Secure-SigVisualizerhad replaced that with proprietary terms (commits2dad2be,c07cf36). This PR restores the upstream GPLv3 license and relicenses the README to match, per the component licensing policy of retaining upstream terms.Because GPLv3 is copyleft, this component stays GPLv3, and the security integration added to it is GPLv3 too. That is correct and required, not a choice.
The added code contains no cryptography (verified)
The security implementation lives entirely in
liblsl-secure. The additions here only read status through the public LSL API:lsl_security_helper.pyis a pylsl compatibility shim that ctypes-declareslsl_get_security_enabled/lsl_get_security_fingerprintand attaches wrapper methodspaintwidget.py/sigvisualizer.pydisplay a lock indicator and detect mismatchesNo libsodium calls, no key handling, no encryption. Same as the other two components; the difference here is purely the upstream license.
Licensing structure
LICENSECOMPONENT LICENSING POLICY generalized to name the GNU GPL and state that a copyleft component is aggregated under GPLv3 section 5, not brought under the proprietary termsTHIRD-PARTY-NOTICES.mdreferencesapps/SigVisualizer/LICENSErather than inlining 674 linesCOMPONENT.mdrecords provenance and the GPLv3 statusFor OIC review (flagged, not blocking)
SigVisualizer (GPLv3) imports the in-repo pylsl and, at the user's runtime, loads
liblsl-secure(proprietary) via ctypes. Whether distributing a GPLv3 application whose intended runtime dependency is a proprietary library creates any obligation is a question for counsel. It is the same question that already applies to the drop-in library-replacement route, and co-location in one repository is mere aggregation under GPLv3 section 5. Merging this is reversible if OIC prefers a different arrangement.Docs
docs/integration/sigvisualizer.mdpreviously told users to clone fromlabstreaminglayer/App-SigVisualizer; it now builds the in-repo component againstapps/pylsl.