Summary: | media-video/ffmpeg-4.4.2[chromaprint] fails to compile after dav1d upgrade | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | ta2002 <throw_away_2002> |
Component: | Current packages | Assignee: | Gentoo Media-video project <media-video> |
Status: | UNCONFIRMED --- | ||
Severity: | normal | CC: | juippis |
Priority: | Normal | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | Linux | ||
See Also: |
https://bugs.gentoo.org/show_bug.cgi?id=625210 https://bugs.gentoo.org/show_bug.cgi?id=833821 |
||
Whiteboard: | |||
Package list: | Runtime testing required: | --- | |
Attachments: |
emerge --info
build log config log |
Description
ta2002
2022-08-02 10:31:35 UTC
Could you upload full build.log (and config.log) and paste emerge --info here? I don't know how much ffmpeg extends the *FLAGS list and how much is your own doing, but with "sane defaults" I can emerge ffmpeg[chromaprint] with dav1d-1.0.0. Created attachment 797023 [details]
emerge --info
Created attachment 797026 [details]
build log
Created attachment 797032 [details]
config log
Soo.. since chromaprint[tools] depends on ffmpeg and ffmpeg[chromaprint] depends on chromaprint I guess this is what's causing it. Try rebuilding chromaprint[-tools] and then re-emerging ffmpeg[chromaprint] and if it works you can do chromaprint[tools] again? I can compile ffmpeg with your USE flags just fine here. PS. consider switching to -march=native to handle all those extra flags... (In reply to Joonas Niilola from comment #5) > Try rebuilding chromaprint[-tools] and then re-emerging ffmpeg[chromaprint] > and if it works you can do chromaprint[tools] again? That did work (thanks). I don't understand, though, why upgrading dav1d affects chromaprint (as in why ffmpeg can't even find it). For the few other circular dependencies I can recall, once both of them get built with the desired use flags, upgrading or rebuilding one or the other usually doesn't cause any problems. > PS. consider switching to -march=native to handle all those extra flags... I generally like to explicitly specify the defaults, just so I can see them. :) (In reply to ta2002 from comment #6) > (In reply to Joonas Niilola from comment #5) > > Try rebuilding chromaprint[-tools] and then re-emerging ffmpeg[chromaprint] > > and if it works you can do chromaprint[tools] again? > > That did work (thanks). > > I don't understand, though, why upgrading dav1d affects chromaprint (as in > why ffmpeg can't even find it). For the few other circular dependencies I > can recall, once both of them get built with the desired use flags, > upgrading or rebuilding one or the other usually doesn't cause any problems. > > In future, please include the full build.log and emerge --info. Anyway, it's a nasty case of circular soname dependencies. Once dav1d gets upgraded, ffmpeg is immediately broken (which is not a problem for building ffmpeg itself), but chromaprint is linked to ffmpeg and that _is_ broken. ffmpeg when trying to get rebuilt fails because it tries to use chromaprint. The bug has been closed via the following commit(s): https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=9594b7d4552c7d4c3e8b4aaaa2660812f78ecec0 commit 9594b7d4552c7d4c3e8b4aaaa2660812f78ecec0 Author: Joonas Niilola <juippis@gentoo.org> AuthorDate: 2022-08-03 05:40:38 +0000 Commit: Joonas Niilola <juippis@gentoo.org> CommitDate: 2022-08-03 05:43:52 +0000 media-video/ffmpeg: add notes about chromaprint circular dependency - ffmpeg[chromaprint] depends on chromaprint, and chromaprint[tools] depends on ffmpeg, this causes breakages while updating. Closes: https://bugs.gentoo.org/862996 Bug: https://bugs.gentoo.org/625210 Bug: https://bugs.gentoo.org/833821 Signed-off-by: Joonas Niilola <juippis@gentoo.org> media-video/ffmpeg/ffmpeg-4.4.2.ebuild | 14 ++++++++++++++ media-video/ffmpeg/ffmpeg-5.0.1.ebuild | 14 ++++++++++++++ media-video/ffmpeg/ffmpeg-9999.ebuild | 14 ++++++++++++++ 3 files changed, 42 insertions(+) (In reply to Sam James from comment #7) > (In reply to ta2002 from comment #6) > > (In reply to Joonas Niilola from comment #5) > > > Try rebuilding chromaprint[-tools] and then re-emerging ffmpeg[chromaprint] > > > and if it works you can do chromaprint[tools] again? > > > > That did work (thanks). > > > > I don't understand, though, why upgrading dav1d affects chromaprint (as in > > why ffmpeg can't even find it). For the few other circular dependencies I > > can recall, once both of them get built with the desired use flags, > > upgrading or rebuilding one or the other usually doesn't cause any problems. > > > > > > In future, please include the full build.log and emerge --info. Anyway, it's > a nasty case of circular soname dependencies. > > Once dav1d gets upgraded, ffmpeg is immediately broken (which is not a > problem for building ffmpeg itself), but chromaprint is linked to ffmpeg and > that _is_ broken. ffmpeg when trying to get rebuilt fails because it tries > to use chromaprint. I don't like this idea but it's possible a minimal ffmpeg could be built with multibuild and LD_LIBRARY_PATH used to ensure the build succeeds. But it's a terrible idea and it'd bloat the ebuild even more, though it could be done conditionally based on whether the current library is broken (In reply to Joonas Niilola from comment #5) > Soo.. since chromaprint[tools] depends on ffmpeg and ffmpeg[chromaprint] > depends on chromaprint I guess this is what's causing it. Try rebuilding > chromaprint[-tools] and then re-emerging ffmpeg[chromaprint] and if it works > you can do chromaprint[tools] again? I can compile ffmpeg with your USE > flags just fine here. On another machine, I tried this, and it simply did not work at all. In fact, it screwed things up so much (chromaprint simply would not build with or without tools) that I had to recover by unmerging chromaprint, emerging ffmpeg[-chromaprint], emerging chromaprint again, and then emerging ffmpeg[chromaprint] (I think the build order broke ffmpeg in a different way). Going forward, I would only recommend completely unistalling chromaprint before rebuilding ffmpeg. |