Reputation: 23592
I'm trying to build a Debian package, but I've got this weird pseudo-directory problem. I run:
$ fakeroot debian/rules binary
I've built the binary before, but something must have changed on my system. Now dh_md5sums errors out and returns:
md5sum: include: Is a directory
dh_md5sums: command returned error code
make: *** [binary-arch] Error 1
Indeed, include
is a directory. So, I added some debugging statements to dh_md5sums, to figure out why include
was being hashed despite the line that was supposed to filter out directories. Adding:
doit("ls", "-l", "$tmp");
shows that, indeed, include
is not a directory when dh_md5sums is run:
total 28
drwxr-xr-x 2 root root 4096 2009-06-18 13:36 bin
-rwxr-xr-x 3 root root 4096 2009-06-18 13:36 include
drwxr-xr-x 3 root root 4096 2009-06-18 13:36 var
# some directories removed for brevity's sake
So, can I remove it? I added:
doit("rm", "$tmp/include");
and got:
rm: cannot remove `debian/myproject/include': Is a directory
maybe it... turned into a directory? I added another ls -l
below the rm
and got:
total 28
drwxr-xr-x 2 root root 4096 2009-06-18 13:36 bin
-rwxr-xr-x 3 root root 4096 2009-06-18 13:36 include
drwxr-xr-x 3 root root 4096 2009-06-18 13:36 var
and when the scripts are done running, I can do:
$ ls -l
drwxr-xr-x 2 x x 4096 2009-06-18 13:48 bin
drwxr-xr-x 3 x x 4096 2009-06-18 13:48 include
drwxr-xr-x 3 x x 4096 2009-06-18 13:48 var
...which is weird, as include
becomes a directory and the ownership changes (x
is my username). include
even contains all the header files it's supposed to.
Does anyone know what's going on?
Upvotes: 0
Views: 335
Reputation: 34112
total 28
drwxr-xr-x 2 root root 4096 2009-06-18 13:36 bin
-rwxr-xr-x 3 root root 4096 2009-06-18 13:36 include
drwxr-xr-x 3 root root 4096 2009-06-18 13:36 var
# some directories removed for brevity's sake
Note that include
has a link count of 3, indicating that it's either a directory with 1 subdirectory, or a file with 3 hard links. The former seems more likely.
This seems like a bad interaction with fakeroot. I've seen it before where fakeroot sometimes "forgets" permissions, so double check that when include
is being created or modified that it has the right type (and that none of these have recent changes).
Upvotes: 1