-
-
Save jackersson/9d3b0c578c1e625b6b79ea04e2cebd15 to your computer and use it in GitHub Desktop.
#!/bin/bash | |
# Set your target branch | |
BRANCH="1.14.2" | |
exec > >(tee build-gstreamer.log) | |
exec 2>&1 | |
[ ! -d orc ] && git clone git://anongit.freedesktop.org/git/gstreamer/orc | |
[ ! -d gstreamer ] && git clone git://anongit.freedesktop.org/git/gstreamer/gstreamer | |
[ ! -d gst-plugins-base ] && git clone git://anongit.freedesktop.org/git/gstreamer/gst-plugins-base | |
[ ! -d gst-plugins-good ] && git clone git://anongit.freedesktop.org/git/gstreamer/gst-plugins-good | |
[ ! -d gst-plugins-bad ] && git clone git://anongit.freedesktop.org/git/gstreamer/gst-plugins-bad | |
[ ! -d gst-libav ] && git clone git://anongit.freedesktop.org/git/gstreamer/gst-libav | |
[ ! -d gst-plugins-ugly ] && git clone git://anongit.freedesktop.org/git/gstreamer/gst-plugins-ugly | |
[ ! -d gst-python ] && git clone git://anongit.freedesktop.org/git/gstreamer/gst-python | |
export LD_LIBRARY_PATH=/usr/local/lib/ | |
cd orc | |
./autogen.sh --disable-gtk-doc | |
make | |
sudo make install | |
cd .. | |
cd gstreamer | |
git checkout $BRANCH | |
./autogen.sh --disable-gtk-doc | |
make | |
sudo make install | |
cd .. | |
cd gst-plugins-base | |
git checkout $BRANCH | |
./autogen.sh --disable-gtk-doc | |
make | |
sudo make install | |
cd .. | |
cd gst-libav | |
git checkout $BRANCH | |
./autogen.sh --disable-gtk-doc --enable-orc | |
make | |
sudo make install | |
cd .. | |
cd gst-plugins-good | |
git checkout $BRANCH | |
./autogen.sh --disable-gtk-doc | |
make | |
sudo make install | |
cd .. | |
cd gst-plugins-bad | |
git checkout $BRANCH | |
./autogen.sh --disable-gtk-doc --enable-orc | |
make | |
sudo make install | |
cd .. | |
cd gst-plugins-ugly | |
git checkout $BRANCH | |
./autogen.sh --disable-gtk-doc --enable-orc | |
make | |
sudo make install | |
cd .. | |
# export PYTHON=/usr/bin/python3 (Specify required python version) | |
cd gst-python | |
git checkout $BRANCH | |
./autogen.sh --disable-gtk-doc --noconfigure | |
# with-libpython-dir -> location of libpython*.so | |
./configure --with-libpython-dir="/usr/lib/x86_64-linux-gnu" | |
make | |
sudo make install | |
cd .. | |
sudo ldconfig |
BobbyWibowo, thanks)
Thanks a ton !
How do I resolve this? (on RHEL 5.3)
orc]$ ./autogen.sh --disable-gtk-doc
configure.ac:69: error: possibly undefined macro: AC_CHECK_LIBM
If this token and others are legitimate, please use m4_pattern_allow.
See the Autoconf documentation.
autoreconf: /usr/local/bin/autoconf failed with exit status: 1
cd orc
./autogen.sh --disable-gtk-doc
I think they no longer provide ./autogen.sh. Instead, we need to use meson and ninja.
@jefflgaol do you have an example for meson/ninja commandline?
@rmsoto To use meson:
pip3 install meson
sudo apt install ninja-build
cd orc/build
meson ..
ninja
ninja install
Note that you'll need to set LD_LIBRARY_PATH
to include /usr/local/lib/{arch}-linux-gnu
(e.g. /usr/local/lib/aarch64-linux-gnu) otherwise orc will throw a fit when you try and run it. Make sure you can run: orcc
without errors.
Hi @ALL,
The working version of orc seems to be orc-0.4.25. With this version, we can still use ./autogen.sh to build it and there will be no warning or error about mismatched version of orc while compiling the plugins.
Best regards,
Pascal.
Could the script build use meson and ninja?
I thought most are steering away of make and cmake?
Rob
@SonnyWalkman see my comment above, though that was a couple of years ago.
Sorry @jveitchmichaelis Thanks..
Question, what is the purpose of orc? never been exposed to orc. Is it a helper of some kind?
Rob
Orc is a compiler
https://gstreamer.freedesktop.org/projects/orc.html
But see also: https://gstreamer.freedesktop.org/documentation/installing/building-from-source-using-meson.html
You should be able to build all of gstreamer with meson and ninja ^. It's officially supported it seems.
Thanks for the quick update.
I've been building my own script for building the latest gstreamer build like 1.22.1 using another script which uses wget and untaring each into folders. I use to be able to build the full list gstreamer, base, good, bad, ugly plugings however since the update to meson I continually need to change my script. I can build gstreamer 1.22.1 then we advancing through other folder to build base etc meson bombs out not finding the base build files just created. Reports something on the sorts of can't fine directory needing gstreamer 1.20.3 requires >= 1.22.1? Do you reckon I can work out what I need to do? Spent days on looking for a solution. I need to build x264enc and faac from source.
Rob
Add
#!/bin/bash
at the top if you're gettingSyntax error: redirection unexpected
(reference).