A maneira mais fácil é usar pacotes alternativos no campo Build-Depends
, por exemplo, %código%. Isso tem várias peculiaridades, a primeira dependência que satisfaz o resolvedor de dependências será escolhida. Você também pode usar Dependências de compilação com versão (por exemplo, se souber que algumas versões anteriores de pacotes estavam incompletas), por exemplo, Build-Depends: dh-python | python-central, [...]
.
A maneira mais complicada se você precisa Depender do pacote que não existe em versões anteriores (ou posteriores) é adicionar Build-Depends: dh-python (>= <correct_version) | python-central
como uma dependência em vez de apenas base-files (<< <version>) | real-package
e ajustar o real-package
para corresponder ao versão no próximo lançamento. Se você precisa de um pacote no sistema mais antigo, mas não no novo, você usaria <version>
e usaria base-file (>= <version>) | real-package
do lançamento do Ubuntu, onde você não precisa do <version>
.
Por exemplo, para backporting real-package
para o Ubuntu 12.04, mudei apache2
para libnghttp2-dev
.
Eu adicionarei base-files (<< 7.2~) | libnghttp2-dev
snippet do meu backport do MySQL-5.6:
DPKG_VENDOR ?= $(shell dpkg-vendor --query Vendor | tr [A-Z] [a-z])
DEB_DISTRIBUTION = $(shell dpkg-parsechangelog | sed -ne 's/^Distribution: //p')
ENABLE_SYSTEMD = yes
ifeq (ubuntu,$(DPKG_VENDOR))
ifeq ($(DEB_DISTRIBUTION),$(filter $(DEB_DISTRIBUTION),precise))
$(warning Disabling systemd on $(DPKG_VENDOR) $(DEB_DISTRIBUTION))
ENABLE_SYSTEMD = no
endif
endif
[...]
%:
ifeq (yes,$(ENABLE_SYSTEMD))
dh $@ --parallel --with systemd
else
dh $@ --parallel
endif
e d/rules
tem
Build-Depends: [...], dh-systemd (>= 1.5) | base-files (<< 7.2ubuntu5~)