desura / Desurium

Free online games platform (juegos gratis), with an open source client. LGPL repo for Desura client. Potentially out of date. See https://github.com/desura/desura-app for newest (LGPL) client.
https://www.desura.com/es
GNU General Public License v3.0
270 stars 42 forks source link

plugin API #538

Open karolherbst opened 11 years ago

karolherbst commented 11 years ago

It would be nice to have a plugin API for desurium.

There are two ways we could use them

1. make calls from games to desurium

I've created a little flowchart to demonstrate the drm mechanism + adding some license information (see also #509) about the specific parts here: https://dl.dropboxusercontent.com/u/19446730/plugin.png

little explanation: all stuff we don't want to protect (some basic code snippets) or stuff that have to be used through prop. binaries should be licensed under LGPL, everything else have to stay GPL. I was thinking about moving util, util_fs, util_thread, ipc_pipe and managers LGPL (they have to be ported to shared libs then).

EDIT: I know that some might be worried about privacy. There should be a mechanism to allow access to specific data and should be disallowed by default.

karolherbst commented 11 years ago

@Cheeseness mentioned we should avoid relicense at all and do everything over IPC.

That would mean (as long as everything stays GPL) we have to develop everything on the game side from scratch. That would include IPC connection handling (done in ipc_pipe), GUI components (done in wx_controls), thread handling (done in threads), fs access (done in util_fs) and path fetching and some other stuff (done in util).

We don't need to write most of this new. It could be enough to just relicense ipc_pipe under LGPL and do everything over IPC.

karolherbst commented 11 years ago

The problem with a overlay library is, that we would need a 32bit version on 64bit systems. Because I don't want to build dependencies for both architectures, I am thinking about to write the overlay against low level APIs directly like xcb and pthread.