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

Reply via email to