\label{sec:How_to_build}
These are generic build instructions for building Cinelerra-GG Infinity.
-Known to work on ubuntu, mint, suse/leap, fedora, debian, centos, arch, and slackware.
+Known to work on Ubuntu, Mint, Suse/Leap, Fedora, Debian, Centos, Arch, and Slackware.
It has not been tested on every single possible distro yet so you might expect to have to make some minor changes.
Patches have been created to build on FreeBSD through the work of another programmer and a Gentoo version is being maintained elsewhere by another programmer.
The single user build allows for running completely out of a local user directory so it doesn't affect the system.
We recommend the single-user version when possible.
-It makes it very easy to install a new version without having to delete the older version in case you want it for backup – once you are happy with the new version, all you have to do is delete the entire old directory path.
+It makes it very easy to install a new version without having to delete the older version in case you want it for backup - once you are happy with the new version, all you have to do is delete the entire old directory path.
Also, if you install a new Operating System version and if you have Cinelerra on separate disk space that is preserved, you won't have to reinstall Cinelerra.
In addition for purposes of having the ability to interrupt or to see any possible error messages, if you start the application from a terminal window command line you will have more control to catch problems.
However, the system builds can be useful in a university lab setting where there are possibly multiple users, or multiple versions.
\paragraph{To do a system build,} you should read the \texttt{README} that is at the top level after you get the source.
+
\begin{enumerate}
\item
- You need at least 2.5\,GB of disk storage to operate a build + you need to have “\texttt{git}” installed.
+ You need about 6.0 \,GB of disk storage to operate a build + you need to have “\texttt{git}” installed.
\item Obviously in order to install into the system, you must run as \textbf{root}.
- \item The "\texttt{git}" step has to download many files (approx 100\,MB) so allow time.
+ \item The "\texttt{git}" step has to download many files (approx 130\,MB) so allow time. When decompressed this will expand to about 530 MB.
\item Run the following commands (this takes awhile):
\begin{lstlisting}[language=bash]
-$ cd /<build_path>/ # this is where you need the 2.5GB of disk space
+$ cd /<build_path>/ # this is where you need the 6.0GB of disk space
$ git clone --depth 1 "git://git.cinelerra-gg.org/goodguy/cinelerra.git" cinelerra5
$ cd cinelerra5/cinelerra-5.1 # toplevel directory
\end{lstlisting}
So on the very first build you should run:
\begin{lstlisting}[language=bash]
-$ ./blds/bld_prepare.sh <os> # where <os> represents the Operating System of centos, fedora, suse, leap, ubuntu, debian.
+$ ./blds/bld_prepare.sh <os> # where <os> represents the Operating System of Centos, Fedora, Suse, Leap, Ubuntu, Debian.
$ ./autogen.sh
$ ./configure --prefix=/usr # optional parameters can be added here
$ make 2>&1 | tee log # make and log the build
\begin{lstlisting}[language=bash]
$ make install
\end{lstlisting}
- \item If it all worked, you are all setup. Just click on the cinelerra desktop icon.
+ \item If it all worked, you are all setup. Just click on the Cinelerra desktop icon.
\end{enumerate}
\paragraph{To do a single-user build,} read the \texttt{README} that is at the top level after you get the source.
\begin{enumerate}
- \item You need at least 2.5\,GB of disk storage to operate a build + you need to have “\texttt{git}” installed.
+ \item You need at least 6\,GB of disk storage to operate a build + you need to have “\texttt{git}” installed.
\item Recommend you build and run as \textbf{root}, just to avoid permission issues initially.
- \item The "\texttt{git}" step has to download many files (approx 100\,MB) so allow time.
+ \item The "\texttt{git}" step has to download many files (approx 130\,MB) so allow time.
\item Run the following commands (this takes awhile):
\begin{lstlisting}[language=bash]
-$ cd /<build_path>/ # this is where you need the 2.5GB of disk space
+$ cd /<build_path>/ # this is where you need the 6GB of disk space
$ git clone --depth 1 "git://git.cinelerra-gg.org/goodguy/cinelerra.git" cinelerra5
$ cd cinelerra5/cinelerra-5.1 # toplevel directory
\end{lstlisting}
To see the full list of features use:
\begin{lstlisting}[language=bash]
-$ ./configure –help
+$ ./configure -help
\end{lstlisting}
The default build is a system build which uses:
\begin{lstlisting}[language=bash]
-$ ./configure –without-single-user
+$ ./configure -without-single-user
\end{lstlisting}
In the single-user build, the target directory is always “cin”.
Because this is also the developer build, constant names are used throughout.
However, you can rename files after the install is complete.
-f your distro/operating system has issues with the default install to \texttt{/usr/local}, you might have to change the location to /usr for a system build. Then you will have to use:
+If your operating system has issues with the default install to \texttt{/usr/local}, you might have to change the location to \texttt{/usr} for a system build. Then you will have to use:
\begin{lstlisting}[language=bash]
$ ./configure --prefix=/usr
\end{lstlisting}
$ ./configure --with-exec-name=cinelerra
\end{lstlisting}
-The home configuration directory can also be set, but defaults to \texttt{\$\$HOME/.bcast5}.
+The home configuration directory can also be set, but default location is \texttt{\$HOME/.bcast5}.
For example:
\begin{lstlisting}[language=bash]
-$ ./configure –with-config-dir=/myusername/.bcast5
+$ ./configure -with-config-dir=/myusername/.bcast5
\end{lstlisting}
NOTE: when you specify parameters to the configure program, it will create a make file as a consequence.
\subsection{Notes about Building from Git in your Customized Environment}%
\label{sub:notes_about_building_from_git_in_your_customized_environment}
-Getting a build to work in a custom environment is not easy. If you have already installed libraries which are normally in the thirdparty build, getting them to be recognized means you have to install the "devel" version so the header files which match the library interfaces exist. Below is the list of thirdparty builds, but this list may have changed over time:
+Getting a build to work in a custom environment is not easy. If you have already installed libraries which are normally in the thirdparty build, getting them to be recognized means you have to install the "devel" version so the header files which match the library interfaces exist. Below is the list of thirdparty builds, but this list may have changed over time.
% It's list of Table?
\begin{table}[htpb]
\centering
\caption{List of thirdparty builds}
\label{tab:List_of_thirdparty_builds}
+ \small
\begin{tabular}{m{8em}c}
\toprule
a52dec & yes\\
To get your customized build to work, you need to change the probe options for the conflicting libraries from "yes" to "auto", or even rework the \texttt{configure.ac} script.
There may be several libraries which need special treatment.
-An example of a problem you might encounter with your customized installation is with “\texttt{a52dec}” which has probes \texttt{(CHECK\_LIB/CHECK\_HEADER)} in \texttt{configure.ac}, but \texttt{djbfft} does not.
+An example of a problem you might encounter with your customized installation is with “\texttt{a52dec}” which has probes line \texttt{(CHECK\_LIB/CHECK\_HEADER)} in \texttt{configure.ac}, but \texttt{djbfft} does not.
In this case, \texttt{djbfft} is only built because \texttt{a52dec} is built, so if your system has \texttt{a52dec}, set \texttt{a52dec} to auto and see if that problem is solved by retrying the build with:
\begin{lstlisting}[language=bash]
-$ ./confgure --with-single-user –enable-a52dec=auto .
+$ ./confgure --with-single-user -enable-a52dec=auto .
\end{lstlisting}
With persistence, you can get results, but it may take several tries to stabilize the build.
If you need help, email the "\texttt{log}" and "\texttt{config.log}", which is usually sufficient to determine why a build failed.
-\vspace{5ex}
+%\vspace{5ex}
If you have already installed the \texttt{libfdk\_aac} development package on your computer because you prefer this version over the default aac, you will have to do the following to get this alternative operational.
The repo is a directory where you first do a “\texttt{git clone}”.
For the initial git clone, setup a local area for the repository storage, referred to as \texttt{<repo\_path>}.
The “\texttt{git clone}” creates a repo named "\texttt{cin5}" in the \texttt{/<repo\_path>/} directory.
-This accesses over 300\,MB of repo data, so the device has to have at least that available.
+This accesses about 530\,MB of repo data, so the device has to have at least that available.
The repo path is always a perfect clone of the main repo.
\paragraph{Setting up the initial clone}%
\label{sub:debuggable_single_user_build}
-To build from source with full debugging symbols, first build a full static (non\_debug) build as follows but instead /tmp substituted with a permanent disk path if you want to keep it.
+To build from source with full debugging symbols, first build a full static (non\_debug) build as follows but instead /tmp should be substituted with a permanent disk path if you want to keep it.
\begin{lstlisting}
$ git clone ...
Then, to run as a developer in the debugger:
\begin{lstlisting}[language=bash]
-$ CFLAGS=”-O2 -ggdb” make -j8 rebuild_all
+$ CFLAGS="-O2 -ggdb" make -j8 rebuild_all
$ cd cinelerra
$ gdb ./ci
\end{lstlisting}
These scripts are in the “blds” subdirectory.
The bsd.bld should be used with the bsd.patch file in that same directory.
-The reason that Cin Infinity traditionally uses thirdparty builds (bundled builds) is because there are a lot of different distros with varying levels of ffmpeg and other needed thirdparty libraries.
+The reason that Cin Infinity traditionally uses thirdparty builds (bundled builds)\todo{hanging line} is because there are a lot of different distros with varying levels of ffmpeg and other needed thirdparty libraries.
However, some users prefer using their current system baseline without another/different copy of ffmpeg.
With different levels of the user’s libraries, uncertainty, potential instability, and unknown issues may come up while running Cinelerra and this will make it, for all practical purposes, impossible to diagnose and debug problems or crashes.
There may be no help in these cases. You are encouraged to report any errors which potentially originate from Cin Infinity, but if the data indicates alternate library sources, please report the problems to the appropriate maintainers.
Nor will the codec libzmpeg, the file codec ac3, or DVD creation.
The old school file classes will all work, but some of the formats that come with ffmpeg may not because of the way that ffmpeg was installed on your operating system.
That is because the Cinelerra ffmpeg is a known static build and is usually the latest stable/released version.
-In the current case of Leap 15, libx264 and libx265 are not built in and this can be debilitating; You can always run “ffmpeg -formats” and “ffmpeg -codecs” to see what is available on your system.
+In the current case of Leap 15, libx264 and libx265 are not built in and this can be debilitating; you can always run “ffmpeg -formats” and “ffmpeg -codecs” to see what is available on your system.
\section{Download Already Built Cinelerra-GG}%
\label{sec:download_already_built_cinelerra_gg}
-If you prefer to not have to take the time to build Cinelerra-GG Infinity yourself, there are pre-built dynamic or static binaries for various versions of ubuntu, mint, suse, fedora, debian, centos, arch, and slackware linux as well as Gentoo and FreeBSD.
-There are also 32-bit i686 ubuntu, debian, and slackware versions available.
+If you prefer to not have to take the time to build Cinelerra-GG Infinity yourself, there are pre-built dynamic or static binaries for various versions of Ubuntu, Mint, Suse, Fedora, Debian, Centos, Arch, and Slackware linux as well as Gentoo and FreeBSD.
+There are also 32-bit i686 Ubuntu, Debian, and Slackware versions available.
These are updated on a fairly regular basis as long as significant code changes have been made.
They are in subdirectories of:
wget https://cinelerra-gg.org/download/pkgs/{substitute_name}/cin_5.1.<sub_name>.deb
and install it manually, for example: dpkg -i cin_5.1.{substitute_filename}.deb
-# GENTOO – courtesy Dominque Michel
+# GENTOO - courtesy Dominque Michel
# There is an ebuild package at this time as of 01/03/2019 at:
# https://svnweb.tuxfamily.org/listing.php?repname=proaudio%2Fproaudio&path=
# %2Ftrunk%2Foverlays%2Fproaudio%2Fmedia-video%2Fcinelerra%2F&#ab000caf7024d83112f42a7e8285f2f29
-# FREEBSD – courtesy Yuri
+# FREEBSD - courtesy Yuri
# There is a port available at: https://www.freshports.org/multimedia/cinelerra-gg/
# To use this port: cd /usr/ports/multimedia/cinelerra-gg && make install clean
# and then install this precompiled package via: pkg install cinelerra-gg
apt install software-properties-common apt-transport-https
apt-add-repository https://cinelerra-gg.org/download/pkgs/debian8
OR apt-add-repository https://cinelerra-gg.org/download/pkgs/debian9
+OR apt-add-repository https://cinelerra-gg.org/download/pkgs/debian10
# VIP - for the first install, the above line adds cinelerra to /etc/apt/sources.list but...
-# Debian stretch and jessie are more strict for licensing so you will have to edit
+# Debian stretch/jessie/buster are more strict for licensing so you will have to edit
# the file /etc/apt/sources.list to add [trusted=yes] after deb and before https...cin...
# For example for debian8: deb [trusted=yes] https://cinelerra-gg.org/download/pkgs/debian8 jessie main
# For example for debian9: deb [trusted=yes] https://cinelerra-gg.org/download/pkgs/debian9 stretch main
+# For example for debian10: deb [trusted=yes] https://cinelerra-gg.org/download/pkgs/debian10 buster main
apt update
apt install cin
#to update a previous install