mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-04-26 06:54:49 +00:00
FAQ: update for git and miscellaneous small fixes and additions
Replace all mentions of CVS with git. Add link to gst-uninstalled script in cgit and to SubmittingPatches page in wiki. Fix some typos. Update indenting rules to what we actually use (#571646).
This commit is contained in:
parent
66a47b2103
commit
1c716ae407
8 changed files with 89 additions and 56 deletions
|
@ -9,7 +9,7 @@
|
||||||
|
|
||||||
<answer>
|
<answer>
|
||||||
<para>
|
<para>
|
||||||
GStreamer uses pkg-config to assist applications with compilationa and
|
GStreamer uses pkg-config to assist applications with compilation and
|
||||||
linking flags.
|
linking flags.
|
||||||
pkg-config is already used by GTK+, GNOME, SDL, and others; so if you are
|
pkg-config is already used by GTK+, GNOME, SDL, and others; so if you are
|
||||||
familiar with using it for any of those, you're set.
|
familiar with using it for any of those, you're set.
|
||||||
|
@ -31,7 +31,7 @@ not single quotes.
|
||||||
</para>
|
</para>
|
||||||
<para>
|
<para>
|
||||||
For bigger projects, you should integrate pkg-config use in your Makefile,
|
For bigger projects, you should integrate pkg-config use in your Makefile,
|
||||||
or integrate with autoconf using the pkg.m4 macro.
|
or integrate with autoconf using the pkg.m4 macro (providing PKG_CONFIG_CHECK).
|
||||||
</para>
|
</para>
|
||||||
</answer>
|
</answer>
|
||||||
</qandaentry>
|
</qandaentry>
|
||||||
|
@ -44,27 +44,30 @@ or integrate with autoconf using the pkg.m4 macro.
|
||||||
<answer>
|
<answer>
|
||||||
<para>
|
<para>
|
||||||
It is possible to develop and compile against an uninstalled copy of
|
It is possible to develop and compile against an uninstalled copy of
|
||||||
gstreamer and gst-plugins (for example, against CVS copies).
|
gstreamer and gst-plugins-* (for example, against gits checkouts).
|
||||||
The easiest way to do this is to use a script like this (for bash):
|
The easiest way to do this is to use a bash script like this (also:
|
||||||
|
<ulink url="http://cgit.freedesktop.org/gstreamer/gstreamer/tree/docs/faq/gst-uninstalled">lastest version of gst-uninstalled</ulink>):
|
||||||
|
|
||||||
<programlisting>
|
<programlisting>
|
||||||
&gst-uninstalled;
|
&gst-uninstalled;
|
||||||
</programlisting>
|
</programlisting>
|
||||||
If you put this script in your path, and symlink it to gst-cvs (if you want
|
If you put this script in your path, and symlink it to gst-git (if you want
|
||||||
to develop against cvs HEAD) or to gst-0.8 (if you want to develop against the
|
to develop against git master) or to gst-released (if you want to develop
|
||||||
0.8 branch), it will automatically use the uninstalled version from that
|
against the lastest release of each module), it will automatically use the
|
||||||
directory.
|
uninstalled version from that directory (ie. gst-git will look for a directory
|
||||||
|
called 'git', and gst-released will expect the uninstalled modules to be in
|
||||||
|
the 'released' directory; you are free to use any name or identifier you like
|
||||||
|
here).
|
||||||
</para>
|
</para>
|
||||||
<para>
|
<para>
|
||||||
This requires you to have put your checkouts of gstreamer and gst-plugins
|
This requires you to have put your checkouts of gstreamer and gst-plugins
|
||||||
under ~/gst/cvs (for the HEAD version). The program is easily modifiable
|
under ~/gst/git (for the master version). The program is easily modifiable
|
||||||
if this isn't the case.
|
if this isn't the case.
|
||||||
</para>
|
</para>
|
||||||
<para>
|
<para>
|
||||||
After running this script, you'll be in an environment where you can
|
After running this script, you'll be in an environment where the uninstalled
|
||||||
use the uninstalled tools, and where gst-register registers the uninstalled
|
tools and plugins will be used by default. Also, pkg-config will detect the
|
||||||
plugins by default. Also, pkg-config wil detect the uninstalled copies
|
uninstalled copies before (and prefer them to) any installed copies.
|
||||||
before any installed copies.
|
|
||||||
</para>
|
</para>
|
||||||
</answer>
|
</answer>
|
||||||
</qandaentry>
|
</qandaentry>
|
||||||
|
@ -80,7 +83,8 @@ For GNOME applications it's a good idea to use GConf to find the default ways
|
||||||
of outputting audio and video. You can do this by using the 'gconfaudiosink'
|
of outputting audio and video. You can do this by using the 'gconfaudiosink'
|
||||||
and 'gconfvideosink' elements for audio and video output. They will take
|
and 'gconfvideosink' elements for audio and video output. They will take
|
||||||
care of everything GConf-related for you and automatically use the outputs
|
care of everything GConf-related for you and automatically use the outputs
|
||||||
that the user configured.
|
that the user configured. If you are using gconfaudiosink, your application
|
||||||
|
should set the 'profile' property.
|
||||||
</para>
|
</para>
|
||||||
</answer>
|
</answer>
|
||||||
</qandaentry>
|
</qandaentry>
|
||||||
|
@ -136,8 +140,8 @@ Don't hold your breath for that though.
|
||||||
</para>
|
</para>
|
||||||
<para>
|
<para>
|
||||||
During the development cycle, GStreamer also uses a fourth or NANO number.
|
During the development cycle, GStreamer also uses a fourth or NANO number.
|
||||||
If this number is 1, then it's a CVS version.
|
If this number is 1, then it's a git development version.
|
||||||
Any tarball or package that has a nano number of 1 is made from CVS and thus
|
Any tarball or package that has a nano number of 1 is made from git and thus
|
||||||
not supported. Additionally, if you didn't get this package or tarball from
|
not supported. Additionally, if you didn't get this package or tarball from
|
||||||
the GStreamer team, don't have high hopes on it doing whatever you want it
|
the GStreamer team, don't have high hopes on it doing whatever you want it
|
||||||
to do.
|
to do.
|
||||||
|
@ -162,8 +166,8 @@ Just follow what's already there and you'll be fine.
|
||||||
The core could use a code cleanup though at this point.
|
The core could use a code cleanup though at this point.
|
||||||
</para>
|
</para>
|
||||||
<para>
|
<para>
|
||||||
Individual plugins in gst-plugins or plugins that you want considered for
|
Individual plugins in gst-plugins-* or plugins that you want considered for
|
||||||
addition to the gst-plugins module should be coded in the same style.
|
addition to one of the gst-plugins-* modules should be coded in the same style.
|
||||||
It's easier if everything is consistent. Consistency is, of course, the goal.
|
It's easier if everything is consistent. Consistency is, of course, the goal.
|
||||||
</para>
|
</para>
|
||||||
<para>
|
<para>
|
||||||
|
@ -181,11 +185,29 @@ If you use emacs, try these lines:
|
||||||
</programlisting>
|
</programlisting>
|
||||||
</para>
|
</para>
|
||||||
<para>
|
<para>
|
||||||
Or, run your code through
|
Or, run your code (only the *.c files, not the header files) through
|
||||||
<programlisting>
|
<programlisting>
|
||||||
indent -br -bad -cbi0 -cli2 -bls -l100 -ut -ce
|
indent \
|
||||||
|
--braces-on-if-line \
|
||||||
|
--case-brace-indentation0 \
|
||||||
|
--case-indentation2 \
|
||||||
|
--braces-after-struct-decl-line \
|
||||||
|
--line-length80 \
|
||||||
|
--no-tabs \
|
||||||
|
--cuddle-else \
|
||||||
|
--dont-line-up-parentheses \
|
||||||
|
--continuation-indentation4 \
|
||||||
|
--honour-newlines \
|
||||||
|
--tab-size8 \
|
||||||
|
--indent-level2
|
||||||
</programlisting>
|
</programlisting>
|
||||||
before submitting a patch (FIXME: check if these are indeed the proper options).
|
before submitting a patch. (This is using GNU indent.) There is also a
|
||||||
|
gst-indent script in the GStreamer core source tree in the tools directory
|
||||||
|
which wraps this and contains the latest option. The easiest way to get the
|
||||||
|
indenting right is probably to develop against a git checkout. The local
|
||||||
|
git commit hook will ensure correct indentation. We only require code files to
|
||||||
|
be indented, header files may be indented manually for better readability
|
||||||
|
(however, please use spaces for indenting, not tabs, even in header files).
|
||||||
</para>
|
</para>
|
||||||
<para>
|
<para>
|
||||||
As for the code itself, the
|
As for the code itself, the
|
||||||
|
@ -194,21 +216,23 @@ Where possible, we try to adhere to the spirit of GObject and use similar
|
||||||
coding idioms.
|
coding idioms.
|
||||||
</para>
|
</para>
|
||||||
<para>
|
<para>
|
||||||
Patches should be made against CVS or the latest release and should be
|
Patches should be made against git master or the latest release and should be
|
||||||
in 'unified context' format (use diff -u -p). They should be attached to
|
in 'unified context' format (use diff -u -p). They should be attached to
|
||||||
a bug report (or feature request) in
|
a bug report (or feature request) in
|
||||||
<ulink url="http://bugzilla.gnome.org">bugzilla</ulink> rather than
|
<ulink url="http://bugzilla.gnome.org">bugzilla</ulink> rather than
|
||||||
sent to the mailing list.
|
sent to the mailing list. Also see
|
||||||
|
<ulink url="http://gstreamer.freedesktop.org/wiki/SubmittingPatches">SubmittingPatches</ulink>
|
||||||
|
in the GStreamer wiki.
|
||||||
</para>
|
</para>
|
||||||
</answer>
|
</answer>
|
||||||
</qandaentry>
|
</qandaentry>
|
||||||
<qandaentry>
|
<qandaentry>
|
||||||
<question id="developing-translations">
|
<question id="developing-translations">
|
||||||
<para>I have translated one of the module .po files into a new language. How do I get it into CVS?</para>
|
<para>I have translated one of the module .po files into a new language. How do I get it included?</para>
|
||||||
</question>
|
</question>
|
||||||
<answer>
|
<answer>
|
||||||
<para>GStreamer translations are uniformly managed through the Translation Project (http://translationproject.org). There are some instructions on how to join the Translation Project team and submit new translations at http://translationproject.org/html/translators.html.</para>
|
<para>GStreamer translations are uniformly managed through the Translation Project (http://translationproject.org). There are some instructions on how to join the Translation Project team and submit new translations at http://translationproject.org/html/translators.html.</para>
|
||||||
<para>New translations submitted via the Translation Project are merged periodically into CVS by the maintainers by running 'make download-po' in the various modules.</para>
|
<para>New translations submitted via the Translation Project are merged periodically into git by the maintainers by running 'make download-po' in the various modules.</para>
|
||||||
</answer>
|
</answer>
|
||||||
</qandaentry>
|
</qandaentry>
|
||||||
</qandaset>
|
</qandaset>
|
||||||
|
|
|
@ -17,7 +17,7 @@
|
||||||
<!ENTITY USING SYSTEM "using.xml">
|
<!ENTITY USING SYSTEM "using.xml">
|
||||||
<!ENTITY TROUBLESHOOTING SYSTEM "troubleshooting.xml">
|
<!ENTITY TROUBLESHOOTING SYSTEM "troubleshooting.xml">
|
||||||
|
|
||||||
<!ENTITY CVS SYSTEM "cvs.xml">
|
<!ENTITY GIT SYSTEM "git.xml">
|
||||||
<!ENTITY DEVELOPING SYSTEM "developing.xml">
|
<!ENTITY DEVELOPING SYSTEM "developing.xml">
|
||||||
|
|
||||||
<!ENTITY LEGAL SYSTEM "legal.xml">
|
<!ENTITY LEGAL SYSTEM "legal.xml">
|
||||||
|
@ -69,7 +69,7 @@
|
||||||
&USING;
|
&USING;
|
||||||
&TROUBLESHOOTING;
|
&TROUBLESHOOTING;
|
||||||
|
|
||||||
&CVS;
|
&GIT;
|
||||||
&DEVELOPING;
|
&DEVELOPING;
|
||||||
|
|
||||||
&LEGAL;
|
&LEGAL;
|
||||||
|
|
|
@ -16,7 +16,7 @@ distribution-specific packages</link></para></listitem>
|
||||||
<listitem><para><link linkend="getting-gstreamer-source">
|
<listitem><para><link linkend="getting-gstreamer-source">
|
||||||
source tarballs</link></para></listitem>
|
source tarballs</link></para></listitem>
|
||||||
<listitem><para><link linkend="getting-gstreamer-packages">
|
<listitem><para><link linkend="getting-gstreamer-packages">
|
||||||
CVS</link></para></listitem>
|
git</link></para></listitem>
|
||||||
</itemizedlist>
|
</itemizedlist>
|
||||||
</para>
|
</para>
|
||||||
</answer>
|
</answer>
|
||||||
|
@ -155,13 +155,13 @@ neither can or want to know enough, about how your unique system is configured,
|
||||||
</qandaentry>
|
</qandaentry>
|
||||||
|
|
||||||
<qandaentry>
|
<qandaentry>
|
||||||
<question id="getting-gstreamer-cvs">
|
<question id="getting-gstreamer-git">
|
||||||
<para>How do I get GStreamer through CVS ?</para>
|
<para>How do I get GStreamer through git ?</para>
|
||||||
</question>
|
</question>
|
||||||
|
|
||||||
<answer>
|
<answer>
|
||||||
<para>
|
<para>
|
||||||
see this page : <ulink url="http://gstreamer.freedesktop.org/dev/">http://gstreamer.freedesktop.org/dev/</ulink> for CVS access. (anonymous and developer)
|
see this page : <ulink url="http://gstreamer.freedesktop.org/dev/">http://gstreamer.freedesktop.org/dev/</ulink> for git access. (anonymous and developer)
|
||||||
</para>
|
</para>
|
||||||
</answer>
|
</answer>
|
||||||
</qandaentry>
|
</qandaentry>
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
<sect1 id="chapter-cvs">
|
<sect1 id="chapter-git">
|
||||||
<title id="title-cvs">Building GStreamer from CVS</title>
|
<title id="title-git">Building GStreamer from git</title>
|
||||||
<qandaset defaultlabel="qanda">
|
<qandaset defaultlabel="qanda">
|
||||||
|
|
||||||
<qandaentry>
|
<qandaentry>
|
||||||
<question id="cvs-anon">
|
<question id="git-anon">
|
||||||
<para>
|
<para>
|
||||||
How do I check out GStreamer from CVS ?
|
How do I check out GStreamer from git ?
|
||||||
</para>
|
</para>
|
||||||
</question>
|
</question>
|
||||||
|
|
||||||
|
@ -13,16 +13,23 @@ How do I check out GStreamer from CVS ?
|
||||||
<para>
|
<para>
|
||||||
GStreamer is hosted on Freedesktop.org. GStreamer consists of various parts.
|
GStreamer is hosted on Freedesktop.org. GStreamer consists of various parts.
|
||||||
In the beginning, you will be interested in the "gstreamer" module, containing
|
In the beginning, you will be interested in the "gstreamer" module, containing
|
||||||
the core, and "gst-plugins", containing the basic set of plugins.
|
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>
|
||||||
<para>
|
<para>
|
||||||
To check out the HEAD version of the core, use
|
To check out the latest git version of the core and the basic modules, use
|
||||||
<programlisting>
|
<programlisting>
|
||||||
cvs -d:pserver:anoncvs@anoncvs.freedesktop.org:/cvs/gstreamer co gstreamer
|
for module in gstreamer gst-plugins-base gst-plugins-good; do
|
||||||
|
git clone git://anongit.freedesktop.org:/git/gstreamer/$module ;
|
||||||
|
done
|
||||||
</programlisting>
|
</programlisting>
|
||||||
This will create a directory "gstreamer" in your current directory.
|
This will create three directories in your current directory: "gstreamer",
|
||||||
If you want to get another module, replace the last "gstreamer" with the
|
"gst-plugins-base", and "gst-plugins-good". If you want to get another module,
|
||||||
name of the 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>
|
||||||
<para>
|
<para>
|
||||||
The <ulink url="http://gstreamer.freedesktop.org/modules/">modules page</ulink>
|
The <ulink url="http://gstreamer.freedesktop.org/modules/">modules page</ulink>
|
||||||
|
@ -32,18 +39,20 @@ has a list of active ones together with a short description.
|
||||||
</qandaentry>
|
</qandaentry>
|
||||||
|
|
||||||
<qandaentry>
|
<qandaentry>
|
||||||
<question id="cvs-developer">
|
<question id="git-developer">
|
||||||
<para>
|
<para>
|
||||||
How do I get developer access to GStreamer CVS ?
|
How do I get developer access to GStreamer git ?
|
||||||
</para>
|
</para>
|
||||||
</question>
|
</question>
|
||||||
|
|
||||||
<answer>
|
<answer>
|
||||||
<para>
|
<para>
|
||||||
If you want to gain developer access to GStreamer CVS, you should ask for
|
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.
|
it on the development lists, or ask one of the maintainers directly. We will
|
||||||
If you are not already a registered developer with a user account on
|
usually only consider requests by developers who have been active and
|
||||||
Freedesktop.org, You will then have to provide them with:
|
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>
|
<orderedlist>
|
||||||
<listitem><para>your desired unix username</para></listitem>
|
<listitem><para>your desired unix username</para></listitem>
|
||||||
<listitem><para>your full name</para></listitem>
|
<listitem><para>your full name</para></listitem>
|
||||||
|
@ -122,7 +131,7 @@ chasing a bug for days that the compiler was giving you hints about.
|
||||||
</para>
|
</para>
|
||||||
<para>
|
<para>
|
||||||
"-Werror" is turned off for actual releases. It's turned on by default for
|
"-Werror" is turned off for actual releases. It's turned on by default for
|
||||||
CVS and prereleases so that people actually notice and fix problems found by
|
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.
|
"-Wall". We want people to actively hit and report or fix them.
|
||||||
</para>
|
</para>
|
||||||
<para>
|
<para>
|
|
@ -1,9 +1,9 @@
|
||||||
#!/bin/bash -i
|
#!/bin/bash -i
|
||||||
#
|
#
|
||||||
# this script is in CVS as gstreamer/docs/faq/gst-uninstalled
|
# this script is in git as gstreamer/docs/faq/gst-uninstalled
|
||||||
#
|
#
|
||||||
# It will set up the environment to use and develop gstreamer and projects
|
# It will set up the environment to use and develop gstreamer and projects
|
||||||
# that use gstreamer with an uninstalled CVS checkout of gstreamer and the
|
# that use gstreamer with an uninstalled git checkout of gstreamer and the
|
||||||
# plugin modules.
|
# plugin modules.
|
||||||
#
|
#
|
||||||
# It will set up LD_LIBRARY_PATH, DYLD_LIBRARY_PATH, PKG_CONFIG_PATH,
|
# It will set up LD_LIBRARY_PATH, DYLD_LIBRARY_PATH, PKG_CONFIG_PATH,
|
||||||
|
@ -27,7 +27,7 @@
|
||||||
|
|
||||||
# This script is run -i so that PS1 doesn't get cleared
|
# This script is run -i so that PS1 doesn't get cleared
|
||||||
|
|
||||||
# Change this variable to the location of your gstreamer CVS checkouts
|
# Change this variable to the location of your gstreamer git checkouts
|
||||||
MYGST=$HOME/gst
|
MYGST=$HOME/gst
|
||||||
|
|
||||||
#
|
#
|
||||||
|
|
|
@ -18,8 +18,8 @@ If you'd rather learn by trying it out, start with
|
||||||
</listitem>
|
</listitem>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
If you want to live on the bleeding edge and develop and use CVS, see
|
If you want to live on the bleeding edge and develop and use git, see
|
||||||
<xref linkend="title-cvs" endterm="title-cvs"/>
|
<xref linkend="title-git" endterm="title-git"/>
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
</itemizedlist>
|
</itemizedlist>
|
||||||
|
|
|
@ -39,7 +39,7 @@ Make sure to remember to re-run configure after installing the supporting
|
||||||
library !
|
library !
|
||||||
</para></listitem>
|
</para></listitem>
|
||||||
<listitem><para>
|
<listitem><para>
|
||||||
if you run GStreamer from CVS, the same logic applies as for a source install.
|
if you run GStreamer from git, the same logic applies as for a source install.
|
||||||
Go over the reasons why the plug-in didn't get configured for build.
|
Go over the reasons why the plug-in didn't get configured for build.
|
||||||
Check output of config.log for a clue as to why it doesn't get built if
|
Check output of config.log for a clue as to why it doesn't get built if
|
||||||
you're sure you have the library needed installed in a sane place.
|
you're sure you have the library needed installed in a sane place.
|
||||||
|
@ -63,7 +63,7 @@ What's wrong ?
|
||||||
|
|
||||||
<answer>
|
<answer>
|
||||||
<para>
|
<para>
|
||||||
If you run GStreamer CVS uninstalled, it means that something changed in
|
If you run GStreamer from git uninstalled, it means that something changed in
|
||||||
the core that requires a recompilation in the plugins. Recompile the
|
the core that requires a recompilation in the plugins. Recompile the
|
||||||
plugins by doing "make clean && make".
|
plugins by doing "make clean && make".
|
||||||
</para>
|
</para>
|
||||||
|
|
|
@ -149,7 +149,7 @@ When doing a bug report, you should at least describe
|
||||||
<itemizedlist>
|
<itemizedlist>
|
||||||
<listitem><para>your distribution</para></listitem>
|
<listitem><para>your distribution</para></listitem>
|
||||||
<listitem><para>
|
<listitem><para>
|
||||||
how you installed GStreamer (from cvs, source, packages, which ?)</para></listitem>
|
how you installed GStreamer (from git, source, packages, which ?)</para></listitem>
|
||||||
<listitem><para>if you installed GStreamer before</para></listitem>
|
<listitem><para>if you installed GStreamer before</para></listitem>
|
||||||
</itemizedlist>
|
</itemizedlist>
|
||||||
</para>
|
</para>
|
||||||
|
|
Loading…
Reference in a new issue