The intent: Install Samba on OpenBSD to act as a "worm catcher". Since the environment is native-mode Windows 2000, this necessitates building the Active Directory modules. The system: OpenBSD 3.4 i386 gcc version 2.95.3 20010125 (prerelease, propolice) GNU Make 3.80 autoconf (GNU Autoconf) 2.57 automake (GNU automake) 1.4-p6 libiconv 1.8 The configure options (OpenBSD placement mostly): ./configure \ --prefix=/usr \ --sbindir=/usr/libexec \ --sysconfdir=/etc/samba \ --localstatedir=/var \ --libdir=/usr/lib/samba \ --infodir=/usr/share/info \ --mandir=/usr/share/man \ --disable-cups \ --with-privatedir=/etc/samba \ --with-lockdir=/var/spool/samba \ --with-piddir=/var/run \ --with-swatdir=/usr/share/swat \ --with-configdir=/etc/samba \ --with-ads \ --with-utmp \ LDFLAGS="-L/usr/local/lib" \ CPPFLAGS="-I/usr/local/include -I/usr/include/kerberosV" The error: Compiling libsmb/clikrb5.c libsmb/clikrb5.c: In function `create_kerberos_key_from_string': libsmb/clikrb5.c:92: syntax error before `eblock' libsmb/clikrb5.c:99: `eblock' undeclared (first use in this function) libsmb/clikrb5.c:99: (Each undeclared identifier is reported only once libsmb/clikrb5.c:99: for each function it appears in.) libsmb/clikrb5.c:100: warning: passing arg 3 of `krb5_string_to_key' from incompatible pointer type libsmb/clikrb5.c:100: warning: passing arg 4 of `krb5_string_to_key' from incompatible pointer type libsmb/clikrb5.c:100: warning: passing arg 5 of `krb5_string_to_key' from incompatible pointer type libsmb/clikrb5.c: In function `krb5_princ_component': libsmb/clikrb5.c:405: warning: assignment discards qualifiers from pointer target type gmake: *** [libsmb/clikrb5.o] Error 1 The Diagnosis: The "eblock" definition only exists in the MIT distribution of Kerberos (krb5.h). To build successfully in OpenBSD with ADS, the Heimdal version must be installed, which does not have the "eblock" setting defined.
*** Bug 778 has been marked as a duplicate of this bug. ***
This builds correctly on SuSE 9.0 with Heimdal 0.6. What version of Samba and what version of Heimdal are you using ?
Application: Heimdal 0.6 (_not_ native to OBSD, but builds and installs correctly) Samba 3.0.0 _AND_ CVS latest trunk via anonymous. System: OpenBSD 3.4 i386 gcc version 2.95.3 20010125 (prerelease, propolice) GNU Make 3.80 autoconf (GNU Autoconf) 2.57 automake (GNU automake) 1.4-p6 libiconv 1.8 Restatement of the problem: The definition of "eblock" is referenced by the krb5 library build routine. This exists in OBSD natively since OBSD wraps the MIT version of Kerberos. However, other routines that only exist in the Heimdal version are needed for Samba to build correctly. Installing the Heimdal version over- writes the header files from the MIT version and does not have the "eblock" definition. This was not an issue with v2.2.x.
One comment that you made seems strange. "However, other routines that only exist in the Heimdal version are needed for Samba to build correctly." However, Samba will build correctly with MIT or Heimdal so this statement doesn't appear correct unless I'm misunderstanding you. In addition, i'm wondering if you have mixed headers now from MIT and Heimdal. Why didn't you just install the Heimdal libs in clean directory (or the latest version of the MIT files for that matter). mY comment was that the current CVS builds correctly with Heimdal 0.6 on SuSE 9.0. So this doesn't appear to be a Heimdal problem. And I know we build correctly with a clean install of MIT 1.2.7 or 1.3.1. So what I need to narrow down is what exactly is it about your environment that causes the build to break. Are there any old hearders form the MIT install getting used perhaps?
I think Jeremy committed a fix for this. Can you try with the latest CVS? Tim.
marking as fixed based on Tim's comments. Please reopen if the current SAMBA_3_0 CVS still fails.
sorry for the same, cleaning up the database to prevent unecessary reopens of bugs.
database cleanup