Subject: bug#13355: Deprecating and removing the 'mkinstalldir' script

From: Stefano Lattarini <[email-masked]>
Date: Sun, 13 Jan 2013 21:51:39 +0100

On 01/12/2013 09:35 PM, Stefano Lattarini wrote:
> On 01/04/2013 11:15 AM, Stefano Lattarini wrote:
>> Severity: wishlist
>>
>> The 'mksintalldirs' script has been by long superseded by "install-sh -d",
>> has  already deprecated in the documentation, and already removed in
>> Automake-NG.  I'd like to remove it in future Automake versions.
>>
>> However, we must first find a viable way to non-fatally deprecate it
>> with some form of runtime warning.
>>
> Here is a tentative roadmap:
> 
> For Automake 1.13.x:
> 
>   - edit 'mkinstalldirs' print a non-fatal warning when invoked (keeping
>     its behaviour unchanged in every other aspect); this warning should
>     reference the use of "install-sh -d".
>
Actually, I'm no longer sure there is a point in mangling a working script
with warnings of dubious usefulness.  A warning at Automake runtime should
be good enough.  Speaking of which ...

>   - have automake print a warning in the 'obsolete' category when it
>     decides to distribute the 'mkinstalldirs' script only because it
>     is found in the AC_CONFIG_AUX_DIR directory (but *not* if the user
>     distributes it explicitly, by listing it in EXTRA_DIST).
>
... this is isn't the truly correct path to deprecation.  A better and
simpler one would be to warn only if 'mkinstalldirs' is *not* listen in
an explicit AC_REQUIRE_AUX_FILE call (which is *the* correct and documented
interface to require auxiliary scripts in Autotools-based projects).

I'll try to cook up a patch along that line (it should be really easy and
minimal at this point).

> For Automake 1.14, or even 1.15:
> 
>   - turn both the warnings above into fatal errors.
>
Now, s/both the warnings/the warning/ of course.

> For the next major version after that:
> 
>   - remove the mkinstalldir script from our Git repository altogether,
>     and drop any special handling of it from the automake script.
>
This stands.

> This will allow anyone using older Automake versions to still be compatible
> with 1.13.2, 1.14 and 1.15 by simply:
> 
>   - committing a copy of 'mkinstalldirs' in his repository;
>
This stands too.

>   - explicitly distributing it by having it listed in EXTRA_DIST.
>
Rather, 'mkinstalldirs' should just be given in a AC_REQUIRE_AUX_FILE
invocation.  This sounds more natural, and is the correct use of APIs.

Regards,
  Stefano