-
Notifications
You must be signed in to change notification settings - Fork 250
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
64 bit, Error running make when updating ffmpeg git–[/build/ffmpeg-git/ffbuild/common.mak:59: libavformat/libsrt.o] Error 1 #1725
Comments
I'm a newbie here, have been using this autobuild script only for a couple of weeks, but already faced a bunch of these "not our bug" issues with broken commits. |
no, the purpose of the suite is to use the git master. The purpose of the extra scripts is for doing personal customization such as freezing repos etc. |
ffmpeg_extra.sh #!/bin/bash
# Force to the suite to think the package has updates to recompile.
# Alternatively, you can use "touch recompile" for a similar effect.
touch custom_updated
# Commands to run before running configure
_pre_configure(){
TICKET=$(curl -sSL "https://trac.ffmpeg.org/ticket/8760?format=csv" | sed -n 's/.*,new,.*/open/p;s/.*,open,.*/open/p')
[ -n "$TICKET" ] &&
do_patch "https://gist.githubusercontent.com/ImportTaste/55f61077c9c310b613b16bc51341f31b/raw/0001-Replace-deprecated-libsrt-calls.patch" am ||
(do_print_progress "ffmpeg issue #8760 appears to be resolved, ffmpeg_extra.sh is likely no longer needed." &
rm $LOCALBUILDDIR/ffmpeg-git/0001-Replace-deprecated-libsrt-calls.patch)
} I probably could've added a check there to make sure libsrt is even being used, but if you're reading this issue you probably need it. |
@1480c1 actually, I'm legitimately curious, how would I detect whether or not this patch is needed? Say that the user isn't using anything that requires libsrt, or maybe they built something that used it before but now they're not. I'm thinking it would wrap everything in _pre_configure in its own if check so it wouldn't have to bother invoking curl for the ffmpeg issue. It would be really good to know for future reference, both in terms of m-ab-s and in terms of my scripts in general. |
For FFmpeg patches, I do not think there is a good way to detect such a thing since I do not know if those tickets get immediately closed or not after someone commits a patch to the FFmpeg repo. Best I can think of would be to download the patch, try a dry run, and if it succeeded, apply the local download patch, else don't do anything and hope that the patch would have been applied as is to the FFmpeg repo. If we are certain that the main "symbols" we need to check are the deprecated ones, we could do something like |
Oh, I was actually talking about how to detect if m-ab-s is going to compile ffmpeg with anything that needs libsrt. That aside, checking the code it's patching for the deprecated call is something I probably should've thought of. It only patches one file, so let's do something like this... #!/bin/bash
# Force to the suite to think the package has updates to recompile.
# Alternatively, you can use "touch recompile" for a similar effect.
touch custom_updated
# Commands to run before running configure
_pre_configure(){
[ "$(sed -nz 's/.*SRTO_STRICTENC.*/1/p' < libavformat/libsrt.c)" == "" ] &&
(do_print_progress "ffmpeg issue #8760 appears to be resolved, ffmpeg_extra.sh is likely no longer needed." &
rm -f $LOCALBUILDDIR/ffmpeg-git/0001-Replace-deprecated-libsrt-calls.patch) ||
do_patch "https://gist.githubusercontent.com/ImportTaste/55f61077c9c310b613b16bc51341f31b/raw/0001-Replace-deprecated-libsrt-calls.patch" am
} |
from build/media-suite_compile.sh, we only check Nice job using sed as a grep along with using the file as stdin instead of just passing the file as an argument. you might want to change the |
woops, good catch
Thanks, I've heard both techniques are very fast, though passing the file in as stdin is something I don't really understand the performance benefits of. |
I guess difference between letting bash do fopen and printf vs letting sed fopen etc, idk if there's a benefit to either other than that sed has access to the filename and size etc. |
Just for shiggles I decided to see if there was a way to do the sed thing with POSIX only, no GNU extensions. #!/bin/bash
# Force to the suite to think the package has updates to recompile.
# Alternatively, you can use "touch recompile" for a similar effect.
touch custom_updated
# Commands to run before running configure
_pre_configure(){
[ "$(sed --posix -n '1h;1!H;${g;/.*SRTO_STRICTENC.*/!d;s//1/p}' < libavformat/libsrt.c)" == "" ] &&
(do_print_progress "ffmpeg issue #8760 appears to be resolved, ffmpeg_extra.sh is likely no longer needed." &
rm -f $LOCALBUILDDIR/ffmpeg-git/0001-Replace-deprecated-libsrt-calls.patch) ||
do_patch "https://gist.githubusercontent.com/ImportTaste/55f61077c9c310b613b16bc51341f31b/raw/0001-Replace-deprecated-libsrt-calls.patch" am
} There's also |
I'm trying to apply the patch but it's failing, am I doing something wrong? logs.zip
Used #1725 (comment) and #1725 (comment) separately. |
Still works fine for me. Try deleting your build\ffmpeg-git directory. |
@ImportTaste @hydra3333 can one of you guys try applying this patch during the FFmpeg stage? https://gist.github.com/1480c1/e6cac062d5f07306f763a9fc5a7e0056 if it works fine, I will try to see if I can send it to ffmpeg-devel ml, but no guarantee since I haven't done that before. |
I swapped out my patch with yours and it works fine. |
It seems @mypopydev has already started working on it https://patchwork.ffmpeg.org/project/ffmpeg/patch/1594533783-28695-1-git-send-email-mypopydev@gmail.com/ I will reply to that to say it's working |
I don't understand. How to apply those patches or should I keep waiting until new notice? |
|
I mean what file should edit to add that code and what is its directory. |
I also |
Well, I achieved apply the patch but now I have this other error
|
I had a similar problem. Just delete ffmpeg-git folder |
I have already tried several times deleting folder but still the same problem. |
In fact I have it configured like this, so I think that error must come from elsewhere. I have seen in other threads of same error and possible solutions but none works. |
The problem is glslang per #1734, assumedly you chose a full ffmpeg build, and you’ll have to comment out |
Getting @1480c1 This appears to be a common issue? Tried both #1725 (comment) and #1725 (comment) |
does it print out which patch and where does it print out? |
During ffmpeg and glslang: logs.zip |
you no longer need ffmpeg_extra.sh for applying the patch since the one in patchwork is now applied by default I think the ffmpeg_extra.sh is causing a conflict |
Removed the patch and getting the same issue
logs.zip |
Ah I see, you are using ffmpeg's n4.1.4 tag. your specific use case cannot be supported in general since all of the patches following afterward are based on FFmpeg's master branch |
you may need to try to rebase the patches yourself and use them locally instead |
Would I have to rebase it for every library being used? Is there a general guide for rebasing the patches for ffmpeg? |
Probably not, just the ones that are failing, else you would need to remove them. to first start off, you should just remove the patches that are failing from the compile script and see if you can compile successfully, there's a chance that you might not need certain patches because that patch only implements functionality or changes necessary from a later commit |
if you still can't compile and you are sure you need the patch, if you have git (assuming you might since it comes with the suite) and you're proficient enough to understand what might be conflicting, you could try cloning the repo and checking out the branch or tag and using |
Got it - bit of a pain. Right now is the issue from |
just the glslang one, remove do_patch "https://gist.githubusercontent.com/1480c1/18f251a03b7657241c98cc8baf93a223/raw/0001-glslang-add-MachineIndependent.patch" am from the compile script |
Didn't work: logs. It still looks like the issue is from libsrt (I removed the extra.sh, but not the in-suite patch). Would it be safe to assume that the best way is to hope Haivision or FFmpeg fix this? |
try removing the |
Fixed the new GPAC patch: logs.zip So this is with removing
|
If it's not one thing it's another, but there doesn't seem to be a single day that there are no fails.
|
@kenichi512 #1713 |
for gpac, it seems he may have broken it 7 hours ago gpac/gpac@20e9b1d |
logs.zip
ab-suite.make.log
The text was updated successfully, but these errors were encountered: