DMM Link‎ > ‎


README with some tipps and tricks about how to contribute

1. Licensing
Whenever you think about adding your stuff to schwerkraft, you should 
think about the license you want to apply to your code/resources.
It is a common agreement in the open source world to put a file called 
LICENSE or COPYING into the root directory of your project and/or to add
the license text to the head of all your sources.

Please always take care not to violate the license of code you didn't 
actually write yourself but got somewhere else.

2. Adding new plugins
Everyone is welcome to publish their plugins and/or skins on schwerkraft.
Every plugin and skin added to schwerkraft can be added to the
official build system and will usually be available via the official 
experimental mirrors within a day.

2.1 Directory structures and paths
Before you start you should have a rough look at existing directory
structures and structure your things accordingly.
Please do not use any absolute paths, neither in the Makefiles nor in a plugin.
Both autotools and enigma2 provide proper mechanisms to locate a path
properly using environment variables or helper-functions.
In Makefiles you would use variables like $(sysconfdir) or $(prefix)
instead of /etc and /usr. 
In enimga2 and any of its plugins you could use eEnv.resolve() to do the same.
In addition you can use enigma2's Tools.Directories.resolveFilename() 
in conjunction with the according SCOPE_* constants.

2.2 Add your plugin to the build system
Basically everything on schwerkraft will automatically be built on a
daily basis. This is done using "autotools" in an openembedded build environment.
If you want to set up your own openembedded you can take a look at (you will need a Linux system for that).
Whenever you have something new that you would like to be built properly, you 
have to add a proper to every directory that contains files
that have to be compiled and/or installed somewhere on the target system.
In addition, you should always check that you properly extended the 
files "" and "" in the root of the git you are
going to commit your files to (no matter if it is a skin or a plugin).
In the in the git-root just add your new plugin's directory
to the "SUBDIRS" variable.
In the you have to add all directories containing a
Makefile to the "AC_CONFIG_FILES" call. Just have a look at the existing entries.
Please try to keep the given alphabetical order in those files, it makes
finding and fixing things a lot easier.

If you are not familiar with Makefiles or, just try to take a look
at existing content. You'll find lots of examples in enigma2-plugins.

2.3 Become the maintainer of what you created
If you're adding an enigma2-plugin, please also consider adding a proper for your plugin.
A just contains two things: the mail address of the author
plus the name of the plugin.
It enables users to send a crashlog to the actual maintainer of a plugin 
that seems to have caused a crash.


3. Changing other people's plugins or skins
Before changing anything in someone else's sources, please try to contact 
him/her and discuss the things you want to change.
Sometimes people have good reasons why they don't want particular things to
be in their plugin or maybe they have certain quality-standards they would
like the code to catch up to.
Sometimes though, the original author doesn't maintain a plugin anymore.
So if you have any fixes or enhancements for some existing plugin that 
doesn't seem to be maintained anymore or you cannot get any feedback from 
the original author, you can always go ahead and commit your changes.
As schwerkraft uses git, you can undo your changes at any time, if you want
or have to.
But again, please check that whatever you're going to change doesn't violate 
any licenses!

4. Getting in contact
If you want to get in contact with some of the people that created and
maintain the projects on you are always welcome 
to join us on #enigma2 in the IRC network.
Readme B - 13. Feb. 2012