[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

debian/rules error on clean rule



Hi all,

A package (yadex) isn't building, and I'm trying to figure out why.  I
narrowed it down to the clean rule of debian/rules.  Here's the relevent
portion of debian/rules (echos added by me):


clean: clean-tree unpatch
clean-tree: checkroot
   @echo "*************************  ALPHA"
   rm -f configure-stamp build-stamp install-stamp
   @echo "*************************  BRAVO"
   -$(MAKE) clean
   @echo "*************************  CHARLIE"
   rm -rf obj dobj src/config.h src/config.cc cache/*
   @echo "*************************  DELTA"
   dh_clean
   @echo "*************************  ECHO"


And here's the output:

$ fakeroot debian/rules clean
dh_testdir
dh_testroot
*************************  ALPHA
rm -f configure-stamp build-stamp install-stamp
*************************  BRAVO
/usr/bin/make clean
rm: cannot remove `obj/0'
rm: cannot remove `dobj/0'
ln: `obj/0/satan_120879850169': File exists
ln: `dobj/0/satan_120879850169': File exists
make[1]: Entering directory `/home/p/debian/yadex/yadex-1.7.0'
rm -f  obj/0/acolours.o obj/0/aym.o obj/0/bench.o obj/0/bitvec.o
obj/0/cfgfile.o obj/0/checks.o obj/0/colour1.o obj/0/colour2.o
obj/0/atclib/al_lwritel.o obj/0/atclib/al_sapc.o obj/0/atclib/al_saps.o
   (big snip)
obj/0/atclib/al_scps.o obj/0/atclib/al_scpslower.o obj/0/atclib/al_sdup.o
obj/0/atclib/al_sisnum.o obj/0/atclib/al_strolc.o obj/0/yadex
rm -f  dobj/0/acolours.o dobj/0/aym.o dobj/0/bench.o dobj/0/bitvec.o
dobj/0/cfgfile.o dobj/0/checks.o dobj/0/colour1.o dobj/0/colour2.o
   (big snip)
dobj/0/atclib/al_saps.o dobj/0/atclib/al_scps.o dobj/0/atclib/al_scpslower.o
dobj/0/atclib/al_sdup.o dobj/0/atclib/al_sisnum.o dobj/0/atclib/al_strolc.o
dobj/0/yadex
rm -f obj/0/ftime
rm -f obj/0/install
rm -f obj/0/notexist
rm -f obj/0
rm: cannot remove `obj/0'
make[1]: *** [clean] Error 1
make[1]: Leaving directory `/home/p/debian/yadex/yadex-1.7.0'
make: [clean-tree] Error 2 (ignored)
*************************  CHARLIE
rm -rf obj dobj src/config.h src/config.cc cache/*
rm: cannot remove `obj'
rm: cannot remove `dobj'
rm: cannot remove `cache/copyright.man'
rm: cannot remove `cache/copyright.txt'
rm: cannot remove `cache/pixlist'
rm: cannot remove `cache/srcdate'
rm: cannot remove `cache/uptodate'
make: *** [clean-tree] Error 1


And then it gives up because of the errors.  The part that I really don't
understand is WHY the rm fails.

For example, the last few errors are mysterious because:

   $ lla cache/
   total 28K
   drwxrwxrwx   2 p p 4.0K 2004-12-12 09:43 ./
   drwxrwxrwx  14 p p 4.0K 2004-12-12 09:45 ../
   -rw-rw-rw-   1 p p  267 2004-12-12 09:43 copyright.man
   -rw-rw-rw-   1 p p  267 2004-12-12 09:43 copyright.txt
   -rw-rw-rw-   1 p p  187 2004-12-12 09:43 pixlist
   -rw-rw-rw-   1 p p   10 2004-12-12 09:43 srcdate
   -rw-rw-rw-   1 p p    2 2004-12-12 09:43 uptodate

cache/ and everything in it is owned by me, and world writable.  Similarly:

   $ lla obj/
   total 12K
   drwxrwxrwx   3 p p 4.0K 2004-12-12 09:45 ./
   drwxrwxrwx  14 p p 4.0K 2004-12-12 09:45 ../
   lrwxr-xr-x   1 p p   18 2004-12-12 09:45 0 -> satan_120879850169/
   drwxrwxrwx   3 p p 4.0K 2004-12-12 09:45 satan_120879850169/

everything in obj/ is owned by me and world writable.

So what the heck is going on with:

   *************************  CHARLIE
   rm -rf obj dobj src/config.h src/config.cc cache/*
   rm: cannot remove `obj'
   rm: cannot remove `dobj'
   rm: cannot remove `cache/copyright.man'
   rm: cannot remove `cache/copyright.txt'
   rm: cannot remove `cache/pixlist'
   rm: cannot remove `cache/srcdate'
   rm: cannot remove `cache/uptodate'
   make: *** [clean-tree] Error 1

And the really mysterious thing is, when I run "# debian/rules clean" as
root, it works without a hitch!

In fact, simply using "$ fakeroot make clean" fails.  I think this is what's
ultimately killing "dpkg-buildpage -rfakeroot".

I don't even slightly understand how fakeroot works, but I'm wondering what's
going on here.

Should I copy my ~/.gnupg to /root and build the package as a root user?

Thanks!
Pete

-- 
The mathematics of physics has become ever more abstract, rather than more
complicated.  The mind of God appears to be abstract but not complicated.
He also appears to like group theory.  --  Tony Zee's "Fearful Symmetry"

PGP Fingerprint: B9F1 6CF3 47C4 7CD8 D33E  70A9 A3B9 1945 67EA 951D



Reply to: