<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>