O arquivo de controle do Debian “Fornece” não satisfaz a dependência

3

Usecase

O pacote gnome-core depende de gnome-shell-extensions >=3.14 . Eu gostaria de remover gnome-shell-extensions , mas para satisfazer a dependência, eu tenho que substituí-lo por um pacote fictício. Estou usando equivs para isso para criar um pacote simulado de substituição para gnome-shell-extensions .

Meu arquivo de controle equivs é o seguinte:

Section: misc
Priority: optional
Standards-Version: 3.9.2

Package: gnome-shell-extensions
Version: 1.0
Maintainer: Me Myself <[email protected]>
Provides: gnome-shell-extensions
Architecture: all
Description: gnome-shell-extensions dummy package to satisfy gnome dependencies

Problema

O pacote criado obviamente fornece gnome-shell-extensions , mas mesmo depois de instalá-lo, apt ainda reclama que gnome-core : depends on: gnome-shell-extensions (>= 3.14)

Eu entendo que o campo Version no arquivo de controle não tem nada a ver com isso, pois ele apenas marca a versão do pacote fictício.

Solução alternativa

Consegui falsificar com sucesso o pacote original usando o nome do pacote original, ou seja, Package: gnome-shell-extensions , mas prefiro manter o nome do pacote fictício.

Pergunta

O que devo fazer para satisfazer a dependência gnome-shell-extensions >=3.14 ao usar outro pacote que Provides: gnome-shell-extensions ?

    
por Jan 29.12.2016 / 19:37

1 resposta

4

Agora você deve poder usar o versioned Provides: :

Provides: gnome-shell-extensions (= 3.14.2-1)

Isto é suportado desde dpkg 1.17.11, então desde o Debian 8 (Jessie). A Política Debian não foi atualizada para levar essa possibilidade em consideração ainda , por isso, ainda afirma duas coisas que não estão mais corretas:

  • Provides: não pode ter uma restrição de versão;
  • relacionamentos com restrições de versão ignoram pacotes virtuais.

Bug # 761219 rastreia as atualizações da documentação.

    
por 29.12.2016 / 19:47