3 ms·
The original Squeak was the very first attempt at Apple to do open source. But the license had some terms that upset some people (about fonts, no export to coun
by jecel 6y ago
The original Squeak was the very first attempt at Apple to do open source. But the license had some terms that upset some people (about fonts, no export to countries with US restrictions, having to help Apple in any lawsuit against it due to you distributing Squeak). Given that Open Source was only defined a year after this license was released, it is hardly shocking there were issues.
This was a problem with some Linux distributions, but when the One Laptop Per Child project considered rejecting Squeak/Etoys (while embracing the Squeak-based and non open source Scratch) things had to change. Alan Kay personally got Steve Jobs to release the very first Squeak again under the Apple Community License. But people complained about that, so Alan had to go back to Steve and Apple released Squeak 1.1 a third time, now under the Apache 2 license.
Most of the code then in Squeak had been added after Apple. So a letter was sent to all programmers (or their living relatives) asking them to print and sign a form allowing their code to be switched from SqueakL to MIT. VPRI collected the forms. Then the Pharo people did the same for code they had that is not in the Etoys Squeak release.
Only in Squeak 2 did code start getting tagged with author initials. Code added between 1.1 and 2 was sent in emails to Dan Ingalls who personally inserted it into the official release. So I went through the email archives and identified all missing authors and the Squeak Board sent them forms to be signed.
All new contributions are required to use the MIT license (Richard Stallman considered two pieces of code that exist in the same Smalltalk image to be "linked" together in terms of GPL and LGPL instead of being potentially like two programs on the ISO CD-ROM image).
Ian Piumarta used the GPL for some small C fragments that are part of the Unix/Linux virtual machine. I am not sure if that code is still in use.