-
Notifications
You must be signed in to change notification settings - Fork 114
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
[Licensing]: libmve #774
Comments
The answer to this is complicated, due to the licensing history of Descent and Rebirth. Regarding permission, the short answer is that I, personally, have no objection to your request. My contributions are under GPLv3, and the Descent 3 source appears to be likewise, so the licenses are compatible. However, I feel obliged to provide some history and a caveat that arises from that history. When Parallax released the Descent 1 source, and later the Descent 2 source, it was provided under a license that prohibited deriving revenue from the source. Early contributions to Rebirth were done under a custom license, which you can see using This then leads to the caveat: to the extent that the code you want to copy is considered Parallax code, you would also need to abide by the Parallax no-revenue license terms, or secure Parallax's permission to use their part under open terms. I hope this is not an issue for you, for two reasons. First, you are asking because Descent 3's MVE code was stripped out due to licensing reasons. I expect that the code in Rebirth was likely written independent of Parallax for the same reason, in which case none of it would be considered Parallax code, so you would only be taking community code and therefore only be concerned with the community license terms. However, I have not verified through Git history that there is nothing from Parallax in those files. I am working only from memory here. Second, since you are asking on behalf of people who appear to be the original authors for Descent 3, they may be in a position to secure Parallax's permission for a GPLv3 compatible license for any part that is considered Parallax code. Obtaining that permission would then let them use the Parallax code in the pure-GPLv3 Descent 3 source. As regards preserving the licensing information, the simplest way would be to include a banner comment stating from which commit of I will also take this opportunity to note that when the Rebirth relicensing was done in 2014, there was some hope that the Parallax code might one day be released under a fully GPLv3 compatible license, which would allow the Rebirth project to switch from this hybrid of "GPLv3 with additional permission to link to Parallax, and the no-revenue clause from Parallax" to a simple GPLv3 everything, so that contributors and redistributors could treat Rebirth like any pure GPLv3 program. In particular, I think the current situation led some projects to refuse to distribute Rebirth on any media for which they charge money (even if Rebirth is just a tiny portion of the media's contents), out of fear of the no-revenue clause. If the Parallax code were relicensed as GPLv3, that concern would go away. My approval above is not contingent on such a relicensing. However, I, and I expect many others, would be pleased to see the Descent 1 and Descent 2 Parallax code relicensed as GPLv3 compatible. With the renewed interest in the Descent 3 source, it might be possible to get the attention of the right people to make that happen. |
It's a shame you're not into discord--you could make that request yourself. I appreciate your prompt response. I'll forward this to the team. Thank you. |
Discord has many problems, some of which were discussed on a recent LWN thread when the rsync project started using it. Among them:
Among the LWN comments about Discord that I found particularly relevant: If you decide to read the LWN comments from that article more generally, I suggest that you skip the subthreads that wandered off into a discussion of Discord's ownership and potential government meddling incident to that. No useful technical arguments were raised there. Putting all that together, anything that happens on Discord is invisible to me, and any project that requires Discord as a means of contact is unreachable. This is unfortunate, and is why I encourage people never to rely on Discord. |
Other than this GitHub repository, then, what's a good way to contact you? |
Also, to summarize: Descent 1 and 2 had their source code released in ~1999, licensed by Parallax with the "no revenue" clause and did not include Interplay MVE libraries. Is that correct? |
GitHub is the primary mechanism of contact. I do not maintain a presence on any interactive chat services, and the Rebirth forum I once frequented is long gone. Why do you ask? Your summary seems fair. I can't rule out that someone else can give you a better answer about the provenance of the D2X MVE library. It might even be possible to get a good answer to that by inspecting the git history. Through git commands on this repository, I can readily trace it back to 44f0c0d when @btb added it with the log message
I'm a bit puzzled that DescentDevelopers/Descent3#253 chose to take the original D2X version of MVE over the Rebirth version. I expect that any provenance concerns with the Rebirth version are inherited from the original D2X version, so rolling back to D2X doesn't help there, and rolling back forfeits all the cleanups and code maintenance from the Rebirth version. |
We are using the C++17 standard, for one, and the d2x library lines up a bit more nicely with respect to existing functions found in d3movie.cpp, so the maintainer working on mve decided to go with it. If you think the code cleanups and maintenance are something that should be retained, I'd urge you to comment on the relevant issue over on Descent3. Regarding communication, I ask for two reasons. One, to pass it along to the ones who have Parallax's ear. Two, so things not rebirth related don't have to be discussed on this repository. |
If you have anyone in the team who is familiar with C++, I'm sure they could easily port the C++20 code from DXX to C++17 (if it even uses any C++20 features). |
Yes, if you're stuck with C++17, the current Rebirth MVE code will not work for you, as it does use some C++20 features (notably Regarding communication, I suppose I should ask then, what answer were you hoping to get? It's been ages since I received any Rebirth-related e-mail, and even longer since I used Mumble to talk to anyone about Rebirth. The last Descent-related e-mail I got was from one of the original developers inquiring about how one aspect of the DOS release behaved, and that was more than a year ago now. |
I suppose if you were interested in doing anything with Descent 3 you would have made that interest known by now. Anyway, thank you for the information--this one can be closed. :) |
I am interested in the Descent 3 source, but these days I have so little time each week to work on Descent / Descent 2 that adding Descent 3 to the mix seems unlikely to end well. If I had the time to spend a couple of days a week on it, I'd be happy to jump in. |
The Descent 3 open source team is looking at
libmve
options that comply with GPLv3--the current version needs to be replaced. I see rebirth'slibmve
is the same license, but the license headers redirect toCOPYING.txt
. If we were to use this version (with permission, never hurts to double check), how should we preserve the license?Thank you.
The text was updated successfully, but these errors were encountered: