When worlds collide

Recently, I had to check out a linux tree at work from cvs. I only knew the repository, but didn't know the module to check out. So I made my best guess and started building the kernel. After plowing through a couple of little things, I hit the wall with:

scripts/Makefile.build:17: /pe/imp/xxx/linux-2.6.xxx/net/core/Makefile: No such file or directory
gmake[2]: *** No rule to make target `/pe/imp/xxx/linux-2.6.xxx/net/core/Makefile'. Stop.

Guess what someone forgot to do when they were doing the cvs import :-)

1 comment:

Warner Losh said...

For those wondering...

CVS automatically ignores, by default, all files named core. This is in the default cvsignore list. However, linux has sevearl directories named core, so if someone does a cvs import with the default ignore list, all of them are omitted from the tree that's later checked out.

That's what happened to my tree. I was able to find a different module that had the core directories in it with just a little bit of searching through the rest of the repository.

It was very gratifying to see that other people had been burned by this as well. Usually I was burned by it when doing cvs imports of FreeBSD which has some man pages named foo.a, which were ignored because of another line in the default file.