<feed xmlns='http://www.w3.org/2005/Atom'>
<title>ds.git/lib/ldaputil, branch existingdir</title>
<subtitle>Unnamed repository; edit this file to name it for gitweb.</subtitle>
<link rel='alternate' type='text/html' href='https://fedorapeople.org/cgit/rmeggins/public_git/ds.git/'/>
<entry>
<title>Change default branding to 389 - remove lite code</title>
<updated>2009-08-11T21:17:44+00:00</updated>
<author>
<name>Rich Megginson</name>
<email>rmeggins@redhat.com</email>
</author>
<published>2009-08-11T20:37:44+00:00</published>
<link rel='alternate' type='text/html' href='https://fedorapeople.org/cgit/rmeggins/public_git/ds.git/commit/?id=886d9b9f4fd9bfd72c2c9728f13b8db1ff2793b7'/>
<id>886d9b9f4fd9bfd72c2c9728f13b8db1ff2793b7</id>
<content type='text'>
The vendor, brand, and capbrand are set in configure - we should use those
everywhere rather than have to run some sort of script over the code to
change vendor, brand, version, etc.  I've added VENDOR, BRAND, CAPBRAND
to the default defines passed to the compiler, and changed the code to use
these defines.  And instead of the unintuitively named PRODUCTTEXT macro,
we should use the already defined PRODUCT_VERSION.
This allowed me to get rid of some code.  The version was from a generated
file called dirver.h which we don't need anymore, and we don't need the perl
script dirver.pl which generated it.
The vendor string was coming from the dirlite header file.  So I also used this
as an excuse to get rid of all references to dirlite once and for all (yay!).
For the places in plain text files which are not substituted, I just used the
generic name Dirsrv or Directory Server instead of having an explicit brand
and/or version in there.

Reviewed by: nkinder (Thanks!)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The vendor, brand, and capbrand are set in configure - we should use those
everywhere rather than have to run some sort of script over the code to
change vendor, brand, version, etc.  I've added VENDOR, BRAND, CAPBRAND
to the default defines passed to the compiler, and changed the code to use
these defines.  And instead of the unintuitively named PRODUCTTEXT macro,
we should use the already defined PRODUCT_VERSION.
This allowed me to get rid of some code.  The version was from a generated
file called dirver.h which we don't need anymore, and we don't need the perl
script dirver.pl which generated it.
The vendor string was coming from the dirlite header file.  So I also used this
as an excuse to get rid of all references to dirlite once and for all (yay!).
For the places in plain text files which are not substituted, I just used the
generic name Dirsrv or Directory Server instead of having an explicit brand
and/or version in there.

Reviewed by: nkinder (Thanks!)
</pre>
</div>
</content>
</entry>
<entry>
<title>OpenLDAP support</title>
<updated>2009-07-07T14:32:42+00:00</updated>
<author>
<name>Rich Megginson</name>
<email>rmeggins@redhat.com</email>
</author>
<published>2009-07-06T18:11:01+00:00</published>
<link rel='alternate' type='text/html' href='https://fedorapeople.org/cgit/rmeggins/public_git/ds.git/commit/?id=209521323f731daad54682fd98715f7b22c88c78'/>
<id>209521323f731daad54682fd98715f7b22c88c78</id>
<content type='text'>
These changes allow the server to be built with OpenLDAP (2.4.17+). A brief summary of the changes:
* #defines not provided by OpenLDAP were copied into slapi-plugin.h and protected with #ifndef blocks
* where it made sense, I created slapi wrapper functions for things like URL and LDIF processing to abstract way the differences in the APIs
* I created a new file utf8.c which contains the UTF8 functions from MozLDAP - this is only compiled when using OpenLDAP
* I tried to clean up the code - use the _ext versions of LDAP functions everywhere since the older versions should be considered deprecated
* I removed some unused code
NOTE that this should still be considered a work in progress since it depends on functionality not yet present in a released version of OpenLDAP, for NSS crypto and for the LDIF public API.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
These changes allow the server to be built with OpenLDAP (2.4.17+). A brief summary of the changes:
* #defines not provided by OpenLDAP were copied into slapi-plugin.h and protected with #ifndef blocks
* where it made sense, I created slapi wrapper functions for things like URL and LDIF processing to abstract way the differences in the APIs
* I created a new file utf8.c which contains the UTF8 functions from MozLDAP - this is only compiled when using OpenLDAP
* I tried to clean up the code - use the _ext versions of LDAP functions everywhere since the older versions should be considered deprecated
* I removed some unused code
NOTE that this should still be considered a work in progress since it depends on functionality not yet present in a released version of OpenLDAP, for NSS crypto and for the LDIF public API.
</pre>
</div>
</content>
</entry>
<entry>
<title>Bug Description: Need to address 64-bit compiler warnings - part 1</title>
<updated>2008-10-08T17:29:05+00:00</updated>
<author>
<name>Rich Megginson</name>
<email>rmeggins@redhat.com</email>
</author>
<published>2008-10-08T17:29:05+00:00</published>
<link rel='alternate' type='text/html' href='https://fedorapeople.org/cgit/rmeggins/public_git/ds.git/commit/?id=b3797a8704696ed77b69a042e75ce5553e24b68b'/>
<id>b3797a8704696ed77b69a042e75ce5553e24b68b</id>
<content type='text'>
Reviewed by: nhosoi (Thanks!)
Fix Description: The intptr_t and uintptr_t are types which are defined as integer types that are the same size as the pointer (void *) type.  On the platforms we currently support, this is the same as long and unsigned long, respectively (ILP32 and LP64).  However, intptr_t and uintptr_t are more portable.  These can be used to assign a value passed as a void * to get an integer value, then "cast down" to an int or PRBool, and vice versa.  This seems to be a common idiom in other applications where values must be passed as void *.
For the printf/scanf formats, there is a standard header called inttypes.h which defines formats to use for various 64 bit quantities, so that you don't need to figure out if you have to use %lld or %ld for a 64-bit value - you just use PRId64 which is set to the correct value.  I also assumed that size_t is defined as the same size as a pointer so I used the PRIuPTR format macro for size_t.
I removed many unused variables and some unused functions.
I put parentheses around assignments in conditional expressions to tell the compiler not to complain about them.
I cleaned up some #defines that were defined more than once.
I commented out some unused goto labels.
Some of our header files shared among several source files define static variables.  I made it so that those variables are not defined unless a macro is set in the source file.  This avoids a lot of unused variable warnings.
I added some return values to functions that were declared as returning a value but did not return a value.  In all of these cases no one was checking the return value anyway.
I put explicit parentheses around cases like this: expr || expr &amp;&amp; expr - the &amp;&amp; has greater precedence than the ||.  The compiler complains because it wants you to make sure you mean expr || (expr &amp;&amp; expr), not (expr || expr) &amp;&amp; expr.
I cleaned up several places where the compiler was complaining about possible use of uninitialized variables.  There are still a lot of these cases remaining.
There are a lot of warnings like this:
lib/ldaputil/certmap.c:1279: warning: dereferencing type-punned pointer will break strict-aliasing rules
These are due to our use of void ** to pass in addresses of addresses of structures.  Many of these are calls to slapi_ch_free, but many are not - they are cases where we do not know what the type is going to be and may have to cast and modify the structure or pointer.  I started replacing the calls to slapi_ch_free with slapi_ch_free_string, but there are many many more that need to be fixed.
The dblayer code also contains a fix for https://bugzilla.redhat.com/show_bug.cgi?id=463991 - instead of checking for dbenv-&gt;foo_handle to see if a db "feature" is enabled, instead check the flags passed to open the dbenv.  This works for bdb 4.2 through bdb 4.7 and probably other releases as well.
Platforms tested: RHEL5 x86_64, Fedora 8 i386
Flag Day: no
Doc impact: no
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Reviewed by: nhosoi (Thanks!)
Fix Description: The intptr_t and uintptr_t are types which are defined as integer types that are the same size as the pointer (void *) type.  On the platforms we currently support, this is the same as long and unsigned long, respectively (ILP32 and LP64).  However, intptr_t and uintptr_t are more portable.  These can be used to assign a value passed as a void * to get an integer value, then "cast down" to an int or PRBool, and vice versa.  This seems to be a common idiom in other applications where values must be passed as void *.
For the printf/scanf formats, there is a standard header called inttypes.h which defines formats to use for various 64 bit quantities, so that you don't need to figure out if you have to use %lld or %ld for a 64-bit value - you just use PRId64 which is set to the correct value.  I also assumed that size_t is defined as the same size as a pointer so I used the PRIuPTR format macro for size_t.
I removed many unused variables and some unused functions.
I put parentheses around assignments in conditional expressions to tell the compiler not to complain about them.
I cleaned up some #defines that were defined more than once.
I commented out some unused goto labels.
Some of our header files shared among several source files define static variables.  I made it so that those variables are not defined unless a macro is set in the source file.  This avoids a lot of unused variable warnings.
I added some return values to functions that were declared as returning a value but did not return a value.  In all of these cases no one was checking the return value anyway.
I put explicit parentheses around cases like this: expr || expr &amp;&amp; expr - the &amp;&amp; has greater precedence than the ||.  The compiler complains because it wants you to make sure you mean expr || (expr &amp;&amp; expr), not (expr || expr) &amp;&amp; expr.
I cleaned up several places where the compiler was complaining about possible use of uninitialized variables.  There are still a lot of these cases remaining.
There are a lot of warnings like this:
lib/ldaputil/certmap.c:1279: warning: dereferencing type-punned pointer will break strict-aliasing rules
These are due to our use of void ** to pass in addresses of addresses of structures.  Many of these are calls to slapi_ch_free, but many are not - they are cases where we do not know what the type is going to be and may have to cast and modify the structure or pointer.  I started replacing the calls to slapi_ch_free with slapi_ch_free_string, but there are many many more that need to be fixed.
The dblayer code also contains a fix for https://bugzilla.redhat.com/show_bug.cgi?id=463991 - instead of checking for dbenv-&gt;foo_handle to see if a db "feature" is enabled, instead check the flags passed to open the dbenv.  This works for bdb 4.2 through bdb 4.7 and probably other releases as well.
Platforms tested: RHEL5 x86_64, Fedora 8 i386
Flag Day: no
Doc impact: no
</pre>
</div>
</content>
</entry>
<entry>
<title>Resolves: #188320</title>
<updated>2007-10-18T00:08:38+00:00</updated>
<author>
<name>Noriko Hosoi</name>
<email>nhosoi@redhat.com</email>
</author>
<published>2007-10-18T00:08:38+00:00</published>
<link rel='alternate' type='text/html' href='https://fedorapeople.org/cgit/rmeggins/public_git/ds.git/commit/?id=19cd513a509aa6e45361df774e74f2d39451e08a'/>
<id>19cd513a509aa6e45361df774e74f2d39451e08a</id>
<content type='text'>
Summary: HP-UX: warnings reported by the HP-UX compiler
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Summary: HP-UX: warnings reported by the HP-UX compiler
</pre>
</div>
</content>
</entry>
<entry>
<title>Resolves: #237040</title>
<updated>2007-04-19T17:54:45+00:00</updated>
<author>
<name>Noriko Hosoi</name>
<email>nhosoi@redhat.com</email>
</author>
<published>2007-04-19T17:54:45+00:00</published>
<link rel='alternate' type='text/html' href='https://fedorapeople.org/cgit/rmeggins/public_git/ds.git/commit/?id=b22fcdfaf8c7d96826ddc75c2db0ba17e70112df'/>
<id>b22fcdfaf8c7d96826ddc75c2db0ba17e70112df</id>
<content type='text'>
Summary: Remove obsolete makefiles
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Summary: Remove obsolete makefiles
</pre>
</div>
</content>
</entry>
<entry>
<title>Resolves: #214533</title>
<updated>2006-11-10T23:46:05+00:00</updated>
<author>
<name>Noriko Hosoi</name>
<email>nhosoi@redhat.com</email>
</author>
<published>2006-11-10T23:46:05+00:00</published>
<link rel='alternate' type='text/html' href='https://fedorapeople.org/cgit/rmeggins/public_git/ds.git/commit/?id=6679b0968981f8be7c33a7df2c30bb5146f3a6d3'/>
<id>6679b0968981f8be7c33a7df2c30bb5146f3a6d3</id>
<content type='text'>
Summary: configure needs to support --with-fhs (Comment #6)
Changes: Added the following include next to the end of the copyright block.
+
+#ifdef HAVE_CONFIG_H
+#  include &lt;config.h&gt;
+#endif
+
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Summary: configure needs to support --with-fhs (Comment #6)
Changes: Added the following include next to the end of the copyright block.
+
+#ifdef HAVE_CONFIG_H
+#  include &lt;config.h&gt;
+#endif
+
</pre>
</div>
</content>
</entry>
<entry>
<title>Resolves: #214728</title>
<updated>2006-11-10T01:39:03+00:00</updated>
<author>
<name>Noriko Hosoi</name>
<email>nhosoi@redhat.com</email>
</author>
<published>2006-11-10T01:39:03+00:00</published>
<link rel='alternate' type='text/html' href='https://fedorapeople.org/cgit/rmeggins/public_git/ds.git/commit/?id=6e93baffe29e7b7c85c82236f8b1496aefba147b'/>
<id>6e93baffe29e7b7c85c82236f8b1496aefba147b</id>
<content type='text'>
Summary: Cleaning up obsolete macros in the build
Changes: eliminated macro LDAPDB_THREAD_SAFE (Comment #11)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Summary: Cleaning up obsolete macros in the build
Changes: eliminated macro LDAPDB_THREAD_SAFE (Comment #11)
</pre>
</div>
</content>
</entry>
<entry>
<title>Resolves: #214728</title>
<updated>2006-11-10T01:34:17+00:00</updated>
<author>
<name>Noriko Hosoi</name>
<email>nhosoi@redhat.com</email>
</author>
<published>2006-11-10T01:34:17+00:00</published>
<link rel='alternate' type='text/html' href='https://fedorapeople.org/cgit/rmeggins/public_git/ds.git/commit/?id=9836a68c2f977736ef928bd1807fae43d3ac7ebe'/>
<id>9836a68c2f977736ef928bd1807fae43d3ac7ebe</id>
<content type='text'>
Summary: Cleaning up obsolete macros in the build
Changes: eliminated macro NSPR20 (Comment #8)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Summary: Cleaning up obsolete macros in the build
Changes: eliminated macro NSPR20 (Comment #8)
</pre>
</div>
</content>
</entry>
<entry>
<title>Bug: 206527</title>
<updated>2006-09-15T19:33:43+00:00</updated>
<author>
<name>Rich Megginson</name>
<email>rmeggins@redhat.com</email>
</author>
<published>2006-09-15T19:33:43+00:00</published>
<link rel='alternate' type='text/html' href='https://fedorapeople.org/cgit/rmeggins/public_git/ds.git/commit/?id=555680e4d53dc1b2498a9e7dc231d4f517e35ff5'/>
<id>555680e4d53dc1b2498a9e7dc231d4f517e35ff5</id>
<content type='text'>
Description: Enable rpmbuild of directory server
Fix Description: RELDIR is not defined in lib/ldaputil/Makefile, so just
remove the certmap.conf packaging from there and add it to ldap/cm/Makefile
The perldap packaging has changed for internal builds as well.
Tested on: Solaris
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Description: Enable rpmbuild of directory server
Fix Description: RELDIR is not defined in lib/ldaputil/Makefile, so just
remove the certmap.conf packaging from there and add it to ldap/cm/Makefile
The perldap packaging has changed for internal builds as well.
Tested on: Solaris
</pre>
</div>
</content>
</entry>
<entry>
<title>Bug: 206527</title>
<updated>2006-09-15T14:59:48+00:00</updated>
<author>
<name>Rich Megginson</name>
<email>rmeggins@redhat.com</email>
</author>
<published>2006-09-15T14:59:48+00:00</published>
<link rel='alternate' type='text/html' href='https://fedorapeople.org/cgit/rmeggins/public_git/ds.git/commit/?id=bcaf265a82c281bcb0c3921d67944a3b42359c84'/>
<id>bcaf265a82c281bcb0c3921d67944a3b42359c84</id>
<content type='text'>
Description: Enable rpmbuild of directory server
Fix Description: You can set env. vars. to override all of the LIB and INCLUDE paths with the
make -e flag.  I moved all of the external component packaging stuff into the
packageDirectory target of ldap/cm/Makefile, and moved the "packaging" of the
internal files into the releaseDirectory target.  So the releaseDirectory
target will now copy all of the ldapserver binaries and runtime files into
their correct places under RELDIR, which is then used to create the rpm.  There
were a couple of other places that needed to change the way a particular file
was packaged in order ot make sure it was packaged in the core ds and not as an
external component.
Tested on: RHEL4
Reviewed by: nhosoi (Thanks!)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Description: Enable rpmbuild of directory server
Fix Description: You can set env. vars. to override all of the LIB and INCLUDE paths with the
make -e flag.  I moved all of the external component packaging stuff into the
packageDirectory target of ldap/cm/Makefile, and moved the "packaging" of the
internal files into the releaseDirectory target.  So the releaseDirectory
target will now copy all of the ldapserver binaries and runtime files into
their correct places under RELDIR, which is then used to create the rpm.  There
were a couple of other places that needed to change the way a particular file
was packaged in order ot make sure it was packaged in the core ds and not as an
external component.
Tested on: RHEL4
Reviewed by: nhosoi (Thanks!)
</pre>
</div>
</content>
</entry>
</feed>
