<div dir="auto"><div><br><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">пт, 20 сент. 2024 г., 16:43 Terje J. Hanssen <<a href="mailto:terjejhanssen@gmail.com">terjejhanssen@gmail.com</a>>:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><u></u>

  
    
  
  <div>
    <br>
    <br>
    <div>Den 20.09.2024 01:19, skrev Andrew
      Randrianasulu:<br>
    </div>
    <blockquote type="cite">
      
      <div dir="ltr">
        <div dir="ltr"><br>
        </div>
        <br>
        <div class="gmail_quote">
          <div dir="ltr" class="gmail_attr">On Fri, Sep 20, 2024 at
            1:35 AM Terje J. Hanssen <<a href="mailto:terjejhanssen@gmail.com" target="_blank" rel="noreferrer">terjejhanssen@gmail.com</a>>
            wrote:<br>
          </div>
          <blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
            <div> <br>
              <br>
              <div>Den 19.09.2024 19:19, skrev Andrew Randrianasulu:<br>
              </div>
              <blockquote type="cite">
                <div dir="ltr">
                  <div dir="ltr"><br>
                  </div>
                  <br>
                  <div class="gmail_quote">
                    <div dir="ltr" class="gmail_attr">On Thu, Sep 19,
                      2024 at 7:52 PM Terje J. Hanssen via Cin <<a href="mailto:cin@lists.cinelerra-gg.org" target="_blank" rel="noreferrer">cin@lists.cinelerra-gg.org</a>>
                      wrote:<br>
                    </div>
                    <blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
                      <div> If my understanding is correct, the standard
                        pre-built  CinGG packages are static binaries
                        with all required thirdparty, ffmpeg and  libs
                        included(?)<br>
                        <br>
                        Would it be possible to combine static and
                        dynamic in one pre-built so that users via
                        setting could select what they want, ffmpeg and
                        libs included or from the system?<br>
                        Or is two different pre-builts required?<br>
                      </div>
                    </blockquote>
                    <div><br>
                    </div>
                    <div>well,  in general you can't link both
                      statically (piece of library embedded into binary)
                      and shared (piece of code loaded on demand or at
                      launch). There might be some sort of
                      thunks/shims/wrappers dynamically dispatching
                      calls to external library if present (like firefox
                      vs ffmpeg) but I am not programmist enough for
                      making this happen even for most obvious vaapi
                      libs.<br>
                      <br>
                      sorry.</div>
                  </div>
                </div>
              </blockquote>
              <br>
              I had "a little hope" something could be done via a
              configuration/startup file :)<br>
              <br>
              In addition to the last sections below (from 1.3.3 in the
              manual):<br>
              "just include "–without-thirdparty" to your configure
              script, "and auto means probe and use the system version"<br>
              <br>
              <br>
              the manual 1.3.8 Unbundled Builds<br>
              "There are some generic build scripts included in the
              CINELERRA-GG GIT repository<br>
              for users who want to do unbundled builds with ffmpeg
              already available on their<br>
              system. This has been tested on Arch, Ubuntu 18, FreeBSD,
              Windows10 and Leap<br>
              15 (rpm) at the time this was documented. The names of the
              build scripts are:<br>
              arch.bld, bsd.bld, deb.bld, rpm.bld, and cygwin.bld. These
              scripts are in<br>
              the blds subdirectory."<br>
              <br>
              Is there available a built-guide or possible to list the
              detailed procedure steps doing this? ;)<br>
            </div>
          </blockquote>
          <div><br>
          </div>
          <div>well, step no. 1 - download source repo via git clone.</div>
          <div>git clone git://<a href="http://git.cinelerra-gg.org/goodguy/cinelerra.git" target="_blank" rel="noreferrer">git.cinelerra-gg.org/goodguy/cinelerra.git</a> 
            should do it<br>
          </div>
          <div>Step 2 - cd to directory where ./autogen.sh located.</div>
          <div>2a - set additional environment variables if you need so
            via export command<br>
          </div>
          <div>3) run ./autogen.sh</div>
          <div>4) run ./configure with all switches you need. (for first
            try probably --with-single-user so build will be user-local,
            no need for installing into system)</div>
          <div>my current build uses "./configure --with-single-user
            --with-git-ffmpeg=<a href="https://git.ffmpeg.org/ffmpeg.git" target="_blank" rel="noreferrer">https://git.ffmpeg.org/ffmpeg.git</a>"
            but </div>
          <div>ffmpeg.git can be broken at any time by ffmpeg
            development process :(<br>
          </div>
          <div>5) run make</div>
          <div>6) if doing single user build also run make install</div>
          <div>7) run it from same directory as bin/cin (you can "ls
            bin" just to see if all files were build/installed)<br>
          </div>
          <div><br>
          </div>
          <div>report errors here :) <br>
          </div>
          <div><br>
          </div>
        </div>
      </div>
    </blockquote>
    <br>
    Thanks, here we go:<br>
    <br>
    1)<br>
    # cd /home<br>
    <br>
    # git clone git://<a href="http://git.cinelerra-gg.org/goodguy/cinelerra.git" target="_blank" rel="noreferrer">git.cinelerra-gg.org/goodguy/cinelerra.git</a> <br>
    Cloning into 'cinelerra'...<br>
    remote: Enumerating objects: 22646, done.<br>
    remote: Counting objects: 100% (22646/22646), done.<br>
    remote: Compressing objects: 100% (14288/14288), done.<br>
    remote: Total 22646 (delta 11647), reused 17384 (delta 7999),
    pack-reused 0<br>
    Receiving objects: 100% (22646/22646), 405.36 MiB | 16.00 MiB/s,
    done.<br>
    Resolving deltas: 100% (11647/11647), done.<br>
    <br>
    2)<br>
    #  cd /home/cinelerra/cinelerra-5.1/tools/makeappimagetool<br></div></blockquote></div></div><div dir="auto"><br></div><div dir="auto">sorry, yo need to cd to /home/cinelerra/cinelerra-5.1/</div><div dir="auto"><br></div><div dir="auto"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div>
    <br>
    2a) ?<br>
    <br>
    3)<br>
    # ./autogen.sh<br>
    <a href="http://configure.ac:19" target="_blank" rel="noreferrer">configure.ac:19</a>: installing 'cfg/compile'<br>
    <a href="http://configure.ac:89" target="_blank" rel="noreferrer">configure.ac:89</a>: installing 'cfg/config.guess'<br>
    <a href="http://configure.ac:89" target="_blank" rel="noreferrer">configure.ac:89</a>: installing 'cfg/config.sub'<br>
    <a href="http://configure.ac:12" target="_blank" rel="noreferrer">configure.ac:12</a>: installing 'cfg/install-sh'<br>
    <a href="http://configure.ac:12" target="_blank" rel="noreferrer">configure.ac:12</a>: installing 'cfg/missing'<br>
    Makefile.am: installing 'cfg/depcomp'<br>
    <br>
    4)<br>
    I didn't understand what to do with 4) "run ./configure with all
    switches you need" ?<br>
    <br>
    So I just started with your <br>
    <br>
    # ./configure --with-single-user
    --with-git-ffmpeg=<a href="https://git.ffmpeg.org/ffmpeg.git" target="_blank" rel="noreferrer">https://git.ffmpeg.org/ffmpeg.git</a><br>
    configure: WARNING: unrecognized options: --with-single-user,
    --with-git-ffmpeg<br>
    configure: loading site script /usr/share/site/x86_64-pc-linux-gnu<br>
    checking for a BSD-compatible install... /usr/bin/install -c<br>
    checking whether sleep supports fractional seconds... yes<br>
    checking filesystem timestamp resolution... 0.01<br>
    checking whether build environment is sane... yes<br>
    checking for a race-free mkdir -p... /usr/bin/mkdir -p<br>
    checking for gawk... gawk<br>
    checking whether make sets $(MAKE)... yes<br>
    checking whether make supports nested variables... yes<br>
    checking xargs -n works... yes<br>
    checking for g++... g++<br>
    checking whether the C++ compiler works... yes<br>
    checking for C++ compiler default output file name... a.out<br>
    checking for suffix of executables... <br>
    checking whether we are cross compiling... no<br>
    checking for suffix of object files... o<br>
    checking whether the compiler supports GNU C++... yes<br>
    checking whether g++ accepts -g... yes<br>
    checking for g++ option to enable C++11 features... none needed<br>
    checking whether make supports the include directive... yes (GNU
    style)<br>
    checking dependency style of g++... gcc3<br>
    checking for gcc... gcc<br>
    checking whether the compiler supports GNU C... yes<br>
    checking whether gcc accepts -g... yes<br>
    checking for gcc option to enable C11 features... none needed<br>
    checking whether gcc understands -c and -o together... yes<br>
    checking dependency style of gcc... gcc3<br>
    checking how to run the C preprocessor... gcc -E<br>
    checking for stdio.h... yes<br>
    checking for stdlib.h... yes<br>
    checking for string.h... yes<br>
    checking for inttypes.h... yes<br>
    checking for stdint.h... yes<br>
    checking for strings.h... yes<br>
    checking for sys/stat.h... yes<br>
    checking for sys/types.h... yes<br>
    checking for unistd.h... yes<br>
    checking for boost/filesystem.hpp... yes<br>
    checking for boost/filesystem/path.hpp... yes<br>
    checking for boost/regex.hpp... yes<br>
    checking for libpng16/png.h... yes<br>
    checking for zlib.h... yes<br>
    checking for jpeglib.h... yes<br>
    ./configure: line 5910: -O2: command not found<br>
    checking for X... no<br>
    checking for fcntl.h... yes<br>
    checking for memory.h... yes<br>
    checking for sys/time.h... yes<br>
    checking for unistd.h... (cached) yes<br>
    checking for _Bool... yes<br>
    checking for stdbool.h that conforms to C99 or later... yes<br>
    checking for inline... inline<br>
    checking for int32_t... yes<br>
    checking for int64_t... yes<br>
    checking for size_t... yes<br>
    checking for ssize_t... yes<br>
    checking for uint16_t... yes<br>
    checking for uint32_t... yes<br>
    checking for uint64_t... yes<br>
    checking for uint8_t... yes<br>
    checking for ptrdiff_t... yes<br>
    checking for pid_t... yes<br>
    checking for vfork.h... no<br>
    checking for sys/param.h... yes<br>
    checking for fork... no<br>
    checking for vfork... no<br>
    checking for getpagesize... no<br>
    checking build system type... x86_64-pc-linux-gnu<br>
    checking host system type... x86_64-pc-linux-gnu<br>
    checking for GNU libc compatible malloc... no<br>
    checking for working mmap... no<br>
    checking for dup2... no<br>
    checking for floor... no<br>
    checking for gettimeofday... no<br>
    checking for memmove... no<br>
    checking for memset... no<br>
    checking for munmap... no<br>
    checking for pow... no<br>
    checking for realpath... no<br>
    checking for select... no<br>
    checking for sqrt... no<br>
    checking for strcasecmp... no<br>
    checking for strchr... no<br>
    checking for strdup... no<br>
    checking for strerror... no<br>
    checking for strncasecmp... no<br>
    checking for strrchr... no<br>
    checking for strstr... no<br>
    checking that generated files are newer than configure... done<br>
    configure: creating ./config.status<br>
    config.status: creating Makefile<br>
    config.status: creating config.h<br>
    config.status: config.h is unchanged<br>
    config.status: executing depfiles commands<br>
    configure: WARNING: unrecognized options: --with-single-user,
    --with-git-ffmpeg<br>
    <br>
    5)<br>
    # make<br>
    make  all-am<br>
    make[1]: Entering directory
    '/home/cinelerra/cinelerra-5.1/tools/makeappimagetool'<br>
    g++ -DHAVE_CONFIG_H -I.     -g -O2 -DBOOST_NO_CXX11_SCOPED_ENUMS
    -Dcimg_display=0 -Dcimg_use_jpeg=1 -Dcimg_use_png=1 -MT appdir.o -MD
    -MP -MF .deps/appdir.Tpo -c -o appdir.o appdir.cpp<br>
    appdir.cpp: In static member function ‘static bool
    linuxdeploy::core::appdir::AppDir::PrivateData::copyFile(const
    boost::filesystem::path&, boost::filesystem::path,
    boost::filesystem::perms, bool)’:<br>
    appdir.cpp:164:57: error: ‘bf::copy_option’ has not been declared<br>
      164 |                             bf::copy_file(from, to,
    bf::copy_option::overwrite_if_exists);<br>
          |                                                        
    ^~~~~~~~~~~<br>
    make[1]: *** [Makefile:469: appdir.o] Error 1<br>
    make[1]: Leaving directory
    '/home/cinelerra/cinelerra-5.1/tools/makeappimagetool'<br>
    make: *** [Makefile:340: all] Error 2<br></div></blockquote></div></div><div dir="auto"><br></div><div dir="auto"><br></div><div dir="auto">but you discovered build error in makeappimagetool!</div><div dir="auto"><br></div><div dir="auto"><br></div><div dir="auto"><br></div><div dir="auto"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div>
    <br>
    6)<br>
    # make install<br>
    g++ -DHAVE_CONFIG_H -I.     -g -O2 -DBOOST_NO_CXX11_SCOPED_ENUMS
    -Dcimg_display=0 -Dcimg_use_jpeg=1 -Dcimg_use_png=1 -MT appdir.o -MD
    -MP -MF .deps/appdir.Tpo -c -o appdir.o appdir.cpp<br>
    appdir.cpp: In static member function ‘static bool
    linuxdeploy::core::appdir::AppDir::PrivateData::copyFile(const
    boost::filesystem::path&, boost::filesystem::path,
    boost::filesystem::perms, bool)’:<br>
    appdir.cpp:164:57: error: ‘bf::copy_option’ has not been declared<br>
      164 |                             bf::copy_file(from, to,
    bf::copy_option::overwrite_if_exists);<br>
          |                                                        
    ^~~~~~~~~~~<br>
    make: *** [Makefile:469: appdir.o] Error 1<br>
    </div></blockquote></div></div><div dir="auto"><br></div><div dir="auto"><br></div><div dir="auto">usually, if something errors out at make make install will still try to build failed component. But in our case error is in sourcecode so it fails again. You probably  can skip make install in future if make fails with error.</div><div dir="auto"><br></div><div dir="auto"><br></div><div dir="auto"><br></div><div dir="auto"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><br>
    <br>
    <br>
    <br>
    <blockquote type="cite">
      <div dir="ltr">
        <div class="gmail_quote">
          <blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
            <div> <br>
              <br>
              <blockquote type="cite">
                <div dir="ltr">
                  <div class="gmail_quote">
                    <div> </div>
                    <blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
                      <div> <br>
                        Experiences with the latter?<br>
                        <br>
                        ---------<br>
                        Refer to extracted sections from the CinGG
                        manual Chapter 1 - Installation below:<br>
                        <br>
                        If you prefer to not have to take the time to
                        build CINELERRA-GG Infinity yourself,<br>
                        there are pre-built dynamic or static binaries
                        for various versions of Ubuntu, Mint,<br>
                        Suse, Fedora, Debian ........<br>
                        <br>
                        The pkgs directory contains the standard
                        packaged application for various distros.<br>
                        This will install a dynamic system version for
                        users who prefer to have the binaries<br>
                        in the system area<br>
                        ---------<br>
                        <br>
                        Notes about Building from Git in your Customized
                        Environment<br>
                        <br>
                        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.
                        If you want to build using only the thirdparty
                        libraries installed in your system, just include
                        "–without-thirdparty" to your configure script.
                        For example:<br>
                        <br>
                        ./confgure --with-single-user
                        --disable-static-build --without-thirdparty<br>
                        <br>
                        Below is the list of thirdparty builds, but this
                        list may have changed over time.<br>
                        <br>
                        Table 1.1: List of thirdparty builds     <br>
                        <blockquote><font face="Courier New, Courier, monospace">a52dec
                                    yes</font><br>
                          <font face="Courier New, Courier, monospace">djbfft
                                    yes</font><br>
                          <font face="Courier New, Courier, monospace">ffmpeg
                                    yes</font><br>
                          <font face="Courier New, Courier, monospace">fftw
                                      auto</font><br>
                          <font face="Courier New, Courier, monospace">flac
                                      auto</font><br>
                          <font face="Courier New, Courier, monospace">giflib
                                    yes</font><br>
                          <font face="Courier New, Courier, monospace">ilmbase
                                   auto</font><br>
                          <font face="Courier New, Courier, monospace">lame
                                      auto</font><br>
                          <font face="Courier New, Courier, monospace">libavc1394
                                auto</font><br>
                          <font face="Courier New, Courier, monospace">libraw1394
                                auto</font><br>
                          <font face="Courier New, Courier, monospace">libiec61883
                               auto</font><br>
                          <font face="Courier New, Courier, monospace">libdv
                                     auto<br>
                            ..........<br>
                          </font></blockquote>
                         The yes means force build and auto means probe
                        and use the system version if the build
                        operation is not static. 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 <a href="http://configure.ac" target="_blank" rel="noreferrer">configure.ac</a>
                        script. There may be several libraries which
                        need special treatment.<br>
                        <br>
                        An example of a problem you might encounter with
                        your customized installation is with a52dec
                        which has probes line (CHECK_LIB/CHECK_HEADERS)
                        in <a href="http://configure.ac" target="_blank" rel="noreferrer">configure.ac</a>,
                        but djbfft does not. In this case, djbfft is
                        only built because a52dec is built, so if your
                        system has a52dec, set a52dec to auto and see if
                        that problem is solved by retrying the build
                        with:<br>
                        <br>
                        <font face="Courier New, Courier, monospace">./confgure
                          --with-single-user -enable-a52dec=auto .</font><br>
                        <br>
                        With persistence, you can get results, but it
                        may take several tries to stabilize the build.
                        If you need help, email the log and config.log,
                        which is usually sufficient to determine why a
                        build failed.<br>
                        <br>
                        If you have already installed the 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 libfdk_aac library
                        is not a part of CINELERRA-GG by default because
                        it is not license free.<br>
                        <br>
                        <font face="Courier New, Courier, monospace">export
                          FFMPEG_EXTRA_CFG=" --enable-libfdk-aac
                          --enable-nonfree"<br>
                          export EXTRA_LIBS=" -lfdk-aac"<br>
                          for f in `grep -lw aac
                          cinelerra-5.1/ffmpeg/audio/*`; do<br>
                            sed -e 's/\<aac\>/libfdk_aac/' -i $f<br>
                          done</font><br>
                        <br>
                        <br>
                        <br>
                        <br>
                      </div>
                      -- <br>
                      Cin mailing list<br>
                      <a href="mailto:Cin@lists.cinelerra-gg.org" target="_blank" rel="noreferrer">Cin@lists.cinelerra-gg.org</a><br>
                      <a href="https://lists.cinelerra-gg.org/mailman/listinfo/cin" rel="noreferrer noreferrer" target="_blank">https://lists.cinelerra-gg.org/mailman/listinfo/cin</a><br>
                    </blockquote>
                  </div>
                </div>
              </blockquote>
              <br>
            </div>
          </blockquote>
        </div>
      </div>
    </blockquote>
    <br>
  </div>

</blockquote></div></div></div>