The Samba-Bugzilla – Bug 2474
client/clitar.c / krb5-1.4 / compilation failure and solution(s)
Last modified: 2005-08-24 10:19:45 UTC
gcc 3.4.3, samba 3.0.11 (stable), linux 220.127.116.11, krb5-1.4 (gss)
There is a slight problem within the configuration script and/or clitar.c.
clitar.c uses expresion matching found in regex.h or some other method based on
HAVE_REGEX_H is defined as 1 within
which is include from include/includes.h
Unfortunatly there seem to ba a misunderstanging beetween these as HAVE doesn't
meen that it is included.
samba itself dosn't include regex.h but there are a lot of solutions. Two of
them are here:
1) Put a #undef HAVE_REGEX_H after the includes in client/clitar.c. (not really
a fix as regex is never used leaving dead code)
2) Change all the HAVE_REGEX_H into _REGEX_H (not good same reason as above
because it's never ever included)
-- or --
3) my favourite - make sure that regex.h is really included after everything
else is included.
Here's the diff -u for client/clitar.c which makes it work using the u*nix
--- /aIEngine/util/server/samba-3.0.11/source/client/clitar.c 2004-12-15
+++ client/clitar.c 2005-03-17 14:10:40.000000000 +0700
@@ -38,6 +38,15 @@
+/* Fix by Alexander J. Herrmann <firstname.lastname@example.org>
+ make sure that regex.h is really included when gssapi.h is used
+ from krb5-1.4 as it only claims to have it without including it.
static int clipfind(char **aret, int ret, char *tok);
*** End of diff -u
Sorry I didn't bother to look into the CVS as somebody may allready fixed it.
BTW. There's no good Pizza in Thailand. But I hope I did it the right way.
Created attachment 1042 [details]
Patch to use regex
Patch in order to include <regex.h> if samba is compiled with kerberos ant
client/clitar.c is used. Prevents compiler from aborting compilation. There is
maybe a issue as it may enable u*nix regex expression matching for the first
time as before it may be only have been dead code.
In order to use regex expressions also whithout kerberos5 a change within
autoconfig would be necessary to define HAVE_REGEX_H when it is availible.
The offending code in clitar.c has already been removed. The
configure checks for regex.h were removed a long time ago.
Thanks for the patch (even though it won't be checked in).
sorry for the same, cleaning up the database to prevent unecessary reopens of bugs.