WARNING: This is a long script about Ethics and Morals between L2j and their Forks.
Over the past 6 years L2j has been working openly and widely with the community as any Open Source Project, providing as many tools and information as possible for their users, community and other projects to use, distribute and modify L2j as they wish to.
We in L2j believe that:
- An Open Source Project is about people producing free and open software and contributing to something as a team for the benefit of others.
- Open Source Projects reflect the spirit of collaboration and fun while learning new abilities and gathering community feedback and providing good support for further development.
- Open Source Projects are open to the participation of anybody who can contribute value and is willing to work with the community.
A good thing about an Open Source Project is that when you cannot get the software to meet your needs, GNU GPL allows you to Fork this software and create your own version, and make the necessary changes to the code to meet your needs. There are other reasons of why to Fork a GNU GPL software, If they don’t accept your features or patches, If the core developers reject to go in a direction that community members want, If the core developers don’t agree between themselves on what direction to go in.
Not liking or not trusting the core developers of the project is not a good reason to fork the project. Also, being worried that the core developers, at some time in the future, will do something you won’t like is not a good reason to fork the project.
Forking divides efforts as the two projects often take slightly different turns. The result of the fork is that the two versions of the code diverge, even though they share the same interface and most of the background logic. This creates a series of problems, of a technical nature, that reflects on the non-technical attributes of a program.
(Note: to integrate the projects there must, once again, be a common base of code all projects use.
A forked project reuses a big part of the code from the original project. This causes code duplication, with its usual problems, and one in particular: security risks. A forked project is usually vulnerable to the problems the original project had, unless that part of the code has been rewritten or modified with time. As the forks evolve, authors often miss the security issues fixed by their ancestor, making it harder for developers to track the issues down.
Another common problem is the division of users’ contributions. Users usually just report issues to one project, the one they use. So either the developers of the two projects exchange information about the bugs they fix in the common code, or the problems will likely be ignored by one of the two projects, making the distance between the projects increase.
GNU GPL nature is about FREEDOM, you are free to fork if you want to, there’s nothing wrong with that, also forking provides more distribution ways for the project, making it widely spread over all the other child projects it ensure that the project will exists even if the father project cease to exist, the freedom not only to use and modify the sources, but also to distribute and resell our releases under another brand name.
We in L2j ARE NOT against the forking of our software, we are PROUD of it. There is no good open source project without a fork.
But something that concerns us is the lack of responsibility and respect toward the original L2j Project, their Community, their Developers and the lack of attribution to the work that the L2j Community does.
We have seen how some forks take the L2j source code and remove ALL the L2j copyright notices from any of the source files or documentation. They also remove the author credits from source code, comments, and documentation. We have seen some (worse) cases when *forks* rebrand L2j as their own *created* software claiming themselves as the original authors.
We have tried to contact them but the answers that we have commonly received are:
- F**K OFF!!! *you have been banned from this channel*
- You are S**T and L2J is S**T too
- We don’t care…
- <no reply>
This believe it or not, is a common scenario in L2j relationships with their un-friendly Forks when we ask for the attribution that we DESERVE for all the work we do, for free, for all of you, and for *them* and *their* users, because those “groups” that we refuse to call Forks steal our code and rebrand it as their own, for their “perfect working” software with “all features enabled”.
They intentionally make false accusations against the original L2j Project, about the lack of updates, lack of features and terribly performance and coding, they claim that their own versions have over 50% better performance (witch they have shown no proof of) all exploits fixed and no bugs, badmouthing the original project in order to get more attention to their own one.
Then, when you look at their repositories trac/svn, you find, that most of the “features” and “fixes” that they have added are just leeched from L2j repositories, but they don’t mention it, they dont give credit back to the people who made it, just with a simple “sync to xxx l2j” they copy-paste code taken from our sources with previously removed credits, and then claim that they “fixed it!” They do not even credit the original authors of the software or code patches.
So, how would you feel good about this if it happened to you? Your work, that takes you weeks, months or years to complete is *stolen* by a group of thieves? Not only your work as a Developer, but also, the work of your Community that gives their biggest effort into making good contributions and publish them in our forums. Have you noticed how many their “features” and “fixes” have been taken straight from our forums and they don’t even give a “Thanks” for it; neither giving attribution to where they found it nor mention the author of that public contribution?
Bork, fork, bork, fork, bork, fork!
Whilst the people who work hard on creating the software really despise this attitude, it has to be very clearly stated this is in fact not violating the GNU GPL at all. For as long a third party offers the binaries and the sources and in compliance with the GNU GPL, it is legal.
This is, of course, not counting the people who remove the copyright and license sections. That IS illegal, violating the GNU license which we use.
GNU GPL Freedom let you modifiy the code as much as you want, and that includes any line of code even if those lines contain author attribution info. Its’ a common practice in OSF to retain the original author attribution info comments in the source untouched, only modified to ADD your own attribution info below the original one. The only exception would be if you have COMPLETELY rewritten the function or piece of code of such author, then you could ”update” the attribution info to yourself. However, whereas GPL implies this kind of freedom, it doesn’t allow to deny or violate associated copyrights.
All Free Software projects benefit from free distribution, and there’s no reason to be ashamed of it by hiding that with obscure brands and refusing to credit the makers.
Such practice can be found in L2j Source Code in many places, also in our Trac when some changeset is done, authors are mentioned and given proper attribution, if the code submited has @Author info, those arent removed, but that is not the case with some un-friendly forks, and as we in L2j dont have the time to put a fight with a group of underground punks, we have just ignored them for a long time.
But every new day comes and we receive mails and comments from users about this, and we can’t not just sit idle without feeling frustration about this; it even discourages us to keep working on this project. Maybe many of you can remember our past April Fools Joke, so many people believed it because it was so close to the reality, that it was almost a certain future for L2j.
In fact, we can just make L2j a Private Open Source Developement, and sell licences to get access to the binaries and source code, and this in compliance with the GNU GPL, it is legal.
But we in L2j don’t work for money, we have never asked for money for our work (donations are used to pay server rent fees). We work for the spirit of collaboration and fun, if gives us more satisfaction to know that a lot of people is using our software happily, meeting with people from all places around the earth and FOR TEH LULZ.
We also collaborate with friendly forks, working hand in hand responsibly. Some of them are members of the Team or participate on our forums actively.
We are sending this open letter to the whole community to understand our position, and maybe… the measures that we would have to take in order to confront this situation. There are several ways to make L2j “hard-to-fork” without violating the GNU GPL, we could close the Trac, disable the “View/Download Diff” function, we could also bump big changesets with over 9000 changes instead of several small patches but that would hurt the whole community of people who really cares and contribute. That’s not our goal.
With this letter we make a final call to our un-friendly forks to show some ethic and comply with L2j in a few things:
- Choose the same license type as the original L2j project, GNU GPL v3.
- On your project web site make it clear that you are a fork of L2j, explain why if you want to. Dont confuse the people about the nature your project.
- Do not remove the names of developers or copyright notices from any of the source files or documentation.
- If you Sync to our repository, make clear which version or revision was synced, hyperlink to it if possible.
- You cannot use any logo from L2j websites without permission of the (c) owners.
We are not asking nothing else, we are not asking to stop their development or activities, we are not asking to change the direction of their project or their ideals, we are just asking for the attribution that the whole L2j Community deserve.
The L2j Team