b91764fac827021ae245160fe52dd8a06680e3a2
[goodguy/cin-manual-latex.git] / parts / Instalation.tex
1 \chapter{Installation}
2 \label{cha:Instalation}
3 \section{How to Build Cinelerra-GG from Developer's Git Repository}%
4 \label{sec:How_to_build}
5
6 These are generic build instructions for building Cinelerra-GG Infinity.  
7 Known to work on ubuntu, mint, suse/leap, fedora, debian, centos, arch, and slackware.  
8 It has not been tested on every single possible distro yet so you might expect to have to make some minor changes.  
9 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.
10
11 Alternatively, there are some pre-built dynamic or static binaries which are updated on a fairly regular basis (as long as code changes have been made) available at the link below.
12
13
14 \url{
15 https://cinelerra-gg.org/download/
16 }
17
18 There are 2 kinds of builds, the default system-build and a single-user build.  
19 A system build has results which are installed to the system. 
20 The majority of the files are installed in the standard system paths, but some customization is possible. 
21 The single user build allows for running completely out of a local user directory so it doesn't affect the system.
22
23 We recommend the single-user version when possible.  
24 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.  
25 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.  
26 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.  
27 However, the system builds can be useful in a university lab setting where there are possibly multiple users, or multiple versions.
28
29 There are two notable differences between “standard” views of Cinelerra and this implementation for the system builds.  
30 Both of these can be configured during installation.  
31 These differences make it possible to have several different versions installed without having them “walk” on each other. 
32
33
34
35
36
37
38
39
40
41
42 \begin{enumerate}
43     \item 
44         application name can be set during installation and defaults to: “\texttt{cin}”
45     \item 
46         the home configuration directory can also be set and defaults to:\\ “\texttt{\$HOME/.bcast5}”
47 \end{enumerate}
48
49 \paragraph{To do a system build,} you should read the \texttt{README} that is at the top level after you get the source.
50
51 \begin{enumerate}
52     \item 
53         You need at least 2.5\,GB of disk storage to operate a build + you need to have “\texttt{git}” installed.
54     \item  Obviously in order to install into the system, you must run as \textbf{root}.
55     \item  The "\texttt{git}" step has to download many files (approx 100\,MB) so allow time.
56     \item  Run the following commands (this takes awhile):
57
58         \begin{lstlisting}[language=bash]
59 cd /<build_path>/           # this is where you need the 2.5GB of disk space
60 git clone --depth 1 "git://git.cinelerra-gg.org/goodguy/cinelerra.git" cinelerra5 
61 cd cinelerra5/cinelerra-5.1 # toplevel directory
62         \end{lstlisting}
63
64         NOTE: if your system has never had Cinelerra-GG Infinity installed, you will have to make sure you have all of the compilers and libraries necessary.  
65         So on the very first build you should run:
66
67         \begin{lstlisting}[language=bash]
68 ./blds/bld_prepare.sh <os> # where <os> represents the Operating System of centos, fedora, suse, leap, ubuntu, debian.
69 ./autogen.sh
70 ./configure --prefix=/usr  # optional parameters can be added here
71 make 2>&1 | tee log        # make and log the build
72         \end{lstlisting}
73     \item  Check for obvious build errors:
74         \begin{lstlisting}[language=bash]
75 grep "\*\*\*.*error" -ai log
76         \end{lstlisting}
77         If this reports errors and you need assistance or you think improvements can be made to the build s,
78         email the log which is listed below to \url{cin@lists.cinelerra-gg.org:}
79         \begin{lstlisting}[language=bash]
80 /<build_path>/cinelerra5/cinelerra-5.1/log
81         \end{lstlisting}
82     \item  If there are no build errors, finally just run:
83         \begin{lstlisting}[language=bash]
84     make install
85         \end{lstlisting}
86     \item  If it all worked, you are all setup. Just click on the cinelerra desktop icon.
87 \end{enumerate}
88
89 \paragraph{To do a single-user build,} read the \texttt{README} that is at the top level after you get the source.
90 \begin{enumerate}
91     \item  You need at least 2.5\,GB of disk storage to operate a build + you need to have  “\texttt{git}” installed.
92     \item  Recommend you build and run as \textbf{root}, just to avoid permission issues initially.
93     \item  The "\texttt{git}" step has to download many files (approx 100\,MB) so allow time.
94     \item  Run the following commands (this takes awhile):
95         \begin{lstlisting}[language=bash]
96 cd /<build_path>/           # this is where you need the 2.5GB of disk space
97 git clone --depth 1 "git://git.cinelerra-gg.org/goodguy/cinelerra.git" cinelerra5 
98 cd cinelerra5/cinelerra-5.1 # toplevel directory
99         \end{lstlisting}
100 \end{enumerate}
101
102 NOTE: if your system has never had Cinelerra-GG Infinity installed, you will have to make sure all
103 the compilers and libraries necessary are installed. So on the very first build you should run as \textbf{root}:
104
105 \begin{lstlisting}[language=bash]
106 ./blds/bld_prepare.sh <os>     # where <os> represents the Operating System of centos, fedora, suse, leap, ubuntu, debian.
107 ./autogen.sh
108 ./configure --with-single-user # the “with-single-user” parameter makes it so
109 make 2>&1 | tee log            # make and log build (check for errors before proceeding)
110 make install
111 \end{lstlisting}
112
113 Then just start the application by keying in: ./cin in the bin subdirectory OR add a desktop icon by
114 using the appropriate directory to copy the files to, run as \textbf{root}, and edit to correct the directory path.
115
116 \begin{lstlisting}[language=bash]
117 cd /cinelerra_directory_path
118 cp -a image/cin.{svg,xpm} /usr/share/pixmaps/.
119 cp -a image/cin.desktop /usr/share/applications/cin.desktop
120 change the “Exec=cin” line to be “Exec=<your_directory_path>/bin/cin”
121 \end{lstlisting}
122
123 The preceding directions for doing a single-user build has been meticulously followed to build and run
124 on a newly installed ubuntu 15 system WITHOUT BEING ROOT except for the \texttt{bld\_prepare.sh} and creating the desktop icon.
125
126 \subsection{Notable Options and Caveats}%
127 \label{sub:notable_options_and_caveats}
128
129 These procedures and the Cinelerra-GG Infinity software have all been run as “\textbf{root}” on various home laptops and desktops. This provides the best chance to ensure all works correctly and also allows for handling errors, other problems and potential crashes with the most success.  Included in this section are some of the build variations easily available for normal builds.
130