As of version #10343, Pharo is MIT license clean.
Instructions to produce a Pharo audit
- Download and unzip http://ftp.squeak.org/4.0alpha/squeak4.0-relicensingTools.3.zip
- Copy a recent Pharo image and changes file into the folder "history"
- Start the copied image and add the following MC repository 
- Load the package Methodauthorships
- Execute "Authorship producePharoAudit" (this takes a while...)
- Examine the file missing.txt and currentMissing.html created in the "history" directory
Notes on how we did the cleaning
- Adrian did most of the cleaning using Yoshiki's changesets that revert code to previous versions or rewrite it
- From the remaining, we either removed dirty code (like LinkedList?), or re-implemented it (like ScaledDecimal?)
- Single remaining methods (roughly 50) were rewritten by Gabriel Cotelli and Adrian
- We did the cleaning quite rigorously, i.e., not looking at the old implementation (which, unfortunately, also lead to some deficiencies we introduced in the process).
- Before each final release of Pharo we are going to do an audit to make sure no new dirty code is introduced (all Pharo contributors strictly have to sign our agreement)
Copy of relevant mails
Hi all (and matthew we need your guidance/help)
We really want to get pharo 1.0 license clean. It would be bad that 1.0 is not. But 1.0 should get out before summer.
Here is a collection of all the information I collected on the topic:
Here what matthew wrote
I've done the first step and done a full audit, using Yoshiki's tools 1?, of all the code in Squeak 3.10.2, with the exception of four packages: - Monticello - SUnit, TestRunner?, and SUnitImproved - Universes - Traits
I also applied all of yoshiki's etoys changes to 3.10.2. The algorithm that Yoshiki seemed to follow when cleaning etoys is:
- If the method can be easily deleted, delete it - Otherwise, use the historical image 1? to revert to the latest version before the problematic author
- Fix any bugs this causes
I think we can use the same procedure. Perhaps Yoshiki will comment.
So, to help with the relicense, grab the historical image1?, check out the license audit 2?, leave a note on mantis about what you think you'll work on, and start rolling out change sets. For your convenience, all of the license audits are included both in the relicensing tools download and on mantis. I'll try to keep both up to date as we progress with the relicense
1- The tools I've been using to do the relicense:
see also:http://lists.squeakfoundation.org/pipermail/squeak-dev/2008-September/131586.html http://www.squeaksource.com/MethodAuthorship.html
2- The 4.0 relicense mantis issue:
The most up-to-date list of ok contributors is at
http://www.squeaksource.com/311/MethodAuthorship-kph.17.mczSee the class-side methods in Authorship, category data