Den 20.09.2024 16:33, skrev Andrew Randrianasulu:


пт, 20 сент. 2024 г., 16:43 Terje J. Hanssen <[email protected]>:



    Den 20.09.2024 01:19, skrev Andrew Randrianasulu:


    On Fri, Sep 20, 2024 at 1:35 AM Terje J. Hanssen
    <[email protected]> wrote:



        Den 19.09.2024 19:19, skrev Andrew Randrianasulu:


        On Thu, Sep 19, 2024 at 7:52 PM Terje J. Hanssen via Cin
        <[email protected]> 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
    <http://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 :)


    Thanks, here we go:

    1)
    # cd /home

    # git clone git://git.cinelerra-gg.org/goodguy/cinelerra.git
    <http://git.cinelerra-gg.org/goodguy/cinelerra.git>
    Cloning into 'cinelerra'...
    remote: Enumerating objects: 22646, done.
    remote: Counting objects: 100% (22646/22646), done.
    remote: Compressing objects: 100% (14288/14288), done.
    remote: Total 22646 (delta 11647), reused 17384 (delta 7999),
    pack-reused 0
    Receiving objects: 100% (22646/22646), 405.36 MiB | 16.00 MiB/s, done.
    Resolving deltas: 100% (11647/11647), done.

    2)
    #  cd /home/cinelerra/cinelerra-5.1/tools/makeappimagetool

    2a) ?

    3)
    # ./autogen.sh
    configure.ac:19 <http://configure.ac:19>: installing 'cfg/compile'
    configure.ac:89 <http://configure.ac:89>: installing
    'cfg/config.guess'
    configure.ac:89 <http://configure.ac:89>: installing 'cfg/config.sub'
    configure.ac:12 <http://configure.ac:12>: installing 'cfg/install-sh'
    configure.ac:12 <http://configure.ac:12>: installing 'cfg/missing'
    Makefile.am: installing 'cfg/depcomp'

    4)
    I didn't understand what to do with 4) "run ./configure with all
    switches you need" ?

    So I just started with your

    # ./configure --with-single-user
    --with-git-ffmpeg=https://git.ffmpeg.org/ffmpeg.git
    configure: WARNING: unrecognized options: --with-single-user,
    --with-git-ffmpeg
    configure: loading site script /usr/share/site/x86_64-pc-linux-gnu
    checking for a BSD-compatible install... /usr/bin/install -c
    checking whether sleep supports fractional seconds... yes
    checking filesystem timestamp resolution... 0.01
    checking whether build environment is sane... yes
    checking for a race-free mkdir -p... /usr/bin/mkdir -p
    checking for gawk... gawk
    checking whether make sets $(MAKE)... yes
    checking whether make supports nested variables... yes
    checking xargs -n works... yes
    checking for g++... g++
    checking whether the C++ compiler works... yes
    checking for C++ compiler default output file name... a.out
    checking for suffix of executables...
    checking whether we are cross compiling... no
    checking for suffix of object files... o
    checking whether the compiler supports GNU C++... yes
    checking whether g++ accepts -g... yes
    checking for g++ option to enable C++11 features... none needed
    checking whether make supports the include directive... yes (GNU
    style)
    checking dependency style of g++... gcc3
    checking for gcc... gcc
    checking whether the compiler supports GNU C... yes
    checking whether gcc accepts -g... yes
    checking for gcc option to enable C11 features... none needed
    checking whether gcc understands -c and -o together... yes
    checking dependency style of gcc... gcc3
    checking how to run the C preprocessor... gcc -E
    checking for stdio.h... yes
    checking for stdlib.h... yes
    checking for string.h... yes
    checking for inttypes.h... yes
    checking for stdint.h... yes
    checking for strings.h... yes
    checking for sys/stat.h... yes
    checking for sys/types.h... yes
    checking for unistd.h... yes
    checking for boost/filesystem.hpp... yes
    checking for boost/filesystem/path.hpp... yes
    checking for boost/regex.hpp... yes
    checking for libpng16/png.h... yes
    checking for zlib.h... yes
    checking for jpeglib.h... yes
    ./configure: line 5910: -O2: command not found
    checking for X... no
    checking for fcntl.h... yes
    checking for memory.h... yes
    checking for sys/time.h... yes
    checking for unistd.h... (cached) yes
    checking for _Bool... yes
    checking for stdbool.h that conforms to C99 or later... yes
    checking for inline... inline
    checking for int32_t... yes
    checking for int64_t... yes
    checking for size_t... yes
    checking for ssize_t... yes
    checking for uint16_t... yes
    checking for uint32_t... yes
    checking for uint64_t... yes
    checking for uint8_t... yes
    checking for ptrdiff_t... yes
    checking for pid_t... yes
    checking for vfork.h... no
    checking for sys/param.h... yes
    checking for fork... no
    checking for vfork... no
    checking for getpagesize... no
    checking build system type... x86_64-pc-linux-gnu
    checking host system type... x86_64-pc-linux-gnu
    checking for GNU libc compatible malloc... no
    checking for working mmap... no
    checking for dup2... no
    checking for floor... no
    checking for gettimeofday... no
    checking for memmove... no
    checking for memset... no
    checking for munmap... no
    checking for pow... no
    checking for realpath... no
    checking for select... no
    checking for sqrt... no
    checking for strcasecmp... no
    checking for strchr... no
    checking for strdup... no
    checking for strerror... no
    checking for strncasecmp... no
    checking for strrchr... no
    checking for strstr... no
    checking that generated files are newer than configure... done
    configure: creating ./config.status
    config.status: creating Makefile
    config.status: creating config.h
    config.status: config.h is unchanged
    config.status: executing depfiles commands
    configure: WARNING: unrecognized options: --with-single-user,
    --with-git-ffmpeg


lack of vfork.h and sqrt.h and few others is concerning!

you probably need to install more development files, my bulk solution was to drag gtk2-dev in and see how it drags X libs and other dev files into system as dependency

zypper in gtk2-devel
Loading repository data...
Reading installed packages...
Resolving package dependencies...

The following 35 NEW packages are going to be installed:
  at-spi2-core-devel cairo-devel dbus-1-devel fontconfig-devel freetype2-devel fribidi-devel gdk-pixbuf-devel glib2-devel graphite2-devel gtk2-devel   harfbuzz-devel libXfixes-devel libXft-devel libXi-devel libXrender-devel libXtst-devel libbrotli-devel libbz2-devel libdatrie-devel libffi-devel   libgirepository-2_0-0 libharfbuzz-cairo0 libicu-devel libmount-devel libpcre2-posix3 libpixman-1-0-devel libselinux-devel libsepol-devel libthai-devel   pango-devel pcre2-devel typelib-1_0-GIRepository-3_0 typelib-1_0-GLibUnix-2_0 typelib-1_0-GdkPixdata-2_0 typelib-1_0-Gtk-2_0


But still lack of vfork.h and sqrt.h and more




    5)
    # make
    make  all-am
    make[1]: Entering directory
    '/home/cinelerra/cinelerra-5.1/tools/makeappimagetool'
    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
    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)’:
    appdir.cpp:164:57: error: ‘bf::copy_option’ has not been declared
      164 |                             bf::copy_file(from, to,
    bf::copy_option::overwrite_if_exists);
    | ^~~~~~~~~~~
    make[1]: *** [Makefile:469: appdir.o] Error 1
    make[1]: Leaving directory
    '/home/cinelerra/cinelerra-5.1/tools/makeappimagetool'
    make: *** [Makefile:340: all] Error 2


this, from short googling, looks like boost error?

do you have boost 1.85 by any chance?

Yes, I have the following "boost" installed

S  | Name                               | Type    | Version    | Arch | Repository
---+------------------------------------+---------+------------+--------+----------------------
i  | boost-devel                        | package | 1.85.0-1.1 | noarch | openSUSE-Slowroll-Oss i  | boost-jam                          | package | 1.85.0-1.1 | noarch | openSUSE-Slowroll-Oss i  | boost-license1_85_0                | package | 1.85.0-2.1 | noarch | openSUSE-Slowroll-Oss i  | boost1_85_0-jam                    | package | 1.85.0-2.1 | x86_64 | openSUSE-Slowroll-Oss i  | libboost_headers1_85_0-devel       | package | 1.85.0-2.1 | x86_64 | openSUSE-Slowroll-Oss i  | libboost_iostreams1_85_0           | package | 1.85.0-2.1 | x86_64 | openSUSE-Slowroll-Oss i  | libboost_iostreams1_85_0-x86-64-v3 | package | 1.85.0-2.1 | x86_64 | openSUSE-Slowroll-Oss i  | libboost_locale1_85_0              | package | 1.85.0-2.1 | x86_64 | openSUSE-Slowroll-Oss i  | libboost_locale1_85_0-x86-64-v3    | package | 1.85.0-2.1 | x86_64 | openSUSE-Slowroll-Oss i  | libboost_thread1_85_0              | package | 1.85.0-2.1 | x86_64 | openSUSE-Slowroll-Oss i  | libboost_thread1_85_0-x86-64-v3    | package | 1.85.0-2.1 | x86_64 | openSUSE-Slowroll-Oss



I found similar looking issue with fixed there

https://github.com/monero-project/monero/issues/9304

but for now I thinkwe better to concentrate on running cingg's main configure, as opposed to makeappimagetool configure.

I tried 5) make again, but still got the similar errors ....

To clear up, because I'm a bit confused at the moment:
Are we trying to install Cingg "unbundled, dynamic linked, single-user" to be able to use the system ffmpeg and libs?
If so, don't we need to edit the configure file then?







    6)
    # make install
    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
    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)’:
    appdir.cpp:164:57: error: ‘bf::copy_option’ has not been declared
      164 |                             bf::copy_file(from, to,
    bf::copy_option::overwrite_if_exists);
    | ^~~~~~~~~~~
    make: *** [Makefile:469: appdir.o] Error 1







            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
            <http://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
            <http://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
            [email protected]
            https://lists.cinelerra-gg.org/mailman/listinfo/cin



-- 
Cin mailing list
[email protected]
https://lists.cinelerra-gg.org/mailman/listinfo/cin

Reply via email to