On Sat, Jan 27, 2024 at 02:00:14PM +0100, Sven Joachim wrote:
Package: coreutils
Version: 9.4-3+b1
,----
| $ cp -n /bin/true tmp
| cp: warning: behavior of -n is non-portable and may change in future; use
--update=none instead
`----
The advice to use the --update=none option is highly questionable,
because this option is even less portable than -n. It is not available
in coreutils older than 9.3 or in other cp implementations.
There is no alternative that I can see. I didn't create this situation,
it was created upstream. You can continue to use -n and ignore the
warning, but in future if debian stops patching -n to behave the way it
always has in order to match upstream, stuff will break. If debian keeps
patching -n, then then anything you write in debian will be depending on
behavior that differs in other distributions and will break everywhere
else (except older versions of those distributions). It's a mess.
This warning isn't for debian developers of existing packages, because
debian is maintaining compatibility (at least for now); you'll see a
warning message but the actual behavior hasn't changed and won't change
in debian without some coordination with affected packages. But for
developers with *new* upstream code that uses -n, which behavior does
the code expect? There are now two answers and *the only solution is to
not use -n*; it's not possible to simply file bugs with packages and fix
it once, because this is an ongoing incompatibility. I understand that
the messages are somewhat obnoxious, but my attempt to address the
situation upstream instead failed.