~ubuntu-branches/ubuntu/jaunty/gimp/jaunty-security

« back to all changes in this revision

Viewing changes to HACKING

  • Committer: Bazaar Package Importer
  • Author(s): Daniel Holbach
  • Date: 2007-05-02 16:33:03 UTC
  • mfrom: (1.1.4 upstream)
  • Revision ID: james.westby@ubuntu.com-20070502163303-bvzhjzbpw8qglc4y
Tags: 2.3.16-1ubuntu1
* Resynchronized with Debian, remaining Ubuntu changes:
  - debian/rules: i18n magic.
* debian/control.in:
  - Maintainer: Ubuntu Core Developers <ubuntu-devel@lists.ubuntu.com>
* debian/patches/02_help-message.patch,
  debian/patches/03_gimp.desktop.in.in.patch,
  debian/patches/10_dont_show_wizard.patch: updated.
* debian/patches/04_composite-signedness.patch,
  debian/patches/05_add-letter-spacing.patch: dropped, used upstream.

Show diffs side-by-side

added added

removed removed

Lines of Context:
5
5
 
6
6
    * GNU autoconf 2.54
7
7
        - ftp://ftp.gnu.org/gnu/autoconf/
8
 
    * GNU automake 1.8 or newer
 
8
    * GNU automake 1.9 (automake 1.8 should also work)
9
9
        - ftp://ftp.gnu.org/gnu/automake/
10
 
    * GNU libtool 1.4  (1.5 if you are compiling on Win32)
 
10
    * GNU libtool 1.4  (libtool 1.5 if you are compiling on Win32)
11
11
        - ftp://ftp.gnu.org/gnu/libtool/
12
12
 
13
13
Fine GNU mirrors are listed at http://www.gnu.org/prep/ftp.html
14
14
Beta software can be found at alpha.gnu.org.
15
15
 
16
 
    * pkg-config 0.7.0 (or preferably a newer version)
 
16
    * pkg-config 0.15.0 (or preferably a newer version)
17
17
        - http://www.freedesktop.org/software/pkgconfig/
18
18
 
19
19
    * intltoolize 0.31.1 (or preferably a newer version)
26
26
        - ftp://ftp.gnome.org/pub/GNOME/sources/libxslt/1.1/
27
27
 
28
28
These are only the additional requirements if you want to compile from
29
 
CVS. The file INSTALL lists the various libraries we depend on.
 
29
the Subversion repository. The file INSTALL lists the various libraries
 
30
we depend on.
30
31
 
31
32
 
32
33
Compilation
33
34
-----------
34
 
If you are accessing gimp via CVS, then you will need to take several
35
 
steps to get it to compile.  You can do all these steps at once
 
35
If you are accessing gimp via Subversion, then you will need to take
 
36
several steps to get it to compile.  You can do all these steps at once
36
37
by running:
37
38
 
38
 
    cvsroot/gimp$ ./autogen.sh
 
39
    gimp/trunk$ ./autogen.sh
39
40
 
40
41
Basically this does the following for you:
41
42
 
42
 
    cvsroot/gimp$ aclocal-1.9; libtoolize; automake-1.9 -a;
43
 
    cvsroot/gimp$ autoconf; glib-gettextize; intltoolize
 
43
    gimp/trunk$ aclocal-1.9; libtoolize; automake-1.9 -a;
 
44
    gimp/trunk$ autoconf; glib-gettextize; intltoolize
44
45
 
45
46
The above commands create the "configure" script.  Now you can run the
46
 
configure script in cvsroot/gimp to create all the Makefiles.
 
47
configure script in gimp/trunk to create all the Makefiles.
47
48
 
48
49
Before running autogen.sh or configure, make sure you have libtool in
49
50
your path. Also make sure glib-2.0.m4 glib-gettext.m4, gtk-2.0.m4,
69
70
the API documentation.
70
71
 
71
72
 
72
 
CVS
73
 
---
74
 
GIMP is available from GNOME CVS. You can also grab glib, pango, atk,
75
 
gtk+, libart, gtkhtml2 as well as intltool and gtk-doc from the same
76
 
CVS server. You can use the following commands to get them from the
77
 
anonymous CVS server:
78
 
 
79
 
    $ export CVSROOT=':pserver:anonymous@anoncvs.gimp.org:/cvs/gnome'
80
 
    $ cvs login
81
 
         (there is no password, just hit return)
82
 
    $ cvs -z3 checkout [-r <branch>] <module>
 
73
Subversion
 
74
----------
 
75
GIMP is available from GNOME Subversion. You can also grab glib, pango,
 
76
atk, gtk+, libart, gtkhtml2 as well as intltool and gtk-doc from the
 
77
same Subversion server. You can use the following commands to get them
 
78
from the anonymous Subversion server:
 
79
 
 
80
For getting the trunk, use:
 
81
 
 
82
    $ svn co http://svn.gnome.org/svn/<module>/trunk <module>
 
83
 
 
84
For getting a branch, use:
 
85
 
 
86
    $ svn co http://svn.gnome.org/svn/<module>/branches/<branch> <module>
 
87
 
83
88
 
84
89
The interesting modules and the suggested stable branches to use are:
85
90
 
86
91
    * gimp
87
 
    * glib        (glib-2-4)
88
 
    * atk         (gnome-2-6)
89
 
    * pango       (pango-1-4)
90
 
    * gtk+        (gtk-2-4)
 
92
    * glib        (glib-2-12)
 
93
    * atk         (gnome-2-16)
 
94
    * pango       (pango-1-14)
 
95
    * gtk+        (gtk-2-10)
91
96
    * libart_lgpl
92
97
    * gtkhtml2
93
98
    * intltool
94
99
    * gtk-doc
95
100
 
 
101
You can read more on using GNOME's Subversion service at these URLs:
 
102
 
 
103
    http://developer.gnome.org/tools/svn.html
 
104
    http://svnbook.red-bean.com/
 
105
 
96
106
 
97
107
Patches
98
108
-------
99
 
Please submit patches to the gimp-developer@lists.xcf.berkeley.edu
100
 
mailing list. It's also a good idea to file a bug-report at
101
 
http://bugzilla.gnome.org/ and attach your patch to it.  All kinds 
102
 
of contributions are appreciated. 
103
 
 
104
 
 
105
 
Autogenerated Files
106
 
-------------------
 
109
 
 
110
The best way to submit patches is to file a bug report at
 
111
http://bugzilla.gnome.org/ and attach your patch to it as a plain text
 
112
file, not compressed. If your patch is reasonably small you can submit
 
113
it to the gimp-developer@lists.xcf.berkeley.edu mailing list. If the
 
114
patch needs to be discussed, you should also consider using the
 
115
mailing list instead of Bugzilla because bug reports tend to be hard
 
116
to read if they contain too many comments. For the code, please try to
 
117
follow the guidelines given in Hackordnung, below.  You can create the
 
118
patch file with "svn diff", preferably in an annotated patch format.
 
119
This can be achieved with ~/.subversion/config containing a custom
 
120
diff command in the [helpers] section:
 
121
 
 
122
[helpers]
 
123
diff-cmd = /usr/local/bin/_svndiff
 
124
 
 
125
And create an executable script in /usr/local/bin/_svndiff with the
 
126
following contents:
 
127
 
 
128
#!/bin/sh
 
129
/usr/bin/diff -up --label "${3}" ${6} --label "${5}" ${7}
 
130
 
 
131
 
 
132
Auto-generated Files
 
133
--------------------
107
134
Please notice that some files in the source are generated from other
108
 
sources. All those files have a short notice about being autogenerated
 
135
sources. All those files have a short notice about being generated
109
136
somewhere at the top. Among them are the files ending in _pdb.[ch] in
110
137
the libgimp directory and the files ending in _cmds.c in the app/pdb
111
138
subdirectory. Those are generated from the respective .pdb files in
112
 
tools/pdbgen/pdb. The list of contributors is used in several files
113
 
which are for that reason generated from the file contributors in
114
 
tools/authorsgen.
 
139
tools/pdbgen/pdb.
115
140
 
116
141
 
117
142
Hackordnung
121
146
style is enforced.  The GIMP coding style is defined as follows:
122
147
 
123
148
    * There's a single space between the function name and the opening
124
 
      bracket.
 
149
      paren.
125
150
 
126
151
    * Function names are lowercase, words separated by underscores.
127
152
 
134
159
 
135
160
    * Indentation rules are GNU coding style, in particular:
136
161
        - 2 characters indentation level
137
 
        - Do not use tabs (of course your editor can use tabs, but it 
138
 
          should write them to file as 8 spaces each).
139
 
        - Opening brackets are on a new line and indented one level.
 
162
        - Do not use tabs (of course your editor can accept the TAB key
 
163
          as a command, typically to indent the current line properly
 
164
          or to add spaces at the cursor until the next multiple of 8
 
165
          columns, but it should not put TAB characters in the file).
 
166
        - When editing files that still have TABs in them, make sure your
 
167
          editor interprets the TABs correctly, that is, has tab stops
 
168
          at 8 column intervals.
 
169
        - Opening braces are on a new line and indented one level.
140
170
        - Function header have the return type on one line, the name
141
171
          starting in the first column of the following line. All
142
172
          parameters are prototyped and there's a new line for each.