SlackwareThis Forum is for the discussion of Slackware Linux.
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
Distribution: slackware 15.0 64bit, 14.2 64 and 32bit and arm, ubuntu and rasbian
Posts: 495
Rep:
how to I handle ffmpeg recursive deps
I'm trying to compile ffmpeg from slackbuilds.org using sbopkg. In trying to install optional deps there are some recursive deps. to be precise
ffmpeg has optional dep of frei0r which has option dep of opencv which has optional dep of ffmpeg
ffmpeg also has optional dep vid.stab which has option dep transcode which requires ffmpeg
it also has optional dep mjpegtools which has optional dep libquicktime which has optional dep ffmpeg
in otherwords 3 recusrive deps on ffmpeg
how to I go about resolving them?
do I do a basic ffmpeg with only sdl2 and jack/jack2 then compile quicktime, transocode and opencv then recompile ffmpeg with all the deps, or is there some other preferred way of doing it. I am aiming for a pretty fully loaded ffmpeg
It would be nice if there was some formal instructions in the readme, but I'm sure many people have done it, and I thought I would try myself rather than just rely on eric's (alienbob's) pre-done package.
Most likely, you don't need to worry about the functionality of linking them back to ffmpeg (I did this exercise on my own a while back and determined it wasn't worth it). I'd probably echo the suggestion of marbangens to just worry about the deps of ffmpeg and don't worry about any of those deps who can optionally link to ffmpeg.
But if you really want to, you would just need to compile the offending programs multiple times. I'd probably compile all the deps for ffmpeg before building ffmpeg the first time. Then once ffmpeg is built and installed, you can start recompiling the packages that optionally depend on ffmpeg and work through the tree to recompile everything, ending with recompiling ffmpeg for a second time (possibly more depending on how the dependency trees are laid out, but I'm too lazy to figure out if you can do it all in one swoop).
Distribution: slackware 15.0 64bit, 14.2 64 and 32bit and arm, ubuntu and rasbian
Posts: 495
Original Poster
Rep:
I must admit it is a bad situation where (apart from compilers which obviously need an existing compiler to compile) there are recursive dependencies. transcode requires ffmpeg, it is not marked as optional.
my dependency tree is below.
Code:
ffmpeg 3.2.4
ASS=yes
BS2B=yes
CELT=yes
DC1394=yes
EBUR128=yes
FDK_AAC=yes
FLITE=yes
FREI0R=yes
GME=yes
GSM=yes
IEC61883=yes
ILBC=yes
LADSPA=yes
LAME=yes
MODPLUG=yes
NETCDF=yes
OPENAL=yes
OPENCORE=yes
OPENCV=yes
OPENSSL=yes
OPUS=yes
RTMP=yes
RUBBERBAND=yes
SCHROEDINGER=yes
SNAPPY=yes
SPEEX=yes
TESSERACT=yes
TWOLAME=yes
VIDSTAB=yes
WEBP=yes
X264=yes
X265=yes
XVID=yes
ZMQ=yes
ZVBI=yes
-requires
jack2? k
SDL2 k
libass 0.14.1 k
-optional
enca 1.19 k
-optional
recode 3.7beta2-2 -no deps k
perl-Cstools 3.42 -no deps k
perl-Unicode-Map 0.112 -no deps k
perl-Unicode-Map8 0.13 k
-requires
perl-Unicode-String 2.09 -no deps k
libbluray -not installed
libbs2b 3.1.0 -no deps k
celt -no deps k
chromaprint -not installed
libdc1394 2.2.5 -no deps k
decklink-sdk -not installed
libebur128 1.2.2-1 k
-requires
speex 1.2.0 -no deps k
libfdk-aac 2.0.0 -no deps k
flite 2.1-2 -no deps k
frei0r
-optional
opencv
-requires
numpy3 1.14.3 k
-optional
openBLAS 0.3.3-1 k (cpu specific package. use -cpu host in qemu instead of -cpu qemu64 or qemu32)
numpy 1.14.3 k
-optional
openBLAS k
-optional
qt5 k
libdc1394 -no deps k
ffmpeg ****recursive dependancy
hdf5 1.8.15_patch1 -no deps k
VTK -not installed
libwebp -no deps k
tesseract 3.04.00-1 k
-requires
leptonica 1.77.0 -no deps k
glog 0.3.5 -no deps k
apache-ant 1.9.9 k
-optional
openjdk k
openBLAS 0.3.3-1 k
openjdk 8u191_b12 k (alien)
gavl 1.4.0 -no deps k
libgme 0.6.2 -no deps k
gsm 1.0.13 -no deps k
libiec61883 1.2.0-2 -no deps k
libavc1394 0.5.4-1 -no deps k
libilbc 2.0.2-2 -no deps k
ladspa_sdk 1.13 -no deps k
lame -no deps k
libmodplug 0.8.9.0 -no deps k
netcdf 4.6.2-2 k
HDF4=yes
-requires
hdf5 -no deps k
-optional
hdf 4.2.14-2 -no deps k
OpenAL k
opencore-amr 0.1.5 -no deps k
opencv
opus k
rtmpdump 20151223_fa8646d -no deps k
rubberband 1.8.2-1 k
-requires
ladspa_sdk k
vamp-plugin-sdk 2.7.1 -no deps k
-optional
openjdk k -not using
schroedinger 1.0.11-1 -no deps k
snappy k
speex 1.2.0 k
tesseract k
twolame k
vid.stab
TRANSCODE=yes
-optional
transcode
FAAC=yes
LAME=yes
LIBDV=yes
LIBMPEG2=yes
MJPEGTOOLS=yes
QUICKTIME=yes
X264=yes
XVID=yes
-requires
ffmpeg ***** recursive dep
-optional
faac 1.28-3 k
-requires
libmp4v2 2.0.0-1 k
lame k
libdv 1.0.0-2 k
libmpeg2 0.5.1-1 k
mjpegtools 2.1.0
-optional
libquicktime
-optional
faac k
faad2 2.7-2 k
ffmpeg ***** recursive dep
lame k
libdv k
schroedinger k
x264 k
libdv k
SDL_gfx 2.0.25-1 k
libquicktime
x264 k
xvidcore k
libwebp k
x264 20170225 k
x265 2.9 k
xvidcore 1.3.5-1 k
zeromq 4.3.0-1 k
zvbi 0.2.35 k
If you really want to go through the hassle, you could first compile a minimal ffmpeg, then the packages that have circular dependencies, then recompile ffmpeg with the built circular dependencies.
But you should make build logs and read them for any optional dependencies that they might want that ffmpeg also uses and build them into ffmpeg before compiling the packages that depend on ffmpeg.
----------
Did I make it any easier or more complicated there?
transcode is a text-console utility for video stream processing.
Decoding and encoding is done by loading modules that are responsible for
feeding transcode with raw video/audio streams (import modules) and encoding
the frames (export modules). It supports elementary video and audio frame
transformations, including de-interlacing or fast resizing of video frames
and loading of external filters.
You really need that? Just compile them, and recompile those you're gonna use separate if you need them to link back to ffmpeg or vid.stab or whatever.
Distribution: slackware 15.0 64bit, 14.2 64 and 32bit and arm, ubuntu and rasbian
Posts: 495
Original Poster
Rep:
thanks folks, I'm trying the compile ffmpeg with no opts, then the recursive deps quicktime, mjpegyools, transcode, vid.stab, opencv and fie0r and then recompiling ffmpeg with (almost) all the options.
It seems to be behaving so far, although the transcode source was 404'ing so I found it elsewhere.
I won't get finished till tomorrow, and then until I get to audacity or vlc I won't know if it is behaving ok.
I'll mark this one solved.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.