2 HACKING GCR and GCK libraries
7 Build options for developers:
9 --enable-strict: Build with -Werror, disable deprecations, and fatal warnings
11 --enable-debug: Turn off compiler optimization
12 --disable-debug: Turn off all debug options and output.
14 --enable-coverage: Build coverage, use 'make coverage' for summary.
20 Patches should be submitted to bugzilla:
22 http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-keyring&component=gcr
24 The gnome-keyring mailing list is:
25 gnome-keyring-list@gnome.org
28 Various bits of code shared with other modules
31 A public library for accessing PKCS#11 modules.
34 A public library for bits of crypto UI and parsing etc...
37 Desktop settings schemas for crypto stuff
40 Testing CA, gnupg and other mock setups
42 ----------------------------------------------------------------------------------
44 ----------------------------------------------------------------------------------
46 Our coding style is very similar to the linux coding style:
48 http://lxr.linux.no/linux/Documentation/CodingStyle
50 Summary below. Differences from Linux coding style are marked with a plus
51 instead of an asterisk:
53 + Space between function name and parentheses.
55 my_function_call (arg1, arg2);
57 * Braces on the same line as conditional with spaces around braces:
72 * Braces around functions on a separate line from function name,
73 return value on a separate line, arguments on separate lines.
76 my_special_function (int arg1,
79 /* body of function */
82 * Don't use braces unnecessarily:
87 * But use braces here, when one section has more than a line:
96 * Use of tabs for 8 char indent.
99 ------->------->Value;
100 ------->------->Value;
103 * No trailing whitespace on lines. Git will warn you about this.
104 Please enforce it like so (in gnome-keyring checkout):
106 $ cp -ipv .git/hooks/pre-commit.sample .git/hooks/pre-commit
108 * The '*' in a pointer declaraction belongs with the variable name:
112 + Extra long wrapped lines should wrap to function opening brace
113 using spaces past indentation point.
115 ------>my_function_call ("this is a very long argument here",
116 ------> "wrapped argument is indented with spaces");
118 * Function names are in lower case with _ separators.
120 this_is_a_long_function_name ();
122 * Constants are all in upper case with _ separators.
126 + Structures should be typedefed to avoid saying 'struct' and names
131 * One line comments should look like:
133 /* This is a one line comment */
135 * Multi line comments should look like:
138 * This is a multiline comment.
139 * And it has a useless second line.
142 When in doubt adapt to the style of the code around your patch.