Closed Bug 205419 Opened 21 years ago Closed 21 years ago

Relicense LDAP C SDK (directory/c-sdk)

Categories

(SeaMonkey :: General, defect, P1)

defect

Tracking

(Not tracked)

RESOLVED FIXED
mozilla1.4final

People

(Reporter: gerv, Assigned: mcs)

Details

Attachments

(13 files, 3 obsolete files)

348.92 KB, patch
Brade
: review+
Details | Diff | Splinter Review
21.41 KB, patch
Brade
: review+
Details | Diff | Splinter Review
60.09 KB, patch
Brade
: review+
Details | Diff | Splinter Review
143.44 KB, patch
Brade
: review+
Details | Diff | Splinter Review
237.41 KB, patch
Brade
: review+
Details | Diff | Splinter Review
78.11 KB, patch
Brade
: review+
Details | Diff | Splinter Review
282.75 KB, patch
Brade
: review+
Details | Diff | Splinter Review
22.35 KB, patch
Brade
: review+
Details | Diff | Splinter Review
60.09 KB, patch
Brade
: review+
Details | Diff | Splinter Review
114.68 KB, patch
Brade
: review+
Details | Diff | Splinter Review
86.14 KB, patch
Brade
: review+
Details | Diff | Splinter Review
58.57 KB, patch
Brade
: review+
Details | Diff | Splinter Review
59.91 KB, text/plain
Details
We have the necessary permissions to relicense the LDAP C SDK (an LDAP client
library in C) which lives in mozilla/directory/c-sdk. This needs to be done
before 1.4 closes.

Gerv
Moving from mozilla.org product to Browser product so I can actually request
that this blocks 1.4 final.

Gerv
Status: NEW → ASSIGNED
Component: Miscellaneous → Browser-General
Product: mozilla.org → Browser
Target Milestone: --- → mozilla1.4final
Version: other → Trunk
Flags: blocking1.4?
Priority: -- → P1
Just a minor detail: perhaps you should indicate in this bug what the new
license is ;-).

Based on bug 205418, I presume it's MPL/GPL/LGPL.
Flags: blocking1.4? → blocking1.4+
Since we have the permissions, let's get this done.  It can wait until after RC1
since there's no code change, but make sure it's on your radar for post RC1.
There are four files under mozilla/directory/c-sdk/ldap that we do not have
permission to relicense. The contributed code needs to be removed, and in one
case reimplemented, before we are clear to relicense all the files. I am not
sure if I should post the details here (publically) or not.
I was planning to not relicense those, so that the removal/reimplementation work
could proceed independently of this bug. (We can relicense any of those files
which remain later, by hand.)

You can post the details here if you like; but better to post them in the bug
which tracks that removal/reimplementation work. There's no dependency between
that one and this.

Gerv
Flags: blocking1.4+ → blocking1.4-
1.4 is out now. How soon can this relicensing be done? Do we have the necessary
scripts ready? I'd like to see it done on the trunk and on the LDAP C SDK branch
used by the Mozilla client (ldapcsdk_50_client_branch).
The necessary scripts are not yet ready; both of the two independent efforts I
had going to prepare them have come to nothing. I will try and find a third
person to take on this work as soon as possible.

Gerv
I am tracking the removal/reimplementation work in bug 220277.

I am also working on the big relicensing task (I now have some Python scripts
that should do most of the work automatically).
Mark: I have been sent a later version of the Python scripts, which will
hopefully work better. I will forward them to you.

Gerv
Here is the patch.  Of course it is large, but it is straightforward.  The only
tricky thing I did was change the genexports.pl script to suppress the license
when a template is used (otherwise the Windows .def files would contain two
licenses, which is less then desirable ;-)

I also removed mozilla/directory/c-sdk/ldap/clients/tools/tools.mak and
 mozilla/directory/c-sdk/ldap/libraries/macintosh/README (old files, not used).


These files do not have a Mozilla license, because the file format does not
really support including one:

mozilla/directory/c-sdk/.cvsignore
mozilla/directory/c-sdk/config/.cvsignore
mozilla/directory/c-sdk/ldap/.cvsignore
mozilla/directory/c-sdk/ldap/include/MANIFEST
mozilla/directory/c-sdk/ldap/include/.cvsignore
mozilla/directory/c-sdk/ldap/libraries/.cvsignore
mozilla/directory/c-sdk/ldap/libraries/liblber/.cvsignore
mozilla/directory/c-sdk/ldap/libraries/libldap/.cvsignore
mozilla/directory/c-sdk/ldap/libraries/libprldap/.cvsignore
mozilla/directory/c-sdk/ldap/libraries/macintosh/LDAPClient.xml
mozilla/directory/c-sdk/ldap/libraries/msdos/winsock/.cvsignore

These files do not have a Mozilla license, because they have a different
license or copyright that I am do not think I should replace or add to:

mozilla/directory/c-sdk/config/autoconf/nspr.m4
mozilla/directory/c-sdk/config/autoconf/install-sh
mozilla/directory/c-sdk/configure
mozilla/directory/c-sdk/ldap/docs/ldap-c-api-internet-draft.txt

Comments are welcome of course.
Here is the remainder of the patch.
Also note that these patches are for the trunk.  Most (all?) of the Mozilla
clients use the LDAP C SDK code from ldapcsdk_50_client_branch.  Once the
relicensing is done for the trunk, we can decide whether to re-do it on the
branch or just move to a new branch that we create off the current trunk.
Mark,

These seem to have unfortunately revealed a few bugs in the relicensing script.
For example:

+dnl the Initial Developer. All Rights Reserved.
 dnl
 dnl Contributor(s): 
-dnl    Dan Mosedale <dmose@netcape.com>
+dnl 
+dnl Alternatively, the contents of this file may be used under the terms of

Poor old Dan appears to have been dropped off. (This is c-sdk/aclocal.m4).

Also, I'd be interested to know why it's doing this:

-#  
-# The Original Code is Mozilla Communicator client code, released
-# March 31, 1998.
-# 
+# 
+# The Original Code is Mozilla Communicator client code.
+# 

in the top-level Makefile, among other places.

As the relicensing script guinea-pig, I'm afraid we have to watch the output
very carefully. So, you can either go through, check, and manually correct each
one, or we can try and establish some classes of errors to feed back to Trent.

Gerv
Thanks for catching those errors.  I did look at the resulting license text, but
clearly I need to compare it more carefully to the original text in each file.
I made some improvements to the relicensing tool and also did a lot more
checking of the results.
Attachment #132199 - Attachment is obsolete: true
Attachment #132200 - Attachment is obsolete: true
Attachment #132949 - Flags: review?(brade)
Attachment #132950 - Flags: review?(brade)
Attachment #132951 - Flags: review?(brade)
Attachment #132952 - Flags: review?(brade)
Attachment #132953 - Flags: review?(brade)
Attachment #132954 - Flags: review?(brade)
Comment on attachment 132949 [details] [diff] [review]
LDAP C SDK triple license changes, part 1/6 (.c files)

r=brade
Attachment #132949 - Flags: review?(brade) → review+
Comment on attachment 132950 [details] [diff] [review]
LDAP C SDK triple license changes, part 2/6 (.cpp files)

r=brade
Attachment #132950 - Flags: review?(brade) → review+
Comment on attachment 132951 [details] [diff] [review]
LDAP C SDK triple license changes, part 3/6 (.def and similar files)

r=brade
Attachment #132951 - Flags: review?(brade) → review+
Comment on attachment 132952 [details] [diff] [review]
LDAP C SDK triple license changes, part 4/6 (.h and .sh files)

r=brade
Attachment #132952 - Flags: review?(brade) → review+
Comment on attachment 132953 [details] [diff] [review]
LDAP C SDK triple license changes, part 5/6 (makefiles)

r=brade
Attachment #132953 - Flags: review?(brade) → review+
Comment on attachment 132954 [details] [diff] [review]
LDAP C SDK triple license changes, part 6/6 (misc. files)

r=brade
Attachment #132954 - Flags: superreview?(gerv)
Attachment #132954 - Flags: review?(brade)
Attachment #132954 - Flags: review+
For the record, I reviewed all of these changes before they were submitted.
Gerv--rather than flood your mailbox with superreview requests, I only requested
one of the 6 parts but you should review all 6 parts.
Comment on attachment 132954 [details] [diff] [review]
LDAP C SDK triple license changes, part 6/6 (misc. files)

sr=gerv. 

Gerv
Attachment #132954 - Flags: superreview?(gerv) → superreview+
A few points:

- I couldn't find anywhere where the script got it wrong, which is good. Were
there any you corrected by hand? How many files did you relicense by hand?

- I assume you've made sure the resulting code builds :-)

- Since the Founding, we have permission to relicense NPLed files as MPL - so we
can use the MPL tri-license throughout. You have the choice of checking in these
patches as-is, and doing that part as a separate step (perhaps the wisest
choice) or redoing and re-reviewing them beforehand.

- Please could I (and Trent) have a copy of the improved relicensing script.

Good work, everyone. 

Gerv
There were several (many) files that had no license at all, so I added a license
to them by hand.

There were three files that my modified copy of relic.py messed up slightly.
Those files had line-style comment characters (e.g., #) and no blank line
between the end of the license block and the start of non-license related
comments. relic.py mistakenly thought the non-license comments were part of the
license block and removed them. brade caught that during review.

I will send a copy of my revised relic.py script to Gerv and Trent today.

I will also plan to make the NPL -> MPL changes as part of a separate commit.
-> markcsmithwork@aol.com
Assignee: gerv → MarkCSmithWork
Status: ASSIGNED → NEW
The reviewed changes have been committed to the trunk. 301 files changed, 2
removed. Commit log message:

    Fix bug # 205419 - Relicense LDAP C SDK (directory/c-sdk).
      Replace existing licenses with a triple license (NPL/GPL/LGPL or
        MPL/GPL/LGPL).
      Add licenses to files that had no license.
      Remove two unused files.
Status: NEW → ASSIGNED
These are the NPL to MPL changes (simple changes, but many files).
Comment on attachment 133012 [details] [diff] [review]
LDAP C SDK NPL to MPL changes, part 3/6 (.def and similar files)

Oops. This one is part 3 of 6.
Attachment #133012 - Attachment description: LDAP C SDK NPL to MPL changes, part 2/6 (.def and similar files) → LDAP C SDK NPL to MPL changes, part 3/6 (.def and similar files)
Attachment #133010 - Flags: review?(brade)
Comment on attachment 133010 [details] [diff] [review]
LDAP C SDK NPL to MPL changes, part 1/6 (.c files)

r=brade
Attachment #133010 - Flags: superreview?(gerv)
Attachment #133010 - Flags: review?(brade)
Attachment #133010 - Flags: review+
Attachment #133011 - Flags: review+
Comment on attachment 133012 [details] [diff] [review]
LDAP C SDK NPL to MPL changes, part 3/6 (.def and similar files)

For all of the macintosh *.exp files (3), please fix the whitespace in the
"Alternatively" section to be consistent with the other lines.
Attachment #133012 - Flags: review+
Attachment #133013 - Flags: review+
Attachment #133014 - Flags: review+
Attachment #133015 - Flags: review+
Attachment #133011 - Flags: superreview?(gerv)
I already talked to Kathy about this, but for the record: the Macintosh .exp
files had an extra space between the # comment character and the text of each
license line, and I removed the extra space. The apparent whitespace
inconsistencies in the diff show up because I used -w when creating the diff
(because those are not changes of substance ;-)
Comment on attachment 133010 [details] [diff] [review]
LDAP C SDK NPL to MPL changes, part 1/6 (.c files)

sr=gerv. 

One point: I note that the NPLed files had a URL of http://www.mozilla.org/NPL/
, which is a 404. Was that over-zealous search-and-replacing by someone, or a
bug in the original relicensing script?

Gerv
Attachment #133010 - Flags: superreview?(gerv) → superreview+
Gerv--that URL is standard in the NPL license found on mozilla.org; it can also
be found in thousands of the source files.  I think it'd be easier (more
correct?) to fix the mozilla.org website to make www.mozilla.org/NPL/ redirect.
For completeness, here is the url where the NPL tri-license boilerplate text is:
http://www.mozilla.org/MPL/boilerplate-1.1/npl-tri-license-c
Ah. Oops. Yes, we should fix that :-)

Gerv
Attachment #133011 - Flags: superreview?(gerv)
The NPL -> MPL changes have been committed to the trunk. 252 files changed.
Commit log message:

  Additional fix for bug # 205419 - Relicense LDAP C SDK (directory/c-sdk).
    Replace NPL/GPL/LGPL licenses with MPL/GPL/LGPL.

Now we just need to figure out how to get these changes into the various Mozilla
client builds. My strong preference is to take advantage of this opportunity and
create a new LDAP C SDK stable branch for the various clients to use. But I will
probably open a separate bug on that topic.
relic.py 0.4.1

This includes all of Mark's changes to relic.py 0.3.0 plus a fix to a problem
in 0.3.0 were relicensing (i.e. 'relic.py -r ...') would crash if it hit a file
without a recognizable license block with a traceback something like this:

 Traceback (most recent call last):
  File "relic.py", line 1567, in ?
    sys.exit( main(sys.argv) )
  File "relic.py", line 1539, in main
    _errors=_errors)
  File "relic.py", line 1317, in relicense
    (backup,
  File "relic.py", line 1272, in _traverse
    file_handler(path, arg)
  File "relic.py", line 1067, in _relicense_file
    if not lic_info["initial_copyright_date"]:
 KeyError: initial_copyright_date


Mark, I moved a couple of the "_g_skip_file_basenames" entries that you said
were specific to directory/c-sdk to "_g_skip_files" where you can specify a
relative path to the specific file.
Gerv, here is a fixed relic.py for the problem that you mentioned in your email
to me on Saturday.

relic v0.4.2
Fix a bug introduced in relic 0.4.1 where I reverse the logic of if stmts
when protecting against KeyErrors in dict lookup. The result of this was
spurious relicensing problems, e.g.:
    /usr/src/mozilla-relic/mozilla/js/src/rules.mk
    ... no 'Initial Developer' section was found -- use the -i option to
specify your own)

Also: some minor tweaks of docs and error strings.
Attachment #133728 - Attachment is obsolete: true
Mark: we can resolve this, can't we? We don't need to keep using it to post
copies of relic.

Gerv
Marking this bug fixed.  I will open separate bugs soon on moving the various
Mozilla clients to the trunk directory/c-sdk code or to a new branch we create
off the trunk.
Status: ASSIGNED → RESOLVED
Closed: 21 years ago
Resolution: --- → FIXED
Product: Browser → Seamonkey
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: