[318] in athena10

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

config-package-dev-4.8

daemon@ATHENA.MIT.EDU (Timothy G Abbott)
Sun Jul 13 02:37:07 2008

Date: Sun, 13 Jul 2008 02:36:18 -0400 (EDT)
From: Timothy G Abbott <tabbott@MIT.EDU>
To: athena10@mit.edu
In-Reply-To: <200807130625.CAA07272@drugstore.mit.edu>
Message-ID: <alpine.DEB.1.10.0807130226070.30758@mega-man.mit.edu>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed

I just checked in a bunch of examples for config-package-dev, along with 
substantial additional comment documentation in the various rules files.

I'm planning to do a release in a few days (I also want to improve the 
documentation on the website, if I can find the time).

These examples are designed to have minimal dependencies and thus be easy 
for people trying out the software to start from in building their own 
config packages.

I'd appreciate any comments (and testing).

The only functional non-documentation change is replacing the 
"configures-etc++ldap++ldap.conf" with "diverts-etc++ldap++ldap.conf", 
since I've concluded the former is confusing.  It's an unfortunate change 
to make, but I think there are few enough users at this point that one can 
get away with it, especially since that feature is mostly to improve error 
handling.  If you prefer the original encoding, please speak up.

I'm also thinking of setting up a development/announcement mailman list 
for the project, since I've gotten personal emails from 5 different people 
asking for help with things, and it might be good to have a more public 
forum for that kind of discussion.  My current intention is to use 
config-package-dev@mit.edu.

 	-Tim Abbott

> +config-package-dev (4.8) unstable; urgency=low
> +
> +  * Add additional documentation to the makefile fragments
> +  * Add doc/ directory with pointer to online documentation
> +  * Add examples/ directory (Closes: #486130).
> +  * Rename configures- to diverts- as the prefix for the virtual packages
> +    that cause packages diverting the same file to conflict, since that is
> +    clearer.
> +
> + -- Tim Abbott <tabbott@mit.edu>  Sun, 13 Jul 2008 01:54:48 -0400

On Sun, 13 Jul 2008, tabbott@MIT.EDU wrote:

> Author: tabbott
> Date: 2008-07-13 02:25:18 -0400 (Sun, 13 Jul 2008)
> New Revision: 23076
>
> Added:
>   trunk/debathena/debathena/config-package-dev/debian/config-package-dev.docs
>   trunk/debathena/debathena/config-package-dev/debian/config-package-dev.examples
>   trunk/debathena/debathena/config-package-dev/doc/
>   trunk/debathena/debathena/config-package-dev/doc/DOCUMENTATION
>   trunk/debathena/debathena/config-package-dev/examples/
>   trunk/debathena/debathena/config-package-dev/examples/EXAMPLES
>   trunk/debathena/debathena/config-package-dev/examples/debathena-bin-example-1.0/
>   trunk/debathena/debathena/config-package-dev/examples/debathena-bin-example-1.0/debian/
>   trunk/debathena/debathena/config-package-dev/examples/debathena-bin-example-1.0/debian/changelog
>   trunk/debathena/debathena/config-package-dev/examples/debathena-bin-example-1.0/debian/compat
>   trunk/debathena/debathena/config-package-dev/examples/debathena-bin-example-1.0/debian/control
>   trunk/debathena/debathena/config-package-dev/examples/debathena-bin-example-1.0/debian/control.in
>   trunk/debathena/debathena/config-package-dev/examples/debathena-bin-example-1.0/debian/copyright
>   trunk/debathena/debathena/config-package-dev/examples/debathena-bin-example-1.0/debian/debathena-bin-example.install
>   trunk/debathena/debathena/config-package-dev/examples/debathena-bin-example-1.0/debian/elinks.debathena
>   trunk/debathena/debathena/config-package-dev/examples/debathena-bin-example-1.0/debian/less.debathena
>   trunk/debathena/debathena/config-package-dev/examples/debathena-bin-example-1.0/debian/rules
>   trunk/debathena/debathena/config-package-dev/examples/debathena-bin-example-1.1/
>   trunk/debathena/debathena/config-package-dev/examples/debathena-bin-example-1.1/debian/
>   trunk/debathena/debathena/config-package-dev/examples/debathena-bin-example-1.1/debian/changelog
>   trunk/debathena/debathena/config-package-dev/examples/debathena-bin-example-1.1/debian/compat
>   trunk/debathena/debathena/config-package-dev/examples/debathena-bin-example-1.1/debian/control
>   trunk/debathena/debathena/config-package-dev/examples/debathena-bin-example-1.1/debian/control.in
>   trunk/debathena/debathena/config-package-dev/examples/debathena-bin-example-1.1/debian/copyright
>   trunk/debathena/debathena/config-package-dev/examples/debathena-bin-example-1.1/debian/debathena-bin-example.install
>   trunk/debathena/debathena/config-package-dev/examples/debathena-bin-example-1.1/debian/less.debathena
>   trunk/debathena/debathena/config-package-dev/examples/debathena-bin-example-1.1/debian/rules
>   trunk/debathena/debathena/config-package-dev/examples/debathena-conffile-example-1.0/
>   trunk/debathena/debathena/config-package-dev/examples/debathena-conffile-example-1.0/debian/
>   trunk/debathena/debathena/config-package-dev/examples/debathena-conffile-example-1.0/debian/changelog
>   trunk/debathena/debathena/config-package-dev/examples/debathena-conffile-example-1.0/debian/compat
>   trunk/debathena/debathena/config-package-dev/examples/debathena-conffile-example-1.0/debian/control
>   trunk/debathena/debathena/config-package-dev/examples/debathena-conffile-example-1.0/debian/control.in
>   trunk/debathena/debathena/config-package-dev/examples/debathena-conffile-example-1.0/debian/copyright
>   trunk/debathena/debathena/config-package-dev/examples/debathena-conffile-example-1.0/debian/debathena-conffile-example.install
>   trunk/debathena/debathena/config-package-dev/examples/debathena-conffile-example-1.0/debian/rules
>   trunk/debathena/debathena/config-package-dev/examples/debathena-conffile-example-1.0/files/
>   trunk/debathena/debathena/config-package-dev/examples/debathena-conffile-example-1.0/files/etc/
>   trunk/debathena/debathena/config-package-dev/examples/debathena-conffile-example-1.0/files/etc/issue.net.debathena
>   trunk/debathena/debathena/config-package-dev/examples/debathena-conffile-example-1.0/files/etc/mailname.debathena
>   trunk/debathena/debathena/config-package-dev/examples/debathena-conffile-example-1.0/files/etc/papersize.debathena
>   trunk/debathena/debathena/config-package-dev/examples/debathena-cron-example-1.0/
>   trunk/debathena/debathena/config-package-dev/examples/debathena-cron-example-1.0/debian/
>   trunk/debathena/debathena/config-package-dev/examples/debathena-cron-example-1.0/debian/changelog
>   trunk/debathena/debathena/config-package-dev/examples/debathena-cron-example-1.0/debian/compat
>   trunk/debathena/debathena/config-package-dev/examples/debathena-cron-example-1.0/debian/control
>   trunk/debathena/debathena/config-package-dev/examples/debathena-cron-example-1.0/debian/control.in
>   trunk/debathena/debathena/config-package-dev/examples/debathena-cron-example-1.0/debian/copyright
>   trunk/debathena/debathena/config-package-dev/examples/debathena-cron-example-1.0/debian/debathena-cron-example.cron.d
>   trunk/debathena/debathena/config-package-dev/examples/debathena-cron-example-1.0/debian/rules
>   trunk/debathena/debathena/config-package-dev/examples/debathena-transform-example-1.0/
>   trunk/debathena/debathena/config-package-dev/examples/debathena-transform-example-1.0/debian/
>   trunk/debathena/debathena/config-package-dev/examples/debathena-transform-example-1.0/debian/changelog
>   trunk/debathena/debathena/config-package-dev/examples/debathena-transform-example-1.0/debian/compat
>   trunk/debathena/debathena/config-package-dev/examples/debathena-transform-example-1.0/debian/control
>   trunk/debathena/debathena/config-package-dev/examples/debathena-transform-example-1.0/debian/control.in
>   trunk/debathena/debathena/config-package-dev/examples/debathena-transform-example-1.0/debian/copyright
>   trunk/debathena/debathena/config-package-dev/examples/debathena-transform-example-1.0/debian/rules
>   trunk/debathena/debathena/config-package-dev/examples/debathena-transform-example-1.0/debian/transform_syslog.conf.debathena
> Modified:
>   trunk/debathena/debathena/config-package-dev/check-files.mk
>   trunk/debathena/debathena/config-package-dev/config-package.mk
>   trunk/debathena/debathena/config-package-dev/debian/changelog
>   trunk/debathena/debathena/config-package-dev/debian/control
>   trunk/debathena/debathena/config-package-dev/debian/control.in
>   trunk/debathena/debathena/config-package-dev/debian/copyright
>   trunk/debathena/debathena/config-package-dev/divert.mk
>   trunk/debathena/debathena/config-package-dev/encode
>   trunk/debathena/debathena/config-package-dev/transform-files.mk
> Log:
> Improve config-package-dev documentation and examples.
>
>
> Modified: trunk/debathena/debathena/config-package-dev/check-files.mk
> ===================================================================
> --- trunk/debathena/debathena/config-package-dev/check-files.mk	2008-07-13 01:14:58 UTC (rev 23075)
> +++ trunk/debathena/debathena/config-package-dev/check-files.mk	2008-07-13 06:25:18 UTC (rev 23076)
> @@ -17,25 +17,47 @@
> # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
> # 02111-1307 USA.
>
> +# Don't include check-files.mk in your rules files directly; instead
> +# use config-package.mk.
> +
> +# check-files.mk is used to verify that files on local disk have not
> +# been modified from the upstream packaged version.  Its only API
> +# function is adding the following function as a dependency:
> +#
> +# $(call debian_check_files,filename)
> +#
> +#   Returns the path to a copy of filename that is verified to be
> +# unmodified from the version shipped by the distribution (by checking
> +# md5sums).  The function causes the package to fail to build if the
> +# relevant configuration file has been modified on the build machine.
> +
> ifndef _cdbs_rules_check_files
> _cdbs_rules_check_files = 1
>
> include /usr/share/cdbs/1/rules/divert.mk
>
> -DEB_CHECK_FILES_DIR = debian/check_file_copies
> +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 = $(patsubst %,$(DEB_CHECK_FILES_DIR)%,$(1))
> -undebian_check_files = $(patsubst $(DEB_CHECK_FILES_DIR)%,%,$(1))
> +debian_check_files = $(patsubst %,$(DEB_CHECK_FILES_TMPDIR)%,$(1))
> +undebian_check_files = $(patsubst $(DEB_CHECK_FILES_TMPDIR)%,%,$(1))
>
> debian_check_files_tmp = $(patsubst %,%.tmp,$(call debian_check_files,$(1)))
> undebian_check_files_tmp = $(call undebian_check_files,$(patsubst %.tmp,%,$(1)))
>
> +# We need a level of indirection here in order to make sure that
> +# normal makefile targets, like "clean", are not affected by the
> +# debian_check_files rules.
> $(call debian_check_files,%): $(call debian_check_files_tmp,%)
> 	mv $< $@
>
> +# We check md5sums from both /var/lib/dpkg/info/$(package).md5sums
> +# (the md5sums database for non-conffiles) and the conffiles database
> +# used for prompting about conffiles being changed (via dpkg-query).
> +#
> +# 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,%): truename = $(shell /usr/sbin/dpkg-divert --truename $(name))
> @@ -53,11 +75,11 @@
> 		/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."; \
> +	    echo "config-package-dev: warning: $(package) does not include md5sums!"; \
> +	    echo "config-package-dev: warning: md5sum for $(name) not verified."; \
> 	fi
>
> clean::
> -	rm -rf $(DEB_CHECK_FILES_DIR)
> +	rm -rf $(DEB_CHECK_FILES_TMPDIR)
>
> endif
>
> Modified: trunk/debathena/debathena/config-package-dev/config-package.mk
> ===================================================================
> --- trunk/debathena/debathena/config-package-dev/config-package.mk	2008-07-13 01:14:58 UTC (rev 23075)
> +++ trunk/debathena/debathena/config-package-dev/config-package.mk	2008-07-13 06:25:18 UTC (rev 23076)
> @@ -17,9 +17,97 @@
> # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
> # 02111-1307 USA.
>
> +#   /usr/share/cdbs/1/rules/config-package.mk is the externally-facing
> +# makefile fragment for config-package-dev.  It should be included
> +# after the following variables are set in debian/rules.
> +#
> +#
> +# Most variables are lists, so one can
> +#
> +# DEB_DIVERT_FILES_package += /path1/file1.divert \
> +#			      /path2/file2.divert \
> +#			      /path3/file3.divert
> +#
> +# We use += in the examples
> +#
> +# The config-package-dev system supports the following variables:
> +#
> +# DEB_DIVERT_EXTENSION
> +#
> +#   Extension used for all config-package-dev diversions (defaults to
> +# .divert, which we will use in examples).  This field is difficult to
> +# change on package upgrades; we recommend picking a value to use for
> +# all packages at your site.
> +#
> +# DEB_DIVERT_FILES_package += /path/file.divert
> +#
> +#   List of absolute paths to files to be replaced at package install
> +# time by being diverted from /path/file to /path/file.divert-orig
> +# (DEB_DIVERT_EXTENSION should be part of the path, but need not
> +# appear at the end); a symlink /path/file -> /path/file.divert will
> +# be installed in its place.  The user is responsible for installing
> +# /path/file.divert.  This is best for diverting binaries and most
> +# configuration files.
> +#
> +# DEB_TRANSFORM_FILES_package += /path/file.divert
> +#
> +#   This works like DEB_DIVERT_FILES, but additionally the file to be
> +# installed to /path/file.divert will be generated at package build
> +# time as the standard output from
> +#
> +# $(DEB_TRANSFORM_SCRIPT_path/file.divert) < $(DEB_CHECK_FILES_SOURCE_/path/file.divert)
> +#
> +# These variables have the following defaults:
> +#
> +#   DEB_TRANSFORM_SCRIPT_path/file.divert = debian/transform_file.divert
> +#   DEB_CHECK_FILES_SOURCE_/path/file.divert = path/file
> +#
> +#   If DEB_CHECK_FILES_SOURCE_/path/file.divert does not match the
> +# md5sums shipped with the package containing it, the package build
> +# will abort.  DEB_TRANSFORM_FILES is targeted at making changes to a
> +# (potentially long) configuration file that will work on several
> +# Debian versions.  We recommend using DEB_TRANSFORM_FILES in
> +# conjunction with pbuilder, sbuild, or another tool for building
> +# Debian packages in a clean environment.
> +#
> +# DEB_REMOVE_FILES_package += /path/file
> +#
> +#   List of absolute paths to files to be diverted to a unique path in
> +# /usr/share/package/.  No symlink or replacement file will be
> +# installed.  This system is useful for disabling files in /etc/cron.d
> +# or similar .d directories where the normal divert-and-symlink
> +# approach would result in (e.g.)  the old cron job still being run,
> +# and any new cron job being run twice.  Note that for technical
> +# reasons related to how dpkg unpacks files, you cannot also install a
> +# replacement file to /etc/cron.d/file; you must install it to some
> +# other path (which should be fine in a .d directory).  If you want to
> +# install a replacement file with the same name, you probably want
> +# DEB_DIVERT_FILES.
> +#
> +# DEB_UNDIVERT_FILES_package += /path/file.divert
> +# DEB_UNDIVERT_VERSION_/path/file.divert = 1.0-1
> +#
> +#   List of absolute paths to files whose diversions caused by
> +# DEB_DIVERT_FILES are to be removed upon installing this package.
> +# This is primarily useful for removing a now-unecessary diversion
> +# provided by a previous version of this package on an upgrade.
> +#
> +#   The DEB_UNDIVERT_VERSION_file variable should be set to the
> +# version number of this package at which you added
> +# DEB_UNDIVERT_FILES_path/file.divert; it is used to avoid attempting
> +# to remove the diversions again on future upgrades.
> +#
> +# DEB_UNREMOVE_FILES_package += /path/file
> +# DEB_UNREMOVE_VERSION_/path/file = 1.0-1
> +#
> +#   This works like DEB_UNDIVERT_FILES_package, except that it only
> +# removes the diversion (not a symlink) and the version number is
> +# specified with DEB_UNREMOVE_VERSION_/path/file.
> +
> ifndef _cdbs_rules_config_package
> _cdbs_rules_config_package = 1
>
> +# transform-files.mk includes the other config-package-dev fragments.
> include /usr/share/cdbs/1/rules/transform-files.mk
>
> endif
>
> Modified: trunk/debathena/debathena/config-package-dev/debian/changelog
> ===================================================================
> --- trunk/debathena/debathena/config-package-dev/debian/changelog	2008-07-13 01:14:58 UTC (rev 23075)
> +++ trunk/debathena/debathena/config-package-dev/debian/changelog	2008-07-13 06:25:18 UTC (rev 23076)
> @@ -1,3 +1,14 @@
> +config-package-dev (4.8) unstable; urgency=low
> +
> +  * Add additional documentation to the makefile fragments
> +  * Add doc/ directory with pointer to online documentation
> +  * Add examples/ directory (Closes: #486130).
> +  * Rename configures- to diverts- as the prefix for the virtual packages
> +    that cause packages diverting the same file to conflict, since that is
> +    clearer.
> +
> + -- Tim Abbott <tabbott@mit.edu>  Sun, 13 Jul 2008 01:54:48 -0400
> +
> config-package-dev (4.7) unstable; urgency=low
>
>   * Move homepage field to source package section, so it works.
>
> Added: trunk/debathena/debathena/config-package-dev/debian/config-package-dev.docs
>
> Added: trunk/debathena/debathena/config-package-dev/debian/config-package-dev.examples
>
> Modified: trunk/debathena/debathena/config-package-dev/debian/control
> ===================================================================
> --- trunk/debathena/debathena/config-package-dev/debian/control	2008-07-13 01:14:58 UTC (rev 23075)
> +++ trunk/debathena/debathena/config-package-dev/debian/control	2008-07-13 06:25:18 UTC (rev 23076)
> @@ -2,9 +2,9 @@
> Section: devel
> Priority: extra
> Maintainer: Tim Abbott <tabbott@mit.edu>
> -Homepage: http://debathena.mit.edu/config-packages/
> +Homepage: http://debathena.mit.edu/config-package-dev
> Build-Depends: cdbs (>= 0.4.23-1.1), debhelper (>= 4.2.0)
> -Standards-Version: 3.7.3
> +Standards-Version: 3.8.0
>
> Package: config-package-dev
> Architecture: all
>
> Modified: trunk/debathena/debathena/config-package-dev/debian/control.in
> ===================================================================
> --- trunk/debathena/debathena/config-package-dev/debian/control.in	2008-07-13 01:14:58 UTC (rev 23075)
> +++ trunk/debathena/debathena/config-package-dev/debian/control.in	2008-07-13 06:25:18 UTC (rev 23076)
> @@ -2,9 +2,9 @@
> Section: devel
> Priority: extra
> Maintainer: Tim Abbott <tabbott@mit.edu>
> -Homepage: http://debathena.mit.edu/config-packages/
> +Homepage: http://debathena.mit.edu/config-package-dev
> Build-Depends: @cdbs@
> -Standards-Version: 3.7.3
> +Standards-Version: 3.8.0
>
> Package: config-package-dev
> Architecture: all
>
> Modified: trunk/debathena/debathena/config-package-dev/debian/copyright
> ===================================================================
> --- trunk/debathena/debathena/config-package-dev/debian/copyright	2008-07-13 01:14:58 UTC (rev 23075)
> +++ trunk/debathena/debathena/config-package-dev/debian/copyright	2008-07-13 06:25:18 UTC (rev 23076)
> @@ -3,6 +3,8 @@
>
> The upstream location for this software is now the Debian archive.
>
> +It is also available from http://debathena.mit.edu/config-package-dev
> +
> Copyright: (C) Tim Abbott and Anders Kaseorg 2006-2008
>
>   This program is free software; you can redistribute it and/or modify
>
> Modified: trunk/debathena/debathena/config-package-dev/divert.mk
> ===================================================================
> --- trunk/debathena/debathena/config-package-dev/divert.mk	2008-07-13 01:14:58 UTC (rev 23075)
> +++ trunk/debathena/debathena/config-package-dev/divert.mk	2008-07-13 06:25:18 UTC (rev 23076)
> @@ -17,6 +17,12 @@
> # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
> # 02111-1307 USA.
>
> +# Don't include divert.mk in your rules files directly; instead use
> +# config-package.mk.
> +
> +# divert.mk handles the low-level diversion logic.  It includes
> +# divert.sh.in in the postinst and prerm scripts, and adds
> +
> ifndef _cdbs_rules_divert
> _cdbs_rules_divert = 1
>
> @@ -24,7 +30,12 @@
>
> CDBS_BUILD_DEPENDS := $(CDBS_BUILD_DEPENDS), config-package-dev (>= 4.5~)
>
> +# divert.sh.in is included in the postinst/prerm scripts of packages
> +# installing diversions using config-package-dev.
> DEB_DIVERT_SCRIPT = /usr/share/config-package-dev/divert.sh.in
> +# script used to encode the path of a file uniquely in a valid virtual
> +# package name.
> +DEB_DIVERT_ENCODER = /usr/share/config-package-dev/encode
>
> DEB_DIVERT_PACKAGES += $(foreach package,$(DEB_ALL_PACKAGES), \
>     $(if $(DEB_TRANSFORM_FILES_$(package)),$(package), \
> @@ -37,8 +48,9 @@
> DEB_DIVERT_EXTENSION = .divert
> endif
>
> -DEB_DIVERT_ENCODER = /usr/share/config-package-dev/encode
> -
> +# Replace only the last instance of DEB_DIVERT_EXTENSION in the
> +# filename, to make it possible to divert /path/foo.divert to
> +# foo.divert.divert-orig
> divert_files_replace_name = $(shell echo $(1) | perl -pe 's/(.*)\Q$(DEB_DIVERT_EXTENSION)\E/$$1$(2)/')
>
> debian-divert/%: package = $(subst debian-divert/,,$@)
> @@ -49,6 +61,9 @@
> debian-divert/%: divert_files_all = $(strip $(divert_files) $(divert_remove_files) $(divert_undivert_files) $(divert_unremove_files))
> debian-divert/%: divert_files_thispkg = $(strip $(divert_files) $(divert_remove_files))
> $(patsubst %,debian-divert/%,$(DEB_DIVERT_PACKAGES)) :: debian-divert/%:
> +#   Writing shell scripts in makefiles sucks.  Remember to $$ shell
> +#   variables and include \ at the end of each line.
> +# Add code to postinst to add/remove diversions as appropriate
> 	( \
> 	    sed 's/#PACKAGE#/$(cdbs_curpkg)/g; s/#DEB_DIVERT_EXTENSION#/$(DEB_DIVERT_EXTENSION)/g' $(DEB_DIVERT_SCRIPT); \
> 	    $(if $(divert_files_all), \
> @@ -75,6 +90,7 @@
> 		echo 'fi'; \
> 	    ) \
> 	) >> $(CURDIR)/debian/$(cdbs_curpkg).postinst.debhelper
> +# Add code to prerm script to undo diversions when package is removed.
> 	( \
> 	    sed 's/#PACKAGE#/$(cdbs_curpkg)/g; s/#DEB_DIVERT_EXTENSION#/$(DEB_DIVERT_EXTENSION)/g' $(DEB_DIVERT_SCRIPT); \
> 	    $(if $(divert_files_thispkg), \
> @@ -86,10 +102,16 @@
> 		echo 'fi'; \
> 	    ) \
> 	) >> $(CURDIR)/debian/$(cdbs_curpkg).prerm.debhelper
> +# Add an encoding of the names of the diverted files to the Provides:
> +# and Conflicts: lists.  This prevents two packages diverting the same
> +# file from being installed simultaneously (it cannot work, and this
> +# produces a much less ugly error).  Requires in debian/control:
> +#   Provides: $(diverted-files)
> +#   Conflicts: $(diverted-files)
> 	( \
> 	    echo -n "diverted-files="; \
> 	    $(foreach file,$(divert_files_thispkg),\
> -		echo -n "configures-"; \
> +		echo -n "diverts-"; \
> 		${DEB_DIVERT_ENCODER} "$(call divert_files_replace_name,$(file))"; \
> 		echo -n ", ";) \
> 	    echo \
>
> Added: trunk/debathena/debathena/config-package-dev/doc/DOCUMENTATION
>
> Modified: trunk/debathena/debathena/config-package-dev/encode
> ===================================================================
> --- trunk/debathena/debathena/config-package-dev/encode	2008-07-13 01:14:58 UTC (rev 23075)
> +++ trunk/debathena/debathena/config-package-dev/encode	2008-07-13 06:25:18 UTC (rev 23076)
> @@ -1,8 +1,6 @@
> #!/usr/bin/perl
> # Encode name of a file in a Debian package name.
> #
> -# DO NOT CHANGE THIS FUNCTION OR WE WILL ALL BURN IN CONFLICT HELL
> -#
> # The purpose of this encoding is to cause Debian configuration
> # packages (potentially from different sites) that divert the same
> # configuration file to conflict with each other.  Thus, it is
>
> Added: trunk/debathena/debathena/config-package-dev/examples/EXAMPLES
>
> Added: trunk/debathena/debathena/config-package-dev/examples/debathena-bin-example-1.0/debian/changelog
>
> Added: trunk/debathena/debathena/config-package-dev/examples/debathena-bin-example-1.0/debian/compat
>
> Added: trunk/debathena/debathena/config-package-dev/examples/debathena-bin-example-1.0/debian/control
>
> Added: trunk/debathena/debathena/config-package-dev/examples/debathena-bin-example-1.0/debian/control.in
>
> Added: trunk/debathena/debathena/config-package-dev/examples/debathena-bin-example-1.0/debian/copyright
>
> Added: trunk/debathena/debathena/config-package-dev/examples/debathena-bin-example-1.0/debian/debathena-bin-example.install
>
> Added: trunk/debathena/debathena/config-package-dev/examples/debathena-bin-example-1.0/debian/elinks.debathena
>
> Added: trunk/debathena/debathena/config-package-dev/examples/debathena-bin-example-1.0/debian/less.debathena
>
> Added: trunk/debathena/debathena/config-package-dev/examples/debathena-bin-example-1.0/debian/rules
>
>
> Property changes on: trunk/debathena/debathena/config-package-dev/examples/debathena-bin-example-1.0/debian/rules
> ___________________________________________________________________
> Name: svn:executable
>   + *
>
> Added: trunk/debathena/debathena/config-package-dev/examples/debathena-bin-example-1.1/debian/changelog
>
> Added: trunk/debathena/debathena/config-package-dev/examples/debathena-bin-example-1.1/debian/compat
>
> Added: trunk/debathena/debathena/config-package-dev/examples/debathena-bin-example-1.1/debian/control
>
> Added: trunk/debathena/debathena/config-package-dev/examples/debathena-bin-example-1.1/debian/control.in
>
> Added: trunk/debathena/debathena/config-package-dev/examples/debathena-bin-example-1.1/debian/copyright
>
> Added: trunk/debathena/debathena/config-package-dev/examples/debathena-bin-example-1.1/debian/debathena-bin-example.install
>
> Added: trunk/debathena/debathena/config-package-dev/examples/debathena-bin-example-1.1/debian/less.debathena
>
> Added: trunk/debathena/debathena/config-package-dev/examples/debathena-bin-example-1.1/debian/rules
>
>
> Property changes on: trunk/debathena/debathena/config-package-dev/examples/debathena-bin-example-1.1/debian/rules
> ___________________________________________________________________
> Name: svn:executable
>   + *
>
> Added: trunk/debathena/debathena/config-package-dev/examples/debathena-conffile-example-1.0/debian/changelog
>
> Added: trunk/debathena/debathena/config-package-dev/examples/debathena-conffile-example-1.0/debian/compat
>
> Added: trunk/debathena/debathena/config-package-dev/examples/debathena-conffile-example-1.0/debian/control
>
> Added: trunk/debathena/debathena/config-package-dev/examples/debathena-conffile-example-1.0/debian/control.in
>
> Added: trunk/debathena/debathena/config-package-dev/examples/debathena-conffile-example-1.0/debian/copyright
>
> Added: trunk/debathena/debathena/config-package-dev/examples/debathena-conffile-example-1.0/debian/debathena-conffile-example.install
>
> Added: trunk/debathena/debathena/config-package-dev/examples/debathena-conffile-example-1.0/debian/rules
>
>
> Property changes on: trunk/debathena/debathena/config-package-dev/examples/debathena-conffile-example-1.0/debian/rules
> ___________________________________________________________________
> Name: svn:executable
>   + *
>
> Added: trunk/debathena/debathena/config-package-dev/examples/debathena-conffile-example-1.0/files/etc/issue.net.debathena
>
> Added: trunk/debathena/debathena/config-package-dev/examples/debathena-conffile-example-1.0/files/etc/mailname.debathena
>
> Added: trunk/debathena/debathena/config-package-dev/examples/debathena-conffile-example-1.0/files/etc/papersize.debathena
>
> Added: trunk/debathena/debathena/config-package-dev/examples/debathena-cron-example-1.0/debian/changelog
>
> Added: trunk/debathena/debathena/config-package-dev/examples/debathena-cron-example-1.0/debian/compat
>
> Added: trunk/debathena/debathena/config-package-dev/examples/debathena-cron-example-1.0/debian/control
>
> Added: trunk/debathena/debathena/config-package-dev/examples/debathena-cron-example-1.0/debian/control.in
>
> Added: trunk/debathena/debathena/config-package-dev/examples/debathena-cron-example-1.0/debian/copyright
>
> Added: trunk/debathena/debathena/config-package-dev/examples/debathena-cron-example-1.0/debian/debathena-cron-example.cron.d
>
> Added: trunk/debathena/debathena/config-package-dev/examples/debathena-cron-example-1.0/debian/rules
>
>
> Property changes on: trunk/debathena/debathena/config-package-dev/examples/debathena-cron-example-1.0/debian/rules
> ___________________________________________________________________
> Name: svn:executable
>   + *
>
> Added: trunk/debathena/debathena/config-package-dev/examples/debathena-transform-example-1.0/debian/changelog
>
> Added: trunk/debathena/debathena/config-package-dev/examples/debathena-transform-example-1.0/debian/compat
>
> Added: trunk/debathena/debathena/config-package-dev/examples/debathena-transform-example-1.0/debian/control
>
> Added: trunk/debathena/debathena/config-package-dev/examples/debathena-transform-example-1.0/debian/control.in
>
> Added: trunk/debathena/debathena/config-package-dev/examples/debathena-transform-example-1.0/debian/copyright
>
> Added: trunk/debathena/debathena/config-package-dev/examples/debathena-transform-example-1.0/debian/rules
>
>
> Property changes on: trunk/debathena/debathena/config-package-dev/examples/debathena-transform-example-1.0/debian/rules
> ___________________________________________________________________
> Name: svn:executable
>   + *
>
> Added: trunk/debathena/debathena/config-package-dev/examples/debathena-transform-example-1.0/debian/transform_syslog.conf.debathena
>
>
> Property changes on: trunk/debathena/debathena/config-package-dev/examples/debathena-transform-example-1.0/debian/transform_syslog.conf.debathena
> ___________________________________________________________________
> Name: svn:executable
>   + *
>
> Modified: trunk/debathena/debathena/config-package-dev/transform-files.mk
> ===================================================================
> --- trunk/debathena/debathena/config-package-dev/transform-files.mk	2008-07-13 01:14:58 UTC (rev 23075)
> +++ trunk/debathena/debathena/config-package-dev/transform-files.mk	2008-07-13 06:25:18 UTC (rev 23076)
> @@ -17,6 +17,9 @@
> # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
> # 02111-1307 USA.
>
> +# Don't include transform-files.mk in your rules files directly;
> +# instead use config-package.mk.
> +
> ifndef _cdbs_rules_transform_files
> _cdbs_rules_transform_files = 1
>
> @@ -24,10 +27,10 @@
>
> DEB_TRANSFORM_FILES = $(foreach package,$(DEB_ALL_PACKAGES),$(DEB_TRANSFORM_FILES_$(package)))
>
> -DEB_TRANSFORM_FILES_DIR=debian/transform_file_copies
> +DEB_TRANSFORM_FILES_TMPDIR=debian/transform_file_copies
>
> -debian_transform_files = $(patsubst %,$(DEB_TRANSFORM_FILES_DIR)%,$(1))
> -undebian_transform_files = $(patsubst $(DEB_TRANSFORM_FILES_DIR)%,%,$(1))
> +debian_transform_files = $(patsubst %,$(DEB_TRANSFORM_FILES_TMPDIR)%,$(1))
> +undebian_transform_files = $(patsubst $(DEB_TRANSFORM_FILES_TMPDIR)%,%,$(1))
>
> common-build-arch common-build-indep:: $(foreach file,$(DEB_TRANSFORM_FILES),$(call debian_transform_files,$(file)))
>
> @@ -40,10 +43,10 @@
> $(patsubst %,binary-install/%,$(DEB_ALL_PACKAGES)) :: binary-install/%:
> 	$(foreach file,$(DEB_TRANSFORM_FILES_$(cdbs_curpkg)), \
> 		install -d $(DEB_DESTDIR)/$(dir $(file)); \
> -		cp -a $(DEB_TRANSFORM_FILES_DIR)$(file) \
> +		cp -a $(call debian_transform_files,$(file)) \
> 		    $(DEB_DESTDIR)/$(dir $(file));)
>
> clean::
> -	rm -rf $(DEB_TRANSFORM_FILES_DIR)
> +	rm -rf $(DEB_TRANSFORM_FILES_TMPDIR)
>
> endif
>
>

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