I've just upgraded my Mac to Catalina and cvs does not seem to be working. Almost every command I try gives me a variant on the error:
cvs [init aborted]: cannot get working directory: No such file or directory
This is true not just for existing repositories, but if I try to set up a new repository or a new cvsroot (as above).
I've tried re-installing cvs via Homebrew but the problem remains.
Is anyone else experiencing this and does anyone have suggestions for workarounds? (Obviously I could shift this stuff to git or similar, but its mostly legacy projects and I'm not that enthusiastic to go to the effort)
In case you have homebrew:
brew remove cvs
brew install cvs
did the trick for me. The new binary will be in /usr/local/bin/cvs, make sure you call that binary and not the catalina one (in /usr/bin/cvs)
Simply typing "brew update; brew upgrade" - what you should do after an OS upgrade - will not be enough.
cannot get working directory
only exists one place in the CVS source code, so was pretty easy to track it down to something awry in xgetcwd()
. xgetcwd()
eventually calls getcwd()
, but apparently isn't using the version defined in unistd.h
in Catalina, but its own version from "getcwd.h"
which is included in the CVS
source.
I don't have the time to track down why it works pre-Catalina, but the following patch forces the issue and worked for me on 10.15.
--- cvs-1.12.13/lib/xgetcwd.c.orig 2019-10-10 22:52:37.000000000 -0500
+++ cvs-1.12.13/lib/xgetcwd.c 2019-10-10 22:53:32.000000000 -0500
@@ -26,8 +26,9 @@
#include <errno.h>
#include <limits.h>
+#include <unistd.h>
-#include "getcwd.h"
+/* #include "getcwd.h" */
#include "xalloc.h"
/* Return the current directory, newly allocated.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With