Installing OpenShot causes other packages to be removed

Created by Helen McCall
Keywords:
remove removal removal packages ffmpeg

When installing OpenShot and its dependencies, some other packages are removed.

The answer given by TJ follows:

The reason for the removal of packages is two-fold.

First, OpenShot through MLT depends on very recent versions of the ffmpeg core libraries (libavcodec, libavutils, libavformat, etc.).

Second, the existing Debian/Ubuntu ffmpeg packages come in two versions:
 1. unrestricted (does not contain several key codecs that *may* be subject to legal issues in some jurisdictions)
 2. restricted (contains the codecs that may be subject to legal issues in some jurisdictions)

The ffmpeg library packages in Debian and Ubuntu are by default the "unrestricted" packages - they have key codecs missing. There are alternative packages containing the possibly restricted codecs in 'Universe'. For Jaunty the package names contain the word "-unstripped-" and on Karmic the word "-extra-".

OpenShot via MLT requires and therefore depends on the potentially restricted packages (the -unstripped- or -extra- packages).

As a result the ffmpeg library packages I maintain Conflict/Replace the 'unrestricted' packages. This will cause the 'unrestricted' packages to be removed and replaced by the restricted '-unstripped-" or "-extra-" packages.

As a side-effect of the removal of the restricted libraries any application that declares a Depends on those unrestricted packages will be a candidate for removal, but ONLY if it does not declare alternative Depends on the restricted packages.

In other words, if an application's "debian/control" file only contains:

 Depends: libavdevice52, libavfilter0, libavformat52, ...

then removal of the libavdevice52 package due to its replacement by libavdevice-unstripped-52 will cause the removal of this application since the application does not declare it can also Depend on the -unstripped- package, as this entry would allow:

 Depends: libavdevice52 | libavdevice-unstripped-52, libavfilter0 | libavfilter-unstripped-0, libavformat52 | libavformat-unstripped-52 ...

Everyone is suffering in one way or another if they depend on ffmpeg. It hasn't been helped that Debian and Ubuntu have different legal views on which codecs might be legally restricted, or that the package names and contents have changed a couple of times - even now I'm not sure I fully understand all the disruptive changes that have happened.