Closed LigH-de closed 1 year ago
Unfortunately it does not build well when disable_json is commented out.
The library builds but tools fail; may it be possible that building tools can be skipped?
There is an option in meson_options.txt: option('built_tools', type: 'boolean', value: true)
- could be tested.
Also there is an option option('builtin_cjson', type: 'boolean', value: false)
- I wonder if it might be an alternative to disable_json
?
I see that "-Dbuilt_tools=false"
is added when standalone tools are disabled in general.
So I will instead test
if enabled librist && do_vcs "$SOURCE_REPO_LIBRIST"; then
do_patch "https://raw.githubusercontent.com/m-ab-s/mabs-patches/master/librist/0001-Workaround-fixes-for-cJSON-symbol-collision.patch" am
do_uninstall include/librist "${_check[@]}"
- extracommands=("-Ddisable_json=true")
+ extracommands=("-Dbuiltin_cjson=false")
[[ $standalone = y ]] || extracommands+=("-Dbuilt_tools=false")
do_mesoninstall global -Dhave_mingw_pthreads=true -Dtest=false "${extracommands[@]}"
do_checkIfExist
fi
OK, not the "unknown option" error, but failing with a different message.
../tools/srp_shared.c: In function 'user_verifier_lookup':
../tools/srp_shared.c:156:28: error: 'struct _stat32' has no member named 'st_mtim'; did you mean 'st_mtime'?
156 | *generation = (buf.st_mtim.tv_sec << 32) | buf.st_mtim.tv_nsec;
| ^~~~~~~
| st_mtime
../tools/srp_shared.c:156:56: error: 'struct _stat32' has no member named 'st_mtim'; did you mean 'st_mtime'?
156 | *generation = (buf.st_mtim.tv_sec << 32) | buf.st_mtim.tv_nsec;
| ^~~~~~~
| st_mtime
Missed this:
┌ librist git ........................................ [Recently updated]
0001-Workaround-fixes-for-cJSON-symbol-collision.patch
Patch could not be applied with `git am`. Continuing without patching.
Guess it needs a rebase.
BTW: What is the syntax to add a commit hash to the git URL of librist to downgrade to an earlier version, to be able to build the rest in the meantime?
media-suite_deps.sh
SOURCE_REPO_LIBRIST=https://code.videolan.org/rist/librist.git
??? c917e970be95658411e249f6e4e7fc1eeea6fe99
I tried SOURCE_REPO_LIBRIST=https://code.videolan.org/rist/librist.git#commit=c917e970
or SOURCE_REPO_LIBRIST=https://code.videolan.org/rist/librist.git#commit=c917e970be95658411e249f6e4e7fc1eeea6fe99
but it did not work:
Running git clone for librist...
fatal: Not a valid object name
Running git update for librist...
So I must have misunderstood the implementation and syntax of do_vcs().
Ran into the same problem just now logs.zip
03:43:19 ┌ librist git .............................. [Recently updated]
0001-Workaround-fixes-for-cJSON-symbol-collision.patch
Patch could not be applied with `git am`. Continuing without patching.
03:43:19 ├ Running meson...
Likely error (tail of the failed operation logfile):
meson setup .. --default-library=static --buildtype=rele
[logs.zip](https://github.com/m-ab-s/media-autobuild_suite/files/11973785/logs.zip)
ase --prefix=/local64 --backend=ninja --bindir=bin-global -Dhave_mingw_pthreads=true -Dtest=false -Ddisable_json=true
The Meson build system
Version: 1.1.1
Source dir: C:/Download/Media-Autobuild/build/librist-git
Build dir: C:/Download/Media-Autobuild/build/librist-git/build-64bit
Build type: native build
../meson.build:6:0: ERROR: Unknown options: "disable_json"
@1480c1 offered a patch upstream which is waiting for merge...
@LigH-de can you try using this branch to see if they compile? I won't have access to my laptop for a while so I cannot test atm
https://github.com/1480c1/media-autobuild_suite/tree/test_branch
Trying now ... 32 bit passed ... 64 bit too.
Can confirm, test_branch passed without any issues for me.
Ran into the same issue.... Is there any way out
21:10:32 ┌ librist git .............................. [Recently updated]
0001-Workaround-fixes-for-cJSON-symbol-collision.patch
Patch could not be applied with `git am`. Continuing without patching.
21:10:35 ├ Running meson...
Likely error (tail of the failed operation logfile):
meson setup .. --default-library=static --buildtype=release --prefix=/local64 --backend=ninja --bindir=bin-global -Dhave_mingw_pthreads=true -Dtest=false -Ddisable_json=true -Dbuilt_tools=false
The Meson build system
Version: 1.1.1
Source dir: C:/abbuild/build/librist-git
Build dir: C:/abbuild/build/librist-git/build-64bit
Build type: native build
../meson.build:6:0: ERROR: Unknown options: "disable_json"
A full log can be found at C:/abbuild/build/librist-git/build-64bit/meson-logs/meson-log.txt
meson failed. Check C:/abbuild/build/librist-git/build-64bit/ab-suite.meson.log
This is required for other packages, so this script will exit.
21:10:38 Creating diagnostics file...
There will be when @1480c1 returns to merge his test branch. Please read a few comments above yours.
I ran the test branch two times
First I got the error
ERROR: srt >= 1.3.0 not found using pkg-config
Then i substituted the srt-git with version 1.3.0 and again ran the test branch branch then I got this error
FFmpeg and related apps will depend on CUDA SDK to run!
14:57:29 ├ Compiling static FFmpeg...
14:57:31 ├ Running configure...
15:07:25 ├ Running make...
Likely error (tail of the failed operation logfile):
C:/ffmpeg/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/13.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:/ffmpeg/msys64/mingw64/lib/libcjson.a(cJSON.c.obj):(.text+0x4560): multiple definition of `cJSON_CreateFloatArray'; C:/ffmpeg/local64/lib/libvulkan.a(cJSON.c.obj):cJSON.c:(.text+0x36f0): first defined here
C:/ffmpeg/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/13.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:/ffmpeg/msys64/mingw64/lib/libcjson.a(cJSON.c.obj):(.text+0x46d0): multiple definition of `cJSON_CreateDoubleArray'; C:/ffmpeg/local64/lib/libvulkan.a(cJSON.c.obj):cJSON.c:(.text+0x37f0): first defined here
C:/ffmpeg/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/13.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:/ffmpeg/msys64/mingw64/lib/libcjson.a(cJSON.c.obj):(.text+0x4840): multiple definition of `cJSON_CreateStringArray'; C:/ffmpeg/local64/lib/libvulkan.a(cJSON.c.obj):cJSON.c:(.text+0x38e0): first defined here
C:/ffmpeg/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/13.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:/ffmpeg/msys64/mingw64/lib/libcjson.a(cJSON.c.obj):(.text+0x49b0): multiple definition of `cJSON_Duplicate'; C:/ffmpeg/local64/lib/libvulkan.a(cJSON.c.obj):cJSON.c:(.text+0x3a10): first defined here
C:/ffmpeg/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/13.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:/ffmpeg/msys64/mingw64/lib/libcjson.a(cJSON.c.obj):(.text+0x4b60): multiple definition of `cJSON_Minify'; C:/ffmpeg/local64/lib/libvulkan.a(cJSON.c.obj):cJSON.c:(.text+0x3ba0): first defined here
C:/ffmpeg/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/13.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:/ffmpeg/msys64/mingw64/lib/libcjson.a(cJSON.c.obj):(.text+0x5020): multiple definition of `cJSON_malloc'; C:/ffmpeg/local64/lib/libvulkan.a(cJSON.c.obj):cJSON.c:(.text+0x40): first defined here
C:/ffmpeg/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/13.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:/ffmpeg/local64/lib/libSvtVp9Enc.a(EbEncHandle.c.obj):EbEncHandle.c:(.bss+0x240): multiple definition of `vpx_idct16x16_256_add'; C:/ffmpeg/local64/lib/libvpx.a(vpx_dsp_rtcd.c.o):vpx_dsp_rtcd.c:(.bss+0x240): first defined here
C:/ffmpeg/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/13.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:/ffmpeg/local64/lib/libSvtVp9Enc.a(EbEncHandle.c.obj):EbEncHandle.c:(.bss+0x430): multiple definition of `vpx_comp_avg_pred'; C:/ffmpeg/local64/lib/libvpx.a(vpx_dsp_rtcd.c.o):vpx_dsp_rtcd.c:(.bss+0x598): first defined here
collect2.exe: error: ld returned 1 exit status
make: *** [/build/ffmpeg-git/Makefile:133: ffmpeg_g.exe] Error 1
make failed. Check C:/ffmpeg/build/ffmpeg-git/build-static-64bit/ab-suite.make.log
This is required for other packages, so this script will exit.
15:35:26 Creating diagnostics file...
logs.zip ab-suite.make.log— FFmpeg
I already mentioned in this issue that libSvtVp9 fails in this case. There is a separate patch which failed loading in the main branch, it seems to load in the test branch but does not compile correctly. So I disabled it in ffmpeg-options.txt for the time testing.
Having multiple definitions of cJSON with Vulkan is not one of my issues, but I am quite sure that using cJSON in librist was disabled in my workflow...
I already mentioned in this issue that libSvtVp9 fails in this case. There is a separate patch which failed loading in the main branch, it seems to load in the test branch but does not compile correctly. So I disabled it in ffmpeg-options.txt for the time testing.
I'm a rookie. Where can I find ffmpeg-options.txt I tried but didn't succeed.
This file is only created when you configure the suite so that you want to use a custom list of linked libraries, instead of the presets Light / Zeranoe / Full, that happens when you select 1 in this moment:
Choose ffmpeg and mpv optional libraries?
1 = Yes
2 = No (Light build)
3 = No (Mimic Zeranoe)
4 = No (All available external libs)
In the media-autobuild_suite.ini it is the option ffmpegChoice=1
(if ffmpeg-options.txt does not exist yet when you run the suite the next time, it will be generated according to your previous selection of libraries, then you will get a chance to edit it manually before the suite continues to build).
In the media-autobuild_suite.ini it is the option
ffmpegChoice=1
(if ffmpeg-options.txt does not exist yet when you run the suite the next time, it will be generated according to your previous selection of libraries, then you will get a chance to edit it manually before the suite continues to build).
Thank You for your assistance... I followed you directions.
I removed libsvtvp9
, libvpx
and vulkan
from ffmpeg-options.txt but still it showing errors. I tried from both test branch and main build.
┌ ffmpeg git .................................. [Files missing]
13:26:37 ├ Changing options to comply to nonfree...
FFmpeg and related apps will depend on CUDA SDK to run!
13:26:55 ├ Compiling static FFmpeg...
13:26:58 ├ Running uninstall...
13:26:58 ├ Running configure...
13:39:08 ├ Running make...
Likely error (tail of the failed operation logfile):
C:/ffmpeg/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/13.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:/ffmpeg/msys64/mingw64/lib/libcjson.a(cJSON.c.obj):(.text+0x43f0): multiple definition of `cJSON_CreateObject'; C:/ffmpeg/local64/lib/libvulkan.a(cJSON.c.obj):cJSON.c:(.text+0x35c0): first defined here
C:/ffmpeg/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/13.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:/ffmpeg/msys64/mingw64/lib/libcjson.a(cJSON.c.obj):(.text+0x4430): multiple definition of `cJSON_CreateIntArray'; C:/ffmpeg/local64/lib/libvulkan.a(cJSON.c.obj):cJSON.c:(.text+0x3600): first defined here
C:/ffmpeg/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/13.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:/ffmpeg/msys64/mingw64/lib/libcjson.a(cJSON.c.obj):(.text+0x4560): multiple definition of `cJSON_CreateFloatArray'; C:/ffmpeg/local64/lib/libvulkan.a(cJSON.c.obj):cJSON.c:(.text+0x36f0): first defined here
C:/ffmpeg/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/13.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:/ffmpeg/msys64/mingw64/lib/libcjson.a(cJSON.c.obj):(.text+0x46d0): multiple definition of `cJSON_CreateDoubleArray'; C:/ffmpeg/local64/lib/libvulkan.a(cJSON.c.obj):cJSON.c:(.text+0x37f0): first defined here
C:/ffmpeg/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/13.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:/ffmpeg/msys64/mingw64/lib/libcjson.a(cJSON.c.obj):(.text+0x4840): multiple definition of `cJSON_CreateStringArray'; C:/ffmpeg/local64/lib/libvulkan.a(cJSON.c.obj):cJSON.c:(.text+0x38e0): first defined here
C:/ffmpeg/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/13.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:/ffmpeg/msys64/mingw64/lib/libcjson.a(cJSON.c.obj):(.text+0x49b0): multiple definition of `cJSON_Duplicate'; C:/ffmpeg/local64/lib/libvulkan.a(cJSON.c.obj):cJSON.c:(.text+0x3a10): first defined here
C:/ffmpeg/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/13.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:/ffmpeg/msys64/mingw64/lib/libcjson.a(cJSON.c.obj):(.text+0x4b60): multiple definition of `cJSON_Minify'; C:/ffmpeg/local64/lib/libvulkan.a(cJSON.c.obj):cJSON.c:(.text+0x3ba0): first defined here
C:/ffmpeg/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/13.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:/ffmpeg/msys64/mingw64/lib/libcjson.a(cJSON.c.obj):(.text+0x5020): multiple definition of `cJSON_malloc'; C:/ffmpeg/local64/lib/libvulkan.a(cJSON.c.obj):cJSON.c:(.text+0x40): first defined here
collect2.exe: error: ld returned 1 exit status
make: *** [/build/ffmpeg-git/Makefile:133: ffmpeg_g.exe] Error 1
make failed. Check C:/ffmpeg/build/ffmpeg-git/build-static-64bit/ab-suite.make.log
This is required for other packages, so this script will exit.
13:46:09 Creating diagnostics file...
Attach C:\ffmpeg\build\logs.zip to the GitHub issue.
Compiling with librist worked for me today with the default suite sources. (Problems with libsvtvp9 are a different issue.)
@Matchstick001 - in case of despair, try to purge the directories containing the sources of the related projects below build. No guarantee anyway...
@LigH-de Yeah, it worked for me a day before yesterday with the default suite (btw I don't know how it worked I did many trials, substitutions of main branch as well test branch) I removed vpx, svtvp9... It got compiled with Vulkan, suddenly CUDA started giving me errors I reinstalled it and finally got succeeded after more than a week. BTW thanks for you assistance.
Yesterday Gijs Peskens wrote:
I'll fix tonight. Indeed looks like a typo. Thx!
Hmm, not yet...
Sorry :/ Very very busy with work & other commitments. @1480c1 is reworking his patch, I'll merge it when we get it.
ab-suite.meson.log
logs.zip