Issue 972 - Fixes to make compile under OpenServer 5
Summary: Fixes to make compile under OpenServer 5
Status: VERIFIED FIXED
Alias: None
Product: OpenLDAP
Classification: Unclassified
Component: build (show other issues)
Version: unspecified
Hardware: All All
: --- normal
Target Milestone: ---
Assignee: OpenLDAP project
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2001-01-19 00:48 UTC by oazmon@telsoft-solutions.com
Modified: 2014-08-01 21:05 UTC (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this issue.
Description oazmon@telsoft-solutions.com 2001-01-19 00:48:54 UTC
Full_Name: Omer Azmon
Version: OpenLDAP 2.0.7
OS: OpenServer 5.0.5
URL: 
Submission from: (NULL) (63.193.150.91)


1. The following change was done as when the SQL backend was disabled from
compile the SLAPD_LIBS value became 'SLAPD_LIBS = \' messing up the compile

./build/top.mk
147,148c147
< SLAPD_LIBS = @SLAPD_LIBS@ \
<  @SLAPD_SQL_LDFLAGS@ @SLAPD_SQL_LIBS@
---
> SLAPD_LIBS = @SLAPD_LIBS@ @SLAPD_SQL_LDFLAGS@ @SLAPD_SQL_LIBS@


2. The following two files were changed as in SCO OpenServer 5 the variable
MAXPATHLEN was removed from stdlib.h

./include/ac/stdlib.h
33a34,37
> #ifndef MAXPATHLEN
> # define MAXPATHLEN 1024
> #endif
>

./servers/slurpd/slurp.h
25a26
> #include <ac/stdlib.h>

3. The following file was changed as in SCO OpenServer 5 complied with
pthreads the fgets returns upon thread switch and so never reads the
response from the backend. (NOTE: this needs to be fixed in slurpd as well,
but I have not yet isolated that bug fully)
./servers/slapd/back-shell/result.c
9a10
> #include <errno.h>
41c42,43
<  while ( fgets( line, sizeof(line), fp ) != NULL ) {
---
>   while ( errno = 0,
>            ( fgets( line, sizeof(line), fp ) != NULL ) && ( errno !=
EINTR ) ) {

4. The following file was changed as in SCO OpenServer Skunkware version of
pthreads the value of socklen_t is already defined the pthread.h header
file.  (NOTE: This possibly is better corrected in ./configure)
./include/ldap_int_thread.h
22a23,26
> #ifdef socklen_t
> #undef socklen_t
> #endif
>

5. The following two files were changed to make the system call the correct
function name for Kerberos5 version 1.2.1 (don't know when change occurred)
./libraries/liblutil/passwd.c
758c758
<   krb5_free_cred_contents( context, &creds );
---
>   krb5_free_creds( context, &creds );

./libraries/liblutil/authpasswd.c
637c637
<   krb5_free_creds_contents( context, &creds );
---
>   krb5_free_creds( context, &creds );

6. The following change was made as the library name is different in
Kerberos5 release 1.2.1 (don't know when change occurred)
./configure
5766c5766
< LIBS="-lkrb5 -lcrypto -lcom_err $LIBS"
---
> LIBS="-lkrb5 -lk5crypto -lcom_err $LIBS"
5791c5791
<     KRB5_LIBS="-lkrb5 -lcrypto -lcom_err"
---
>     KRB5_LIBS="-lkrb5 -lk5crypto -lcom_err"

Comment 1 Kurt Zeilenga 2001-01-20 16:29:04 UTC
At 12:48 AM 1/19/01 +0000, oazmon@telsoft-solutions.com wrote:
>Full_Name: Omer Azmon
>Version: OpenLDAP 2.0.7
>OS: OpenServer 5.0.5
>URL: 
>Submission from: (NULL) (63.193.150.91)
>
>
>1. The following change was done as when the SQL backend was disabled from
>compile the SLAPD_LIBS value became 'SLAPD_LIBS = \' messing up the compile.

IIRC, this change has already been made to HEAD and OPENLDAP_REL_ENG_2.


>2. The following two files were changed as in SCO OpenServer 5 the variable
>MAXPATHLEN was removed from stdlib.h

Please determine were MAXPATHLEN or equivalent is defined
so that <ac/param.h> can be updated.

>3. The following file was changed as in SCO OpenServer 5 complied with
>pthreads the fgets returns upon thread switch and so never reads the
>response from the backend.

That's very bad as any early return of fgets() leaves the
stream in undefined state.  back-shell does not support
pthreads anyways due to its use of fork().


>4. The following file was changed as in SCO OpenServer Skunkware version of
>pthreads the value of socklen_t is already defined the pthread.h header
>file.  (NOTE: This possibly is better corrected in ./configure)
>./include/ldap_int_thread.h
>22a23,26
>> #ifdef socklen_t
>> #undef socklen_t
>> #endif

That's a dangerous fix.  The more appropriate fix would be
adjust configure to detect socklen_t.  Please check your
headers to determine whether socklen_t is defined in more
appropriate (socket) headers.

>5. The following two files were changed to make the system call the correct
>function name for Kerberos5 version 1.2.1 (don't know when change occurred)
>./libraries/liblutil/passwd.c
>758c758
><   krb5_free_cred_contents( context, &creds );
>---
>>   krb5_free_creds( context, &creds );

Such changes should be conditional upon the flavor (Heimdal v MIT)
and version of Kerberos in use using autoconf.

>6. The following change was made as the library name is different in
>Kerberos5 release 1.2.1 (don't know when change occurred)

This should also be done via configure.

Comment 2 oazmon@telsoft-solutions.com 2001-01-30 00:53:04 UTC
Dear Kurt,

Thank you for the time you spent looking over my correction.  Here is the
additional information you requested:

> >1. The following change was done as when the SQL backend was disabled
from
> >compile the SLAPD_LIBS value became 'SLAPD_LIBS = \' messing up the
compile.
>
> IIRC, this change has already been made to HEAD and OPENLDAP_REL_ENG_2.
Thank you.


> >2. The following two files were changed as in SCO OpenServer 5 the
variable
> >MAXPATHLEN was removed from stdlib.h
>
> Please determine were MAXPATHLEN or equivalent is defined
> so that <ac/param.h> can be updated.
This variable is no longer defined in any location on the SCO platform.  It
is replaced by
a call to the fpathconf() or pathconf() function, where the first argument
is a stream or file
path name respectivly pointing to a directory and the second argument is the
value PATH_MAX.
As different file system on the SCO platform may have different values, the
result is dependant
upon the file system on which the directory resides.  As most uses in
OpenLDAP of the MAXPATHLEN
are to allocate storage during compile time, I had to work out a different
solution.  According to my research, the value 1024 is the highest value
that any file system currently supported on SCO returns as MAXPATHLEN.
Therefore the solutions that I applied to my copy.  You are welcome to it.
However,
if not, it is also OK.

> >3. The following file was changed as in SCO OpenServer 5 complied with
> >pthreads the fgets returns upon thread switch and so never reads the
> >response from the backend.
>
> That's very bad as any early return of fgets() leaves the
> stream in undefined state.  back-shell does not support
> pthreads anyways due to its use of fork().


> >4. The following file was changed as in SCO OpenServer Skunkware version
of
> >pthreads the value of socklen_t is already defined the pthread.h header
> >file.  (NOTE: This possibly is better corrected in ./configure)
> >./include/ldap_int_thread.h
> >22a23,26
> >> #ifdef socklen_t
> >> #undef socklen_t
> >> #endif
>
> That's a dangerous fix.  The more appropriate fix would be
> adjust configure to detect socklen_t.  Please check your
> headers to determine whether socklen_t is defined in more
> appropriate (socket) headers.
I agree, but as I stated, I don't know how to change configure.  There are
two choices
here: You can do it, you can direct me to where I can get the info how and I
can propose
the change.


> >5. The following two files were changed to make the system call the
correct
> >function name for Kerberos5 version 1.2.1 (don't know when change
occurred)
> >./libraries/liblutil/passwd.c
> >758c758
> ><   krb5_free_cred_contents( context, &creds );
> >---
> >>   krb5_free_creds( context, &creds );
>
> Such changes should be conditional upon the flavor (Heimdal v MIT)
> and version of Kerberos in use using autoconf.
>
> >6. The following change was made as the library name is different in
> >Kerberos5 release 1.2.1 (don't know when change occurred)
>
> This should also be done via configure.
>
>
>

Comment 3 oazmon@telsoft-solutions.com 2001-01-30 01:04:25 UTC
Dear Kurt,

Here is the end of the previous message,

> >5. The following two files were changed to make the system call the
correct
> >function name for Kerberos5 version 1.2.1 (don't know when change
occurred)
> >./libraries/liblutil/passwd.c
> >758c758
> ><   krb5_free_cred_contents( context, &creds );
> >---
> >>   krb5_free_creds( context, &creds );
>
> Such changes should be conditional upon the flavor (Heimdal v MIT)
> and version of Kerberos in use using autoconf.
I agree,  this was MIT Kerberos5 and again see #4 re: configure


> >6. The following change was made as the library name is different in
> >Kerberos5 release 1.2.1 (don't know when change occurred)
>
> This should also be done via configure.
See #4 and #5

Respectfully yours,

Omer Azmon

Comment 4 Kurt Zeilenga 2001-02-03 05:14:35 UTC
moved from Incoming to Build
Comment 5 Kurt Zeilenga 2001-06-09 19:29:43 UTC
changed notes
changed state Open to Suspended
Comment 6 Kurt Zeilenga 2001-07-28 19:10:32 UTC
changed notes
changed state Suspended to Closed
Comment 7 Howard Chu 2003-12-12 22:41:33 UTC
moved from Build to Archive.Build
Comment 8 OpenLDAP project 2014-08-01 21:05:06 UTC
need further input
not enough info to make any changes.