[23094] in Source-Commits

home help back first fref pref prev next nref lref last post

/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


home help back first fref pref prev next nref lref last post