Bug 5123 - Samba 3.0.26a from netbsd pkgsrc system doesn't compile on Netbsd 1.6.2
Samba 3.0.26a from netbsd pkgsrc system doesn't compile on Netbsd 1.6.2
Status: NEW
Product: Samba 3.0
Classification: Unclassified
Component: Build environment
3.0.26a
All NetBSD
: P3 normal
: none
Assigned To: Tim Potter
Samba QA Contact
:
Depends on:
Blocks:
  Show dependency treegraph
 
Reported: 2007-12-05 15:55 UTC by John Frear
Modified: 2009-03-31 18:13 UTC (History)
2 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description John Frear 2007-12-05 15:55:51 UTC
Below is text I have submitted into the netbsd pkgsrc bug system:


I'm not able to compile Samba 3.0.26a from the net/samba directory in pkgsrc.  My main Makefile has cvs version 1.177.

The output of the pkgsrc make command was:

Compiling smbd/trans2.c
In file included from /usr/include/termios.h:305,
                 from lib/replace/system/terminal.h:33,
                 from include/includes.h:115,
                 from /usr/pkgsrc/net/samba/work/samba-3.0.26a/source/smbd/trans2.c:27:
/usr/include/sys/ttydefaults.h:61: warning: `CTRL' redefined
/usr/pkgsrc/net/samba/work/.buildlink/include/readline/chardefs.h:64: warning: this is the location of the previous definition
/usr/pkgsrc/net/samba/work/samba-3.0.26a/source/smbd/trans2.c: In function `set_ea':
/usr/pkgsrc/net/samba/work/samba-3.0.26a/source/smbd/trans2.c:368: `ENODATA' undeclared (first use in this function)
/usr/pkgsrc/net/samba/work/samba-3.0.26a/source/smbd/trans2.c:368: (Each undeclared identifier is reported only once
/usr/pkgsrc/net/samba/work/samba-3.0.26a/source/smbd/trans2.c:368: for each function it appears in.)
The following command failed:
cc -I. -I/usr/pkgsrc/net/samba/work/samba-3.0.26a/source  -O2 -I/usr/pkg/include -D_SAMBA_BUILD_=3 -I/usr/pkgsrc/net/samba/work/samba-3.0.26a/source/popt -I/usr/pkgsrc/net/samba/work/samba-3.0.26a/source/iniparser/src -Iinclude -I./include  -I. -I. -I./lib/replace -I./lib/talloc -I./tdb/include -I./libaddns -I./librpc -DHAVE_CONFIG_H  -I/usr/pkg/include -I/usr/pkg/include -I/usr/pkg/include -I/usr/pkg/include    -I/usr/pkgsrc/net/samba/work/samba-3.0.26a/source/lib -D_SAMBA_BUILD_=3 -fPIC -DPIC -c /usr/pkgsrc/net/samba/work/samba-3.0.26a/source/smbd/trans2.c -o smbd/trans2.o
*** Error code 1

I looked into this problem and have resolved it on my own system.  The problem is due to samba's includes/include.h file declaring:

#ifndef ENOATTR
#define ENOATTR ENODATA
#endif

I also found a discussion at the following website useful:

http://www.nabble.com/bug-in-samba-3.0.25c-includes.h-t4314063.html

I created a patch for the pkgsrc system and it has resolved the problem for me.  The contents of my patch are:

--- include/includes.h.orig	Mon Aug 20 08:04:51 2007
+++ include/includes.h	Wed Dec  5 14:27:33 2007
@@ -225,6 +225,10 @@
 #include <sys/attributes.h>
 #endif
 
+#if !defined(ENOATTR) && !defined(ENODATA)
+#define ENOATTR EAGAIN
+#endif
+
 #ifndef ENOATTR
 #define ENOATTR ENODATA
 #endif

I looked in netbsd's cvsweb at /usr/include/sys/errno.h and the most current version at this time (rev 1.9) doesn't define either ENOATTR or ENODATA, so I believe this compile issue may affect all netbsd systems.  Anyhow, I hope my choice of mapping the error to EAGAIN was the right way to go.

Thanks for providing a great system everyone!