Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

equivs dummy package version number syntax

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.

like image 940
Marijn Avatar asked Oct 24 '25 03:10

Marijn


1 Answers

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

like image 150
Jan Avatar answered Oct 27 '25 04:10

Jan



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!