configure issue when libattr is in a non-standard location?

Paul Rogers paul.rogers at flumps.org
Mon May 5 07:02:20 MDT 2014


Hi,

Apologies if I'm missing anything or this has already been discussed. I 
did try looking at the bug list and mailing list archives before sending 
this. Plus it's my first time posting.

I am trying to compile rsync (v3.1.0) on a Synology NAS with ACL support. 
Why am I doing this? I have files that have extended ACLs that need to 
be preserved when another filesystem is rsync'd to it. The one Synology 
includes does not have ACL support (a feature request has been raised by 
someone else for this).

In order to do that, I had to compile libattr and libacl from attr-2.4.47 
and acl-2.2.52 respectively. They are installed in a non-standard location 
(/opt/local/attr and /opt/local/acl) as I want to keep "my" libraries 
separate from those bundled with the Synology. The libs and includes form 
those packages are then symlinked in to /opt/local/lib and 
/opt/local/include.

When it came to compile rsync, it failed to detect libacl during configure 
and after reading the log, it became apparent that ld couldn't reference 
libattr.so.1 from libacl.so when checking for ACL support (excerpt from 
the config.log):

ld: warning: libattr.so.1, needed by /opt/local/lib/libacl.so, not found 
(try using -rpath or -rpath-link)
/opt/local/lib/libacl.so: undefined reference to `removexattr at ATTR_1.0'
/opt/local/lib/libacl.so: undefined reference to `getxattr at ATTR_1.0'
/opt/local/lib/libacl.so: undefined reference to `setxattr at ATTR_1.0'
/opt/local/lib/libacl.so: undefined reference to `lgetxattr at ATTR_1.0'
/opt/local/lib/libacl.so: undefined reference to `fsetxattr at ATTR_1.0'
/opt/local/lib/libacl.so: undefined reference to `fgetxattr at ATTR_1.0'
collect2: error: ld returned 1 exit status

It should be noted the LD_LIBRARY_PATH and /etc/ld.so.conf are set to 
search in /opt/local/lib (and ldconfig was run to refresh the cache 
first). Below is the configure line I used:

LDFLAGS="-L/opt/local/lib" CFLAGS="-I/opt/local/include" CPPFLAGS="-I/opt/local/include" ./configure --prefix=/opt/local/rsync-3.1.0

After some Googling, I found a similar e-mail on the Samba-Technical 
mailing list from February 2003 with no answer where you needed to force 
the libattr  library inclusion in compilation by adding LIBS=-lattr to the 
configure line 
(https://lists.samba.org/archive/samba-technical/2003-February/026856.html)

Once added, configure found libacl and was able to compile ACL support in 
(verified through running "rsync --version").

My question, is this an issue in Rsync's configure script where "-lattr" 
should be set approriately to detect and use libacl during make? I wanted 
to ask before adding a bug report in case I had misunderstood the issue.

Thanks in advance,

P.


More information about the rsync mailing list