Jim Meyering wrote:
Todd Zullinger wrote:
I tried to build a git update into dist-f12-openssl earlier and had it
die in %doc with an error from cp¹:
cp: preserving times for `/builddir/build/BUILDROOT/git-1.6.4.1-1.fc12.i386/usr/share/doc/git-1.6.4.1/contrib/hooks': Function not implemented
Hi Todd,
This is because that latest version of coreutils tries to preserve
permissions on symlinks when it thinks that is possible.
It determines whether to try by testing at configure time for the
existence of the utimensat function. If it can compile and link
against that function, then the resulting executable will call it
and report any failure. The trouble is when you configure on a system
with recent libraries and headers, yet *run* with a kernel
that is old enough as to lack the syscall.
By the way, to those who maintain koji,
It is subtly dangerous to configure a package against headers and
libraries that are not well-matched with the kernel.
In this case, new headers/libraries suggest a function is available,
as detected by a standard autoconf function-existence check.
Yet only at run time do we detect (via surprising failure with ENOSYS)
that the kernel is too old to support the function that we were led
to believe would be available. Here, it wasn't that big a deal,
but I can easily imagine this sort of mismatch leading to a more
serious problem.
It is fine to have a kernel *newer* than would be suggested by
headers/libraries. Now you've seen why is risky to use one that is older.