.TH dpkg\-maintscript\-helper 1 "2011-08-14" "Debian Project" "dpkg suite"
.SH NAME
dpkg\-maintscript\-helper \- works around known dpkg limitations in maintainer scripts
.
.SH SYNOPSIS
.B dpkg\-maintscript\-helper
.IR command " [" parameter "...] \fB\-\-\fP " maint-script-parameter ...
.
.SH COMMANDS AND PARAMETERS
.P
\fBrm_conffile\fP \fIconffile\fP [\fIlastversion\fP [\fIpackage\fP]]
.P
\fBmv_conffile\fP \fIoldconffile\fP \fInewconffile\fP [\fIlastversion\fP [\fIpackage\fP]]
.
.SH DESCRIPTION
.P
This program is designed to be run within maintainer scripts to achieve
some tasks that dpkg can't (yet) handle natively either because of design
decisions or due to current limitations.
.P
Many of those tasks require coordinated actions from several maintainer
scripts (\fBpreinst\fP, \fBpostinst\fP, \fBprerm\fP, \fBpostrm\fP). To
avoid mistakes the same call simply needs to be put in all scripts and the
program will automatically adapt its behaviour based on the environment
variable \fBDPKG_MAINTSCRIPT_NAME\fP and on the maintainer scripts arguments
that you have to forward after a double dash.
.
.SH CONFFILE RELATED TASKS
.P
When upgrading a package, dpkg will not automatically remove a conffile (a
configuration file for which dpkg should preserve user changes) if it is
not present in the newer version. There are two principal reasons for
this; the first is that the conffile could've been dropped by accident and
the next version could restore it, users wouldn't want their changes
thrown away. The second is to allow packages to transition files from a
dpkg\-maintained conffile to a file maintained by the package's maintainer
scripts, usually with a tool like debconf or ucf.
.P
This means that if a package is intended to rename or remove a conffile,
it must explicitly do so and \fBdpkg\-maintscript\-helper\fP can be used
to implement graceful deletion and moving of conffiles within maintainer
scripts.
.
.SS REMOVING A CONFFILE
.P
If a conffile is completely removed, it should be removed from disk,
unless the user has modified it. If there are local modifications, they
should be preserved. If the package upgrades aborts, the newly obsolete
conffile should not disappear.
.P
All of this is implemented by putting the following shell snippet in the
\fBpreinst\fP, \fBpostinst\fP and \fBpostrm\fP maintainer scripts:
.P
    dpkg\-maintscript\-helper rm_conffile \\
        \fIconffile\fP \fIlastversion\fP \fIpackage\fP \-\- "$@"
.P
\fIconffile\fP is the filename of the conffile to remove.
\fIlastversion\fP is the last version of the package that contained the
conffile (or the last version of the package that did not take care to
remove the obsolete conffile if this was not immediately implemented).
If \fIlastversion\fP is empty or omitted, then the operation is tried
on every upgrade. \fIpackage\fP is the package name, it's optional as it will
default to $DPKG_MAINTSCRIPT_PACKAGE (this variable is set by dpkg to the
name of the package acted upon). All the parameters of the maintainer
scripts have to be forwarded to the program after "\-\-".
.P
Current implementation: in the \fBpreinst\fP, it checks if the conffile
was modified and renames it either to \fIconffile\fP\fB.dpkg\-remove\fP (if not
modified) or to \fIconffile\fP\fB.dpkg\-backup\fP (if modified). In the
\fBpostinst\fP, the latter file is renamed to \fIconffile\fP\fB.dpkg\-bak\fP
and kept for reference as it contains user modifications but the former will
be removed. If the package upgrade aborts, the \fBpostrm\fP reinstalls the
original conffile. During purge, the \fBpostrm\fP will also delete the
\fB.dpkg\-bak\fP file kept up to now.
.
.SS RENAMING A CONFFILE
.P
If a conffile is moved from one location to another, you need to make sure
you move across any changes the user has made. This may seem a simple
change to the \fBpreinst\fP script at first, however that will result in
the user being prompted by dpkg to approve the conffile edits even though
they are not responsible of them.
.P
Graceful renaming can be implemented by putting the following shell
snippet in the \fBpreinst\fP, \fBpostinst\fP and \fBpostrm\fP maintainer
scripts:
.P
    dpkg\-maintscript\-helper mv_conffile \\
        \fIoldconffile\fP \fInewconffile\fP \fIlastversion\fP \fIpackage\fP \-\- "$@"
.P
\fIoldconffile\fP and \fInewconffile\fP are the old and new name of the
conffile to rename. \fIlastversion\fP is the last version of the package
that contained the conffile with the old name. If \fIlastversion\fP is
empty or omitted, then the operation is tried on every upgrade (note: it's
safer to give the version and have the operation tried only once). \fIpackage\fP
is the package name, it's optional as it will default to
$DPKG_MAINTSCRIPT_PACKAGE (this variable is set by dpkg to the name of the
package acted upon). All the parameters of the maintainer scripts have to
be forwarded to the program after "\-\-".
.P
Current implementation: the \fBpreinst\fP checks if the conffile has been
modified, if yes it's left on place otherwise it's renamed to
\fIoldconffile\fP\fB.dpkg\-remove\fP. On configuration, the \fBpostinst\fP
removes \fIoldconffile\fP\fB.dpkg\-remove\fP and renames \fIoldconffile\fP
to \fInewconffile\fP if \fIoldconffile\fP is still available. On
abort\-upgrade/abort\-install, the \fBpostrm\fP renames
\fIoldconffile\fP\fB.dpkg\-remove\fP back to \fIoldconffile\fP if required.
.
.SH INTEGRATION IN PACKAGES
.P
Given that \fBdpkg\-maintscript\-helper\fP is used in the \fBpreinst\fP,
using it unconditionally requires a pre-dependency to ensure that the
required version of dpkg has been unpacked before. The required version
depends on the command used, for \fBrm_conffile\fP and \fBmv_conffile\fP
it is 1.15.7.2:
.P
    \fBPre\-Depends:\fP dpkg (>= 1.15.7.2)
.P
But in many cases the operation done by the program is not critical for
the package, and instead of using a pre-dependency we can call the
program only if we know that the required command is supported by
the currently installed dpkg:
.P
    if dpkg\-maintscript\-helper supports \fIcommand\fP; then
        dpkg\-maintscript\-helper \fIcommand\fP ...
    fi
.
.SH AUTHORS
Copyright \(co 2010 Rapha\[:e]l Hertzog
.br
Copyright \(co 2008 Joey Hess
.br
Copyright \(co 2007 Guillem Jover
.br
Copyright \(co 2005 Scott James Remnant
.sp
This is free software; see the GNU General Public Licence version 2 or
later for copying conditions. There is NO WARRANTY.

