cvsnt [server aborted]: Couldn’t open default trigger library: No such file or directory

To my surprise I noticed CVSNT is now only available for money (and compared with my other development tools for a lot of money, so I’ll stick with Mercurial which comes with plenty of better features for which I would pay), but there are still versions included in several Linux distros that comes with source. I happened to work on an Ubuntu 9.10. (apt-get source cvsnt ;))

When I configured the repos, I had to put one into a jail for several reasons. However, the CVSNT server would simply bail out with the following error message:

cvsnt [server aborted]: Couldn’t open default trigger library: No such file or directory

… not too helpful, but after all we have the source ;)

So I grepped through the source and found that it expects to find a file info.la (or info.dll on Win32) and load it. After running updatedb I was able to find it. Sure enough the problem was no problem in the configuration that was not jailed. Well, seems that jailing requires a little more than just the /tmp folder as stated in the README, and indeed it does, so I bind-mounted the folder /usr/lib/cvsnt/triggers (where I found info.la) into my jail, so inside the chrooted environment it would appear as /usr/lib/cvsnt/triggers. Done.

The least invasive method to get it to run without even having to make other stuff available inside the jail. I suppose even bind-mounting all of /usr/lib/cvsnt would have been rather harmless.

// Oliver

PS: in /etc/fstab a bind-mount looks like this (one line):

/usr/lib/cvsnt/triggers /[repo-folder]/usr/lib/cvsnt/triggers bind defaults,bind 0 0

where [repo-folder] is the location that will be jailed (outside view, obviously).

This entry was posted in EN, Linux, Software, VCS and tagged , , , , , , . Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.