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.
signature.asc
Description: Digital signature