I think the major issue there- but please correct me if I'm wrong- was that it wasn't a clean fork. Sparta continued updating itself with bugfixes etc. from the Lazarus repository, but refused to feed anything back... that sort of behaviour was guaranteed to result in bad blood.
Well, technically they only need to publish (and allow re-integration) any changes the make to the (L)GPLed code (mainly the IDE code itself).
If they base their packages on IdeIntf and LCL, those are LGPL (+linking exception), and this license afaik is made with the very intent, that you can build your own closed source and commercial packages, including IDE extensions.
On top of distributing such packages, one can always distribute copies of the IDE.
Now the only point is, that if you put your closed packages in the same installer (installler with any GPL work (source or compiled)), then it is a problem, because it becomes a combined work.
Afaik (I am no lawyer), 2 separate installers on the same media (same webpage, same mem-stick, same dvd, ...) are allowed.
If one makes changes (additions, features, fixes) to either the IDE or LCL code, then those changes must be published (the entire resulting new IDE or LCL source must be published).
But only the changes in IDE or LCL (or other GPL/LGPL) code. No parts of code in your own package.
That means, if you add new code to the LCL, that you need for your package to work. And even if that added code is meaningless without your package code, then that code must be published. But again your package is still closed source.
Also, you only need to publish such code (and be aware, that it falls under (L)Gpl). You do not actively need to give it back to the origin project.
We would have to monitor, and extract the changes ourself.
Of course, if you fixed IDE/LCL code, using and benefiting from the LCL, and you would leave others in the dark that there even is a fix, that would send a message about your personality. But that is not a legal matter.
-----------------
In Short. (My understanding / again I am no lawyer)
Both LGPL and GPL require that when you make change to existing code, and use that changed code in work that is not limited to your strict own personal use, then you must publish those changes.
- Lets say you change code (for any reason) in e.g. "unit Forms"
- And You write code (a Program) that uses this modified "unit Forms".
1) If you use that program only for yourself, and never give it to anyone else => you do not need to publish anything
2) If you give that program, in any form (open/close source, charging money, free of charge, gift, afaik even service "i.e.: access via webpage where your code runs on a server and only the result of its work is avail to others") to any person, then you must publish the changes you made to "unit Forms".
That new unit forms, including your changes will then be LGPL (+linking exception).
Your code (the program) can still be closed source and commercial...
That also applies, if you copy code from the "unit Forms" to an other unit. Then that other unit, must be LGPL (+link.except.), and be published.
---
If you do the same with "unit SourceEditor", which is GPL in the IDE.
Then your entire code (including your program, if it uses SourceEditor) will be GPL too, must be open source and published.