fix ARCH package install how-to
[goodguy/cin-manual-latex.git] / parts / Instalation.tex
index 5e182db447a6c29aa960349691e6a15ff77b7f9a..b11d752af454fae9e590a6b2f6c39d66cb797252 100644 (file)
@@ -4,7 +4,7 @@
 \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.
 
@@ -21,7 +21,7 @@ The majority of the files are installed in the standard system paths, but some c
 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.
@@ -51,13 +51,13 @@ These differences make it possible to have several different versions installed
 
 \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}
@@ -66,7 +66,7 @@ $ cd cinelerra5/cinelerra-5.1 # toplevel directory
         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
@@ -84,17 +84,17 @@ $ /<build_path>/cinelerra5/cinelerra-5.1/log
         \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}
@@ -132,19 +132,19 @@ These procedures and the Cinelerra-GG Infinity software have all been run as “
 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}
@@ -159,11 +159,11 @@ The application name can be set during installation, but defaults to cin so that
 $ ./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.  
@@ -189,7 +189,7 @@ $ export FFMPEG_EXTRA_CFG=" --disable-vdpau"
 \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]
@@ -237,15 +237,15 @@ The "yes" means force build and “auto” means probe and use the system versio
 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.
 
@@ -264,7 +264,7 @@ If you want to avoid downloading the software every time an update is available
 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}%
@@ -363,7 +363,7 @@ $ git checkout master
 \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 ...
@@ -376,7 +376,7 @@ $ ./bld.sh
 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}
@@ -391,7 +391,7 @@ The names of the build scripts are:  arch.bld ,  bsd.bld , deb.bld , and rpm.bld
 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.
@@ -402,14 +402,14 @@ For example, unless special options were set up by you, the LV2 audio plugins wi
 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:
 
@@ -447,12 +447,12 @@ If repository problems, usually you can manually do an install by using:
   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
@@ -513,11 +513,13 @@ apt upgrade cin
 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
@@ -549,13 +551,25 @@ upgradepkg /tmp/cin...    # name you used in the above line
 ##removepkg cin
 
 # ARCH linux
+#  (A loosely defined list of packages that you should install first is listed in this file:
+#   https://www.cinelerra-gg.org/download/pkgs/README.arch   )
 # first edit the file /etc/pacman.conf, to include the following:
 [cingg]
 SigLevel = Optional TrustAll
 Server = https://cinelerra-gg.org/download/pkgs/arch
 # end of cingg
-pacman -Sy
+#
+# next run from a window the following 2 commands;
+pacman -Syu
 pacman -S cin
+# NOTE: the first line above updates your Arch system to the current rolling release and the second
+#  line updates Cinelerra-GG based on the rolling release that was in effect on the last day of the month.
+#  Please complete the 2 steps above in order, one right after the other to avoid risk of a partial upgrade.
+#  Due to the unpredictability of when Arch libraries are updated, performing an install of Cinelerra at
+#  any time other than shortly after the last day of the month when the new build package is created,
+#  could lead to library incompatibilities.  In that case, please consider using the Arch static tar file
+#  for installation instead.
+#to remove a previous install
 ##pacman -R cin
 \end{lstlisting}