First off all, this is my 1st gentoo bug report, and I hope this is in the good section. After an emerge rsync; emerge -u --deep world, update failed on emerging net-misc/rsync-2.5.6_pre20021105-r1 ... /usr/include/compat.h:6:2: warning: #warning "This header is obsolete, use ap_compat.h instead" In file included from rsync.h:218, from zlib/zutil.h:16, from zlib/zutil.c:8: /usr/include/compat.h:6:2: warning: #warning "This header is obsolete, use ap_compat.h instead" gcc -I. -I. -march=pentium3 -O3 -pipe -fomit-frame-pointer -DHAVE_CONFIG_H -Wall -W -c zlib/adler32.c -o zlib/adler32.o Please ignore warnings below about mktemp -- it is used in a safe way gcc -march=pentium3 -O3 -pipe -fomit-frame-pointer -DHAVE_CONFIG_H -Wall -W -o rsync rsync.o generator.o receiver.o cleanup.o sender.o exclude.o util.o main.o checksum.o match.o syscall.o log.o backup.o options.o flist.o io.o compat.o hlink.o token.o uidlist.o socket.o fileio.o batch.o clientname.o progress.o pipe.o params.o loadparm.o clientserver.o access.o connection.o authenticate.o lib/fnmatch.o lib/compat.o lib/snprintf.o lib/mdfour.o lib/permstring.o zlib/deflate.o zlib/infblock.o zlib/infcodes.o zlib/inffast.o zlib/inflate.o zlib/inftrees.o zlib/infutil.o zlib/trees.o zlib/zutil.o zlib/adler32.o -lpopt -lresolv exclude.o(.text+0xb4d): In function `make_exclude': : undefined reference to `ap_fnmatch' exclude.o(.text+0xcfa): In function `check_one_exclude': : undefined reference to `ap_fnmatch' token.o(.text+0xa0): In function `set_compression': : undefined reference to `ap_fnmatch' access.o(.text+0x170): In function `access_match': : undefined reference to `ap_fnmatch' authenticate.o(.text+0x1b1): In function `auth_server': : undefined reference to `ap_fnmatch' collect2: ld returned 1 exit status make: *** [rsync] Error 1 !!! ERROR: net-misc/rsync-2.5.6_pre20021105-r1 failed. !!! Function src_compile, Line 41, Exitcode 2 !!! (no error message)
Bouncing back to bug-wranglers due to time constraints.
please paste #emerge info
Also, what is the output of: qpkg -f /usr/include/compat.h
The ap_* stuff appears to be part of Apache. Apache has an 'ap_fnmatch' function, but rsync uses 'fnmatch'. One possibility is a header on your computer is #define'ing fnmatch to ap_fnmatch. You could try to 'grep -r fnmatch /usr/include/*'
> it returns nothing! > Should it have returned something? This file may have been installed from you installing software outside of portage, if it returns nothing it means that no installed packages lay claim to that file. > /usr/include/ap_compat.h:#define fnmatch ap_fnmatch This is what I figured. I would guess that if you look inside /usr/include/compat.h it #include's ap_compat.h, and ap_compat.h is renaming fnmatch to ap_fnmatch. So ultimately I would guess if you get rid of /usr/include/compat.h in some way (move it out of the way or rename it) then rsync will merge successfully. P.S. please reply via bugzilla interface
yes, I've renamed /usr/include/compat.h and it worked fine. This compat.h may have been installed when I've tried to compile apache with mod_perl staticly compiled inside it by myself as I couldn't do this with portage. thanks