boost 1.74 filesystem bug
I just made a new release of my hobby project scribbu. It started-off
as a few minor bug fixes, but eventaully led me down the
rabbit-hole. It turns-out that boost 1.74 introduced a bug in the
filesystem
library (copy_file() throws "Invalid cross-device link" ·
Issue #254 · boostorg/filesystem) that threw an EXDEV
when copying
across filesystems (not moving).
This was fixed in 1.77, but the Debian repos are back at 1.74 (see which #1017558 - libboost-filesystem-dev & Bug#1017558: libboost-filesystem-dev), of course (1.80 is current at the time of this writing).
This is really disappointing; renaming will generally fail across filesystems, to which the standard response is to copy & then remove the original. This would have broken a lot of code.
Experimenting showed that the standard library filesystem
library
did not suffer from this bug, so I moved to that (removing the
dependency on boost::filesystem).
12/28/22 07:37