[Cin] Is one pre-built dynamic and static binary for user selection possible?
Andrew Randrianasulu
randrianasulu at gmail.com
Fri Sep 20 01:19:56 CEST 2024
On Fri, Sep 20, 2024 at 1:35 AM Terje J. Hanssen <terjejhanssen at gmail.com>
wrote:
>
>
> Den 19.09.2024 19:19, skrev Andrew Randrianasulu:
>
>
>
> On Thu, Sep 19, 2024 at 7:52 PM Terje J. Hanssen via Cin <
> cin at lists.cinelerra-gg.org> wrote:
>
>> If my understanding is correct, the standard pre-built CinGG packages
>> are static binaries with all required thirdparty, ffmpeg and libs
>> included(?)
>>
>> 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?
>> Or is two different pre-builts required?
>>
>
> 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.
>
> sorry.
>
>
> I had "a little hope" something could be done via a configuration/startup
> file :)
>
> In addition to the last sections below (from 1.3.3 in the manual):
> "just include "–without-thirdparty" to your configure script, "and auto
> means probe and use the system version"
>
>
> the manual 1.3.8 Unbundled Builds
> "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. This has been tested on Arch, Ubuntu 18, FreeBSD, Windows10 and
> Leap
> 15 (rpm) at the time this was documented. The names of the build scripts
> are:
> arch.bld, bsd.bld, deb.bld, rpm.bld, and cygwin.bld. These scripts are in
> the blds subdirectory."
>
> Is there available a built-guide or possible to list the detailed
> procedure steps doing this? ;)
>
well, step no. 1 - download source repo via git clone.
git clone git://git.cinelerra-gg.org/goodguy/cinelerra.git should do it
Step 2 - cd to directory where ./autogen.sh located.
2a - set additional environment variables if you need so via export command
3) run ./autogen.sh
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)
my current build uses "./configure --with-single-user --with-git-ffmpeg=
https://git.ffmpeg.org/ffmpeg.git" but
ffmpeg.git can be broken at any time by ffmpeg development process :(
5) run make
6) if doing single user build also run make install
7) run it from same directory as bin/cin (you can "ls bin" just to see if
all files were build/installed)
report errors here :)
>
>
>
>>
>> Experiences with the latter?
>>
>> ---------
>> Refer to extracted sections from the CinGG manual Chapter 1 -
>> Installation below:
>>
>> 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 ........
>>
>> The pkgs directory contains the standard packaged application for various
>> distros.
>> This will install a dynamic system version for users who prefer to have
>> the binaries
>> in the system area
>> ---------
>>
>> 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. If you want
>> to build using only the thirdparty libraries installed in your system, just
>> include "–without-thirdparty" to your configure script. For example:
>>
>> ./confgure --with-single-user --disable-static-build --without-thirdparty
>>
>> Below is the list of thirdparty builds, but this list may have changed
>> over time.
>>
>> Table 1.1: List of thirdparty builds
>>
>> a52dec yes
>> djbfft yes
>> ffmpeg yes
>> fftw auto
>> flac auto
>> giflib yes
>> ilmbase auto
>> lame auto
>> libavc1394 auto
>> libraw1394 auto
>> libiec61883 auto
>> libdv auto
>> ..........
>>
>> 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 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 a52dec which has probes line (CHECK_LIB/CHECK_HEADERS)
>> in configure.ac, 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:
>>
>> ./confgure --with-single-user -enable-a52dec=auto .
>>
>> 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.
>>
>> 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.
>>
>> export FFMPEG_EXTRA_CFG=" --enable-libfdk-aac --enable-nonfree"
>> export EXTRA_LIBS=" -lfdk-aac"
>> for f in `grep -lw aac cinelerra-5.1/ffmpeg/audio/*`; do
>> sed -e 's/\<aac\>/libfdk_aac/' -i $f
>> done
>>
>>
>>
>>
>> --
>> Cin mailing list
>> Cin at lists.cinelerra-gg.org
>> https://lists.cinelerra-gg.org/mailman/listinfo/cin
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.cinelerra-gg.org/pipermail/cin/attachments/20240920/6ea89fa9/attachment.htm>
More information about the Cin
mailing list