| <sect1 id="chapter-git"> |
| <title id="title-git">Building GStreamer from git</title> |
| <qandaset defaultlabel="qanda"> |
| |
| <qandaentry> |
| <question id="git-uninstalled"> |
| <para> |
| Is there a way to test or develop against GStreamer from git without |
| interfering with my system GStreamer installed from packages? |
| </para> |
| </question> |
| |
| <answer> |
| <para> |
| Yes! You have two options: you can either run GStreamer in an uninstalled setup |
| (see <link linkend="developing-uninstalled-gstreamer">How do I develop against |
| an uninstalled GStreamer copy ?</link>), or you can use GNOME's jhbuild. |
| </para> |
| </answer> |
| </qandaentry> |
| |
| <qandaentry> |
| <question id="git-anon"> |
| <para> |
| How do I check out GStreamer from git ? |
| </para> |
| </question> |
| |
| <answer> |
| <para> |
| GStreamer is hosted on Freedesktop.org. GStreamer consists of various parts. |
| In the beginning, you will be interested in the "gstreamer" module, containing |
| the core, and "gst-plugins-base" and "gst-plugins-good", containing the basic |
| set of plugins. Finally, you may also be interested in "gst-plugins-ugly", |
| "gst-plugins-bad" and "gst-ffmpeg" for more comprehensive media format support. |
| </para> |
| <para> |
| To check out the latest git version of the core and the basic modules, use |
| <programlisting> |
| for module in gstreamer gst-plugins-base gst-plugins-good; do |
| git clone git://anongit.freedesktop.org/git/gstreamer/$module ; |
| done |
| </programlisting> |
| This will create three directories in your current directory: "gstreamer", |
| "gst-plugins-base", and "gst-plugins-good". If you want to get another module, |
| use the above git clone command line and replace $module with the name of the |
| module. Once you have checked out these modules, you will need to change into |
| each directory and run ./autogen.sh, which will among other things checkout |
| the common module underneath each module checkout. |
| </para> |
| <para> |
| The <ulink url="http://gstreamer.freedesktop.org/modules/">modules page</ulink> |
| has a list of active ones together with a short description. |
| </para> |
| </answer> |
| </qandaentry> |
| |
| <qandaentry> |
| <question id="git-developer"> |
| <para> |
| How do I get developer access to GStreamer git ? |
| </para> |
| </question> |
| |
| <answer> |
| <para> |
| If you want to gain developer access to GStreamer git, you should ask for |
| it on the development lists, or ask one of the maintainers directly. We will |
| usually only consider requests by developers who have been active and |
| competent GStreamer contributors for some time already. If you are not |
| already a registered developer with a user account on Freedesktop.org, |
| you will then have to provide them with: |
| <orderedlist> |
| <listitem><para>your desired unix username</para></listitem> |
| <listitem><para>your full name</para></listitem> |
| <listitem><para>your e-mail address</para></listitem> |
| <listitem><para>a copy of your public sshv2 identity. |
| If you do not have this yet, you can generate it by running |
| "ssh-keygen -t rsa -f ~/.ssh/id_rsa.pub-fdo". The resulting public key |
| will be in <filename>~/.ssh/id_rsa.pub-fdo</filename></para></listitem> |
| <listitem><para>your GPG fingerprint. This would allow you to |
| add and remove ssh keys to your account. |
| </para></listitem> |
| </orderedlist> |
| |
| 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. |
| </para> |
| </answer> |
| </qandaentry> |
| |
| |
| <qandaentry> |
| <question id="autogen-libtool"> |
| <label>I ran autogen.sh, but it fails with aclocal errors. What's wrong ?</label> |
| <para> |
| <programlisting> |
| + running aclocal -I m4 -I common/m4 ... |
| aclocal: configure.ac: 8: macro `AM_DISABLE_STATIC' not found in library |
| aclocal: configure.ac: 17: macro `AM_PROG_LIBTOOL' not found in library |
| aclocal failed |
| </programlisting> |
| What's wrong ? |
| </para> |
| </question> |
| |
| <answer> |
| <para> |
| aclocal is unable to find two macros installed by libtool in a file called |
| libtool.m4. Normally this would indicate that you don't have libtool, but |
| that would mean autogen.sh would have failed on not finding libtool. |
| </para> |
| <para> |
| It is more likely that you installed automake (which provides aclocal) in |
| a different prefix than libtool. You can check this by examining in what |
| prefix both aclocal and libtool are installed. |
| </para> |
| <para> |
| You can do three things to fix this : |
| <orderedlist> |
| <listitem><para>install automake in the same prefix as libtool</para></listitem> |
| <listitem><para>force use of the automake installed in the same prefix as libtool |
| by using the --with-automake option</para></listitem> |
| <listitem><para>figure out what prefix libtool has been installed to and point |
| aclocal to the right location by running |
| <programlisting> |
| export ACLOCAL_FLAGS="-I $(prefix)/share/aclocal" |
| </programlisting> |
| where you replace prefix with the prefix where libtool was installed. |
| </para></listitem> |
| </orderedlist> |
| </para> |
| </answer> |
| </qandaentry> |
| |
| <qandaentry> |
| <question id="werror"> |
| <para> |
| Why is "-Wall -Werror" being used ? |
| </para> |
| </question> |
| |
| <answer> |
| <para> |
| "-Wall" is being used because it finds a lot of possible problems with code. |
| Not all of them are necessarily a problem, but it's better to have the compiler |
| report some false positives and find a work-around than to spend time |
| chasing a bug for days that the compiler was giving you hints about. |
| </para> |
| <para> |
| "-Werror" is turned off for actual releases. It's turned on by default for |
| git and prereleases so that people actually notice and fix problems found by |
| "-Wall". We want people to actively hit and report or fix them. |
| </para> |
| <para> |
| If for any reason you want to bypass these flags and you are certain it's the |
| right thing to do, you can run |
| <programlisting>make ERROR_CFLAGS=""</programlisting> |
| to clear the CFLAGS for error checking. |
| </para> |
| </answer> |
| </qandaentry> |
| |
| </qandaset> |
| </sect1> |