\chapter{Installation}
\label{cha:Installation}
+\index{installation}
+
+\section{Download Already Built \CGG{}}%
+\label{sec:download_already_built_cinelerra_gg}
+
+\begin{figure}[htpb]
+ \centering
+ \includegraphics[width=1.0\linewidth]{download-distros.png}
+ \caption{Screencast of the website Download page for installing \CGG{} for various O/S.}
+ \label{fig:download-distros}
+\end{figure}
+
+If you prefer to not have to take the time to build \CGG{} 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. If you do want to build it yourself so that
+you get the added benefit of the latest checked in changes, please reference
+~\ref{sec:How_to_build}.
+%
+A Windows 10 version installation is described in~\ref{sec:ms_windows10}. 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:
+
+\begin{list}{}{}
+ \item \href{https://cinelerra-gg.org/download/tars}{https://cinelerra-gg.org/download/tars}
+ \item \href{https://cinelerra-gg.org/download/pkgs}{https://cinelerra-gg.org/download/pkgs}
+\end{list}
+
+The \textbf{tars} \index{tars} directory contains single-user static builds for
+different distros.
+%
+This is the recommended usage of \CGG{} because all of the files
+will exist in a single directory. Generally all of the necessary
+libraries are built into the static build, but in some cases you may
+have to install another library that is being called for.
+%
+To install the single user builds, download the designated tarball
+from the \texttt{./tars} subdirectory and unpack as indicated below:
+
+\begin{lstlisting}[style=sh]
+ cd /path
+ mkdir cin
+ cd cin
+ tar -xJf /src/path/cinelerra-5.1-*.txz # for the *, substitute your distro tarball name
+\end{lstlisting}
+
+\emph{Do not download the LEAP 10-bit version unless you specifically want to
+use h265 rendering to 10-bit instead of the more standard 8-bit.} For more
+information see ~\ref{sec:cinx_and_a_bit_of_confusion}.
+
+The \textbf{pkgs} \index{pkgs} directory contains the standard packaged
+application for various distros. This will install a dynamic
+system version for users who prefer to have the binaries in the
+system area and for multi-user systems.
+%
+In addition, performing the package install checks the md5sum in
+the file \texttt{md5sum.txt} to ensure the channel correctly
+transmits the package. There is a
+\href{https://cinelerra-gg.org/download/README.pkgs}{README.pkgs}
+file in the \texttt{download} directory with instructions so you
+can \textit{cut and paste} and avoid typos; it is also shown
+next.
+
+\lstset{inputpath=extra/}
+\lstinputlisting[
+style=nil,
+basicstyle=\footnotesize,
+caption={README.pkgs}
+]{README.pkgs}
+
\section{How to Build \CGG{} from Developer's Git Repository}%
\label{sec:How_to_build}
+\index{build}
+\index{git}
These are generic build instructions for building \CGG{} Infinity.
Known to work on Ubuntu, Mint, OpenSuse, Fedora, Debian, Centos,
said, the system builds can be useful in a university lab setting
where there are possibly multiple users, or multiple versions.
-There are two notable differences between \textit{standard} views
+There are two notable differences between standard views
of \CGG{} and this implementation for the system builds. Both of
these can be configured during installation. The differences make
it possible to have several different versions installed without
-having them \textit{walk} on each other.
+having them interfere with each other.
\begin{enumerate}
-\item application name can be set during installation and defaults
+\item application name can be set during a build but defaults
to: \texttt{cin}
\item the home configuration directory can also be set and
traditionally defaults to: \texttt{\$HOME/.bcast5}
\subsection{The system build}
\label{sec:system-build}
+\index{git}
-To do a system build, you should read the file
+To do a system build \index{build} , you should read the file
\texttt{README} that is at the top level after you get the source.
\begin{itemize}
\begin{lstlisting}[style=sh]
./blds/bld_prepare.sh <os> # where <os> represents the
- # Operating System of centos,
- # fedora, suse, ubuntu, mint, debian.
+ # Operating System of
+ # centos, fedora, suse, ubuntu, mint, debian.
./autogen.sh
./configure --prefix=/usr # optional parameters can be added here
make 2>&1 | tee log # make and log the build
\subsection{The single-user build}
\label{sec:single-user-build}
+\index{single-user build}
+\index{git}
To do a single-user build, read the file \texttt{README} that is at
the top level after you get the source.
the \texttt{Exec=cin} line to be
\texttt{Exec=<your\_directory\_path>/bin/cin}.
-The preceding directions for doing a single-user build have been
-meticulously followed to build and run on a newly installed ubuntu
-15 system WITHOUT BEING ROOT except for the \texttt{bld\_prepare.sh}
-and creating the desktop icon.
+The preceding directions for doing a single-user build may work
+without being root on some distros except for the \texttt{bld\_prepare.sh}
+and creating the desktop icon. For example in Arch Linux installing without being root
+works using the following steps:
+
+\begin{lstlisting}[style=sh]
+$ git clone --depth 1 "git://git.cinelerra-gg.org/goodguy/cinelerra.git" cinelerra5
+$ cd /home/USER/cinelerra5/cinelerra-5.1
+$ ./autogen.sh
+$ ./configure --prefix=/usr --with-single-user --with-booby
+$ make 2>&1 | tee /tmp/cin5.log && make install
+\end{lstlisting}
\subsection{Notable Options and Caveats}%
\label{sub:notable_options_and_caveats}
+\index{./configure}
These procedures and the \CGG{} Infinity software have all been run
as \textbf{root} on various home laptops and desktops. This provides
\begin{lstlisting}[style=sh]
./configure --help
\end{lstlisting}
-The default build is a system build which uses:
+The default build \index{build} is a system build which uses:
\begin{lstlisting}[style=sh]
./configure --without-single-user
\end{lstlisting}
-In the single-user build, the target directory is always
+In the single-user build \index{single-user build}, the target directory is always
\texttt{cin}. Because this is also the developer build, constant
names are used throughout. However, you can rename files after the
install is complete.
\subsection{Notes about Building from Git in your Customized Environment}%
\label{sub:notes_about_building_from_git_in_your_customized_environment}
+\index{build}
+\index{./configure}
+\index{git}
Getting a build to work in a custom environment is not easy. If you
have already installed libraries which are normally in the
\subsection{Cloning the Repository for Faster Updates}%
\label{sub:cloning_the_repository_for_faster_updates}
+\index{repository}
+\index{git}
If you want to avoid downloading the software every time an update
is available you need to create a local ``repository'' or repo. The
\subsection{How to Build from a Previous GIT Version}%
\label{sub:how_to_build_from_a_previous_git_version}
+\index{build}
+\index{repository}
+\index{git}
If you have a problem with the current GIT version, you can revert
to a previous working version easily. The commands to use will be
\begin{lstlisting}[style=sh]
cd /<path>/cin5 # substitute your repo path name for cin5
-git log # shows a list of versions
+git log # shows a list of versions depending on history depth specification
git checkout <version> # choose a version number as listed
\end{lstlisting}
The \texttt{git log} command produces a log file with hash values
-for commit keys. The hash ids are the commit names to use when you
+for commit keys to the level specifed if the the depth paramter
+was specified.
+The hash ids are the commit names to use when you
use git checkout. Next is displayed sample output:
\begin{lstlisting}[style=nil]
\subsection{Debuggable Single User Build}%
\label{sub:debuggable_single_user_build}
+\index{single-user build}
+\index{git}
To build from source with full debugging symbols, first build a full
static (non\_debug) build as follows but instead of using
\subsection{Unbundled Builds}%
\label{sub:unbundled_builds}
+\index{build}
+\index{repository}
+\index{git}
There are some generic build scripts included in the \CGG{} GIT
repository for users who want to do unbundled builds with ffmpeg
\texttt{cygwin.bld} should be used with the \texttt{cygwin.patch}
file in that same directory.
-The reason that Cin Infinity traditionally uses thirdparty builds
+The reason that Cin Infinity traditionally uses its own thirdparty builds
(bundled builds) 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
-formats} and \texttt{ffmpeg -codecs} to see what is available
on your system.
-
-\section{Download Already Built \CGG{}}%
-\label{sec:download_already_built_cinelerra_gg}
-
-\begin{figure}[htpb]
- \centering
- \includegraphics[width=1.0\linewidth]{download-distros.png}
- \caption{Screencast of the website Download page for installing \CGG{} for various O/S.}
- \label{fig:download-distros}
-\end{figure}
-
-If you prefer to not have to take the time to build \CGG{} 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.
-%
-A Windows 10 version installation is described in~\ref{sec:ms_windows10}. 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:
-
-\begin{list}{}{}
-\item \href{https://cinelerra-gg.org/download/tars}{https://cinelerra-gg.org/download/tars}
-\item \href{https://cinelerra-gg.org/download/pkgs}{https://cinelerra-gg.org/download/pkgs}
-\end{list}
-
-The \textbf{tars} directory contains single-user static builds for
-different distros.
-%
-This is the recommended usage of \CGG{} because all of the files
-will exist in a single directory. Generally all of the necessary
-libraries are built into the static build, but in some cases you may
-have to install another library that is being called for.
-%
-To install the single user builds, download the designated tarball
-from the \texttt{./tars} subdirectory and unpack as indicated below:
-
-\begin{lstlisting}[style=sh]
-cd /path
-mkdir cin
-cd cin
-tar -xJf /src/path/cinelerra-5.1-*.txz # for the *,
- # substitute your
- # distro tarball name
-\end{lstlisting}
-
-\emph{Do not download the LEAP 10-bit version unless you use h265 (it
-can't render 8-bit h265).}
-
-The \textbf{pkgs} directory contains the standard packaged
-application for various distros. This will install a dynamic
-system version for users who prefer to have the binaries in the
-system area and for multi-user systems.
-%
-In addition, performing the package install checks the md5sum in
-the file \texttt{md5sum.txt} to ensure the channel correctly
-transmits the package. There is a
-\href{https://cinelerra-gg.org/download/README.pkgs}{README.pkgs}
-file in the \texttt{download} directory with instructions so you
-can \textit{cut and paste} and avoid typos; it is also shown
-next.
-
-\lstset{inputpath=extra/}
-\lstinputlisting[
-style=nil,
-basicstyle=\footnotesize,
-caption={README.pkgs}
-]{README.pkgs}
-
\section{Windows 10 with Cygwin for \CGG{} Limited}%
\label{sec:ms_windows10}
+\index{windows 10}
To run \CGG{} on a Windows 10 computer, you will need to have
Cygwin installed on your system, along with the \CGG{} static tar
-and a patched library: libxbc. This setup has been tested with
+and a patched library: libxcb. This setup has been tested with
Windows 10, version 1909, on an HP EliteBook 820 at 2.3 GHz.
This limited version provides \textit{core} functionality at this
\subsection*{Installing Cygwin}
\label{sec:installing_cygwin}
+\index{cygwin}
Cygwin is an environment that runs natively on Windows which
allows Unix programs to be compiled and run on Windows. With
\item Download the tar file
\href{https://cinelerra-gg.org/download/testing/libxcb-bld.tar.bz2}{libxcb-bld.tar.bz2}.
-\item Install libxbc from the tar file -- installs into
+\item Install libxcb from the tar file -- installs into
\texttt{/usr/local} and requires approximately 21MB storage.
\begin{lstlisting}[style=sh]
tar -C /usr/local -xJf /path/libxcb-bld.tar.bz2
\end{lstlisting}
- The libxcb path repairs an error (XIOError), which stops
+ The libxcb patch repairs an error (XIOError), which stops
Cinelerra.
\item Download the tar file
This creates \texttt{\~{}/cygcin}, a user build installation of
\CGG{} and requires approximately 400MB storage.
-\underline{Running \CGG{}:}
-
+\paragraph{Running \CGG{}:}
You will need to start a cygwin desktop from the startup menu:
\begin{enumerate}
\item \texttt{Start$\rightarrow$ Cygwin-X $\rightarrow$ Openbox}
X11 and the only sound driver is pulseaudio. Almost all
configurable omissions are applied to this build.
-\underline{\CGG{} build on cygwin from source code:}
+\paragraph{\CGG{} build on cygwin from source code:}
\begin{enumerate}
\item Download and install ffmpeg into /usr/local :
must run from an external console window to avoid this issue.
-\section{Distribution Systems with \CGG{} Included}%
-\label{sec:distribution_systems_with_cinelerra_included}
+\section{Distro with \CGG{} Included}%
+\label{sec:distro_with_cinelerra_included}
+\index{linux distro}
There are also some special complete distribution systems
available that include \CGG{} for audio and video production
Click here for the
\href{http://www.bandshed.net/avlinux/}{homepage of AV Linux}.
-\subsection{Bodhi Linux}
+\subsection{Bodhi Linux Media}
\label{sec:Bodhi_Linux}
\textbf{Bodhi Linux Media} is a free and open source distribution that
Click here for the
\href{https://gitlab.com/giuseppetorre/bodhilinuxmedia}{homepage of Bodhi Linux}.
+\subsection{Elive}
+\label{sec:elive}
+
+\textbf{Elive}, or Enlightenment live CD, is a non-commercial, cost-free operating system based on Debian, for the daily use and it can be used both as live CD or Installed system. Elive uses a customized Enlightenment desktop. It is fast, user-friendly and feature-rich and \CGG{} is included in the 64 bit version.
+
+Click \href{https://www.elivecd.org/}{Elive} for more information.
\section{Cinx and a “Bit” of Confusion}%
\label{sec:cinx_and_a_bit_of_confusion}
+\index{cinx}
Cinx is the exact same program as Cin. The X (x) represents the
roman numeral 10 for 10-bit as opposed to 8-bit standard. The
third-party library used for x265 must be specially compiled with
\texttt{--bit-depth=10} in order to produce 10-bit rendered
-output.
+output. A cinx version can be built for most other distros if
+rendering at 10-bit is desirable instead of 8-bit.
%
This build will not be able to output 8-bit depth which means you
have to retain the Cin version also.