I try to create a dummy package with equivs that provides the python-oauthlib package for apt. The problem is that most dependency issues are resolved, except for one package that has a version requirement. My question is: how to specify the version number in the Provides field?
I did the following:
Create a control file with
equivs-control python-oauthlib
Edit the control file as follows:
Section: misc
Priority: optional
Standards-Version: 3.9.2
Package: python-oauthlib-dummy
Version: 0.6.1
Provides: python-oauthlib
Architecture: all
Description: Dummy Python OAuthlib package
Build the package:
equivs-build python-oauthlib
Install the package:
sudo dpkg -i python-oauthlib-dummy_0.6.1_all.deb
Before installing the package, apt-get resulted in the following errors:
The following packages have unmet dependencies:
 oneconf-common : Depends: python-oauthlib but it is not installed
 python-oneconf : Depends: python-oauthlib but it is not installed
 python-piston-mini-client : Depends: python-oauthlib but it is not installed
 python-ubuntu-sso-client : Depends: python-oauthlib (>= 0.3.5) but it is not installed
After installing the package, all dependency errors disappear, except for the last one:
The following packages have unmet dependencies:
 python-ubuntu-sso-client : Depends: python-oauthlib (>= 0.3.5)
This makes sense, because I did not specify the version number for Provides in the control file. What is the right syntax to do that? I tried various things, such as Provides: python-oauthlib-0.6.1, Provides: python-oauthlib-0.6-1, Provides: python-oauthlib-0.6, Provides: python-oauthlib (= 0.6.1) but nothing worked. Instead, all of the original unmet dependencies returned, with an additional W: Ignoring Provides line with DepCompareOp for package python-oauthlib from apt.
I know that the version number of the dummy package itself is not related, I just picked the same number to clarify that it is a dummy that provides this version.
Background: python-oauthlib-0.6.1 was installed at some point by apt. I wanted to install python-twitter using pip. This requires OAuthlib 1.0.3. Pip could not upgrade oauthlib because it was 'owned by the OS'. Therefore I wanted to uninstall oauthlib in apt, using apt-get remove python-oauthlib. This did not work, because a number of packages depend on oauthlib through a chain of other dependencies, including software-center and others that I did not want to uninstall. Therefore I removed the package using dpkg -r --force-depends. This did allow me to succesfully install oauthlib and python-twitter in pip, but it rendered apt unusable due to the missing dependencies. To solve this I am now trying to install the dummy package.
The Providesfield may now carry a version number:
 Provides: gnome-shell-extensions (= 3.14.2-1)
This is supported since dpkg 1.17.11, so since Debian 8 (Jessie).
Answer from here: https://unix.stackexchange.com/questions/333603/debian-control-file-provides-does-not-satisfy-dependency
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With