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