Package Maintenance: Question about dependencys
Hi,
Well, just one simple question: If I upgrade a library, like libbluray, is it necessary recompiling all the programs which depend of it? I have the MPV installed on my system, which depends of FFMPEG which was compiled with libbluray support. The libbluray was updated so should I recompile FFMPEG and MPV or is not necessary? Thank You |
Based on my own experience with Slackware, I can respond with a resounding "It depends."
The best thing to do is to test the applications one at a time (I'd start with ffmpeg) and see whether they experience any issues. |
frankbell speaks the truth. It usually is dependent on whether the developers bump the ABI version or not. If the ABI version stays the same, then the upgraded library shouldn't affect your current programs (shouldn't... but things still happen). Sometimes, even if the ABI is bumped, then it may still work with previous versions, depending on how much the developer has changed and whether the library's file(s) the program links to have changed. Sometimes you can fix things with a symlink (although, this is not recommended, because then you have random symlinks on your filesystem that are not tracked by Slackware's package manager.
This is one (of the many) reasons I like using slackrepo to manage my SBo library of packages. If a dependency is updated, it will recompile its parent applications to try and minimize issues that could occur by updating. There might be other tools that handle this as well, although, I haven't looked into them. |
Quote:
Actually, there's something that does it for the base system too. It's called Patrick Volkerding. ;) |
Always yes if the program uses the static library (in this case some library code is copied into the program executable file at compile time).
|
Usually not.
But FFMPEG is an exception where you usually do need to recompile the programs that depend on it. |
If pkgA requires pkgB requires pkgC, and pkgC is updated, and all of them are installed through SBo packages, then
Footnote 1. pkgB needs a rebuild if the "soname" of a shared library in pkgC has changed. It's a lot of work to find out whether this has happened, or if pkgC is statically linked, or only a build-time dep, or only invoked through the command line, so it's safer to just do the rebuild. Footnote 2. SBo rules for REQUIRES in the .info files say that the list of deps can be simplified, and if both pkgA and pkgB require pkgC, then pkgC should not be in the REQUIRES of pkgA. Unfortunately this makes it impossible to know whether pkgA needs a rebuild when pkgC is updated. If you don't want to work through all those decisions every time there's an update, the safe choice is always to rebuild both pkgA and pkgB. |
Quote:
|
Quote:
|
All times are GMT -5. The time now is 07:58 PM. |