rdp / ffmpeg-windows-build-helpers

Helper script for cross compiling some media tools for windows, like customizable ffmpeg.exe (with or without non-free components, etc), and some other bonuses like mplayer, mp4box, mxf, etc.
GNU General Public License v3.0
1.08k stars 414 forks source link

Build issue with zimg_git #634

Closed atee12 closed 2 years ago

atee12 commented 2 years ago

Hi,

I am building ffmpeg using window build helpers script, I am running on Widonw 10 Business and version 21H1. I am using the window WSL environment and trying to build it in /mnt/c/Temp folder.

Initially I thought I have user privilege issue, so have elevated it by >> sudo -s in my second time build.

**make[1]: Leaving directory '/mnt/c/Temp/ffmpeg-windows-build-helpers/sandbox/win64/zimg_git'

Making /mnt/c/Temp/ffmpeg-windows-build-helpers/sandbox/win64/zimg_git as $ PATH=/mnt/c/Temp/ffmpeg-windows-build-helpers/sandbox/cross_compilers/mingw-w64-x86_64/bin:$PATH make -j 16

make[1]: Entering directory '/mnt/c/Temp/ffmpeg-windows-build-helpers/sandbox/win64/zimg_git' CXX dummy.lo make[1]: No rule to make target 'graphengine/graphengine/cpuinfo.cpp', needed by 'graphengine/graphengine/libzimg_internal_la-cpuinfo.lo'. Stop. make[1]: Waiting for unfinished jobs.... make[1]: Leaving directory '/mnt/c/Temp/ffmpeg-windows-build-helpers/sandbox/win64/zimg_git' make: * [Makefile:4168: all-recursive] Error 1

In my first time build, I try to download it from the zimg_git to copy in the missing files. However, I wasn't able to continue when it ask for node.cpp, because I could not find one from zimg_git.

Btw I have make the choice number 3 for x64.

Do let me know if anyone of you encounter same issue.

Thanks!

Biswa96 commented 2 years ago

This issue was reported in upstream https://github.com/sekrit-twc/zimg/issues/180 and https://github.com/sekrit-twc/zimg/commit/e4acb3a29d7c45faca902b490a1585fe48063970

naabtog commented 2 years ago

At this moment just use sekrit-twc/zimg@51c3c7f to build.

james28909 commented 2 years ago

At this moment just use sekrit-twc/zimg@51c3c7f to build.

pardon me for my ignorance but how would i accomplish using this instead of the other? i tried to change the link in cross_compile_ffmpeg.sh but it still failed

james28909 commented 2 years ago

i used the v3.0 branch and it seems to have got past that part of the helper script. we will see if it completes though. hopefully once i get it compiled and yall have this issue sorted, it wont be that hard to update my ffmpeg with the updated changed to zimg. thanks

edit: i manually cloned the v3.0 repo into the correct folder zimg_git which is required by the helper script, then commented out do_git_checkout https://github.com/sekrit-twc/zimg.git in cross_compile_ffmpeg.sh, then reran the helper script and it didnt encounter this error. i do not know if it is a good or bad idea to do this or not, but i do know i got past the error by manually deleting everything in the zimg_git folder, then cloning the v3.0 branch into zimg_git then rerun the script. and i did not encounter this problem but it is still compiling. we will see if it works! LOL

lzy0702 commented 2 years ago

i used the v3.0 branch and it seems to have got past that part of the helper script. we will see if it completes though. hopefully once i get it compiled and yall have this issue sorted, it wont be that hard to update my ffmpeg with the updated changed to zimg. thanks

edit: i manually cloned the v3.0 repo into the correct folder zimg_git which is required by the helper script, then commented out do_git_checkout https://github.com/sekrit-twc/zimg.git in cross_compile_ffmpeg.sh, then reran the helper script and it didnt encounter this error. i do not know if it is a good or bad idea to do this or not, but i do know i got past the error by manually deleting everything in the zimg_git folder, then cloning the v3.0 branch into zimg_git then rerun the script. and i did not encounter this problem but it is still compiling. we will see if it works! LOL

Actually the changes happened after release 3.0.4, so this issue can be work around by adding a command to force the script to checkout to zimg v3.0.4.

build_libzimg() {
  do_git_checkout https://github.com/sekrit-twc/zimg.git zimg_git
  cd zimg_git
    git checkout dd4c4df
    generic_configure_make_install
  cd ..
}
naabtog commented 2 years ago

how would i accomplish using this instead of the other?

Remove zimg_git folder and turn this:

do_git_checkout https://github.com/sekrit-twc/zimg.git zimg_git

into this:

do_git_checkout https://github.com/sekrit-twc/zimg.git zimg_git 51c3c7f750c2af61955377faad56e3ba1b03589f

Re-run the script.

atee12 commented 2 years ago

I have tried to comment out and manually copy 3.0.0, 3.0.4 or https://github.com/sekrit-twc/zimg/commit/51c3c7f zimg_git, but I faced another issue with .ibtoolize as follow:

doing git checkout 813baea7a7bc28986e474541dd1080898fac14d7 M caca/caca.h M caca/caca0.h M caca/figfont.c M caca/string.c HEAD is now at 813baea img2txt: reject pictures with 0 bits per plane. fetched no code changes, not forcing reconfigure for that... Already made /mnt/c/Temp/ffmpeg-windows-build-helpers/sandbox/win64 libcaca_git ... Already made /mnt/c/Temp/ffmpeg-windows-build-helpers/sandbox/win64 bzip2-1.0.8 ... Already made /mnt/c/Temp/ffmpeg-windows-build-helpers/sandbox/win64 xz-5.2.5 ... Already made /mnt/c/Temp/ffmpeg-windows-build-helpers/sandbox/win64 libiconv-1.16 ... Already made /mnt/c/Temp/ffmpeg-windows-build-helpers/sandbox/win64 SDL2-2.0.12 ... doing git checkout origin/master HEAD is now at 3236fef attempt bump version fetched no code changes, not forcing reconfigure for that... doing git checkout 2cd279f HEAD is now at 2cd279f Merge pull request #81 from maximd33/master fetched no code changes, not forcing reconfigure for that... Already made /mnt/c/Temp/ffmpeg-windows-build-helpers/sandbox/win64 mfx_dispatch_git ... doing git checkout origin/master HEAD is now at 84483da Update forgotten version number in README fetched no code changes, not forcing reconfigure for that... configuring zimg_git (/mnt/c/Temp/ffmpeg-windows-build-helpers/sandbox/win64/zimg_git) as $ PKG_CONFIG_PATH=/mnt/c/Temp/ffmpeg-windows-build-helpers/sandbox/cross_compilers/mingw-w64-x86_64/x86_64-w64-mingw32/lib/pkgconfig PATH=/mnt/c/Temp/ffmpeg-windows-build-helpers/sandbox/cross_compilers/mingw-w64-x86_64/bin:$PATH ./configure --host=x86_64-w64-mingw32 --prefix=/mnt/c/Temp/ffmpeg-windows-build-helpers/sandbox/cross_compilers/mingw-w64-x86_64/x86_64-w64-mingw32 --disable-shared --enable-static all touch files already_configured* touchname= already_configured_a6ae3d53c87e4b7e77dcace9141907a1- config options --host=x86_64-w64-mingw32 --prefix=/mnt/c/Temp/ffmpeg-windows-build-helpers/sandbox/cross_compilers/mingw-w64-x86_64/x86_64-w64-mingw32 --disable-shared --enable-static ./configure autoreconf: Entering directory `.' autoreconf: configure.ac: not using Gettext autoreconf: running: aclocal --force -I m4 autoreconf: configure.ac: tracing autoreconf: running: libtoolize --copy --force libtoolize: putting auxiliary files in '.'. libtoolize: copying file './ltmain.sh' .ibtoolize: error: AC_CONFIG_MACRO_DIRS([m4]) conflicts with ACLOCAL_AMFLAGS=-I m4 autoreconf: libtoolize failed with exit status: 1 nice: ‘./configure’: No such file or directory failed configure zimg_git

I have attached the log for your reference. log.txt

@naabtog

into this:

do_git_checkout https://github.com/sekrit-twc/zimg.git zimg_git 51c3c7f750c2af61955377faad56e3ba1b03589f

Re-run the script.

if we are planning to checkout 3.0.4 of zimg_git it should be 808a9cf495cc2b9d9c6892165f250c799518ca0d

james28909 commented 2 years ago

im not sure, but i didnt change anything except what i mentioned in my original "workaround". the cross_compile_ffmpeg.sh had downloaded the non working current branch and then failed. so i deleted everything in that folder, then i cd to ../sandbox/win32/ and did git clone --branch v3.0 https://github.com/sekrit-twc/zimg zimg_git and then ran then commented out the line i mentioned above in my original work around.

as soon as it finishes compiling (2 days now) ill swap the version to 3.04 or hopefully they will have a fix for the current branch by then.

im not sure about the which version 808a9cf495cc2b9d9c6892165f250c799518ca0d or 51c3c7f750c2af61955377faad56e3ba1b03589f, but the way i did it, it worked flawless for me, and as soon as i can i will update that branch to current stable

EDIT: actually, about your problem.. i think i may have ran ./autogen.sh once i cloned v3.0 into zimg_git. that will generate a ./configure file, which is where youre failing? nice: ‘./configure’: No such file or directory failed configure zimg_git

but now i have this problem that every git checkout gives me a 'global config safe.path" prompting me to add it to a safe path or something. everytime i gdo that i have to restart the script, then it builds zimg every time for some reason. im hoping this will be done witihin a reasonable time because i have to come back to it every few mins to check if it stopped for me to add these safe.paths

james28909 commented 2 years ago

i used the v3.0 branch and it seems to have got past that part of the helper script. we will see if it completes though. hopefully once i get it compiled and yall have this issue sorted, it wont be that hard to update my ffmpeg with the updated changed to zimg. thanks edit: i manually cloned the v3.0 repo into the correct folder zimg_git which is required by the helper script, then commented out do_git_checkout https://github.com/sekrit-twc/zimg.git in cross_compile_ffmpeg.sh, then reran the helper script and it didnt encounter this error. i do not know if it is a good or bad idea to do this or not, but i do know i got past the error by manually deleting everything in the zimg_git folder, then cloning the v3.0 branch into zimg_git then rerun the script. and i did not encounter this problem but it is still compiling. we will see if it works! LOL

Actually the changes happened after release 3.0.4, so this issue can be work around by adding a command to force the script to checkout to zimg v3.0.4.

build_libzimg() {
  do_git_checkout https://github.com/sekrit-twc/zimg.git zimg_git
  cd zimg_git
    git checkout dd4c4df
    generic_configure_make_install
  cd ..
}

this worked great. thanks

naabtog commented 2 years ago

@atee12

if we are planning to checkout 3.0.4 of zimg_git it should be 808a9cf495cc2b9d9c6892165f250c799518ca0d

Version 3.0.4 says it is dd4c4df.

My approach was to find most recent healthy commit from master branch. Problems began when graphengine was introduced on Jun 21, 2022. Prior to date last commit was 51c3c7f.

It doesn't really matter which one to choose as long as it compiles, works and has needed functionality.

james28909 commented 2 years ago

its just hard because i dont have a lot of knowledge with github and im barely a novice at compiling (which is why i am using this script) and its hard for someone like me to get the end result that i want, i just need ffmpeg, ffprobe and ffplay, but it is compiling a plethora of things not documented in ffmpegs own build procedure website, please correct me if i am wrong though.

also, forgot to mention that now my wslg audio isnt working. when i try to use ffplay (a different version than i am compiling) i get errors about alsa cannot find audio device. but wslg doesnt use alsa does it? it uses pulseaudio sink, source and server. gui apps work fine, but no audio and only errors. it was working before as well because i am developing a discord bot that uses ffplay (to play music locally) and now that function is broken. not exactly sure when it broked but sure would like to restore it to its former glory

LigH-de commented 2 years ago

There is a similar issue in the media-autobuild suite. They clamped zimg temporarily to a commit before the introduction of graphedit. The above mentioned commit received a few comments for future fixes.

LigH-de commented 2 years ago

The graphengine directory branch in zimg appears to be only linked. MABS retrieved zimg with an empty graphengine directory. I wonder if git needs special parameters to follow this link and retrieve this directory's external content.

PS: MABS may need to add a submodule parameter call for git. Then it shall work there too.

naabtog commented 2 years ago

As of now, seems to be fixed upstream.

ngeojiajun commented 2 years ago

still not working. i need to empty the grapheditor directory from the zimg_git then rerun the git submodule update --init --recursive and then rerun the build script for it to work

naabtog commented 2 years ago

Yeah, still not working and the dev has closed an issue. @ngeojiajun is right, somehow submodules were not downloaded. Managed to build it without the need of removing graphengine subdir. Check this out (ignore the comment).

build_libzimg() {
  do_git_checkout https://github.com/sekrit-twc/zimg.git zimg_git
  cd zimg_git
# checkout submodules
  git submodule update --init --recursive
    generic_configure_make_install
  cd ..
}
LigH-de commented 2 years ago

https://github.com/m-ab-s/media-autobuild_suite/commit/81276d1aa64cd55e83410a274f0faca3b4aa9ad4 does it in a similar way, hope it can inspire you here.

BiatuAutMiahn commented 2 years ago

why not have --recurse-submodules in the do_git_checkout?

james28909 commented 2 years ago

why not have --recurse-submodules in the do_git_checkout?

will this work and compile with this? i sure would hate to nuke the current working libraries i have just to try this out haha.

also, i thought github had a function that marked a branch stable? how was it marked stable to begin with? or is it the script that is the problem? i sincerely doint know much about github or pull or git but when i manually build it with the right prefixes and config paths, it works, but not in the script (it has been over a week since i compiled though so a lot has probably changed since then.

also, what is the exact cause of the issue? does anyone know?