pkgsrc-Bugs archive

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

pkg/47651: netatalk-2.2.1nb11 won't build on Nov 2012 -current



>Number:         47651
>Category:       pkg
>Synopsis:       netatalk-2.2.1nb11 won't build on Nov 2012 -current
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    pkg-manager
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Fri Mar 15 21:20:01 +0000 2013
>Originator:     Dave Huang
>Release:        NetBSD 6.99.17
>Organization:
Name: Dave Huang         |  Mammal, mammal / their names are called /
INet: khym%azeotrope.org@localhost |  they raise a paw / the bat, the cat /
FurryMUCK: Dahan         |  dolphin and dog / koala bear and hog -- TMBG
Dahan: Hani G Y+C 37 Y++ L+++ W- C++ T++ A+ E+ S++ V++ F- Q+++ P+ B+ PA+ PL++
>Environment:
        
        
System: NetBSD yerfable.azeotrope.org 6.99.17 NetBSD 6.99.17 (YERFABLE) #0: Wed 
Mar 6 02:36:30 CST 2013 
khym%cheetah.azeotrope.org@localhost:/usr/obj.alpha/sys/arch/alpha/compile/YERFABLE
 alpha
Architecture: alpha
Machine: alpha
>Description:
        Trying to build netatalk-2.2.1nb11 on a semi-recent -current
(Nov 2012 or later) fails with:

gcc -std=gnu99 -DHAVE_CONFIG_H -I. -I../..    -D_PATH_AD=\"/usr/pkg/bin/ad\" 
-I../../sys/netbsd -I../../include -D_U_="__attribute__((unused))" -O2 -mieee 
-I/usr/pkg/include -I/usr/include -I/usr/pkg/include/db4 -I../../sys -MT 
ad-ad_cp.o -MD -MP -MF .deps/ad-ad_cp.Tpo -c -o ad-ad_cp.o `test -f 'ad_cp.c' 
|| echo './'`ad_cp.c
ad_cp.c: In function 'setfile':
ad_cp.c:848:5: error: 'const struct stat' has no member named 'st_atim'
ad_cp.c:848:5: error: 'const struct stat' has no member named 'st_atim'
ad_cp.c:849:5: error: 'const struct stat' has no member named 'st_mtim'
ad_cp.c:849:5: error: 'const struct stat' has no member named 'st_mtim'
gmake[3]: *** [ad-ad_cp.o] Error 1 
gmake[3]: Leaving directory 
`/usr/pkgsrc/net/netatalk/work.alpha/netatalk-2.2.1/bin/ad'

The lines in question are:

#if defined(__FreeBSD__)
    TIMESPEC_TO_TIMEVAL(&tv[0], &fs->st_atimespec);
    TIMESPEC_TO_TIMEVAL(&tv[1], &fs->st_mtimespec);
#else
    TIMESPEC_TO_TIMEVAL(&tv[0], &fs->st_atim);
    TIMESPEC_TO_TIMEVAL(&tv[1], &fs->st_mtim);
#endif

I had previously build netatalk-2.2.1nb8 on an earlier -current (from
around May 2012), and it didn't build ad.

It looks like netatalk is now building ad because it has detected the
openat(2), renameat(2), etc... family of functions, which were added
to NetBSD around November 2012
<http://mail-index.netbsd.org/source-changes/2012/11/18/msg038823.html>,
so the configure script has #defined HAVE_ATFUNCS. Not sure why
building ad is conditional on HAVE_ATFUNCS though, since as far as I
can tell, it doesn't use any of them. The pkgsrc Makefile
conditionalizes installation of bin/ad on PLIST.ea, which is set on
SunOS and DragonFly. I guess that's supposed to be set if the OS has
extended attribute support? But netatalk thinks that NetBSD does have
extended attribute support--the configure script found
/usr/include/sys/xattr.h and getxattr(), etc..., and config.h has
#define EA_MODULES "ad | sys".

>How-To-Repeat:
        Build netatalk-2.2.1nb11 on a recent -current; in my case, I
used sources from March 6, 2013.
>Fix:
        I added "|| defined(__NetBSD__)" to the #if in ad_cp.c, and
set PLIST.ea = yes for NetBSD in the package Makefile as a workaround,
but I don't know what the correct fix it. does the ad utility require
the *at() family of functions, or does it require extended attributes?

>Unformatted:
        
        


Home | Main Index | Thread Index | Old Index