X-Git-Url: http://andersk.mit.edu/gitweb/config-package-dev.git/blobdiff_plain/567091347bd3fe6087395e06f4d50dd24ff0571c..HEAD:/check-files.mk diff --git a/check-files.mk b/check-files.mk index d43b0a2..3675f13 100644 --- a/check-files.mk +++ b/check-files.mk @@ -38,8 +38,7 @@ include /usr/share/cdbs/1/rules/divert.mk DEB_CHECK_FILES_TMPDIR = debian/check_file_copies -debian_check_files_source = $(if $(DEB_CHECK_FILES_SOURCE_$(1)),$(DEB_CHECK_FILES_SOURCE_$(1)),$(1)) -debian_check_files_check = $(call divert_files_replace_name,$(call debian_check_files_source,$(1))) +debian_check_files_source = $(if $(DEB_CHECK_FILES_SOURCE_$(1)),$(DEB_CHECK_FILES_SOURCE_$(1)),$(call divert_files_replace_name,$(1))) debian_check_files = $(patsubst %,$(DEB_CHECK_FILES_TMPDIR)%,$(1)) undebian_check_files = $(patsubst $(DEB_CHECK_FILES_TMPDIR)%,%,$(1)) @@ -59,20 +58,23 @@ $(call debian_check_files,%): $(call debian_check_files_tmp,%) # # There is some wrangling here because the formats of these sources differ. $(call debian_check_files_tmp,%): target = $(call undebian_check_files_tmp,$@) -$(call debian_check_files_tmp,%): name = $(call debian_check_files_check,$(target)) +$(call debian_check_files_tmp,%): name = $(call debian_check_files_source,$(target)) $(call debian_check_files_tmp,%): truename = $(shell /usr/sbin/dpkg-divert --truename $(name)) -$(call debian_check_files_tmp,%): package = $(shell dpkg -S $(name) | grep -v "^diversion by" | cut -f1 -d:) +$(call debian_check_files_tmp,%): package = $(shell LC_ALL=C dpkg -S $(name) | sed -n '/^diversion by /! s/: .*$$// p') $(call debian_check_files_tmp,%): $(truename) - [ -n $(package) ] + [ -n "$(package)" ] mkdir -p $(@D) cp "$(truename)" $@ + set -e; \ + md5sums="$$(dpkg-query --control-path $(package) md5sums 2>/dev/null)" || \ + md5sums=/var/lib/dpkg/info/$(package).md5sums; \ md5=$$(dpkg-query --showformat='$${Conffiles}\n' --show $(package) | \ sed -n 's,^ $(name) \([0-9a-f]*\)$$,\1 $@, p'); \ if [ -n "$$md5" ]; then \ echo "$$md5" | md5sum -c; \ - elif [ -e /var/lib/dpkg/info/$(package).md5sums ]; then \ + elif [ -e "$$md5sums" ]; then \ md5=$$(sed -n 's,^\([0-9a-f]*\) $(patsubst /%,%,$(name))$$,\1 $@, p' \ - /var/lib/dpkg/info/$(package).md5sums); \ + "$$md5sums"); \ [ -n "$$md5" ] && echo "$$md5" | md5sum -c; \ else \ echo "config-package-dev: warning: $(package) does not include md5sums!"; \