mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-25 11:11:08 +00:00
92b1df0186
Fix link to gst-uninstalled now that it's been moved, and fix a typo while we're at it. Also add a new section to 'Building GStreamer from git' that points to the 'How do I develop against an uninstalled copy of GStreamer' section.
164 lines
6 KiB
XML
164 lines
6 KiB
XML
<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 dsa". The resulting public key
|
|
will be in <filename>.ssh/id_dsa.pub</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>
|