Subject: pkg/30156: sysutils/fam and FreeBSD and statvfs
To: None <,,>
From: None <>
List: pkgsrc-bugs
Date: 05/06/2005 17:57:00
>Number:         30156
>Category:       pkg
>Synopsis:       sysutils/fam build failure on FreeBSD regarding statvfs
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    pkg-manager
>State:          open
>Class:          change-request
>Submitter-Id:   net
>Arrival-Date:   Fri May 06 17:57:00 +0000 2005
>Release:        FreeBSD 5.3
Architecture: i386
Machine: i386
Under FreeBSD 5.3-RELEASE, sysutils/fam fails build:

source='mntent_compat.c++' object='mntent_compat.o' libtool=no \
depfile='.deps/mntent_compat.Po' tmpdepfile='.deps/mntent_compat.TPo' \
depmode=gcc3 /bin/sh ../depcomp \
c++ -DHAVE_CONFIG_H -I. -I. -I.. -I../include -DFAM_CONF=\"/usr/pkg/etc/fam.conf\"    -O2 -c -o mntent_compat.o `test -f 'mntent_compat.c++' || echo './'`mntent_compat.c++
mntent_compat.c++: In function `mntent* statfs_to_mntent(statvfs*)':
mntent_compat.c++:150: error: 'struct statvfs' has no member named 'f_mntfromname'
mntent_compat.c++:151: error: 'struct statvfs' has no member named 'f_mntonname'
mntent_compat.c++:152: error: 'struct statvfs' has no member named 'f_fstypename'
mntent_compat.c++: In function `mntent* getmntent(FILE*)':
mntent_compat.c++:180: error: cannot convert `statvfs**' to `statfs**' for argument `1' to `int getmntinfo(statfs**, int)'
gmake[2]: *** [mntent_compat.o] Error 1
gmake[2]: Leaving directory `/usr/home/reed/pkgsrc/sysutils/fam/work/fam-2.7.0/src'

FreeBSD's statvfs structure doesn't define f_mntfromname, f_mntonname
or f_fstypename. They are defined in sys/mount.h for statfs.
Build fam on FreeBSD 5.3
My workaround was to manually patch work/fam-2.7.0/config.h
to undefine HAVE_SYS_STATVFS_H.