Closed Bug 205419 Opened 22 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.
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: