Merge branch 'master' into 0.11
[platform/upstream/gstreamer.git] / docs / faq / git.xml
1 <sect1 id="chapter-git">
2   <title id="title-git">Building GStreamer from git</title>
3   <qandaset defaultlabel="qanda">
4
5     <qandaentry>
6       <question id="git-uninstalled">
7         <para>
8 Is there a way to test or develop against GStreamer from git without
9 interfering with my system GStreamer installed from packages?
10         </para>
11       </question>
12
13       <answer>
14         <para>
15 Yes! You have two options: you can either run GStreamer in an uninstalled setup
16 (see <link linkend="developing-uninstalled-gstreamer">How do I develop against
17 an uninstalled GStreamer copy ?</link>), or you can use GNOME's jhbuild.
18         </para>
19       </answer>
20     </qandaentry>
21
22     <qandaentry>
23       <question id="git-anon">
24         <para>
25 How do I check out GStreamer from git ?
26         </para>
27       </question>
28
29       <answer>
30         <para>
31 GStreamer is hosted on Freedesktop.org.  GStreamer consists of various parts.
32 In the beginning, you will be interested in the "gstreamer" module, containing
33 the core, and "gst-plugins-base" and "gst-plugins-good", containing the basic
34 set of plugins. Finally, you may also be interested in "gst-plugins-ugly",
35 "gst-plugins-bad" and "gst-ffmpeg" for more comprehensive media format support.
36         </para>
37         <para>
38 To check out the latest git version of the core and the basic modules, use
39 <programlisting>
40  for module in gstreamer gst-plugins-base gst-plugins-good; do
41    git clone git://anongit.freedesktop.org/git/gstreamer/$module ;
42  done
43 </programlisting>
44 This will create three directories in your current directory: "gstreamer",
45 "gst-plugins-base", and "gst-plugins-good". If you want to get another module,
46 use the above git clone command line and replace $module with the name of the
47 module. Once you have checked out these modules, you will need to change into
48 each directory and run ./autogen.sh, which will among other things checkout
49 the common module underneath each module checkout.
50         </para>
51         <para>
52 The <ulink url="http://gstreamer.freedesktop.org/modules/">modules page</ulink>
53 has a list of active ones together with a short description.
54         </para>
55       </answer>
56     </qandaentry>
57
58     <qandaentry>
59       <question id="git-developer">
60         <para>
61 How do I get developer access to GStreamer git ?
62         </para>
63       </question>
64
65       <answer>
66         <para>
67 If you want to gain developer access to GStreamer git, you should ask for
68 it on the development lists, or ask one of the maintainers directly. We will
69 usually only consider requests by developers who have been active and
70 competent GStreamer contributors for some time already. If you are not
71 already a registered developer with a user account on Freedesktop.org,
72 you will then have to provide them with:
73 <orderedlist>
74 <listitem><para>your desired unix username</para></listitem>
75 <listitem><para>your full name</para></listitem>
76 <listitem><para>your e-mail address</para></listitem>
77 <listitem><para>a copy of your public sshv2 identity.
78 If you do not have this yet, you can generate it by running
79 "ssh-keygen -t rsa -f ~/.ssh/id_rsa.pub-fdo".  The resulting public key
80 will be in <filename>~/.ssh/id_rsa.pub-fdo</filename></para></listitem>
81 <listitem><para>your GPG fingerprint.  This would allow you to
82 add and remove ssh keys to your account.
83 </para></listitem>
84 </orderedlist>
85
86 Once you have all these items, see <ulink url="http://freedesktop.org/wiki/AccountRequests">http://freedesktop.org/wiki/AccountRequests</ulink> for what to do with them.
87         </para>
88       </answer>
89     </qandaentry>
90
91
92     <qandaentry>
93       <question id="autogen-libtool">
94         <label>I ran autogen.sh, but it fails with aclocal errors. What's wrong ?</label>
95         <para>
96 <programlisting>
97 + running aclocal -I m4 -I common/m4 ...
98 aclocal: configure.ac: 8: macro `AM_DISABLE_STATIC' not found in library
99 aclocal: configure.ac: 17: macro `AM_PROG_LIBTOOL' not found in library
100 aclocal failed
101 </programlisting>
102 What's wrong ?
103         </para>
104       </question>
105
106       <answer>
107         <para>
108 aclocal is unable to find two macros installed by libtool in a file called
109 libtool.m4.  Normally this would indicate that you don't have libtool, but
110 that would mean autogen.sh would have failed on not finding libtool.
111         </para>
112         <para>
113 It is more likely that you installed automake (which provides aclocal) in
114 a different prefix than libtool.  You can check this by examining in what
115 prefix both aclocal and libtool are installed.
116         </para>
117         <para>
118 You can do three things to fix this :
119 <orderedlist>
120 <listitem><para>install automake in the same prefix as libtool</para></listitem>
121 <listitem><para>force use of the automake installed in the same prefix as libtool
122 by using the --with-automake option</para></listitem>
123 <listitem><para>figure out what prefix libtool has been installed to and point
124 aclocal to the right location by running
125 <programlisting>
126 export ACLOCAL_FLAGS="-I $(prefix)/share/aclocal"
127 </programlisting>
128 where you replace prefix with the prefix where libtool was installed.
129 </para></listitem>
130 </orderedlist>
131        </para>
132       </answer>
133     </qandaentry>
134
135     <qandaentry>
136       <question id="werror">
137         <para>
138 Why is "-Wall -Werror" being used ?
139         </para>
140       </question>
141
142       <answer>
143         <para>
144 "-Wall" is being used because it finds a lot of possible problems with code.
145 Not all of them are necessarily a problem, but it's better to have the compiler
146 report some false positives and find a work-around than to spend time
147 chasing a bug for days that the compiler was giving you hints about.
148         </para>
149         <para>
150 "-Werror" is turned off for actual releases.  It's turned on by default for
151 git and prereleases so that people actually notice and fix problems found by
152 "-Wall".  We want people to actively hit and report or fix them.
153         </para>
154         <para>
155 If for any reason you want to bypass these flags and you are certain it's the
156 right thing to do, you can run
157 <programlisting>make ERROR_CFLAGS=""</programlisting>
158 to clear the CFLAGS for error checking.
159         </para>
160       </answer>
161     </qandaentry>
162
163   </qandaset>
164 </sect1>