Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Changing the workbench license #307

Open
24 of 26 tasks
prokoudine opened this issue Dec 5, 2023 · 52 comments
Open
24 of 26 tasks

Changing the workbench license #307

prokoudine opened this issue Dec 5, 2023 · 52 comments

Comments

@prokoudine
Copy link

prokoudine commented Dec 5, 2023

The Workbench Creation guide recommends licensing addons under the terms of LGPL2.1 — the same license that FreeCAD source code is available under. The recommendation’s rationale is that it should be possible to ship a FreeCAD distribution, either upstream, or a custom one, with 3rd-party addons that are considered useful. While a workbench developer is free to choose an alternative license, doing so may impact the long-term viability and use of the workbench and should be considered carefully.

Ondsel would like to integrate the Fasteners workbench into its distribution of FreeCAD, because the company’s market study suggests that this feature is expected to be available in 3D CAD programs by default. We want to provide our end-users the best possible experience. There’s a possibility that this workbench then will go back to become part of upstream FreeCAD. However neither the upstream version of FreeCAD, nor Ondsel’s version of FreeCAD can distribute this workbench as long as it’s licensed under the terms of GPL2.

We are asking for a conversation about relicensing this workbench under LGPL2+ or another compatible license to allow wider distribution.

@alexneufeld
Copy link
Contributor

I have no issues with the idea of doing this. Taking a quick look through the repository contributors list, I'd say there's a good chance we can get everyone to sign off on a license change to LGPL. I agree that this change fits well within the philosophy of the FreeCAD project.

For potentially useful reference: I like the approach the MPV player developers took to tackling this exact problem: mpv-player/mpv#2033

@prokoudine
Copy link
Author

@alexneufeld That's a really useful reference, thank you!

@shaise
Copy link
Owner

shaise commented Dec 5, 2023

I'm all for re-licensing to LGPL2.1, this is also compatible with @ulrich1a screw_maker license which the original WB was based on.

@shaise
Copy link
Owner

shaise commented Dec 7, 2023

waiting for response of:
@riqueenz, @FreeCAD-Tools, @luzpaz, @hasecilu, @berberic2, @Roy-043, @EA32, @elysium31, @kaktusus, @wavexx, @tobiasfalk, @easyw, @fra589, @wandrewkeech, @algtgv, @hpbmo, @chennes, @ApexArray, @JohanAR, @elf128, @chrido, @spike77453, @yorikvanhavre, @f3nix

@kaktusus
Copy link
Contributor

kaktusus commented Dec 7, 2023

I've been working on the Polish translation of this cool workbench, and I don't mind changing the license. 😄

@Roy-043
Copy link
Contributor

Roy-043 commented Dec 7, 2023

I have no objections to the LGPL2.1 license.

@hpbmo
Copy link
Contributor

hpbmo commented Dec 7, 2023

I have also no objections to the LGPL2.1 license.

@wavexx
Copy link
Contributor

wavexx commented Dec 7, 2023

Thanks for pinging, I wouldn't have noticed otherwise. No objection to the license change!

@fra589
Copy link
Contributor

fra589 commented Dec 7, 2023

Hi all,
I just made an action to correct a bug linked to the evolution of Python and FreeCAD, I do not feel entitled to decide on the licensing level...
Do as your wish :-)
Thanks for your work!

@hasecilu
Copy link
Contributor

hasecilu commented Dec 7, 2023

Thanks for ping, it's nice to know that this WB could join upstream FreeCAD.
I agree with the license change, I'm also in for SheetMetal WB.

@tobiasfalk
Copy link
Contributor

tobiasfalk commented Dec 7, 2023

In my opinion, my share of contribution is rather small and do not think that I would have a saying in this.
But I do not have a problem with this.

@prokoudine will there be an other Issue/Thread where one could give Suggestion of features that would be nice if they where implemented in this move to an Integrated workbench? This is since the most intelligent think to do, while moving this to FreeCAD, is to rewrite the core of this workbench in C++/Qt.

@prokoudine
Copy link
Author

@tobiasfalk I could be talking out of my arse, but I vaguely recall that @sliptonic and @shaise were in agreement that the unfolder shoud definitely be part of the core and thus be rewritten in C++. Once/if the relicensing of both WBs has green lights, there definitely should be review of both architecture, workflow, and UX/UI to come up with a sensible plan.

@riqueenz
Copy link
Contributor

riqueenz commented Dec 7, 2023

No objection to the license change!

@tobiasfalk
Copy link
Contributor

tobiasfalk commented Dec 7, 2023

And can either @prokoudine or @shaise make a check list with all the pinged people to make it easier to look up who already agreed?

  • A
  • B
  • ....

@hasecilu
Copy link
Contributor

hasecilu commented Dec 7, 2023

(Copy the main post)

- [X] @shaise
- [X] @alexneufeld
- [X] @riqueenz
- [ ] @FreeCAD-Tools
- [ ] @luzpaz
- [X] @hasecilu
- [ ] @berberic2
- [X] @Roy-043
- [ ] @EA32
- [ ] @elysium31
- [X] @kaktusus
- [X] @wavexx
- [X] @tobiasfalk
- [ ] @easyw
- [X] @fra589
- [ ] @wandrewkeech
- [ ] @algtgv
- [X] @hpbmo
- [ ] @chennes
- [ ] @ApexArray
- [ ] @JohanAR
- [ ] @elf128
- [ ] @chrido
- [ ] @spike77453
- [ ] @yorikvanhavre
- [ ] @f3nix

@shaise
Copy link
Owner

shaise commented Dec 7, 2023

@hasecilu, Thanks! great idea!

@spike77453
Copy link
Contributor

Works for me! 👍

@ApexArray
Copy link
Contributor

ApexArray commented Dec 7, 2023 via email

@f3nix
Copy link
Contributor

f3nix commented Dec 7, 2023

I do not mind the change.
Cheers,
Mateusz

@algtgv
Copy link
Contributor

algtgv commented Dec 7, 2023

No objection to the license change!

@chennes
Copy link
Contributor

chennes commented Dec 7, 2023

No objection to the license change (and I think distributing this with FreeCAD would be a good idea :) )

@chrido
Copy link
Contributor

chrido commented Dec 7, 2023

No objections to the license change 👍

@JohanAR
Copy link
Contributor

JohanAR commented Dec 8, 2023

No objections, I'm barely a contributor to this project anyway :)

@JMG1
Copy link

JMG1 commented Dec 8, 2023

No objections.

@luzpaz
Copy link
Collaborator

luzpaz commented Dec 8, 2023

No objection

@berberic2
Copy link
Contributor

That is O.K. for me.

@yorikvanhavre
Copy link
Contributor

Sorry to be late 😅 I agree!

@easyw
Copy link
Contributor

easyw commented Dec 15, 2023

go for it!
sorry being late, but I don't watch very often my GH notifications

@berberic2
Copy link
Contributor

FYIO: What git blame thinks about the missing user.
This is not a comprehensive analysis!

EA32 419 lines in 18 files
    GrammaticalTools.py:25
    InitGui.py:1
    FsData/gost1144head.csv:42
    FsData/gost1144length.csv:2
    FsData/gost1144range.csv:2
    FsFunctions/FSmakeWoodScrew.py:104
    Icons/ASMEB18.2.1.6.svg:14
    Icons/ASMEB18.21.1.12B.svg:11
    Icons/ASMEB18.3.5C.svg:12
    Icons/DIN508.svg:26
    Icons/GN507.svg:49
    Icons/GOST1144-3.svg:33
    Icons/GOST1144-4.svg:33
    Icons/ISO4014.svg:14
    Icons/ISO4028.svg:12
    Icons/ISO7089.svg:11
    Icons/ThreadedRod.svg:14
    Icons/ThreadedRodInch.svg:14

FreeCAD-Tools 1922 lines in 34 files
    TRANSLATIONS.md:73
    GrammaticalTools.py:41
    FastenerBase.py:29
    FastenersCmd.py:35
    README.md:4
    ScrewMaker.py:2
    translations/fasteners_pt-br.ts:182
    translations/fasteners_pt-pt.ts:182
    translations/fasteners_ru.qm:39
    translations/fasteners_ru.ts:885
    translations/update.sh:43
    translations/fasteners_es-ar.ts:137
    translations/fasteners_es-es.ts:137
    FsData/DiaList.csv:2
    FsData/din571length.csv:19
    FsData/gost1144length.csv:29
    FsData/gost1144range.csv:22
    FsData/gost11860def.csv:15
    FsFunctions/FSmakeCupNut.py:1
    FsFunctions/FSmakeWoodScrew.py:1
    Icons/ASMEB18.3.1A.svg:17
    Icons/ASMEB18.3.5A.svg:11
    Icons/ASMEB18.3.5B.svg:11
    Icons/ASMEB18.5.2.svg:13
    Icons/DIN96.svg:16
    Icons/GOST1144-1.svg:19
    Icons/GOST1144-2.svg:19
    Icons/GOST11860-1.svg:12
    Icons/ISO4026.svg:11
    Icons/ISO4027.svg:11
    Icons/ISO4762.svg:16
    Icons/PCBSpacer.svg:17

elysium31 0 lines in 0 files 0

wandrewkeech 0 lines in 0 files

elf128 0 lines in 0 files

@elf128
Copy link
Contributor

elf128 commented Dec 23, 2023 via email

@shaise
Copy link
Owner

shaise commented Dec 23, 2023

@berberic2 ,
I do not know how blame works but @elysium31 had several PRs. @wandrewkeech and @elf128 had one.
Perhaps their work was overwritten?
Even so, they still count.
waiting for @FreeCAD-Tools and @EA32 as well

@berberic2
Copy link
Contributor

As I said: This is not a comprehensive analysis!
blame gives for every line the last user that commited this line, so changing the indentation or whitespaces is sufficient.

@elf128
Copy link
Contributor

elf128 commented Dec 23, 2023 via email

@shaise
Copy link
Owner

shaise commented Dec 23, 2023

@elf128 , thanks! noted!
@berberic2 , as I said perhaps their lines are no longer in the code, but they did contribute.

@sliptonic
Copy link

If their changes are still there, we would proceed by removing them. So If their code changes are no longer present than we can proceed without their reply.

@kaktusus
Copy link
Contributor

@FreeCAD-Tools is a man from Ukraine. We all know the current situation in that country. Give him some time. 😞

@hasecilu
Copy link
Contributor

git shortlog --author=FreeCAD-Tools --author=EA32 --author=elysium --author=keech
Click to view commits Andy (2): Add IUT[A/B/C] heatset inserts for 3D print modeling

Auto-sizing for IUTA/B/C heat sets

EA32 (9):
GOST1144-3-4 fastener integration
SVG icons optimization
GOST 1144 head shape fix.
Create head by B-Spline
SVG icons optimization
GOST 1144 (Wood screws) code refactoring
Add text converter to singular form
SVG icons optimization
SVG icons optimization

FreeCAD-Tools (49):
Full translation to Russian.
Update Russian translation.
Update Russian translation
Added translate to treeview & fix LH flag for nuts
Remove obsolete translations
Minor Russian translation fixes.
Integration of GOST11860 Type 1 Cap Nut
DIN571 formating mistakes
Add missing DIN7998 screw threads
GOST1144 type 1 & type 2 integration
Fix
Fix2
Update FastenersCmd.py
Optimization of the command table.
Update translation via Linux bash script
Add files via upload
Add files via upload
Delete fasteners_uifiles_es-ar.qm
Delete fasteners_uifiles_es-ar.ts
Delete fasteners_uifiles_es-es.qm
Delete fasteners_uifiles_es-es.ts
Delete fasteners_uifiles_pt-br.qm
Delete fasteners_uifiles_pt-br.ts
Delete fasteners_uifiles_pt-pt.qm
Delete fasteners_uifiles_pt-pt.ts
Delete fasteners_uifiles_ru.qm
Delete fasteners_uifiles_ru.ts
Replace es_mx to es-mx and update script comments
Delete fasteners_es_mx.qm
Delete fasteners_es_mx.ts
Minor fix update.sh
Merge branch 'shaise:master' into master
Optimize GOST 1144-1-2 and DIN96 SVG icons
Fix 48x48px size
Size fix
PCBSpacer.svg optimization
SVG icons optimization
Update FastenerBase.py
FastenerBase.py separate commands in code
Update translation to Russian
mx-es removed from list
Change Scale B to Offset B
Remove unused strings from ts files
Remove unused strings from ts files
Init Grammatical Tools
SVG icons optimization
Fix toolbars names
Create HOW_TO_ADD_NEW_LANGUAGE.md
Updating the article about translation

Maksym Veremchuk (10):
Fix statements
Add some more
More
Fix indentations
Fix imports
Fixes
Works
Merge branch 'master' into fix_indent
More
Refactor csv2dict

@kaktusus
Copy link
Contributor

@FreeCAD-Tools is a man from Ukraine. We all know the current situation in that country. Give him some time. 😞

Or am I in the wrong?

@wandrewkeech
Copy link
Contributor

Hi! Sorry been afk on github for quite some time.
This is great and fully support the license cha!nge

@shaise
Copy link
Owner

shaise commented Jan 15, 2024

great!
Waiting for @FreeCAD-Tools , @EA32 and @elysium31

@elysium31
Copy link
Contributor

No objections

@leoheck
Copy link

leoheck commented Mar 6, 2024

Pinging @FreeCAD-Tools @EA32

Could you guys comment here if this licence change is ok for you?

@sliptonic
Copy link

I think we should post here the intention to change the license unless someone objects. Leave it for 30 days or so and then proceed. If either of the outstanding contributors complains, we can remove their contributions at a later date.

@leoheck
Copy link

leoheck commented Mar 21, 2024

Why not just make a PR changing it and then if no one complains in by the end of the week. It gets merged, and if the complaints come after this, then their work can be removed as you said. There are just 2 contributors that are missing to respond. In other words, way to wait for a month? This was posted on December 2023.

@sliptonic
Copy link

This isn't a huge emergency. Changing the license won't immediately change anything. Before we can consider including the WB in Ondsel or in upstream FreeCAD there's more work to be done and nobody is standing up to do it yet. We have sheetmetal underway and many other important changes to work on.

@tobiasfalk
Copy link
Contributor

@shaise how much amd what did the two missing contribut.

@shaise
Copy link
Owner

shaise commented Mar 23, 2024

@tobiasfalk
image
image
Quite a lot...

@leoheck
Copy link

leoheck commented Mar 23, 2024

@shaise, Have you checked if they are active on GitHub still? They may have died or been jailed...

@shaise
Copy link
Owner

shaise commented Mar 23, 2024

@leoheck
Already checked. They are not active. Really hope not for your proposed reasons...

@tobiasfalk
Copy link
Contributor

tobiasfalk commented Mar 24, 2024

Two things.
First, I am no expert in Licensing but is this kind of decision somthing that requires approval fromm all or is this something a majority vote can decide? Maybe, @sliptonic you may have more experience or maybe a good connection to a lawyer/licence expert.

Second, they both contributed quite a lot, is that something that is a major part of the WB or can it be easily redone, if a approval of all is required.

@leoheck
Copy link

leoheck commented Mar 25, 2024

I asked ChatGPT to highlight the main differences between those two licences. I am not sure if this is correct tho.

Sure, I can explain the main differences between LGPL 2+ (Lesser General Public License version 2 or later) and GPL 2 (General Public License version 2).

  1. Scope of Application:
    • LGPL 2+: Primarily designed for software libraries, allowing them to be used in proprietary software without requiring the proprietary software to be open source.
    • GPL 2: Designed for any kind of software, requiring any derivative work to be distributed under the same license.
  2. Derivative Works:
    • LGPL 2+: Allows linking with proprietary software without forcing the proprietary software to become open source.
    • GPL 2: Requires any derivative work, including software linked with GPL-licensed code, to be distributed under the GPL license.
  3. Copyleft Requirements:
    • LGPL 2+: Contains weaker copyleft provisions compared to GPL, allowing more flexibility in the licensing of derivative works.
    • GPL 2: Imposes strong copyleft provisions, ensuring that all derivative works are distributed under the same open source license.

In simple terms, LGPL 2+ is like a "friendly" version of GPL 2 for software libraries. It allows those libraries to be used in both open source and proprietary software without imposing strict open source requirements on the proprietary software. On the other hand, GPL 2 applies to all types of software and requires any derivative work to be distributed under the GPL, promoting the open source nature of software development.

@tobiasfalk
Copy link
Contributor

Ping

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests