dh_config_model_upgrade(1p)

dh_config_model_upgrade1p

Add config::model based configuration merge

Usage

dh_config_model_upgrade [debhelper options] [--model_name xx] \ [--model_package xx [--model_version yy]] \ [--edit_option " ... "] [-p pkg]

Overview

dh_config_model_upgrade is experimental

dh_config_model_upgrade is a debhelper that will modify the package script to perform configuration merge on package upgrade. This merge is based on config-edit from Config::Model.

Model information can be specified by command options or a configuration file: "debian/foo.config-model"

A Model must be either :

•

Delivered in the package in "debian/config-model/models/" directory

•

Provided by another package

Requirements

For this program to work, package maintainer must ensure that:

•

ensure that *.postinst and *.config have a #DEBHELPER# line (if these files exist)

•

ensure that control file has a dependency on ${misc:Depends}

Options

--model_name XX

Specifies the model name (a la "Config::Model") that will be used to perform the upgrade. Without this information, "dh_config_model_upgrade" will do nothing. (shortcut "--mn")

--model_for "xx yy"

Specifies the package to act upon. Without this option, "dh_config_model_upgrade" will do nothing. To specify several packages, list the packages between quotes. (shortcut "--mf")

--model_package XX

Specifies the debian package that provide the model specified bu "-model_name". (shortcut "--mp")

--model_version YY

Specifies the minimal version of the package that provides the model. (shortcut "--mv")

--edit_option "..."

Specify a list of options or command that will be passed verbatim to config-edit during upgrade. Be sure to use quotes.

-p

debhelper option to specify which package(s) to act on.

Usage

"dh_config_model_upgrade" can be used with only command line options. For instance

 dh_config_model_upgrade --model_name Sshd  -p openssh-server \
           --model_package lib-config-model-openssh-perl --model_version 1.206

Alternatively, you can specify relevant information in configuration files. For instance:

 $ cat debian/openssh-server.config-model
 model_name: Sshd
 model_package: lib-config-model-openssh-perl
 model_version: 1.206
 $ cat debian/openssh-client.config-model
 model_name: Ssh
 model_package: lib-config-model-openssh-perl
 model_version: 1.206

In this case, "dh_config_model_upgrade" will be invoked this way

 dh_config_model_upgrade

If the model are delivered within the package, you will have to specify them in xx.install file.

Here's a example based on "approx" package where the model file and the parser/writer are delivered in approx package.

Debian dir contains:

  debian/config-model/Approx.pm
  debian/config-model/models/Approx.pl

"debian/approx.install" contains:

  debian/config-model/Approx.pm usr/share/perl5/Config/Model
  debian/config-model/models/Approx.pl usr/share/perl5/Config/Model/models

dh_config_model_upgrade is invoked as :

  dh_config_model_upgrade -model_name Approx

debian files setup

"dh_config_model_upgrade" will work if:

•

"control" file contains a "S{misc:Depends}" variable in "Depends" line

•

"rules" contains a "#DEBHELPER#" line to insert generated postinst snippet

Examples

"dh_config_model_upgrade" can be called in the rules file via the dh command (no options are possible, you will have to specify "debian/*.config_model" files):

 %:
   dh --with config_model

Or directly at the start of the build with

 build:
   dh_config_model_upgrade -model_name FooBar

Here's an example to avoid using Augeas when upgrading

 build:
   dh_config_model_upgrade -model_name Sshd -edit_option "-backend custom"

Caveats

Using options with a single dash (e.g. "-model_name" instead of "--model_name") will lead to ""Unknown option"" errors.

Environment

This program will exit(0) if "DH_NO_ACT" is set or if "DEB_BUILD_OPTIONS" contains "noconfigmodel".

Releases

2 releases since Debian 6.0 (Squeeze); the text changed 1 time.

  1. 6.0
  2. 7

Author

Dominique Dumont <[email protected]>

From libconfig-model-perl 2.021-3+deb7u1 in Debian 7 (Wheezy). Parsed by carta from the page's man source.