Attention, all maintainers of third-party debhelper commands. Sometime
in the next week or two, I plan to put dehelper 7.1.x in unstable. This
version, currently in experimental, has a significant change to its
command option parser, and a few[1] third-party commands need changes to
keep all the options they use working.
From the changelog:
* Move many command-specific options to only be accepted by the command
that uses them. Affected options are:
-x, -r, -R, -l, -L, -m,
--include-conffiles, --no-restart-on-upgrade, --no-start,
--restart-after-upgrade, --init-script, --filename, --flavor, --autodest,
--libpackage, --add-udeb, --dpkg-shlibdeps-params,
--dpkg-gencontrol-params, --update-rcd-params, --major, --remove-d,
--dirs-only, --keep-debug, --version-info, --list-missing, --fail-missing,
--language, --until, --after, --before, --remaining, --with
* If any third-party debhelper commands use any of the above options,
they will be broken, and need to be changed to pass options to init().
Example:
SYNOPSIS
dh_makeclilibs [debhelper options] [-r] [-V[dependancies]] [-mminversion] [-lnextincompatible] [-Xitem]
From the synopsis, we can see this command uses
removed options -r, -m, and -l. It also turns out to
use --version-info.
To re-add support for these flags, look for the call
to `init()`, and change it to include an options parameter:
init(options => {
"r" => \$dh{R_FLAG},
"m=s" => \$dh{M_PARAMS},
"l=s" => \$dh{L_PARAMS},
"version-info:s" => \$dh{V_FLAG},
});
The values inside the hash are the same as would be passed
to Getopt::Long. -m and -l require a string parameter, thus
the "=s". --version-info can optionally take a string parameter,
thus the ":s".
The $dh{R_FLAG}, $dh{M_PARAMS} etc variables are the ones
historically set by debhelper when these options are set.
With that simple change made, dh_makeclilibs will be compatable with
both the old and new versions of debhelper. So no versioned
dependency is needed.
Appendix:
Here is an excerpt of the getopt options from stable's debhelper,
showing how it handled each of the removed options.
"x" => \$dh{INCLUDE_CONFFILES}, # is -x for some unknown historical reason..
"include-conffiles" => \$dh{INCLUDE_CONFFILES},
"remove-d" => \$dh{D_FLAG},
"dirs-only" => \$dh{D_FLAG},
"r" => \$dh{R_FLAG},
"no-restart-on-upgrade" => \$dh{R_FLAG},
"no-start" => \$dh{NO_START},
"R|restart-after-upgrade" => \$dh{RESTART_AFTER_UPGRADE},
"keep-debug" => \$dh{K_FLAG},
"update-rcd-params=s", => \$dh{U_PARAMS},
"dpkg-shlibdeps-params=s", => \$dh{U_PARAMS},
"dpkg-gencontrol-params=s", => \$dh{U_PARAMS},
"l=s", => \$dh{L_PARAMS},
"m=s", => \$dh{M_PARAMS},
"major=s" => \$dh{M_PARAMS},
"version-info:s" => \$dh{V_FLAG},
"init-script=s" => \$dh{INIT_SCRIPT},
"filename=s" => \$dh{FILENAME},
"flavor=s" => \$dh{FLAVOR},
"autodest" => \$dh{AUTODEST},
"list-missing" => \$dh{LIST_MISSING},
"fail-missing" => \$dh{FAIL_MISSING},
"L|libpackage=s" => \$dh{LIBPACKAGE},
"error-handler=s" => \$dh{ERROR_HANDLER},
"add-udeb=s" => \$dh{SHLIBS_UDEB},
"language=s" => \$dh{LANGUAGE},
"until=s" => \$dh{UNTIL},
"after=s" => \$dh{AFTER},
"before=s" => \$dh{BEFORE},
"remaining" => \$dh{REMAINING},
"with=s" => \&AddWith,
--
see shy jo
[1] I had to read through about 1/3 of all the existing third-party
commands I could find in order to find the one example above
of a command that uses these options.
Attachment:
signature.asc
Description: Digital signature