Desurium Discussion Points September 2013 - lodle/Desurium GitHub Wiki
Introduction
In response to an upcoming open discussion between Desura stakeholders and the Desurium community, key contributors karolherbst, Jookia, anagrogramaf and Cheeseness have put together the following to serve as a starting point for discussion. The community is encouraged to discuss and add (though not remove) additional items that are considered worth raising.
Issues Covered
Licensing
- Copyright/Ownership of Commits/Code
- Desura and the GPL
- MFC and Free Software
- DRM and Open Source
- Games APIs and Copyleft
Project Management
- Governance
- Desura's and the Community's Roles
- Release Strategies
- Windows Support
Priority Desurium Features
- Removal of MFC (Windows Support)
- Mac Support
- Plugin/Overlay Mechanisms
- Friends List/Chat support
- Desurium portal/landing page on the Desura website
Licensing
Copyright/Ownership of Commits/Code
Desura used to own the copyright to every line of code in this project, but many contributors have since added their own code to the Desurium, each licensed under the GPL and copyrighted by the author. The GPL is not revokeable and permission from each contributor must be gained for any alternative licencing of their work.
This pull request gives an overview who has got copyright on which files: https://github.com/desura/Desurium/pull/601
Desura and the GPL
Right now Desura is licensed under the GPL, which is a free and open source copyleft license. This is potentially problematic for a couple of reasons for Desura as a corporate entity. One being that they most provide source code for their own versions of Desurium (eg: future versions of the official Desura client).
See Game APIs and Copyleft below for thoughts on Desruium<->proprietary software interaction.
MFC and Free Software
The MFC license explicitly forbids its use with free software licenses. See Microsoft's License Terms (Visual Studio 2012, Professional, English, section 4c). This is a problem with the Windows version of Desura.
DRM and Open Source
Desurium is free to edit by its users, meaning any DRM in it can be easily removed, or have the client lie to games about its ownership of said games. This is a fundamental problem with open source software.
If DRM is needed, it would not be compatible with users of the Desurium client, forcing them to use an official Desura client that does not disclose its source code, assuming licensing allows that.
The official client currently has DRM can supposedly be moved server side.
Game APIs and Copyleft
Games may want to interact with Desurium for features like achievements in the future. As the Desurium code base is GPL, any games that use its code would have to be GPL themselves.
A library for interaction between Desurium and games could be licensed under the LGPL. The ideal method of doing this would be using IPC, which Desura already has a library for. That library hasn't been touched by anyone other than karolherbst, meaning it'd be easy to relicense it.
Project Management
Governance
The governance of Desurium is currently unclear. As of now, it's being managed by the community with effective autonomy, mostly consisting of karolherbst and Jookia reviewing eachother's patches. Other options include having the Desurium project directly managed by Desura staff, or having Desura nominated community representatives managing the project.
Previously the possibility of repositioning the official client "downstream" from Desurium has been discussed. This would mean Desura's developers could work on Desurium, and the official client could be a build of Desurium with specific compile-time flags set.
Desura's and the Community's Roles
Currently the roles of the community and Desura aren't clear either. There's no idenfication of Desura's interests, plans and goals. The influence the community has over Desura and the influence Desura has over Desurium is also unclear.
Having clearly defined communication channels and/or specific Desura contacts who have authority to speak on behalf of Desura in Desurium related matters would ease interaction between Desura and the community and reduce potential misinterpretation of personal opinion as company stance.
Release Strategies
Desurium hasn't yet had a release. Currently a 0.8 release is planned, but there's still no documented strategies or plans on how it will be done or whether official Desura client releases will be synchronised in any way with Desurium releases.
The community is currently considering skipping version 0.8 due to the Windows support regression mentioned below.
Windows Support
A giant regression in Desurium is the lack of Windows support, as all of the community developers use Linux.
The current source code can be used to build a Windows client with difficulty, but the inclusion of MFC components redistributable components.
Priority Desurium Features
Removal of MFC usage (Windows Support)
Removal of MFC usage from Desurium source will allow the creation of distributable Desurium packages for Windows that don't risk GPL violation and make building easier.
https://github.com/desura/Desurium/issues/376
Mac Support
Mac support has been a much requested feature. Initial groundwork for a Mac port has been done by karolherbst, though additional client work still remains to be completed. Mac support will also require server side UA detection and Mac package delivery.
https://github.com/desura/Desurium/issues/104
Plugin/Overlay Mechanisms
These features would be requisites for anythings which allowed games to communicate with the client (achievements, "currently playing" status updates, in-game chat interfaces, passing screenshots back to the client, etc.).
https://github.com/desura/Desurium/issues/538
See Game APIs and Copyleft above for possible implmentation considerations.
Friends List/Chat support
Chat has been a long requested feature. Discussion of possible implementation can be found in the URLs below.
Chat will encourage users to leave the Desura client open and facilitate community growth through more convenient/accessible communication. This feature is likely to have a positive impact on the Desurium development community as well as the broader Desura user community.
https://github.com/desura/Desurium/issues/156 https://github.com/desura/Desurium/issues/143
Desurium portal/landing page on the Desura website
It would be nice to have a well styled information/portal page on the Desura website (rather than a post or news item which can disappear over time) which could serve as a landing page for people who want to learn about Desurium, and a point at which it can be clearly stated that Desurium is not an officially supported client.
Such a page would be a central place to link to the following:
- Desurium GitHub repository
- Desurium Desura group
- Desurium GitHub wiki
- Current Desurium builds
- IRC channel