> Ok, just to confirm [...] ?

The following tools only apply -X in case 1. This is useful.
  dh_autoreconf dh_fixperms dh_installchangelogs dh_md5sums dh_prep
  dh_shlibdeps dh_strip dh_dwz dh_makeshlibs dh_link

The following tools apply -X to both case 1 and 2, but 2 is never used
in practice.I suggest dropping support for case 2.

  dh_clean\s.*(?:-X|--exclude)) shows 138 results.
  All of them excluding paths matching the default pattern, with no or
  unrelated command line arguments.
  The implementation applies -X to config file, but not to command
  line arguments, and no none seems to have noticed.
  Job already half done :-).

  dh_compress seems similar, though I have not checked each one of the
  1536 results.

Only 3 tools frequently use --exclude to refine command-line or
config-file patterns.
  dh_install (and its old variant dh_movefiles, 1 result)

> 2) The case you described above where people want "all the files in
>    foo except bar".

After reading many examples, I realize how this can be convenient
("dh_installexamples -X.cvsignore").

> 1) Ignore files/paths from the config file that are conditionally
>    built.  This is usually observed via the following pattern:
> [...]

In my opinion, such a construct is an abuse of -X. It is better to
* remove foo from debian/pkg.install (tell the truth)
* add foo to debian/not-installed    (tell the truth)
* use a positive selection:          (each negation hinders readability)
  ifeq ...
    PKG_INSTALL += foo
    dh_install --package=pkg $(PKG_INSTALL)
    dh_install --remaining-packages
The difference is cosmetic for the maintainer, but not in favor of -X.

> [executable config files and dh-exec]

If dh-exec finds a new maintainer, it may be the best option to
implement exclusions outside debhelper (#498067 has a pending patch).

> If you can convince the remaining consumers of --ignore to migrate
> away, then I am happy to drop the option when we release debhelper 12.

This seems possible:

* gutenprint: reported as #895659.

* ocaml: patches #877267 as a side effect.

* lintian: in t/tests/debhelper-dh-exec/
 If I understand well, it should be sufficient to
 * rename debian/debian/docs to debian/debian/mime.
 * replace lines 6-9 of debian/debian/rules with "override_dh_installmime:"
 * replace "debian/docs" with "debian/mime" at end of line 8 in the tags file.
 As the author of the commit, you should be able to answer :-)

Reply via email to