Translations:Essays:Why are GPL-licensed components removed from the FreeBSD base system/9/en
The essence of tivoization is that a device whose firmware is based on components covered by GPLv2 or another copyleft license does not allow its owner to run modified or alternative firmware (i.e. re-flashing the device). The term was coined by Stallman himself and came from the name of the TiVo company, which was one of the first to impose this restriction on its products. It is worth noting that GPLv2 never forbade tivoization since Stallman and Moglen could not have predicted such a move by the companies when they were developing the license text. Even though companies that forbade to re-flash their devices could not violate the terms of the license, Stallman still considered their actions to be blameworthy, since they threatened the freedom of device owners to do whatever they wanted with them. After much discussion on this topic, he released the 3rd version of the GPL (also known as GPLv3), which aimed to combat tivoization. The license turned out to be more than effective in this fight – it is enough to have only one component in the system, which is distributed under the terms of GPLv3 so that the manufacturer does not have the right to prohibit to re-flash the device. But Stallman didn't stop there and re-licensed all the software developed under his GNU project. Thus, new versions of the GCC compiler suite, the GDB debugger, and others were released under GPLv3. In the mid-2000s, GCC and GDB had no free counterparts that could match them in stability and functionality. I have already mentioned that creating a free operating system is unthinkable without a free compiler and debugger, which is why Stallman developed them among the earliest towards the creation of his own operating system. For example, GCC was used in FreeBSD to build most of the operating system code and was fairly part of its base system. But when the compiler suite became an anti-tivoization tool, the BSD community was in danger of being dragged into someone else's war. New versions of the software that had always been part of the base system were distributed overnight on terms that contradicted the goals of the system. In the end, it was decided to stay on the sidelines, but the price of this solution was too high – FreeBSD had to abandon the GCC and GDB updates and use those versions that were distributed under the GPLv2. The terms of GPLv3 contradicted not only the goals of FreeBSD but also the goals of most companies, which were mainly engaged in the development of proprietary software. This led to the creation of alternatives for GCC and GDB by the free software development community, funded by corporations. So, within the framework of the LLVM project, the development of alternatives under a permissive license began. At the end of 2012, FreeBSD was completely switched to build with the Clang compiler from LLVM. Now the operating system no longer depends on GCC and GDB, and they have been permanently removed from the base system as unnecessary. Other software distributed under the GPL is removed apparently on mere inertia, as well as because of unwillingness to repeat the bitter experience.