ruby / ruby/lrama

Clarification on GPL Licensing

Open
#384 1 comment 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Ruby
Stars
318
Forks
33
Avg merge
1d 18h
Merged PRs (30d)
8

Description

I was hoping to use lrama to generate a parser for a personal project and did a dive into the licensing since LEGAL.md mentioned that there are some GPL'd files in the tree.

According to the GNU website, the Bison parser skeleton code is GPL, but there is a special license exception for the output of the bison program. (See https://www.gnu.org/software/bison/manual/html_node/Conditions.html.) Specifically they say

You can tell whether the exception applies to a Bison output file by inspecting the file for text beginning with “As a special exception…”. The text spells out the exact terms of the exception.

And of course that exception is present in the GPL files in the lrama repository. (https://github.com/ruby/lrama/blob/master/template/bison/yacc.c#L23)

As a special exception, you may create a larger work that contains part or all of the Bison parser skeleton and distribute that work under terms of your choice, so long as that work isn't itself a parser generator using the skeleton or a modified version thereof as a parser skeleton.

(Emphasis is mine.) Based on my reading of this, it would seem that lrama might not meet the criteria for the GPL exception because it is "a parser generator using the skeleton or a modified version thereof." Also, what is the license status of the code produced by lrama using these skeletons? If lrama itself doesn't qualify for the exception, would its output still qualify for the license exception? That scenario doesn't seem to be addressed by the exception text. Probably worth clarifying with some of the GNU folks?

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Read LEGAL.md and the license text in template/bison/yacc.c, then compare their exception wording with the GNU Bison conditions page linked in the issue. Clarify whether lrama and code it generates are covered by the exception, documenting the resulting license status and whether GNU guidance is needed.

Written by the indexing model from the issue text.

Assessment

Tech stack
ruby
Domain
documentation
Issue type
Documentation
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.