Skip to content
This repository has been archived by the owner on Jan 11, 2023. It is now read-only.

conflicting decleration of c function in ffmpeg.h #101

Open
silverhikari opened this issue Mar 1, 2022 · 13 comments
Open

conflicting decleration of c function in ffmpeg.h #101

silverhikari opened this issue Mar 1, 2022 · 13 comments

Comments

@silverhikari
Copy link

Describe the bug
when trying to build audacium on arch based distros, there seems to be a confliction deceleration of c functions in the ffmpeg.h which seems to be cause by the ffmpeg version update to n5.0

To Reproduce
Steps to reproduce the behavior:

  1. attempt to build audacium
  2. build errors out
    Expected behavior
    builds successfully

Additional information (please complete the following information):

  • OS: Manjaro
  • Version:audacium-git latest

Additional context
here is the error log https://paste.ee/p/QGMgZ

@Fijxu
Copy link

Fijxu commented Mar 1, 2022

Same error here, this also affects tenacity

@silverhikari
Copy link
Author

i can also hazard a guess that this is the same issue that #100 is having

@AnErrupTion
Copy link
Contributor

Don't build on the experimental FFmpeg 5.0 branch, but build on master instead.

@silverhikari
Copy link
Author

i am confused, i am building with the master branch, the ffmpeg that is installed on the system is 5.0, so do i build it with the 5.0 branch to get it to work?

@AnErrupTion
Copy link
Contributor

Well, FFmpeg 5.0 is very experimental for now, so you shouldn't use it.

@MurdoMaclachlan
Copy link

I wouldn't call FFmpeg 5.0 experimental at all. It's a major release version and was released as stable back in January. They even added a note at the end of the release announcement: "We strongly recommend users, distributors, and system integrators to upgrade unless they use current git master." You don't strongly recommend people to update to very experimental versions.

@AnErrupTion
Copy link
Contributor

I mean, Audacium's update to FFmpeg 5.0 is very experimental. It's on a separate branch too becacuse it doesn't work yet.

@AnErrupTion
Copy link
Contributor

@silverhikari Do you have the ffmpeg package installed? This might be the cause of the error.

@silverhikari
Copy link
Author

@AnErrupTion as stated above the version of ffmpeg installed is 5.0

@silverhikari
Copy link
Author

silverhikari commented Mar 8, 2022

there is a package for ffmpeg 4 called ffmpeg4.4 but it has a separate include path at /usr/include/ffmpeg4.4 so i am wondering if there is a way to redirect pkg-config to look for that path instead of the original ffmpeg path

@ghost
Copy link

ghost commented Mar 9, 2022

usr/lib/ffmpeg4.4/pkgconfig/
usr/lib/ffmpeg4.4/pkgconfig/libavcodec.pc
usr/lib/ffmpeg4.4/pkgconfig/libavdevice.pc
usr/lib/ffmpeg4.4/pkgconfig/libavfilter.pc
usr/lib/ffmpeg4.4/pkgconfig/libavformat.pc
usr/lib/ffmpeg4.4/pkgconfig/libavutil.pc
usr/lib/ffmpeg4.4/pkgconfig/libpostproc.pc
usr/lib/ffmpeg4.4/pkgconfig/libswresample.pc
usr/lib/ffmpeg4.4/pkgconfig/libswscale.pc

the ffmpeg4.4 pkgconfig path

     PKG_CONFIG_PATH
             List of secondary directories where ‘.pc’ files are looked up.

     PKG_CONFIG_LIBDIR
             List of primary directories where ‘.pc’ files are looked up.

/usr/share/pkgconfig
/usr/lib/pkgconfig

seems to be where pkgconfig files are stored

PKG_CONFIG_LIBDIR=/usr/lib/ffmpeg4.4/pkgconfig:/usr/lib/pkgconfig yay -S audacium

"Package xproto was not found in the pkg-config search path.
Perhaps you should add the directory containing `xproto.pc'
to the PKG_CONFIG_PATH environment variable"

So this isn't how one should override the config path with multiple paths clearly it is a disaster;
I guess the way to do it would be to overlay the file system, but that requires root;

In general there probably is some kind of way to overlay the access to a file system without root(take a look at proot).

$ sudo mkdir /pkgconfig
$ sudo mount --bind /usr/lib/pkgconfig /pkgconfig
$ sudo mkdir /lower /workdir
$ sudo mount -t overlay overlay -o lowerdir=/usr/lib/ffmpeg4.4/pkgconfig:/pkgconfig,upperdir=/lower,workdir=/workdir /usr/lib/pkgconfig
$ yay -S audacium

:: audacium conflicts with audacity. Remove audacity? [y/N]
Success, but requires root;

In general from what I remember proot has an option to fake bind mounts, and that's used on android for root less bind mounts+chroot jails, as well as launching binaries in environments where exec() was partially restricted.

@AnErrupTion
Copy link
Contributor

@silverhikari You might want to try and uninstall the ffmpeg package, build audacium then reinstall the package if necessary, as this was the solution to the problem for a user at #100.

@lunelovehearn
Copy link

@silverhikari You might want to try and uninstall the ffmpeg package, build audacium then reinstall the package if necessary, as this was the solution to the problem for a user at #100.

removing ffmpeg breaks too many dependencies and packages on arch so its not a viable solution.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants