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: