On Tue, 24 Sep 2024, Ben Hutchings wrote:

>I suppose I can make this work again for bookworm, but I won't do so
>for unstable.

Then, perhaps issue a visible warning so that people can change
their scripts?

>This was not an intended feature.  When specifiing a diectory as the
>target you are supposed to ensure that it already exists under
>${DESTDIR}.  It seems that this just happened to work when the target
>name ended in a slash.

Hmmh, but this is used in so many other places, e.g. dh_install
does that, and many of the other scripts also don’t place filenames
after directories, they are just lucky that the directories exist
then.

But, wait, copy_exec *DOES* create missing directories, so this
*does* look like intended behaviour to me…

>The changes in the last point release to avoid duplicating files
>accessed via directory symlinks broke that because realpath strips the
>trailing slash.

Hmh.

IMHO we have two ways we can go from here (also towards sid).

One, repair this. If there is a trailing slash, it’s supposed
to be placed into that directory, then create that if missing.
That is, make bullseye’s behaviour the intended one.

Two, say people are expected to create the directories first.
But in that case, copy_exec also must not create any missing
directories any more *at all*, and additionally, if the target
ends in a slash in the argv (i.e. before realpathisation), it
still must be interpreted as the name of a directory (or symlink
to a directory), so that copying to '/usr/libexec/' will either
work (if pre-created) or fail (if not pre-created). These two
are needed for consistency and to have a sensitive failure mode
for users’ scripts, as opposed to create /usr/libexec as file.

bye,
//mirabilos
-- 
22:20⎜<asarch> The crazy that persists in his craziness becomes a master
22:21⎜<asarch> And the distance between the craziness and geniality is
only measured by the success 18:35⎜<asarch> "Psychotics are consistently
inconsistent. The essence of sanity is to be inconsistently inconsistent

Reply via email to