[Date Prev][Date Next] [Chronological] [Thread] [Top]

Re: (ITS#5312) ldapmodify(1) man page claims that "changetype:" not necessary



Hallvard B Furuseth wrote:
> hyc@symas.com writes:
>> daveh@coreng.com.au wrote:
>>> As a followup, I should point out that this behaviour worked in at least
>>> 2.2 and 2.3.
>> Yes, I recall changing this in the 2.4 code; I guess I didn't update
>> the manpage.
> 
> Not sure which of this discussion should go where - I saw it first in
> the ldap@umich list.  But anyway, I suggest to revert that change.

Hm... Where were you when we were originally discussing these changes?

http://www.openldap.org/lists/openldap-devel/200611/msg00013.html
http://www.openldap.org/lists/openldap-devel/200611/msg00022.html

HEAD has been working this way for over a year, and it's clearly more correct 
in its behavior now than it was before.

> If
> anything, the LDIF RFC could be revised instead.  This format has been
> supported since umich ldap (before the LDIF RFC was written).

That doesn't mean it has any relevance today; there's plenty of stuff UMich 
did that was long since deprecated.

> Note that the format which OpenLDAP-2.4 ldapmodify reads is still not
> LDIF, since "changetype:" defaults to modify instead of add.  That's
> incompatible with LDIF.  OTOH default operation "replace:" for
> changetype "modify" was compatible with LDIF, since LDIF does not
> support a missing "add/delete/replace:" for changetype modify.
> 
> Some history:
> 
> - umich ldap-3.3 (1996): There were two LDIF defaults: Whether a missing
>   "changetype:" would default to "add" or "modify", and whether a
>   missing attribute operation type would default to "add" or "replace".
>   These were controlled by different flags: -a (or invoking as ldapadd)
>   for the first, -r (replace) for the second.
> 
> - RFC 2849 - LDIF (2000): The defaults "changetype:modify" and
>   "replace:" were dropped, presumably because a file format could not
>   support command line options.
> 
> - OpenLDAP 2.1 (2002): Removed the -r option and instead made it the
>   default when changetype was modify (and thus for ldapmodify).  -r was
>   only used with ldapmodify and was usually what one wanted there.
>   (Note that "replace:" is equivalent to "add:" if the attribute does
>   not already exist in the entry.)

It may be OK to revert this single aspect of the change. If you do so, just 
make sure that those other corner cases mentioned in the -devel thread are 
still handled correctly.
-- 
   -- Howard Chu
   Chief Architect, Symas Corp.  http://www.symas.com
   Director, Highland Sun        http://highlandsun.com/hyc/
   Chief Architect, OpenLDAP     http://www.openldap.org/project/