new converter: EventPosition for using ePositionGauge with event data (special reques...
[enigma2-plugins.git] / README
1 1. Licensing
2 Whenever you think about adding your stuff to schwerkraft, you should 
3 think about the license you want to apply to your code/resources.
4 It is a common agreement in the open source world to put a file called 
5 LICENSE or COPYING into the root directory of your project and/or to add
6 the license text to the head of all your sources.
7
8 Please always take care not to violate the license of code you didn't 
9 actually write yourself but got somewhere else.
10
11 2. Adding new plugins
12 Everyone is welcome to publish their plugins and/or skins on schwerkraft.
13 Every plugin and skin added to schwerkraft can be added to the
14 official build system and will usually be available via the official 
15 experimental mirrors within a day.
16
17 2.1 Directory structures and paths
18 Before you start you should have a rough look at existing directory
19 structures and structure your things accordingly.
20 Please do not use any absolute paths, neither in the Makefiles nor in a plugin.
21 Both autotools and enigma2 provide proper mechanisms to locate a path
22 properly using environment variables or helper-functions.
23 In Makefiles you would use variables like $(sysconfdir) or $(prefix)
24 instead of /etc and /usr. 
25 In enimga2 and any of its plugins you could use eEnv.resolve() to do the same.
26 In addition you can use enigma2's Tools.Directories.resolveFilename() 
27 in conjunction with the according SCOPE_* constants.
28
29 2.2 Add your plugin to the build system
30 Basically everything on schwerkraft will automatically be built on a
31 daily basis. This is done using "autotools" in an openembedded build environment.
32 If you want to set up your own openembedded you can take a look at
33 http://opendreambox.org/ (you will need a Linux system for that).
34 Whenever you have something new that you would like to be built properly, you 
35 have to add a proper Makefile.am to every directory that contains files
36 that have to be compiled and/or installed somewhere on the target system.
37 In addition, you should always check that you properly extended the 
38 files "configure.ac" and "Makefile.am" in the root of the git you are
39 going to commit your files to (no matter if it is a skin or a plugin).
40 In the Makefile.am in the git-root just add your new plugin's directory
41 to the "SUBDIRS" variable.
42 In the configure.ac you have to add all directories containing a
43 Makefile to the "AC_CONFIG_FILES" call. Just have a look at the existing entries.
44 Please try to keep the given alphabetical order in those files, it makes
45 finding and fixing things a lot easier.
46
47 If you are not familiar with Makefiles or configure.ac, just try to take a look
48 at existing content. You'll find lots of examples in enigma2-plugins.
49
50 2.3 Become the maintainer of what you created
51 If you're adding an enigma2-plugin, please also consider adding a proper 
52 maintainer.info for your plugin.
53 A maintainer.info just contains two things: the mail address of the author
54 plus the name of the plugin.
55 It enables users to send a crashlog to the actual maintainer of a plugin 
56 that seems to have caused a crash.
57
58 Example:
59 stephan@reichholf.net
60 WebInterface
61
62 3. Changing other people's plugins or skins
63 Before changing anything in someone else's sources, please try to contact 
64 him/her and discuss the things you want to change.
65 Sometimes people have good reasons why they don't want particular things to
66 be in their plugin or maybe they have certain quality-standards they would
67 like the code to catch up to.
68 Sometimes though, the original author doesn't maintain a plugin anymore.
69 So if you have any fixes or enhancements for some existing plugin that 
70 doesn't seem to be maintained anymore or you cannot get any feedback from 
71 the original author, you can always go ahead and commit your changes.
72 As schwerkraft uses git, you can undo your changes at any time, if you want
73 or have to.
74 But again, please check that whatever you're going to change doesn't violate 
75 any licenses!
76
77 4. Getting in contact
78 If you want to get in contact with some of the people that created and
79 maintain the projects on schwerkraft.elitedvb.net you are always welcome 
80 to join us on #enigma2 in the freenode.net IRC network.
81
82