Formalize the project licensing according to open-source standards #65

Closed
opened 2026-07-24 11:09:46 -07:00 by serrebi · 2 comments
Owner

Currently, the BlindRSS project does not have an explicit license. While the source code is publicly available, the lack of a formal license creates legal uncertainty and imposes significant restrictions on usage. In legal terms, “no license” means no permissions are granted, which is effectively the strictest possible limitation.

This absence prevents legitimate use cases, such as packaging BlindRSS for distribution in operating system repositories (e.g., Debian, Fedora, Arch), which require clearly defined, recognized open-source licenses for all included packages.

Impact

  • Packaging and distribution blocked: Distributions cannot include BlindRSS without a clear, approved license.
  • Legal uncertainty for users and contributors: Without an explicit license, users and potential contributors cannot be sure what they are allowed to do with the code.
  • Risk of unintended restrictions: The default copyright protections apply, limiting modification, redistribution unless explicitly permitted.

Proposal

Define and implement a formal licensing status for BlindRSS in line with open-source conventions. The project’s ethos has historically been as permissive as possible, so licenses like MIT or Creative Commons Zero are considered well-aligned with this spirit. The final choice of license remains with the main developer/maintainer.

  1. Add a license file: Place a LICENSE or LICENSE.txt file in the project root containing the full text of the chosen license.
  2. Include license notices in source files: Add copyright and license information at the beginning of each source file. For brevity and standardization, it is recommended to use SPDX identifiers.
  3. Verify license detection on GitHub: After committing the license changes, check the repository page on GitHub to ensure the license is correctly recognized (visible at the bottom of the main page).

Examples of Implementation

For MIT License
  • Full text for file in the project root: https://opensource.org/license/mit
  • notice in each source file header:
    # Copyright (c) serrebidev and contributors
    # This file is part of BlindRSS
    # SPDX-License-Identifier: MIT
    
For Creative Commons Zero License
  • Plain text file with full text: https://creativecommons.org/publicdomain/zero/1.0/legalcode.txt
  • notice in each source file header:
    # Written by serrebidev and contributors
    # This file is part of BlindRSS
    # SPDX-License-Identifier: CC0
    
  • When using a CC0 license, in Settings > About dialog box the text Copyright (c) 2024-2026 serrebidev and contributors should be replaced with Written by 2024-2026 serrebidev and contributors

Additional Notes

  • The SPDX identifier is widely supported by tools and platforms and is the preferred modern approach for denoting licenses in source files.
  • Once the license is added, it’s advisable to update the README to briefly mention the licensing status (e.g., BlindRSS is distributed under the MIT license or BlindRSS is distributed under the Creative Commons Zero license).
  • This change should be treated as a high‑priority foundational step to ensure the project’s long‑term viability and broader adoption.
Currently, the BlindRSS project does not have an explicit license. While the source code is publicly available, the lack of a formal license creates legal uncertainty and imposes significant restrictions on usage. In legal terms, “no license” means no permissions are granted, which is effectively the strictest possible limitation. This absence prevents legitimate use cases, such as packaging BlindRSS for distribution in operating system repositories (e.g., Debian, Fedora, Arch), which require clearly defined, recognized open-source licenses for all included packages. #### Impact - **Packaging and distribution blocked**: Distributions cannot include BlindRSS without a clear, approved license. - **Legal uncertainty for users and contributors**: Without an explicit license, users and potential contributors cannot be sure what they are allowed to do with the code. - **Risk of unintended restrictions**: The default copyright protections apply, limiting modification, redistribution unless explicitly permitted. #### Proposal Define and implement a formal licensing status for BlindRSS in line with open-source conventions. The project’s ethos has historically been as permissive as possible, so licenses like MIT or Creative Commons Zero are considered well-aligned with this spirit. The final choice of license remains with the main developer/maintainer. #### Recommended Steps 1. **Add a license file**: Place a `LICENSE` or `LICENSE.txt` file in the project root containing the full text of the chosen license. 2. **Include license notices in source files**: Add copyright and license information at the beginning of each source file. For brevity and standardization, it is recommended to use SPDX identifiers. 3. **Verify license detection on GitHub**: After committing the license changes, check the repository page on GitHub to ensure the license is correctly recognized (visible at the bottom of the main page). #### Examples of Implementation ##### For MIT License - Full text for file in the project root: <https://opensource.org/license/mit> - notice in each source file header: ```python # Copyright (c) serrebidev and contributors # This file is part of BlindRSS # SPDX-License-Identifier: MIT ``` ##### For Creative Commons Zero License - Plain text file with full text: <https://creativecommons.org/publicdomain/zero/1.0/legalcode.txt> - notice in each source file header: ```python # Written by serrebidev and contributors # This file is part of BlindRSS # SPDX-License-Identifier: CC0 ``` - When using a CC0 license, in Settings > About dialog box the text `Copyright (c) 2024-2026 serrebidev and contributors` should be replaced with `Written by 2024-2026 serrebidev and contributors` #### Additional Notes - The SPDX identifier is widely supported by tools and platforms and is the preferred modern approach for denoting licenses in source files. - Once the license is added, it’s advisable to update the README to briefly mention the licensing status (e.g., `BlindRSS is distributed under the MIT license` or `BlindRSS is distributed under the Creative Commons Zero license`). - This change should be treated as a high‑priority foundational step to ensure the project’s long‑term viability and broader adoption. <!-- forgejo-github-sync: issue github=serrebidev/BlindRSS#92 -->
Author
Owner

The licensing procedure should also be applied to service scripts in the tools directory and to tests in the tests directory.

The licensing procedure should also be applied to service scripts in the `tools` directory and to tests in the `tests` directory. <!-- forgejo-github-sync: comment github=serrebidev/BlindRSS#92/5072969271 -->
Author
Owner

Done, and shipped in v1.121.3.

Went with MIT. LICENSE is in the repo root, and every tracked source file now carries the SPDX header you suggested — including tools/ and tests/, per your follow-up. GitHub is detecting it correctly (the API reports MIT for the repo), and the README has a License section and badge.

Two things beyond the checklist:

  • Both PyInstaller specs now bundle LICENSE into the build, since MIT wants the notice to travel with every copy. The Inno installer picks it up from its recursive dist copy.
  • Adding three header lines to the top of every file shifted all the #: source references in locale/blindrss.pot and the 15 .po catalogs. Those were regenerated with tools/extract_strings.py and merged with msgmerge -U --no-fuzzy-matching; nothing was lost, blanked, or fuzzy-marked. Worth a heads-up for you specifically — pull main before your next Russian PR, or you'll be diffing against stale line numbers.

Since this is MIT rather than CC0, the About dialog keeps Copyright (c) 2024-2026 serrebidev and contributors unchanged, so none of the existing translations of that string needed redoing.

Thanks for pushing on this — you were right that it was quietly blocking packaging.

Done, and shipped in v1.121.3. Went with MIT. `LICENSE` is in the repo root, and every tracked source file now carries the SPDX header you suggested — including `tools/` and `tests/`, per your follow-up. GitHub is detecting it correctly (the API reports `MIT` for the repo), and the README has a License section and badge. Two things beyond the checklist: - Both PyInstaller specs now bundle `LICENSE` into the build, since MIT wants the notice to travel with every copy. The Inno installer picks it up from its recursive `dist` copy. - Adding three header lines to the top of every file shifted all the `#:` source references in `locale/blindrss.pot` and the 15 `.po` catalogs. Those were regenerated with `tools/extract_strings.py` and merged with `msgmerge -U --no-fuzzy-matching`; nothing was lost, blanked, or fuzzy-marked. Worth a heads-up for you specifically — pull `main` before your next Russian PR, or you'll be diffing against stale line numbers. Since this is MIT rather than CC0, the About dialog keeps `Copyright (c) 2024-2026 serrebidev and contributors` unchanged, so none of the existing translations of that string needed redoing. Thanks for pushing on this — you were right that it was quietly blocking packaging. <!-- forgejo-github-sync: comment github=serrebidev/BlindRSS#92/5073658556 -->
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
serrebi/BlindRSS#65
No description provided.