Of Debian and Mono

Some time ago, the Debian Developers decided to include Mono in the default Debian installation. This move was controversial, and provoked a discussion. After considering the different opinions, I decided to voice mine.

The situation

Mono is an open source implementation of the Microsoft .NET platform. Since it is licensed under a DFSG-compatible license, it is in the Debian main repository, and is formally eligible for inclusion in the Debian default installation.

In fact, however, Microsoft has many software patents that cover .NET, and consequently, Mono. A friend of mine estimated them on more than 100. Under a jurisdiction that allows software patents, a Mono user will be a gross violator of Microsoft intellectual property, and can be successfully litigated on this base.

It is true that Microsoft has covered ECMA standards 334 and 335, that describe a part of Mono, with their Community Promise. However, these standards are only a small part of Mono: most of it is not covered by anything that will protect its users from litigation.

The language of .NET / Mono, C#, is also a Microsoft intellectual property. It is not covered by any protection against litigation; it is not even an ECMA standard. Microsoft never licensed anyone, except the .NET platform users, to use it. Legally, using it could be enough to make you vulnerable to litigation, and certainly may aggravate a Mono user’s IP violation situation (ie. may increase the sums that may be successfully litigated from the user).

Also, Microsoft has a long record of actions against FOSS. (The recent contribution of GPLed drivers to the Linux kernel is a good first step to a change, but is not a sufficient proof that Microsoft have changed their politics completely.) In addition, it has, by its own claims, pushed many FOSS users into signing a “patent protection” agreements, which are effectively a payment from these users to Microsoft for using their IP, ie. patents, in FOSS. There is also information that they have considered outsorcing the “defence against violation of their IP” to external patent litigation companies. It is known that these companies tend to be far less considerate and much meaner in their approach.

My analysis

Imagine that you have at hand the source code of some proprietary software, without any license. If you use it as if it was FOSS, its owner may decide to not interfere, and to leave you to use, modify and distribute it in any way you like. However, this is up to the owner’s whim, and thus makes the software not free. In some cases, it may be reasonably believed that the owner has no interest to go after you, and will like you to use, modify and distribute it freely. However, until the owner has taken the appropriate legal steps, eg. licensing this code under a free license, it remains proprietary. In short: what makes a software not free is not the fact that you are already denied its freedom, but the fact that you don’t have the complete legal right to enjoy it, and someone can legally deny it to you.

If a code infringes on patents, this puts it into the same position. The patents owner can at any moment litigate against the code user or author, and require them to pay him an amount of money, and/or to destroy the source (and possibly the compiled) code, and/or to stop writing further versions, and/or to stop distributing it, etc. This amounts to denying the user or author all freedoms they may have with the code, be that the four Stallman freedoms, or any other. The fact that the code itself may be under a free license, and may even be written by you personally, doesn’t change this. Hence, this code actually is not FOSS.

Using patent-encumbered software without having completely arranged the patent rights first is exactly as illegal as stealing proprietary code. It is true that owners of software patents do not often use them in litigation. However, this does not matter: what matters is that legally the patents owner may go after the users, and deny them the software freedom, exactly as if this is his proprietary software.

A prudent reader may note that if you don’t have a license for a code, this means that you may not use it at all, and deciding to use it as if it was FOSS would be automatically illegal. However, exactly the same is valid with the patents encumbering a software technology: if you haven’t got a legal permit to use them, their usage at all, eg. in a code, would be automatically illegal. So, the situation is the same.

Some readers will probably say that this is just one software in the sea of Debian, and that in the default install it supports only one application. This, however, is not a serious argument: not so long ago, just a few lines of code removed from a single Debian application (the SSH key generator) left many thousands of huge servers, loaded with vast amount of well-secured software and managed by excellent professionals, completely open to a very simple attack. Legally, Mono is a security hole with a larger risk and more devastating consequences than the SSH blunder. What this argument actually tells is how easy will be to remove this security hole, and how little damage this will do.

Some readers will probably point that no software can ever be guaranteed to not infringe on every patent in existence. This is true. However, no software also can ever be guaranteed to not contain a snippet of proprietary code, since all proprietary code is even harder to check than all patents. And yet, we accept that software can be free. It is one thing to know that such a distant possibility can never be excluded completely, and it is completely different thing to know for certain, or for reasonably certain, that a code does contain blocks of proprietary code, or does infringe on existing software patents, controlled by an entity that is not friendly to FOSS.

Some readers may also say that if a sign appears that users may really be endangered because of the Mono usage, it may be removed. However, the installed infrastructure tends to stay: what is removed today from the repositories may stay for years on the user computers. Also, even if Mono will be removed instantly from everywhere, it will be too late then: Microsoft, or some patent litigation company, will probably have collected in advance proof for many thousands of Debian users that they have illegally used for some time Microsoft IP, and will be able to sue them even if the offending code is already removed. Collecting will be very easy: it will be enough to check whether you are running a Mono-containing Debian, or have run it for some time. If the user did, the onus on proving that you never installed the default-tagged Mono may be on him/her, and it may be impossible to irrefutably prove this. Another thing that tends to stay even if the error is fixed is the public image, especially in the eyes of the high-positioned company executives: once Debian gets the image of a distro bearing a high legal risk, it is not going to wash off in an year or two.

My conclusion

Until the Mono patent dependency is completely resolved, using it puts the user to the same risks as illegally using a proprietary software. That is, in fact Mono is not free or open source software.

In this light, I believe that Mono has no place in the default install of Debian; that in fact, it has no place in the Debian main repository, and possibly in Debian at all. I understand that this is a drastic conclusion, and will not be accepted easily. What lead me to it is not emotions, but facts and logic: if you want to dispel my doubts (and eventually yours), please find key omissions in the facts and the logic I used.

If Mono is allowed into Debian at all, this must be in a special repository, say “encumbered”, together with every other software that is formally free, but is known or reasonably suspected to be encumbered with patents that open the user to litigation risk. This repository must be accompanied by a prominent warning about the potential risks its programs carry. (This doesn’t mean that these programs are bad, or broken, or not useful. It simply means that their legal status is, unhappily, not the one all we would like it to be.)

My prognosis

Of course, every Debian user is free to deinstall Mono. However, if something is in the default install, chances are that the most users will not deinstall it. Thus, as long as Mono is in the default Debian install, it is practically granted to stay on the most computers Debian is installed on – and this is dangerous both for the users and for the FOSS community as a whole.

In reality, Debian home users will probably be safe from litigation based on Mono patents. However, it is not the case with the businesses.

Microsoft have, by their words, signed patent protection deals with some companies, based on their claims of having IP in the Linux kernel. Most businesses know, or will be advised by their IT staff, that these claims will be hard, maybe impossible to prove (and yet, Microsoft signed some). However, there is no doubt that the MIcrosoft IP in the .NET / Mono will be very easy to prove. So, if Mono is accepted in the default install of an official Debian release, Microsoft will be able to sign a patent protection deal with any business that uses Debian, and is big or rich enough to merit sending them a warning letter, and arranging a half-hour meeting. And what one should reasonably expect from a company in their position is to do it.

This process has at least one vicious-circle element. What deters Microsoft from crushing FOSS with their monopoly power is that Internet is a client-server technology, and a big percent of the servers are running Linux. By filing away this percentage through the leverage Mono gives them, Microsoft will be able to gradually go deeper, and to use more and more aggressive approaches.

What the businesses (and organizations etc.) may do?

Some may choose to pay the protection price (which I expect to be about just enough to make Microsoft products look the better alternative; combined with some discount from Microsoft, this will probably mean that these businesses next upgrade cycle will be switching from Debian to an MS platform).

Others may decide to abandon Debian after being served a litigation request. (If they have developed infrastructure based on it, this may be costly.) Some of them will probably move to another Linux distro, most probably one that is not Debian-based. Some, however, will probably choose another platform that will not give them legal headaches – Apple or MS. In both cases, however, they will not be able to avoid some payment, since there will be proof that they have illegally used for some time Microsoft IP. The options offered in their negotiations with Microsoft about this payment will probably have a decisive influence over where these businesses will go.

After some businesses get litigated, most other Debian business users will have to promptly take a decision. Since for most of them will be easy to legally prove that they have used for some time Microsoft IP, they will be in the same position as the businesses that are already litigated. (Actually, the smart businesses will recognize the threat even before the litigation wave begins, and will move away from Debian as quickly as possible. They may be safer than the most.)

In short, the usage of Debian by businesses and organisations will probably more or less gradually decrease to near zero. This will have two important effects. First, the individual Debian users and specialists will find their Debian skills useless on the job market, and many will probably move to other Linux distro (or maybe to another platform at all). Second, this will probably demotivate many Debian Developers, to the degree that they will abandon their work for the Debian Project. (Some others, who are paid by companies to work on Debian, will probably be reassigned to other projects.) This, in turn, will undercut the richness and the quality of Debian, and thus its appeal. Also most of the distros based on it will have to either move to another base distro, or to increase sharply their expenses in order to support their packages, or to limit their richness and quality, too.

The overall effect on the other distros is hard to predict. On one hand, they will get some of the users that switch away from Debian. On the other hand, they will lose some users that will be scared by the wave of action against Debian, and will assume that no Linux user is safe. The other distros will surely try to counter this false assumption, but one must not forget that there are very strong IT players who are well-connected in the media, have enormous marketing budgets and are interested into strengthening it. So, my guess is that the other distros will lose more than they will get.

My action plan

This prognosis may be a worst-case scenario. However, this is the type of scenario a prudent IT manager should have in mind. (And, given the Microsoft record, their current position and the market situation, this scenario is more probable than in most other cases.) Given this, I will have to do the following:

I wll counsel all my business clients who use Debian to consider moving away from it, preferably to a non-Debian-based distro. The best time will be their closest upgrade cycle, or the first stable Debian release that contains Mono in the default install, whichever comes first. (Even if they haven’t installed the new release with Mono, or have removed Mono from it, proving this in a court may be a costly process, and I will be responsible for not notifying them of the danger.)

I will discuss with my IT colleagues from other companies which other Linux distro is the most prospective, and the least inclined to putting patent-encumbered software in the default install. I will offer them to write collectively a Creative Commons-licensed tutorial for switching from Debian to this distro. This tutorial will be of use both to us and to other users, when the switch time comes.

I will urge all individual users of Debian I know to get knowledge of the newly chosen distro (or another non-risky one, of their choice), and to be ready to switch from Debian to it, at the first sign that the things go wrong. I will also warn them what signs to watch for.

I will confess (again here, and everywhere else) that this conclusion, and this plan for action, are rather drastic. However, again: they are based not on emotion, but on facts and logic. Debian has been for many years my preferred distro; I type now this on it; I love it. If you can find omissions that will disprove these facts, and/or overturn this logic, I will be enormously happy. However, I am afraid that this may be hard. And that this error, unlike the SSH one, may have far worse consequences.

10 thoughts on “Of Debian and Mono

  1. Stanimir

    Меко казано, не си напълно прав.
    На мен, като на разработчик, това ми е напълно достатъчно: http://port25.technet.com/archive/2009/07/06/the-ecma-c-and-cli-standards.aspx

    Тези неща за лошия Майкрософт и добрия Линукс не са ли вече малко пресилени?

    Гледал ли си какво е предложението им като алтернатива на Windows 7 E версиите: http://microsoftontheissues.com/cs/blogs/mscorp/archive/2009/07/31/windows-7-and-browser-choice-in-europe.aspx
    Като за огромна студена корпорация виждам невероятно много усилия да направят всички доволни.

    Нека да обсъдим други гиганти: Apple (разгледай модела им за писане за IPhone OS), Amazon (виж с новия Kindle какво стана)

    Reply
  2. Григор

    @Станимир: Напълно прав съм. Меко казано.

    На теб, като на разработчик върху Microsoft платформа, тоест неизползващ Моно, наистина ти е напълно достатъчно. Както и на всеки друг, който не използва Моно. Не е достатъчно на тези, които го използват.

    Къде видя в записа “лошия Майкрософт и добрия Линукс”? Сигурно където и темата за браузерите. Която, впрочем, е много показателна колко усилия полагат Майкрософт, за да задоволят потребителите си – започват полагането им след глоба от над един милиард долара, разсипани още десетки милиони за лобиране срещу опита да бъдат накарани да положат тази грижа, и заплаха от още по-солена глоба. Преди това, не знам защо, не полагаха толкова усилия. Или греша?

    (Апропо: пропуснал си да прочетеш какво пише на мястото, към което си дал линк. Ще го сумирам тук, в превод от корпоративен език: “Успяхме да си купим междувременно още лоби – не ни пука за решението на Европейската комисия, ще си правим каквото ни изнася.”)

    Вярно е, Майкрософт просто нямат как да угодят на всички. Важен обаче е редът на угаждане. Ако съдя по Виста например, той е: първо Майкрософт, после щатските тайни служби, после RIAA и MPAA, после още кой ли не, и съвсем накрая потребителят на продукта им. Windows 7 изглежда по-различно по точно една причина – потребителят не прие Виста, и Майкрософт загубиха над десет милиарда иначе сигурен приход. А когато се опитаха да извият юнашки ръце с лицензна политика, и спряха от разпространение XP, и заплашиха, че съвсем скоро ще спрат и поддръжката му, ги накара да отменят тези си решения какво? Убеден съм, че или няма да отговориш, или ще извърташ. 🙂

    Не че за една огромна корпорация има нещо по-естествено. Поне ако се е самозабравила, подобно на Apple и Amazon, и за разлика от Google. Види ли ама наистина дебел край, почва дори да се грижи за потребителя си. За конкуренцията (каквато се явява Линукс) обаче познай точно как ще се погрижи. Ако не си паднал преди секунда от Луната, разбира се… Този запис е за това.

    Reply
  3. Stanimir

    Първо: извинявам ти се, ако мнението ми е прозвучало твърде остро — наистина не ми е била това целта.
    Интересувам се от Mono основно като алтернатива на MS платформата — има много интересни ми неща, които върят на не-Win hardware и заради личните ми пристрастия към определен език, Mono е предпочитан начин за мен да стигна до тях.

    Не искам да се заяждам, но в посочените линкове не видях нищо, което да мога свържа с купуване на лоби. Трябва обаче да призная, че корпоративните ми опит и култура са доста бедни, така че твърде е вероятно проблемът да е в мен.

    На домашния ми компютър има инсталирана Виста като основна OS: не ме приемай като MС защитник с промит мозък или лични облаги (примерно основно ползвам Firefox. От версия 3, когато стана по-добър от IE), но оплаквания почти нямам. Вярно, че съм се позанимавал с настройката, но ефекта е задоволителен за мен. Очаквам с нетърпение следващия Windows.
    За мен, това, което се случи в Виста и Win7 е същото, което преди това стана с Win2000 и ХР.

    Колкото за Mono-то: дали го има или не, на мен, като на разработчик ми е все тая. Ако ми трябва, винаги мога да го копирам в Линукса, който ще използвам. А ще го използвам, защото за мен е достатъчно, че голяма корпорация е обявила публично, че няма да ограничава тази платформа:
    “It is important to note that, under the Community Promise, anyone can freely implement these specifications with their technology, code, and solutions.”

    Съжалявам, че малко объркано се получи, но това е защото се опитах да отговоря на забележките ти. Това, че нямам дар-слово също не помага…

    Reply
  4. Григор Post author

    @Stanimir: Проблемът е, че ECMA 334 и 335 покриват не повече от 10% от технологиите, използвани в .NET (респективно в Моно). Погледни какви неща върши стандартната му библиотека, и си направи сметка колко патенти има върху тях.

    За останалите 90% Майкрософт никога не са давали, и няма никаква логика да дадат каквито и да е обещания. Все пак те са корпорация, и работата им е не да са благотворители, а да си пазят агресивно монопола и да мачкат с всякакви средства конкуренцията. А Линукс към момента е единствената им конкуренция – ти ако си на мястото на Майкрософт, как би го третирал? Би ли пропуснал солидни печалби от плащане за патенти в името на това той да цъфти и да те измества?… Аз не бих. Нищо лично, просто бизнес.

    Виста е страхотно тромава на по-скромен хардуер не защото предлага какво ли не, а за да пази “интелектуалната собственост” върху всичко, което минава през нея. Peter Gutmann има една огромна статия от около месец след излизането на Виста по въпроса. (Той е уиндоусаджия откакто Уиндоус съществува, а е име в областта на обработката, кодирането и компресирането на информация от много преди това – когато преди 25 години аз започнах да се занимавам с компютри, той вече беше едно от най-големите имена в тази област. Няма никакви причини да бъде подозиран в антипатии към Майкрософт или симпатии към отворения код. А статията му е много полезна.) Ако са почистили тези идиотизми в 7-цата, бих очаквал закономерно тя да е много по-пъргава и гъвкава.

    Reply
  5. Stanimir

    Доколкото съм чел, идеята е Mono-то да се раздели на части, като една от тях да покрива само гарантираните стандарти, т.е. ако под Дебиан пишеш на C# с GTK# и XML всичко ще си е наред и никой не може да ти каже и копче. Предполагам, че точно този вариант ще навлезе в Линуксите.
    Иначе съм абсолютно съгласен, че има голяма част функционалност (предполагам WinForms, ASP, ADO, …), с които ще рискуваш, но не забравяй, че MS са това, което са, заради добрите си отношения с програмистите. Точно както ти каза, “просто бизнес” — недоволни хора, които да правят приложения за техните инструменти може да изберат друго и пази боже (!!!), може да накарат и някой клиент да предпочете друга платформа! (Тезата ми не издържа под факта на всички ония роби, плащащи куп пари на Apple за нищо…ама това ми е една от загадките в живота…;-))

    Аз, бидейки наивен, си тълкувам това обещание като знак на добра воля:
    Q: Why does Microsoft obtain patents that apply to specifications to which the Community Promise apply? Is that something that others do too?
    A: Microsoft invests a significant amount of resources in research and development efforts. Like any other company that commits such resources to creating new technologies, Microsoft seeks to protect its investment by obtaining patents on the resulting innovations. At a minimum, patents have value in defending Microsoft with regard to patent infringement claims made by others. Many patent owners use their patents defensively to protect themselves against third-party law suits when they make their patents available under reasonable and non-discriminatory (RAND or RAND-Z) terms and conditions (including promises like the CP).

    А за Вистата: Туш! 🙂 Аз изчаках да излезе SP1 и дори и тогава го инсталирах на сравнително мощен (за времето си) компютър.

    Reply
  6. mdam

    хм, звучиш отново особено разумно. За един обикновен потребител претенциите на Microsoft за свободен(безплатен) код който те не са писали и продукт в който сигурно няма кой знае колко иновации(даже сигурно хич такива без предшестващи идеи) биха изгледждали странни. Но за един бизнес това си е бич – всеки допълнителен разход на пари, време, човешки ресурс увеличава себестойността на продукта и намалява конкурентноспособността. Та се чудя(звучи глупаво и не е правно изчистено) но не е ли време за един class-action suite срещу американското правителство/държава/каквото и да е за вредата нанесена от софтуерните патенти. ‘Софтуерът’ – такъв какъвто аз го познавам(като много скромен програмист) съдържа множество сходни идеи под различни имена използвани при различни ситуации и е трудно да се каже кое е оригиналната идея и по какво тя е различна от по стара идея ползвана в друга среда. Та мисълта ми е че сигурно са доста малко тези оригинални идеи (за които аз се сещам) не повече може би от 20-30. Всичко друго е вид дериват.

    Reply
  7. Григор Post author

    @Станимир: Уви, ако Моно ще е аналог на .NET, не ми се вярва да има как да се раздели. Едно от големите удобства на .NET е колосалната й библиотека, а именно в нея са патентуемите методи. В момента, в който GTK+ реши да подсигури аналог на .NET, ще попадне под удар (ще стане очевидно, че нарушава неоспорими патенти на Майкрософт), и тогава ще пострада не само Моно, а и GNOME, и куп други неща. (Аз няма да тъжа особено – личното ми впечатление е, че GTK+ е боза с косми на фона на Qt 4.5 🙂 Донякъде сигурно е въпрос на личен вкус, но предполагам, че и обективно Qt е по-добра.)

    За обещанията – опитай се да си представиш какво е да си корпорация-монополист. Ще вършиш абсолютно всички гадости на света, без въобще да изпитваш злоба или зложелание към жертвите. Ще дереш клиентите с точно толкова малко замисляне, с колкото сега късаш лозови листа за сарми, и ще смазваш конкурентите с точно толкова малко лична злоба, с колкото сега убиваш покатерила се на масата хлебарка. Уви, всички тези красиви приказки са именно за да им вярваме ти и аз. Имат толкова малко общо с истината, колкото и предизборните обещания на политик. И няма защо да се сърдиш на Майкрософт за това, те са дори почтени на фона на повечето други големи монополисти – не съм забелязал например да избиват тихомълком свои противници, дори такива, заради които търпят милиардни загуби: повечето други големи монополисти биха го направили като добрутро. Просто почтени като за компания монополист все още не значи почтени като за обикновен човек, уви.

    За Виста – уви, туш 🙁 Непрекъснато обяснявам на клиенти защо няма да тръгне на техния тригодишен компютър, въпреки че е толкова шарена и приятна. А смотаността й откъм драйвери и това, че Майкрософт имат върху нея не по-малко контрол, отколкото Apple върху iPhone или Амазон върху Kindle (въпреки че го упражняват по-рядко), ме карат непрекъснато да треперя за нещата на клиентите си. Не защото Майкрософт ще се хвърли да краде данните на някоя българска финансова къща или фармацевтичен склад, а защото ако те могат да влязат, значи могат и други, нелегално – а тези други може да не са толкова благородни…

    Иначе казано, Линукс е “добър” не защото е добър, а защото позициите, в които обективно се намират авторите му, са доста близо до тези на потребителите. Майкрософт е “лош” не защото програмистите или мениджърите му са дори най-малко зли, а защото са в позиция, много далечна от тази на потребителите. Каквото е добро за сърната е доста по-вероятно да е добро и за елена, отколкото и за вълка. Това е принципно положение – при равни други условия, позицията на по-малката пазарна единица винаги е по-близо до тая на редовия потребител, отколкото позицията на по-голямата.

    @mdam: Бедата е, че патентната логика позволява патентоването на производни идеи в нов вариант или при ново положение. Например не можеш да патентоваш железобетона, защото е доказуемо изобретен много отдавна. Но спокойно можеш да патентоваш използването на железобетон в космически кораби (ако имаш прототип), защото там досега не го е използвал или патентовал никой…

    Reply
  8. Pingback: Of Debian and Mono | Debian-News.net - Your one stop for news about Debian

  9. Pingback: GopoDebian » Blog Archive » Of Debian and Mono

Leave a Reply

Your email address will not be published. Required fields are marked *