Вот что я придумал как продолжение ответа Василия.Он эффективно делает то, что делает dh_installdeb, но без автоматического добавления /etc
файлов.Таким образом, вы снова получаете полный контроль над тем, какие файлы считаются conffiles, а какие нет.
override_dh_installdeb:
dh_installdeb
@echo "Recreating conffiles without auto-adding /etc files"
@for dir in ${CURDIR}/debian/*/DEBIAN; do \
PKG=$$(basename $$(dirname $$dir)); \
FILES=""; \
if [ -f ${CURDIR}/debian/conffiles ]; then \
FILES="${CURDIR}/debian/conffiles"; \
fi; \
if [ -f ${CURDIR}/debian/$${PKG}.conffiles ]; then \
FILES="$$FILES ${CURDIR}/debian/$${PKG}.conffiles"; \
fi; \
if [ -n "$$FILES" ]; then \
cat $$FILES | sort -u > $$dir/conffiles; \
elif [ -f $$dir/conffiles ]; then \
rm $$dir/conffiles; \
fi; \
done
(Конечно, используйте вкладки REAL, если вставляете в файл правил).
Этот ответиспользует BASH (или / bin / sh, который либо связан с BASH, либо является его вариантом).Может быть способ достичь этого, используя только внутренние команды makefile, но я не очень хорошо с ними справляюсь.
Это должно работать даже при сборке нескольких двоичных пакетов из одного источника, и при этом учитывается простой debian/conffiles
, а также для конкретного пакета debian/${pkg}.conffiles
.