Mailinglist Archive: opensuse-packaging (174 mails)
| < Previous | Next > |
[opensuse-packaging] libffmpeg-api
- From: Cristian Morales Vega <cmorve69@xxxxxxxx>
- Date: Wed, 11 Mar 2009 19:01:48 +0100
- Message-id: <8235e6f40903111101u25a01115y4384eddda8b41880@xxxxxxxxxxxxxx>
Project home:jnweiger has a libffmpeg-api that is supposed to allow
linking against ffmpeg without having a real copy of it, so avoiding
patent problems. But it doesn't works and doesn't seems mantained
anymore.
The package right now transform the Packman package to obtain a new
package with all the headers and bogus libraries (from gcc -o empty.so
--shared empty.c). So packages depending of it compile but fail at
link.
So, what else it needs? I don't know too much about the linker and ELF
internals, I could use some help.
An "objcopy -R .text <lib>" to libavcodec, libavdevice, etc. should
remove all the codec code from them and from that point should not be
problems in including it in the OBS, I'm wrong? Perhaps only
libavcodec/format need it? I don't know if libavdevice has any
codec/patented code.
At this point it still doesn't works.
First, a "nm -D" shows that doing this some symbols change from 'D'
(initialized data section) to 'B' (BSS). Ok, makes sense... but that
would mean a problem? I can't think of any. Something more confusing
is a symbol (mm_flags from libavcodec) changing from 'B' to 'N'
(debugging symbol)... I don't really understand why, but neither I
know the effects.
And then there is the problem of undefined symbols. libav* also
depends of other libraries with codec code (libavcodec -> libx264).
Best solution?
a) 'objcopy -R .text' all the deps of ffmpeg. Simple, but "lot" of work.
b) If I'm not wrong at link time the linker doesn't really needs them,
or at least I don't know why it needs them. The final binary will be
the same, true? So, there is some way to stop the linker from asking
for it? Something like "--allow-shlib-undefined" that could be put in
the .pc files?
c) Something completly different.
--
To unsubscribe, e-mail: opensuse-packaging+unsubscribe@xxxxxxxxxxxx
For additional commands, e-mail: opensuse-packaging+help@xxxxxxxxxxxx
linking against ffmpeg without having a real copy of it, so avoiding
patent problems. But it doesn't works and doesn't seems mantained
anymore.
The package right now transform the Packman package to obtain a new
package with all the headers and bogus libraries (from gcc -o empty.so
--shared empty.c). So packages depending of it compile but fail at
link.
So, what else it needs? I don't know too much about the linker and ELF
internals, I could use some help.
An "objcopy -R .text <lib>" to libavcodec, libavdevice, etc. should
remove all the codec code from them and from that point should not be
problems in including it in the OBS, I'm wrong? Perhaps only
libavcodec/format need it? I don't know if libavdevice has any
codec/patented code.
At this point it still doesn't works.
First, a "nm -D" shows that doing this some symbols change from 'D'
(initialized data section) to 'B' (BSS). Ok, makes sense... but that
would mean a problem? I can't think of any. Something more confusing
is a symbol (mm_flags from libavcodec) changing from 'B' to 'N'
(debugging symbol)... I don't really understand why, but neither I
know the effects.
And then there is the problem of undefined symbols. libav* also
depends of other libraries with codec code (libavcodec -> libx264).
Best solution?
a) 'objcopy -R .text' all the deps of ffmpeg. Simple, but "lot" of work.
b) If I'm not wrong at link time the linker doesn't really needs them,
or at least I don't know why it needs them. The final binary will be
the same, true? So, there is some way to stop the linker from asking
for it? Something like "--allow-shlib-undefined" that could be put in
the .pc files?
c) Something completly different.
--
To unsubscribe, e-mail: opensuse-packaging+unsubscribe@xxxxxxxxxxxx
For additional commands, e-mail: opensuse-packaging+help@xxxxxxxxxxxx
| < Previous | Next > |