1 Please comply with the following rules when hacking on Avahi:
3 * When you add a new textual file to the repository please enable SVN
4 keyword expansion for it:
6 svn ps svn:keywords Id foo.c
8 * Before commiting check with "svn st" that all built files are ignored
9 by svn. To change the list of ignored files use
13 This is similar to the ".cvsignore" file in CVS times.
15 * Don't forget to add the autoconf config.h inclusion to all C source files:
21 This needs to be placed in in .c files only. NOT IN HEADER FILES!
23 * Don't hardcode any paths in source files. Either use the -D option of gcc
24 for C sources or use "sed" to replace them based on a .in file.
26 * Never forget that Avahi should be buildable without DBUS, GTK or python!
28 * Before commiting, test your code! In case of C consider running it
29 a few times through valgrind, to make sure that you got everything
30 right. You have to call libtool explicitly when running valgrind
31 on binaries that depend on shared objects. e.g:
33 libtool --mode=execute valgrind ./avahi-daemon
35 Please note that valgrind can't find you all bugs. Please check
36 your code thrice with your brain before committing. Valgrind is
39 * When you code in C, please compile with the following gcc options from time
44 -Wmissing-declarations
48 -Wold-style-definition
50 -Wdeclaration-after-statement
61 This will show you a bunch of issues which might be problems in your source
62 code. Not all options are available on all GCC versions. Just pass these
63 options in $CFLAGS when running bootstrap.sh:
65 CFLAGS="-Wextra ..." ./bootstrap.sh
67 * Whenever you add a new Makefile.am, C (.c or .h) source file, shell or
68 python script please add this legal blurb to its header:
70 For Makefile.am, python and shell code:
75 # This file is part of avahi.
77 # avahi is free software; you can redistribute it and/or modify it
78 # under the terms of the GNU Lesser General Public License as
79 # published by the Free Software Foundation; either version 2 of the
80 # License, or (at your option) any later version.
82 # avahi is distributed in the hope that it will be useful, but WITHOUT
83 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
84 # or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
85 # License for more details.
87 # You should have received a copy of the GNU Lesser General Public
88 # License along with avahi; if not, write to the Free Software
89 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
99 This file is part of avahi.
101 avahi is free software; you can redistribute it and/or modify it
102 under the terms of the GNU Lesser General Public License as
103 published by the Free Software Foundation; either version 2.1 of the
104 License, or (at your option) any later version.
106 avahi is distributed in the hope that it will be useful, but WITHOUT
107 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
108 or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General
109 Public License for more details.
111 You should have received a copy of the GNU Lesser General Public
112 License along with avahi; if not, write to the Free Software
113 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307