mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-05 17:09:48 +00:00
950f68c8fe
The git:// protocol is problematic from a security perspective, as it provides no authenticity of data. https:// also works better in environments with restricted network connectivity. Also add CLONE_OPTS to do shallow checkouts more easily. https://bugzilla.gnome.org/show_bug.cgi?id=775110
167 lines
5.6 KiB
Bash
Executable file
167 lines
5.6 KiB
Bash
Executable file
#!/bin/sh
|
|
# ----------------------------------------------------------------------------
|
|
#
|
|
# create-uninstalled-setup.sh
|
|
#
|
|
# Little shell script that creates a fresh GStreamer uninstalled setup in
|
|
# your home directory.
|
|
#
|
|
# ----------------------------------------------------------------------------
|
|
#
|
|
# Copyright (C) 2011-2015 Tim-Philipp Müller <tim centricular net>
|
|
#
|
|
# This script is free software; you can redistribute it and/or
|
|
# modify it under the terms of the GNU Library General Public
|
|
# License as published by the Free Software Foundation; either
|
|
# version 2 of the License, or (at your option) any later version.
|
|
#
|
|
# This library is distributed in the hope that it will be useful,
|
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
# Library General Public License for more details.
|
|
#
|
|
# You should have received a copy of the GNU Library General Public
|
|
# License along with this library; if not, write to the
|
|
# Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
|
|
# Boston, MA 02110-1301, USA.
|
|
#
|
|
# ----------------------------------------------------------------------------
|
|
|
|
set -e
|
|
|
|
# set BRANCH to e.g. "1.2" to track the stable 1.2 branch instead of master
|
|
BRANCH="master"
|
|
|
|
# set to "ssh" if you have a developer account and ssh access
|
|
GIT_ACCESS="anongit"
|
|
|
|
# extra clone options
|
|
#CLONE_OPTS="--depth=1 --no-single-branch"
|
|
|
|
# re-use and reference local master branch checkout if one already exists
|
|
# (saves network bandwidth)
|
|
REUSE_EXISTING_MASTER_CHECKOUT="true"
|
|
|
|
# git modules to clone
|
|
MODULES="gstreamer gst-plugins-base gst-plugins-good gst-plugins-ugly gst-plugins-bad gst-libav"
|
|
|
|
# note: we use ~/gst because that's what the gst-uninstalled script
|
|
# uses by default, so don't just change that to something else
|
|
UNINSTALLED_ROOT=~/gst
|
|
|
|
echo "==========================================================================================="
|
|
echo "Creating new GStreamer uninstalled environment for branch $BRANCH in $UNINSTALLED_ROOT ... "
|
|
echo "==========================================================================================="
|
|
|
|
mkdir -p $UNINSTALLED_ROOT
|
|
mkdir -p $UNINSTALLED_ROOT/$BRANCH
|
|
|
|
mkdir -p $UNINSTALLED_ROOT/$BRANCH/prefix
|
|
|
|
|
|
echo ""
|
|
echo "Checking basic build tools and dependencies are installed..."
|
|
echo ""
|
|
|
|
if ! pkg-config --version 2>/dev/null >/dev/null; then
|
|
DEPS_OK="no"
|
|
elif ! pkg-config --exists glib-2.0 orc-0.4 2>/dev/null >/dev/null; then
|
|
DEPS_OK="no"
|
|
elif ! bison --version 2>/dev/null >/dev/null; then
|
|
DEPS_OK="no"
|
|
elif ! flex --version 2>/dev/null >/dev/null; then
|
|
DEPS_OK="no"
|
|
elif ! git --version 2>/dev/null >/dev/null; then
|
|
DEPS_OK="no"
|
|
else
|
|
DEPS_OK="yes"
|
|
fi
|
|
|
|
if test "$DEPS_OK" != "yes"; then
|
|
echo "==========================================================================================="
|
|
echo ""
|
|
echo " Some very basic build tools or dependencies are missing."
|
|
echo ""
|
|
echo " Please install the following tools: pkg-config, bison, flex, git"
|
|
echo ""
|
|
echo " and the following libraries: GLib (libglib2.0-dev or glib2-devel)"
|
|
echo " and Orc (liborc-0.4-dev or orc-devel)"
|
|
#echo " Please visit"
|
|
#echo ""
|
|
#echo " http://gstreamer.freedesktop.org/wiki/BuildDependenciesDebianUbuntu"
|
|
#echo ""
|
|
#echo " or"
|
|
#echo ""
|
|
#echo " http://gstreamer.freedesktop.org/wiki/Fedora"
|
|
#echo ""
|
|
#echo " for instructions how to install them on Debian/Ubuntu-based systems."
|
|
echo ""
|
|
echo "==========================================================================================="
|
|
exit 1
|
|
fi
|
|
|
|
|
|
cd $UNINSTALLED_ROOT/$BRANCH
|
|
|
|
for m in $MODULES
|
|
do
|
|
REF=""
|
|
if test "$BRANCH" != "master" \
|
|
-a "x$REUSE_EXISTING_MASTER_CHECKOUT" = "xtrue" \
|
|
-a -d ../master/$m; then
|
|
REF="--reference=../master/$m"
|
|
fi
|
|
|
|
if test "$GIT_ACCESS" = "ssh"; then
|
|
git clone $CLONE_OPTS $REF ssh://git.freedesktop.org/git/gstreamer/$m
|
|
else
|
|
git clone $CLONE_OPTS $REF https://anongit.freedesktop.org/git/gstreamer/$m
|
|
fi
|
|
|
|
cd $m
|
|
if test "$BRANCH" != "master"; then
|
|
git checkout -b $BRANCH origin/$BRANCH
|
|
fi
|
|
git submodule init && git submodule update
|
|
cd ..
|
|
done
|
|
|
|
cd $UNINSTALLED_ROOT
|
|
ln -s $BRANCH/gstreamer/scripts/gst-uninstalled gst-$BRANCH
|
|
chmod +x gst-$BRANCH
|
|
|
|
cd ~
|
|
|
|
echo "==========================================================================================="
|
|
echo
|
|
echo "Done. Created new GStreamer uninstalled environment for branch $BRANCH in $UNINSTALLED_ROOT"
|
|
echo
|
|
echo "To enter the uninstalled environment do: cd $UNINSTALLED_ROOT; ./gst-$BRANCH"
|
|
echo
|
|
echo "To leave the uninstalled environment do: exit"
|
|
echo
|
|
echo "To check the uninstalled environment do: printenv | grep GST"
|
|
echo " (loads of output = you're in the uninstalled environment)"
|
|
echo
|
|
echo "==========================================================================================="
|
|
echo
|
|
echo "Now compile all GStreamer modules one by one by first switching into"
|
|
echo "the uninstalled environment and then doing:"
|
|
echo
|
|
echo " cd <MODULE>; ./autogen.sh; make"
|
|
echo
|
|
echo "First gstreamer, then gst-plugins-base, then the other modules."
|
|
echo "You do not need to do 'make install'"
|
|
echo
|
|
echo "==========================================================================================="
|
|
echo
|
|
echo "If your system GLib is too old, you can install a newer version"
|
|
echo "into --prefix=$UNINSTALLED_ROOT/$BRANCH/prefix and it should be picked up"
|
|
echo "by autogen.sh/configure"
|
|
echo
|
|
echo "==========================================================================================="
|
|
#echo
|
|
#echo "Also see http://gstreamer.freedesktop.org/wiki/UninstalledSetup"
|
|
#echo
|
|
#echo "==========================================================================================="
|
|
|