add 19
[goodguy/cin-manual-latex.git] / parts / Installation.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
52 \begin{enumerate}
53     \item 
54         You need about 6.0 \,GB of disk storage to operate a build + you need to have “\texttt{git}” installed.
55     \item  Obviously in order to install into the system, you must run as \textbf{root}.
56     \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.
57     \item  Run the following commands (this takes awhile):
58
59         \begin{lstlisting}[language=bash]
60 $ cd /<build_path>/           # this is where you need the 6.0GB of disk space
61 $ git clone --depth 1 "git://git.cinelerra-gg.org/goodguy/cinelerra.git" cinelerra5 
62 $ cd cinelerra5/cinelerra-5.1 # toplevel directory
63         \end{lstlisting}
64
65         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.  
66         So on the very first build you should run:
67
68         \begin{lstlisting}[language=bash]
69 $ ./blds/bld_prepare.sh <os> # where <os> represents the Operating System of Centos, Fedora, Suse, Leap, Ubuntu, Debian.
70 $ ./autogen.sh
71 $ ./configure --prefix=/usr  # optional parameters can be added here
72 $ make 2>&1 | tee log        # make and log the build
73         \end{lstlisting}
74     \item  Check for obvious build errors:
75         \begin{lstlisting}[language=bash]
76 $ grep "\*\*\*.*error" -ai log
77         \end{lstlisting}
78         If this reports errors and you need assistance or you think improvements can be made to the build s,
79         email the log which is listed below to \url{cin@lists.cinelerra-gg.org:}
80         \begin{lstlisting}[language=bash]
81 $ /<build_path>/cinelerra5/cinelerra-5.1/log
82         \end{lstlisting}
83     \item  If there are no build errors, finally just run:
84         \begin{lstlisting}[language=bash]
85    $  make install
86         \end{lstlisting}
87     \item  If it all worked, you are all setup. Just click on the Cinelerra desktop icon.
88 \end{enumerate}
89
90 \paragraph{To do a single-user build,} read the \texttt{README} that is at the top level after you get the source.
91 \begin{enumerate}
92     \item  You need at least 6\,GB of disk storage to operate a build + you need to have  “\texttt{git}” installed.
93     \item  Recommend you build and run as \textbf{root}, just to avoid permission issues initially.
94     \item  The "\texttt{git}" step has to download many files (approx 130\,MB) so allow time.
95     \item  Run the following commands (this takes awhile):
96         \begin{lstlisting}[language=bash]
97 $ cd /<build_path>/           # this is where you need the 6GB of disk space
98 $ git clone --depth 1 "git://git.cinelerra-gg.org/goodguy/cinelerra.git" cinelerra5 
99 $ cd cinelerra5/cinelerra-5.1 # toplevel directory
100         \end{lstlisting}
101 \end{enumerate}
102
103 NOTE: if your system has never had Cinelerra-GG Infinity installed, you will have to make sure all
104 the compilers and libraries necessary are installed. So on the very first build you should run as \textbf{root}:
105
106 \begin{lstlisting}[language=bash]
107 $ ./blds/bld_prepare.sh <os>     # where <os> represents the Operating System of centos, fedora, suse, leap, ubuntu, debian.
108 $ ./autogen.sh
109 $ ./configure --with-single-user # the “with-single-user” parameter makes it so
110 $ make 2>&1 | tee log            # make and log build (check for errors before proceeding)
111 $ make install
112 \end{lstlisting}
113
114 Then just start the application by keying in: ./cin in the bin subdirectory OR add a desktop icon by
115 using the appropriate directory to copy the files to, run as \textbf{root}, and edit to correct the directory path.
116
117 \begin{lstlisting}[language=bash]
118 $ cd /cinelerra_directory_path
119 $ cp -a image/cin.{svg,xpm} /usr/share/pixmaps/.
120 $ cp -a image/cin.desktop /usr/share/applications/cin.desktop
121 \end{lstlisting}
122 Change the “Exec=cin” line to be “Exec=<your\_directory\_path>/bin/cin”
123
124 The preceding directions for doing a single-user build has been meticulously followed to build and run
125 on a newly installed ubuntu 15 system WITHOUT BEING ROOT except for the \texttt{bld\_prepare.sh} and creating the desktop icon.
126
127 \subsection{Notable Options and Caveats}%
128 \label{sub:notable_options_and_caveats}
129
130 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.
131
132 To see the full list of features use:    
133
134 \begin{lstlisting}[language=bash]
135 $ ./configure -help
136 \end{lstlisting}
137 The default build is a system build which uses:    
138
139 \begin{lstlisting}[language=bash]
140 $ ./configure -without-single-user
141 \end{lstlisting}
142
143 In the single-user build, the target directory is always “cin”.  
144 Because this is also the developer build, constant names are used throughout.  
145 However, you can rename files after the install is complete.
146
147 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:
148 \begin{lstlisting}[language=bash]
149 $ ./configure --prefix=/usr
150 \end{lstlisting}
151
152 If you wish to change the default directory for a system build you will have to add the destination directory path on the “\texttt{make install}” line.  For example:
153 \begin{lstlisting}[language=bash]
154 $ make install DESTDIR=<your selected target directory path>
155 \end{lstlisting}
156
157 The application name can be set during installation, but defaults to cin so that the GG/Infinity build can coexist with other Cinelerra builds if necessary.  To override the default cin name, use:    
158 \begin{lstlisting}[language=bash]
159 $ ./configure --with-exec-name=cinelerra
160 \end{lstlisting}
161
162 The home configuration directory can also be set, but default location is \texttt{\$HOME/.bcast5}.  
163 For example:
164
165 \begin{lstlisting}[language=bash]
166 $ ./configure -with-config-dir=/myusername/.bcast5
167 \end{lstlisting}
168
169 NOTE:  when you specify parameters to the configure program, it will create a make file as a consequence.  
170 Since in a make file, the \$ is a special character, it must be escaped so in order to represent a \$ as part of an input parameter, it has to be stuttered.  
171 That is, you will need \$\$ (2 dollar signs) to represent a single dollar sign. 
172
173 It may be necessary on some distros which have missing or incomplete up-to-date libraries, to build cinelerra without Ladspa.  
174 To do so, use:
175
176 \begin{lstlisting}[language=bash]
177 $ ./configure --prefix=/usr --without-ladspa-build
178 \end{lstlisting}
179
180 Note that the with-ladspa-dir is the ladspa search path, and exists even if the ladspa build is not selected.  This gives you the ability to specify an alternate ladspa system path by utilizing the \texttt{LADSPA\_PATH} environment variable (that is, the default ladspa build is deselected).
181
182 Note for 32-bit 14.2 Slackware, Debian, Gentoo, Arch, FreeBSD, before running the configure, you will need to set up the following:
183
184 \begin{lstlisting}[language=bash]
185 $ export ac_cv_header_xmmintrin_h=no
186 $ export FFMPEG_EXTRA_CFG=" --disable-vdpau"
187 \end{lstlisting}
188
189 \subsection{Notes about Building from Git in your Customized Environment}%
190 \label{sub:notes_about_building_from_git_in_your_customized_environment}
191
192 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.
193 % It's list of Table?
194
195 \begin{table}[htpb]
196     \centering
197     \caption{List of thirdparty builds}
198     \label{tab:List_of_thirdparty_builds}
199         \small
200     \begin{tabular}{m{8em}c}
201         \toprule
202         a52dec   & yes\\
203         djbfft   & yes\\
204         fdk      & auto\\
205         ffmpeg   & yes\\
206         fftw     & auto\\
207         flac     & auto\\
208         giflib   & yes\\
209         ilmbase&auto\\
210         lame    &  auto\\
211         libavc1394&auto\\
212         libraw1394&auto\\
213         libiec61883&auto\\
214         libdv     &auto\\
215         libjpeg   &auto\\
216         openjpeg  &auto\\
217         libogg    &auto\\
218         libsndfile&auto\\
219         libtheora&auto\\
220         libuuid  & yes\\
221         libvorbis&auto\\
222         mjpegtools&yes\\
223         openexr   &auto\\
224         tiff      &auto\\
225         twolame   &auto\\
226         x264      &auto\\
227         x265      &auto\\
228         libvpx  &auto\\
229         libwebp&auto\\
230         libaom& auto\\
231     \bottomrule
232     \end{tabular}
233 \end{table}
234
235
236 The "yes" means force build and “auto” means probe and use the system version if the build operation is not static.  
237 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.  
238 There may be several libraries which need special treatment.
239
240 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.  
241 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:  
242 \begin{lstlisting}[language=bash]
243 $ ./confgure --with-single-user -enable-a52dec=auto .
244 \end{lstlisting}
245
246 With persistence, you can get results, but it may take several tries to stabilize the build.  
247 If you need help, email the "\texttt{log}" and "\texttt{config.log}", which is usually sufficient to determine why a build failed.
248 %\vspace{5ex}
249
250 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.
251
252 \begin{lstlisting}[language=bash]
253 $ export FFMPEG_EXTRA_CFG=" --enable-libfdk-aac --enable-nonfree"
254 $ export EXTRA_LIBS=" -lfdk-aac"
255 $ for f in `grep -lw aac cinelerra-5.1/ffmpeg/audio/*`; do
256 $   sed -e 's/\<aac\>/libfdk_aac/' -i $f
257 $ done
258 \end{lstlisting}
259
260 \subsection{Cloning the Repository for Faster Updates}%
261 \label{sub:cloning_the_repository_for_faster_updates}
262
263 If you want to avoid downloading the software every time an update is available you need to create a local "repository" or repo.  
264 The repo is a directory where you first do a “\texttt{git clone}”.  
265 For the initial git clone, setup a local area for the repository storage, referred to as \texttt{<repo\_path>}.  
266 The “\texttt{git clone}” creates a repo named "\texttt{cin5}" in the \texttt{/<repo\_path>/} directory.  
267 This accesses about 530\,MB of repo data, so the device has to have at least that available.  
268 The repo path is always a perfect clone of the main repo.
269
270 \paragraph{Setting up the initial clone}%
271 \label{par:setting_up_the_initial_clone}
272 add “\texttt{ -\,- depth 1}” before cin5 which is faster/smaller, but has no history.
273
274 \begin{lstlisting}
275 $ cd /<repo\_path>/
276 $ git clone "git://git.cinelerra-gg.org/goodguy/cinelerra" cin5
277
278 Cloning into "cin5"...
279 remote: Counting objects: 20032, done.
280 remote: Compressing objects: 100% (11647/11647), done.
281 remote: Total 20032 (delta 11333), reused 16632 (delta 8189)
282 Receiving objects: 100% (20032/20032), 395.29 MiB | 3.26 MiB/s, done.
283 Resolving deltas: 100% (11333/11333), done.
284 Checking connectivity... done.
285 \end{lstlisting}
286
287 \paragraph{Update an existing repo}%
288 \label{par:update_an_existing_repo}
289
290 \begin{lstlisting}[language=bash]
291  $ cd /<repo home>/cin5
292  $ git pull
293 \end{lstlisting}
294
295 \paragraph{Useful git commands}%
296 \label{par:useful_git_commands}
297
298
299 \begin{lstlisting}[language=bash]
300 $ git clone "git://git.cinelerra-gg.org/goodguy/cinelerra.git" cin5
301 $ git pull         # pull remote changes to the local version
302 $ git status       # shows changed files
303 $ git clean -i     # interactive clean, use answer 1 to "clean"
304 \end{lstlisting}
305
306
307
308 \subsection{How to Build from a Previous GIT Version}%
309 \label{sub:how_to_build_from_a_previous_git_version}
310
311
312 \begin{lstlisting}[language=bash]
313 $ cd /<path>/cin5_repo
314 $ git log
315 $ git checkout <version>
316 \end{lstlisting}
317
318
319 The “git log” command produces a log file with hash values for commit keys.  The hash ids are the commit names to use when you use git checkout.  
320 Next is displayed sample output:
321
322
323 \begin{lstlisting}
324 delete stray line in last checkin
325
326 commit 4a90ef3ae46465c0634f81916b79e279e4bd9961
327 Author: Good Guy <good1.2guy@gmail.com>
328 Date: Thu Feb 22 14:56:45 2018 -0700
329
330 nested clips, big rework and cleanup, sams new icons, leaks and tweaks
331
332 commit f87479bd556ea7db4afdd02297fc00977412b873
333 Author: Good Guy <good1.2guy@gmail.com>
334 Date: Sat Feb 17 18:09:22 2018 -0700
335 \end{lstlisting}
336
337 For the “git checkout <version>, you would then keyin the line below for the following results:
338
339 \begin{lstlisting}
340 $ git checkout f87479bd556ea7db4afdd02297fc00977412b873
341
342 Note: checking out 'f87479bd556ea7db4afdd02297fc00977412b873'.
343
344         You are in 'detached HEAD' state. You can look around, make experimental
345         changes and commit them, and you can discard any commits you make in this
346         state without impacting any branches by performing another checkout.
347
348         If you want to create a new branch to retain commits you create, you may
349         do so (now or later) by using -b with the checkout command again. Example:
350
351         git checkout -b <new-branch-name>
352
353         HEAD is now at f87479bd... more file size icon updates, and more to followend
354 \end{lstlisting}
355
356 Later to get the repo back to current, use:    
357 \begin{lstlisting}
358 $ git checkout master
359 \end{lstlisting}
360
361
362 \subsection{Debuggable Single User Build}%
363 \label{sub:debuggable_single_user_build}
364
365
366 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.
367
368 \begin{lstlisting}
369 $ git clone ...
370 $ cp -a /path/cinelerra-5.1 /tmp/.
371 $ cd /tmp/cinelerra-5.1
372 $ ./bld.sh
373 \end{lstlisting}
374
375
376 Then, to run as a developer in the debugger:
377
378 \begin{lstlisting}[language=bash]
379 $ CFLAGS="-O2 -ggdb" make -j8 rebuild_all
380 $ cd cinelerra
381 $ gdb ./ci
382 \end{lstlisting}
383
384
385 \subsection{Unbundled Builds}%
386 \label{sub:unbundled_builds}
387
388 There are some generic build scripts included in the Cinelerra-GG GIT repository for users who want to do unbundled builds with ffmpeg already available on their system.  
389 This has been tested on Arch, Ubuntu 18, FreeBSD, and Leap 15 (rpm) at the time this was documented.  
390 The names of the build scripts are:  arch.bld ,  bsd.bld , deb.bld , and rpm.bld .  
391 These scripts are in the “blds” subdirectory.  
392 The bsd.bld should be used with the bsd.patch file in that same directory.
393
394 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.  
395 However, some users prefer using their current system baseline without another/different copy of ffmpeg.  
396 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.  
397 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.
398
399 With the unbundled builds, some features may not be available and no attempt to comment them out has been made.  
400 So if you use a pulldown, or pick a render option, or choose something that is not available, it just will not work.  
401 For example, unless special options were set up by you, the LV2 audio plugins will not be available.  
402 Nor will the codec libzmpeg, the file codec ac3, or DVD creation.  
403 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.  
404 That is because the Cinelerra ffmpeg is a known static build and is usually the latest stable/released version.  
405 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.
406
407
408 \section{Download Already Built Cinelerra-GG}%
409 \label{sec:download_already_built_cinelerra_gg}
410
411 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.  
412 There are also 32-bit i686 Ubuntu, Debian, and Slackware versions available.  
413 These are updated on a fairly regular basis as long as significant code changes have been made.  
414 They are in subdirectories of:
415
416 \url{https://cinelerra-gg.org/download/tars}
417
418 \url{https://cinelerra-gg.org/download/pkgs}
419
420 The “\textbf{tars}” directory contains single-user static builds for different distros.  
421 This is the recommended usage of Cinelerra-GG because all of the files will exist in a single directory.  
422 To install the single user builds, download the designated tarball from the ./tars subdirectory and unpack as indicated below:
423
424 \begin{lstlisting}[language=bash]
425 $ cd /path
426 $ mkdir cin
427 $ cd cin
428 $ tar -xJf /src/path/cinelerra-5.1-*.txz    # for the *, substitute your distro tarball name
429 \end{lstlisting}
430
431 Do NOT download the LEAP 10-bit version unless you use h265 (it can't render 8-bit h265).
432
433 The “\textbf{pkgs}” directory contains the standard packaged application for various distros.  
434 This will install a dynamic system version for users who prefer to have the binaries in the system area and for multi-user systems.  
435 In addition, performing the package install checks the md5sum in the file md5sum.txt to ensure the channel correctly transmits the package.  
436 There is a README.pkgs file in the “pkgs” directory with instructions so you can “cut and paste” and avoid typos; it is also shown next.
437
438 %TODO point to real READ.pkgs
439
440 \begin{lstlisting}
441 Depending on the distro, use the instructions below and select the appropriate 
442 setup operations to install, update or remove cinelerr-gg infinity.  (03/04/2019)
443 To upgrade, refresh repo, then replace "install" with "update", or whatever.
444
445 Email problems to cin@lists.cinelerra-gg.org
446 If repository problems, usually you can manually do an install by using:
447   wget https://cinelerra-gg.org/download/pkgs/{substitute_name}/cin_5.1.<sub_name>.deb
448   and install it manually, for example: dpkg -i cin_5.1.{substitute_filename}.deb
449
450 # GENTOO - courtesy Dominque Michel
451 # There is an ebuild package at this time as of 01/03/2019 at:
452 #    https://svnweb.tuxfamily.org/listing.php?repname=proaudio%2Fproaudio&path=
453 #    %2Ftrunk%2Foverlays%2Fproaudio%2Fmedia-video%2Fcinelerra%2F&#ab000caf7024d83112f42a7e8285f2f29
454
455 # FREEBSD - courtesy Yuri
456 # There is a port available at: https://www.freshports.org/multimedia/cinelerra-gg/
457 # To use this port: cd /usr/ports/multimedia/cinelerra-gg && make install clean
458 #   and then install this precompiled package via: pkg install cinelerra-gg
459
460 # FEDORA
461 # Replace the XX in fedoraXX in the next line with your current O/S version number
462 dnf install cinelerra --nogpgcheck --repofrompath cingg,https://cinelerra-gg.org/download/pkgs/fedoraXX/
463 ##dnf erase cinelerra
464
465 # CENTOS
466 # Python 2 has been updated for other distros to Python 3 so you might have to create a soft link
467 #   to get the correct version.  For help, send email to cin@lists.cinelerra-gg.org
468 # first create the file /etc/yum.repos.d/cin_gg, with the following contents:
469 [cin_gg]
470 name=cingg
471 baseurl=https://cinelerra-gg.org/download/pkgs/centos7
472 gpgcheck=0
473 # end of cin_gg
474 yum install cinelerra
475 ##yum erase cinelerra
476
477 # UBUNTU, replace ub14 with your distro id: ub16,ub17,ub18
478 #  Some ubuntu apt downloads register status as working 0% constantly while running the package
479 #   download, like ubuntu 14.  It may take a few minutes for this step so be patient.
480 apt install software-properties-common apt-transport-https
481 apt-add-repository https://cinelerra-gg.org/download/pkgs/ub14
482 # UBUNTU 16/17/18 note - This has been known to work, but things change quickly:
483 # VIP - for the first install, the above line adds cinelerra to /etc/apt/sources.list but...
484 # Version 16/17/18 of Ubuntu are more strict for licensing so you will have to edit
485 #  the file /etc/apt/sources.list to add [trusted=yes] after deb and before https...cin...
486 # For example the line should be: deb [trusted=yes] https://cinelerra-gg.org/download/pkgs/ub16 xenial main
487 #   Or for ub17: deb [trusted=yes] https://cinelerra-gg.org/download/pkgs/ub17 zesty main
488 #   Or for ub18: deb [trusted=yes] https://cinelerra-gg.org/download/pkgs/ub18 bionic main
489 # Also, on the install you will get an error message that you can either ignore as cinelerra
490 #  will run anyway, or else (the first time only) on the commnand line keyin: 
491 #  echo > /etc/sysctl.d/50-cin.conf "kernel.shmmax=0x7fffffff"
492 apt update
493 apt install cin
494 #to update a previous install (ignore any i386 errors as only 64 bit version available):
495 apt update
496 apt upgrade cin
497 ##apt remove cin
498
499 # MINT should use the same procedure as Ubuntu, but: 
500 # Note: apt-add-repository did not work for me, I had to use the gui version:
501 #  System_OR_Administration->Software Sources->Additional Repositories->Add a new repository
502 #  For Mint18,add: deb [trusted=yes] https://cinelerra-gg.org/download/pkgs/mint18 xenial main
503 #  For Mint19,add: deb [trusted=yes] https://cinelerra-gg.org/download/pkgs/mint19 bionic main 
504 apt update
505 apt install cin
506 #to update a previous install
507 apt update
508 apt upgrade cin
509 ##apt remove cin
510
511 # DEBIAN uses the same basic procedure as Ubuntu.
512 #  The apt-add-repository varies per system so you will have to use your best judgement
513 apt install software-properties-common apt-transport-https
514 apt-add-repository https://cinelerra-gg.org/download/pkgs/debian8
515 OR apt-add-repository https://cinelerra-gg.org/download/pkgs/debian9
516 OR apt-add-repository https://cinelerra-gg.org/download/pkgs/debian10
517 # VIP - for the first install, the above line adds cinelerra to /etc/apt/sources.list but...
518 # Debian stretch/jessie/buster are more strict for licensing so you will have to edit
519 #  the file /etc/apt/sources.list to add [trusted=yes] after deb and before https...cin...
520 # For example for debian8: deb [trusted=yes] https://cinelerra-gg.org/download/pkgs/debian8 jessie main
521 # For example for debian9: deb [trusted=yes] https://cinelerra-gg.org/download/pkgs/debian9 stretch main
522 # For example for debian10: deb [trusted=yes] https://cinelerra-gg.org/download/pkgs/debian10 buster main
523 apt update
524 apt install cin
525 #to update a previous install
526 apt update
527 apt upgrade cin
528 ##apt remove cin
529
530 # SUSE/LEAP
531 # (Note: you may have to zypper libavc and libiec versions if not already installed)
532 # cinelerra packages are unsigned so you will have to ignore: Package is not signed!
533 # openSUSE LEAP 15
534 zypper ar -f https://cinelerra-gg.org/download/pkgs/leap15/ cingg
535 zypper install -r cingg cinelerra   # or cinelerra10bit for 10 bit
536 # openSUSE LEAP 42
537 zypper ar -f https://cinelerra-gg.org/download/pkgs/leap42/ cingg
538 # as of 42.3 SUSE there is a new requirement, so you will need to add:
539 zypper mr -G cingg
540 zypper install -r cingg cinelerra   # or cinelerra10bit for 10 bit
541 ##zypper remove cinelerra           # or cinelerra10bit for 10 bit
542 #to update a previous install (assuming you enabled autorefresh as above)
543 zypper refresh cingg
544 zypper up cinelerra  # or cinelerra10bit for 10 bit
545
546 # SLACKWARE, substitute slk32 for slk64 and i486-1 for x86_64-1
547 wget -P /tmp https://cinelerra-gg.org/download/pkgs/slk64/cin-{date}-slk64-x86_64.txz
548 installpkg /tmp/cin...    # name you used in the above line
549 #to update a previous install
550 upgradepkg /tmp/cin...    # name you used in the above line
551 ##removepkg cin
552
553 # ARCH linux
554 # first edit the file /etc/pacman.conf, to include the following:
555 [cingg]
556 SigLevel = Optional TrustAll
557 Server = https://cinelerra-gg.org/download/pkgs/arch
558 # end of cingg
559 pacman -Sy
560 pacman -S cin
561 ##pacman -R cin
562 \end{lstlisting}
563
564 \section{Distribution Systems with Cinelerra Included}%
565 \label{sec:distribution_systems_with_cinelerra_included}
566
567 There are also some special complete distribution systems available that include Cinelerra-GG for audio and video production capabilities.
568
569 AV Linux is a downloadable/installable shared snapshot ISO image based on Debian. 
570 It provides the user an easy method to get an Audio and Video production workstation without the hassle of trying to find and install all of the usual components themselves. 
571 Of course, it includes Cinelerra-GG!  
572 It is at:
573
574 \url{http://www.bandshed.net/avlinux/}
575
576 Bodhi Linux is a free and open source distribution that comes with a curated list of open source software for digital artists who work with audio, video, includes Cinelerra GG, games, graphics, animations, physical computing, etc.  
577 It is at:
578
579 \url{https://gitlab.com/giuseppetorre/bodhilinuxmedia}  
580
581 \section{Cinx and a “Bit” of Confusion}%
582 \label{sec:cinx_and_a_bit_of_confusion}
583
584 Cinx is the exact same program as Cin.  
585 The X (x) represents the roman numeral 10 for 10-bit as opposed to 8-bit standard.  
586 The third-party library used for x265 must be specially compiled with \texttt{--bit-depth=10} in order to produce 10-bit rendered output.  
587 This build will not be able to output 8-bit depth which means you have to retain the Cin version also.  
588 Whatever build ffmpeg is linked to will determine what bit depth it can output.  
589 This is why there have to be separate builds.  
590 If you install both packages, Cin and CinX, you may get “file conflicts of same file name” --- just continue.
591
592 Keep in mind that the regular 8-bit version works on 8-bit bytes --- the standard word size for computers, but the 10-bit version has to use 2 words to contain all 10 bits so you can expect rendering to be as much as twice as slow.  
593 There is also a 12-bit version for consideration but currently the results are simply the same as 10-bit with padding to make 12-bit so it is of no value.
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610