[23094] in Source-Commits
/svn/athena r22757 - in trunk/debathena/config/config-build-common: . debian
daemon@ATHENA.MIT.EDU (tabbott@MIT.EDU)
Sun Feb 17 23:13:42 2008
Date: Sun, 17 Feb 2008 23:12:43 -0500 (EST)
From: tabbott@MIT.EDU
Message-Id: <200802180412.XAA00622@drugstore.mit.edu>
To: source-commits@MIT.EDU
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Author: tabbott
Date: 2008-02-17 23:12:43 -0500 (Sun, 17 Feb 2008)
New Revision: 22757
Modified:
trunk/debathena/config/config-build-common/debathena-check-conffiles.mk
trunk/debathena/config/config-build-common/debathena-divert.mk
trunk/debathena/config/config-build-common/debathena-replace-conffiles.mk
trunk/debathena/config/config-build-common/debian/changelog
Log:
A new version of debathena-config-build-common that fixes several
problems with the DEBATHENA_REPLACE_CONFFILES interface.
Modified: trunk/debathena/config/config-build-common/debathena-check-conffiles.mk
===================================================================
--- trunk/debathena/config/config-build-common/debathena-check-conffiles.mk 2008-02-18 02:08:02 UTC (rev 22756)
+++ trunk/debathena/config/config-build-common/debathena-check-conffiles.mk 2008-02-18 04:12:43 UTC (rev 22757)
@@ -17,10 +17,13 @@
else
-CDBS_BUILD_DEPENDS := $(CDBS_BUILD_DEPENDS), debathena-config-build-common (>= 3.5~)
+include /usr/share/cdbs/1/rules/debathena-divert.mk
DEBATHENA_CHECK_CONFFILES_DIR = debian/conffile-copies
+debathena_check_conffiles_source = $(if $(DEBATHENA_CHECK_CONFFILES_SOURCE_$(1)),$(DEBATHENA_CHECK_CONFFILES_SOURCE_$(1)),$(1))
+debathena_check_conffiles_check = $(subst $(DEBATHENA_DIVERT_SUFFIX),,$(call debathena_check_conffiles_source,$(1)))
+
debathena_check_conffiles = $(patsubst %,$(DEBATHENA_CHECK_CONFFILES_DIR)%,$(1))
undebathena_check_conffiles = $(patsubst $(DEBATHENA_CHECK_CONFFILES_DIR)%,%,$(1))
@@ -30,17 +33,26 @@
$(call debathena_check_conffiles,%): $(call debathena_check_conffiles_tmp,%)
mv $< $@
-$(call debathena_check_conffiles_tmp,%): name = $(call undebathena_check_conffiles_tmp,$@)
+$(call debathena_check_conffiles_tmp,%): target = $(call undebathena_check_conffiles_tmp,$@)
+$(call debathena_check_conffiles_tmp,%): name = $(call debathena_check_conffiles_check,$(target))
$(call debathena_check_conffiles_tmp,%): truename = $(shell /usr/sbin/dpkg-divert --truename $(name))
$(call debathena_check_conffiles_tmp,%): package = $(shell dpkg -S $(name) | grep -v "^diversion by" | cut -f1 -d:)
$(call debathena_check_conffiles_tmp,%): $(truename)
+ [ -n $(package) ]
mkdir -p $(@D)
cp "$(truename)" $@
- (dpkg-query --showformat='$${Conffiles}\n' --show $(package); \
- cat /var/lib/dpkg/info/$(package).md5sums | \
- awk '{ print " /" $$2 " " $$1 }' | grep $(name)) | \
- sed -n 's,^ $(name) \(.*\)$$,\1 $@, p' | \
- md5sum -c # Check that the file has not been modified.
+ 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 \
+ md5=$$(sed -n 's,^\([0-9a-f]*\) $(patsubst /%,%,$(name))$$,\1 $@, p' \
+ /var/lib/dpkg/info/$(package).md5sums); \
+ [ -n "$$md5" ] && echo "$$md5" | md5sum -c; \
+ else \
+ echo "warning: $(package) does not include md5sums!"; \
+ echo "warning: md5sum for $(name) not verified."; \
+ fi
clean::
rm -rf $(DEBATHENA_CHECK_CONFFILES_DIR)
Modified: trunk/debathena/config/config-build-common/debathena-divert.mk
===================================================================
--- trunk/debathena/config/config-build-common/debathena-divert.mk 2008-02-18 02:08:02 UTC (rev 22756)
+++ trunk/debathena/config/config-build-common/debathena-divert.mk 2008-02-18 04:12:43 UTC (rev 22757)
@@ -1,6 +1,6 @@
# -*- mode: makefile; coding: utf-8 -*-
-CDBS_BUILD_DEPENDS := $(CDBS_BUILD_DEPENDS), debathena-config-build-common
+CDBS_BUILD_DEPENDS := $(CDBS_BUILD_DEPENDS), debathena-config-build-common (>= 3.7~)
DEBATHENA_DIVERT_SCRIPT = /usr/share/debathena-config-build-common/divert.sh.in
@@ -18,30 +18,30 @@
debathena-divert/%: package = $(subst debathena-divert/,,$@)
debathena-divert/%: replace_inputs = $(DEBATHENA_REPLACE_CONFFILES_$(package))
-debathena-divert/%: replace_files = $(foreach file,$(replace_inputs),$(call debathena_conffile_dest,$(file)))
-debathena-divert/%: divert_files = $(DEBATHENA_DIVERT_FILES) $(replace_files)
+debathena-divert/%: replace_files = $(foreach file,$(replace_inputs),$(file))
+debathena-divert/%: divert_files = $(DEBATHENA_DIVERT_FILES_$(package)) $(replace_files)
$(patsubst %,debathena-divert/%,$(DEBATHENA_DIVERT_PACKAGES)) :: debathena-divert/%:
( \
sed 's/#PACKAGE#/$(cdbs_curpkg)/g; s/#DEBATHENA_DIVERT_SUFFIX#/$(DEBATHENA_DIVERT_SUFFIX)/g' $(DEBATHENA_DIVERT_SCRIPT); \
- $(if $($(divert_files)), \
+ $(if $(divert_files), \
echo 'if [ "$$1" = "configure" ]; then'; \
- $(foreach file,$($(divert_files)), \
+ $(foreach file,$(divert_files), \
echo " divert_link $(subst $(DEBATHENA_DIVERT_SUFFIX), ,$(file))";) \
echo 'fi'; \
) \
) >> $(CURDIR)/debian/$(cdbs_curpkg).postinst.debhelper
( \
sed 's/#PACKAGE#/$(cdbs_curpkg)/g; s/#DEBATHENA_DIVERT_SUFFIX#/$(DEBATHENA_DIVERT_SUFFIX)/g' $(DEBATHENA_DIVERT_SCRIPT); \
- $(if $($(divert_files)), \
+ $(if $(divert_files), \
echo 'if [ "$$1" = "remove" ]; then'; \
- $(foreach file,$($(divert_files)), \
+ $(foreach file,$(divert_files), \
echo " undivert_unlink $(subst $(DEBATHENA_DIVERT_SUFFIX), ,$(file))";) \
echo 'fi'; \
) \
) >> $(CURDIR)/debian/$(cdbs_curpkg).prerm.debhelper
( \
echo -n "divert:Diverted="; \
- $(foreach file,$($(divert_files)),\
+ $(foreach file,$(divert_files),\
${DEBATHENA_DIVERT_ENCODER} "$(subst $(DEBATHENA_DIVERT_SUFFIX),,$(file))"; \
echo -n ", ";) \
echo \
Modified: trunk/debathena/config/config-build-common/debathena-replace-conffiles.mk
===================================================================
--- trunk/debathena/config/config-build-common/debathena-replace-conffiles.mk 2008-02-18 02:08:02 UTC (rev 22756)
+++ trunk/debathena/config/config-build-common/debathena-replace-conffiles.mk 2008-02-18 04:12:43 UTC (rev 22757)
@@ -1,26 +1,29 @@
# -*- mode: makefile; coding: utf-8 -*-
include /usr/share/cdbs/1/rules/debathena-check-conffiles.mk
-include /usr/share/cdbs/1/rules/debathena-divert.mk
DEBATHENA_REPLACE_CONFFILES = $(foreach package,$(DEB_ALL_PACKAGES),$(DEBATHENA_REPLACE_CONFFILES_$(package)))
-CDBS_BUILD_DEPENDS := $(CDBS_BUILD_DEPENDS), debathena-config-build-common (>= 3.6~)
+DEBATHENA_REPLACE_CONFFILES_DIR=debian/replace_file_copies
-debathena_conffile_dest = $(if $(DEBATHENA_CONFFILE_DEST_$(1)),$(DEBATHENA_CONFFILE_DEST_$(1)),$(1))
+debathena_replace_conffiles = $(patsubst %,$(DEBATHENA_REPLACE_CONFFILES_DIR)%,$(1))
+undebathena_replace_conffiles = $(patsubst $(DEBATHENA_REPLACE_CONFFILES_DIR)%,%,$(1))
-common-build-indep:: $(foreach file,$(DEBATHENA_REPLACE_CONFFILES),debian/conffile-new$(file))
+common-build-indep:: $(foreach file,$(DEBATHENA_REPLACE_CONFFILES),$(call debathena_replace_conffiles,$(file)))
-debian/conffile-new%$(DEBATHENA_DIVERT_SUFFIX): $(call debathena_check_conffiles,%)
- debian/transform_$(notdir $(call debathena_conffile_dest,$(subst debian/conffile-new,,$@))) < $< \
- > debian/$(notdir $(call debathena_conffile_dest,$(subst debian/conffile-new,,$@)))
+$(call debathena_replace_conffiles,%): $(call debathena_check_conffiles,%)
+ mkdir -p $(@D)
+ $(if $(DEBATHENA_TRANSFORM_SCRIPT_$(call undebathena_replace_conffiles,$@)), \
+ $(DEBATHENA_TRANSFORM_SCRIPT_$(call undebathena_replace_conffiles,$@)), \
+ debian/transform_$(notdir $(call undebathena_replace_conffiles,$@))) < $< > $@
$(patsubst %,binary-install/%,$(DEB_ALL_PACKAGES)) :: binary-install/%:
$(foreach file,$(DEBATHENA_REPLACE_CONFFILES_$(cdbs_curpkg)), \
- install -d $(DEB_DESTDIR)/$(dir $(call debathena_conffile_dest,$(file))); \
- cp -a debian/$(notdir $(call debathena_conffile_dest,$(file))) \
- $(DEB_DESTDIR)/$(dir $(call debathena_conffile_dest,$(file)));)
+ install -d $(DEB_DESTDIR)/$(dir $(file)); \
+ cp -a $(DEBATHENA_REPLACE_CONFFILES_DIR)$(file) \
+ $(DEB_DESTDIR)/$(dir $(file));)
clean::
$(foreach file,$(DEBATHENA_REPLACE_CONFFILES),rm -f debian/$(notdir $(file)))
+ rm -rf $(DEBATHENA_REPLACE_CONFFILES_DIR)
Modified: trunk/debathena/config/config-build-common/debian/changelog
===================================================================
--- trunk/debathena/config/config-build-common/debian/changelog 2008-02-18 02:08:02 UTC (rev 22756)
+++ trunk/debathena/config/config-build-common/debian/changelog 2008-02-18 04:12:43 UTC (rev 22757)
@@ -1,3 +1,17 @@
+debathena-config-build-common (3.7) unstable; urgency=low
+
+ * Fix debathena-divert.mk to correctly divert files.
+ * Fix debathena-conffiles.mk to print a warning when md5sums don't
+ exist, rather than failing.
+ * Replace DEBATHENA_CONFFILE_DEST with
+ DEBATHENA_REPLACE_FILES_SOURCE, a more natural concept with the
+ same purpose.
+ * Shift DEBATHENA_REPLACE_FILES_SOURCE logic into
+ debathena-check-files.mk, which now depends on
+ debathena-divert.mk; use this to simplify our CDBS dependencies.
+
+ -- Tim Abbott <tabbott@mit.edu> Sun, 17 Feb 2008 23:06:49 -0500
+
debathena-config-build-common (3.6) unstable; urgency=low
* Add new debathena-replace-conffiles.mk, a more user-friendly wrapper