This might be an odd question to ask, but I want to be sure to understand it correctly. When I clone a project in Github that is licensed under GPL-3.0 license, am I allowed to delete bunch of files that I no longer need?

Someone took an old BCX-BASIC program and converted it into C with some additional work to make it compile in Linux, and a Python GUI. The original Basic program is still included in the project. I want to delete everything besides the .c program, license and an include file. I want to add my own Makefile and just create the commandline executable with gcc. And I might change the name of the application too and either create my own GUI or maybe (if its possible) to integrate the C program in Rust or Zig in example, but have to explore this more.

But the files that were included there, the legacy BASIC program and some other files, are licensed under GPL-3 too. Am I allowed to just delete those files from the project?

  • Kissaki@programming.dev
    link
    fedilink
    English
    arrow-up
    6
    ·
    3 years ago

    Yes, the GPL allows you to make modifications. The GPL still applies.

    The cloned repository still holds the history and deleted files. The files that are still there retain the GPL. If you make additions to the GPL sources, the GPL applies to those too. (Copyleft license.)

    You can check the summary of GPL on ChooseALicense to understand your rights and conditions a bit better.

  • recursive_recursion [they/them]@programming.dev
    link
    fedilink
    English
    arrow-up
    1
    ·
    edit-2
    3 years ago

    yes deleting files wouldn’t violate GPL-3.0 to the best of my knowledge as those files would still be under the GPL license,

    • it’s just that you wouldn’t be using them

    if anyone wanted to use a file licensed under any of GPL licenses the user would be required to license any modified or redistibuted files under the same license (“or later”) as to not violate the copyleft terms

    • NekkoDroid@programming.dev
      link
      fedilink
      arrow-up
      0
      ·
      3 years ago

      Just a minor clarification/correction: the “or later” part also depends on the license per se. There is a GPL-3.0-only and a GPL-3.0-or-later. Usually you’ll find something like “or at your option any later version.” if that is the case, but by default you should expect the GPL-3.0-only to apply.

      • thingsiplay@beehaw.orgOP
        link
        fedilink
        arrow-up
        0
        ·
        3 years ago

        I always found it a bit nebulous to have the “or later” statement / option. Because that is not precise and which GPL is meant to? Everyone can write a new version of the GPL. The “or later” does not specify which, it just implies it would be GNU GPL. It’s been a long time since I read and studied the GPLv2, never v3 and I actually never really understood how the “or later” would be allowed.

        Licensing is still confusing, even after more than a decade.

        • Captain Beyond@linkage.ds8.zone
          link
          fedilink
          arrow-up
          1
          ·
          3 years ago

          Everyone can write a new version of the GPL.

          The standard GPL permission statement explicitly clarifies that the license is “as published by the Free Software Foundation” so any later version of the license has to come from the FSF.

          This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

          The reason for the “or later” clause is to allow the FSF to update the GPL in response to flaws that are discovered. The “or later” clause is controversial because it effectively allows the FSF to change the licensing terms of any software licensed under such a clause, and so some developers who don’t trust the FSF with this authority omit this clause. Famously, Linux is licensed only under GPLv2 with no or-later option (Linus has been a vocal opponent of GPLv3)