A s history has taught us, Microsoft finds it too risky to attack GNU/Linux directly. It would be too transparent and probably result in backlash from Microsoft’s own customers, many of whom also use and/or stock Free software. Microsoft prefers to use proxies and insiders to do their seemingly-independent jobs that accomplish long-term objectives.

Examples include SCO (via BayStar), Andy Tanenbaum (via a book author) (to avoid misinterpretation here, see this and this. Microsoft tried to use Andy Tanenbaum against Linux, but was not successful because he defended Linus Torvalds), Acacia and its sister ‘patent firms’ which comprise former Microsoft employees, Novell which gently spews out software patent FUD to market itself, and folks from Ximian who plant ‘time bombs’ in the heart of GNU/Linux desktop environments (slowly propagating from one to another). This last element among the whole will be the subject of this one particular post, which may otherwise become too broad.

Microsoft is in serious trouble, but it is fighting. It is not stupid, especially not in the legal department. Most people out there are not aware of Microsoft’s pains simply because Microsoft has done a fantastic job hiding the truth. Again, this won’t be discussed in detail here, especially in order for this post to be concise and focused. These other stories also were covered before.

We received some valuable information from one of our readers and we wish to share it and reach out for some feedback.

Denial and Manipulation

The first issue to draw one’s attention to is manipulation of search engines, news feeds, video sites, social news sites, and the mainstream press. We covered many such examples in the past and these include astroturfing, acquisition of the media, heavy lobbying, acquisition of analysts, political manipulation, malicious intervention, creation of civil wars and at times even bribery, kickbacks and dumping. Of more relevance to the following new bits we have spamming of YouTube with viral videos and search engines manipulation.

Adding to this ‘Hall of Shame’ we have just accumulated some reports about behaviour that was described by a reader in the following way:

Along similar lines, I spotted the other day one method how Microsoft boosters within GNOME are able to affect Ubuntu: They can camp on bug reports and mark them repeatedly ‘invalid’ that way the report never shows up in any RSS feeds or for that matter any normal or advanced searches. One has to specifically search for invalid bugs to find it and at that level of specificity one probably already has the URL and bug number.

My general complaint about Google News falls into the same category. It’s not just a matter of Microsoft gaming the system, pro-ODF or anti-OOXML articles just don’t make it into Google News regardless of the publisher.

[...]

Here’s one from ZDNet:

“Developers warned over OOXML [sw]patent risk”

http://news.zdnet.co.uk/software/0,1000000121,39292853,00.htm

I bet it won’t show up in Google News. Not that Google News is in and of itself important, but the appearance of tampering, on the other hand, is.

http://news.google.com/news?oe=UTF-8&tab=wn&hl=en&q=ooxml+-site…

http://news.google.com/news?q=opendocument%20-site%3A…

OOXML is not the main issue here, but we will return to it in a moment. In fact, the latter bit turned out to be false just 2 hours ago.

The Real Problem and a Case Study

The same reader talks about the increasingly severe issue which is Mono in GNOME. To give one example of a scenario where Mono dependencies crop up, consider Cheese.

One thing I noticed this week is that the mono group has been able to encumber a growing number of Ubuntu (not Kubuntu) applications with proprietary Microsoft technology. However, the documentation and program descriptions do not warn of this (of course they want to keep it under the radar).

“A risk here is that, especially in regards to media (audio, video, pictures, text, etc.) it will provide a ramp for OOXML, WMA, WMV, HDPhoto, and others along with the prerequiste DRM.”A risk here is that, especially in regards to media (audio, video, pictures, text, etc.) it will provide a ramp for OOXML, WMA, WMV, HDPhoto, and others along with the prerequiste DRM. I would expect that if Micrsooft makes further contracts with Novell or other turncoats, that this will soon start to cover DRM.

In short, mono spreads, becomes integrated into some desktops, then Microsoft formats are rolled out as part of mono.

[...]

Here is not an example of the dependencies, but of more peripheral incursion:

http://www.gnome.org/projects/cheese/

Note the recommendation of f-spot. digikam, flphoto, kphotoalbum and others would do the job without infecting the machine with mono.

I’m thinking that any kind of confrontation should be avoided, these people are well entrenched in some high profile projects. Non-mono projects should be brought to the forefront.

It was then that a more systematic study needed to be carried out.

Packages Named

Further, from the same reader:

I am loading a list of package dependencies right now and will check the current situation for ubuntu:

dapper 159 ?

gutsy 150 ?

hardy 176 ?

To check an individual package, for example ‘boo’

apt-cache depends ^boo$

You can do it without the caret and dollar sign, but that just makes sure that you get exactly that name and nothing else.

Methodology:

# freshen data

sudo apt-get update;

# guess at all the packages

for i in a b c d e f g h i j k l m n o p q r s t u v w x y z;

do apt-cache search -n $i |sed -e “s/ .*$//”;

done | sort | uniq > packages.txt

# find the dependencies

for i in `cat packages.txt`;

do apt-cache depends $i >> dependencies.txt;

echo >> dependencies.txt;

done

# make a spare

cp dependencies.txt x

# then edit x to be one line per package,

# using your favorite editor or sed or awk

# get the package description

for i in `grep libmono x|sed -e ‘s/ .*$//’`;

do apt-cache search –names-only ^${i}$;

done > mono-infected-gutsy.txt

Here is the output:

asp.net2-examples - demo pages for ASP.NET 1.1 and 2.0 infrastructure

asp.net-examples - demo pages for ASP.NET 1.1 infrastructure

autopano-sift - Automated control point extraction for panorama generation

banshee - Audio Management and Playback application

beagle - indexing and search tool for your personal data

beagle-backend-evolution - evolution data backend for beagle

blam - an RSS aggregator for GNOME

bless - A full featured hexadecimal editor

boo - a python-like language and compiler for the CLI

cowbell - An easy-to-use tag editor for your music files

dfo - Desktop Flickr Organizer for Gnome

drapes - a desktop wallpaper management application for the GNOME desktop

f-spot - personal photo management application

gbrainy - brain teaser game and trainer to have fun and to keep your brain trained

gfax - GNOME frontend for fax programs

gnome-rdp - Remote Desktop Client for the GNOME Desktop

gnome-sharp2-examples - sample applications for Gnome# 2.16

gnome-subtitles - Subtitles editor for the GNOME Desktop environment

gnunit - frontend for running NUnit 2 test suites

gnunit2 - frontend for running NUnit 2 test suites

graphmonkey - a GTK#-based graphing calculator

gshare - Easy user-level file sharing for GNOME

gtk-sharp2-examples - sample applications for the Gtk# 2.10 toolkit

gtk-sharp2-gapi - C source parser and C# code generator for GObject based APIs

gtwitter - Client for tracking and posting to twitter

hipo - iPod Management Tool

ikvm - Java virtual machine/compiler implemented in .NET (Mono)

ironpython - A Python implementation targeting the .NET and Mono platforms

last-exit - Last.fm audio player

lat - LDAP Administration Tool

libart2.0-cil - CLI binding for libart 2.3

libavahi1.0-cil - CLI bindings for Avahi

libavahi-ui0.0-cil - CLI bindings for Avahi Ui

libevolution3.0-cil - CLI bindings for Evolution

libflickrnet2.1.5-cil - Flickr.Net API Library

libgalago1.0-cil - CLI bindings for libgalago

libgalago-gtk1.0-cil - CLI bindings for libgalago-gtk

libgconf2.0-cil - CLI binding for GConf 2.16

libgecko2.0-cil - CLI binding for the GtkMozEmbed library, unstable version

libglade2.0-cil - CLI binding for the Glade libraries 2.6

libglib2.0-cil - CLI binding for the GLib utility library 2.12

libgmime2.2-cil - CLI binding for the MIME library

libgnome2.0-cil - CLI binding for Gnome 2.16

libgnome-keyring1.0-cil - CLI library to access the GNOME Keyring daemon

libgnome-vfs2.0-cil - CLI binding for GnomeVFS 2.16

libgsf0.0-cil - CLI bindings for libgsf

libgtk2.0-cil - CLI binding for the GTK+ toolkit 2.10

libgtkhtml2.0-cil - CLI binding for GtkHTML 3.8

libgtksourceview2.0-cil - CLI binding for the gtksourceview library

libipod-cil - CLI library for accessing iPods

libipodui-cil - CLI library for accessing iPods (GUI helpers)

libkarma-cil - Rio Karma access library [CLI runtime library]

liblog4net1.2-cil - highly configurable logging API for the .NET runtime

libmono0 - libraries for the Mono JIT

libmono0-dbg - libraries for the Mono JIT, debugging symbols

libmono1.0-cil - Mono libraries (1.0)

libmono2.0-cil - Mono libraries (2.0)

libmono-accessibility1.0-cil - Mono Accessibility library

libmono-accessibility2.0-cil - Mono Accessibility library

libmono-addins0.2-cil - addin framework for extensible CLI applications/libraries

libmono-addins-gui0.2-cil - GTK# frontend library for Mono.Addins

libmono-bytefx0.7.6.1-cil - Mono ByteFX.Data library

libmono-bytefx0.7.6.2-cil - Mono ByteFX.Data library

libmono-c5-1.0-cil - Mono C5 library

libmono-cairo1.0-cil - Mono Cairo library

libmono-cairo2.0-cil - Mono Cairo library

libmono-cecil0.5-cil - library to generate and inspect CIL assemblies

libmono-corlib1.0-cil - Mono core library (1.0)

libmono-corlib2.0-cil - Mono core library (2.0)

libmono-corlib2.1-cil - Mono core library (2.1)

libmono-cscompmgd7.0-cil - Mono cscompmgd library

libmono-cscompmgd8.0-cil - Mono cscompmgd library

libmono-data-tds1.0-cil - Mono Data library

libmono-data-tds2.0-cil - Mono Data Library

libmono-db2-1.0-cil - Mono DB2 library

libmono-dev - libraries for the Mono JIT - Development files

libmono-firebirdsql1.7-cil - Mono FirebirdSql library

libmono-i18n1.0-cil - Mono I18N libraries (1.0)

libmono-i18n2.0-cil - Mono I18N libraries (2.0)

libmono-ldap1.0-cil - Mono LDAP library

libmono-ldap2.0-cil - Mono LDAP library

libmono-microsoft7.0-cil - Mono Microsoft libraries

libmono-microsoft8.0-cil - Mono Microsoft libraries

libmono-microsoft-build2.0-cil - Mono Microsoft.Build libraries

libmono-mozilla0.1-cil - Mono Mozilla library

libmono-npgsql1.0-cil - Mono Npgsql library

libmono-npgsql2.0-cil - Mono Npgsql library

libmono-oracle1.0-cil - Mono Oracle library

libmono-oracle2.0-cil - Mono Oracle library

libmono-peapi1.0-cil - Mono PEAPI library

libmono-peapi2.0-cil - Mono PEAPI library

libmono-relaxng1.0-cil - Mono Relaxng library

libmono-relaxng2.0-cil - Mono Relaxng library

libmono-security1.0-cil - Mono Security library

libmono-security2.0-cil - Mono Security library

libmono-sharpzip0.6-cil - Mono SharpZipLib library

libmono-sharpzip0.84-cil - Mono SharpZipLib library

libmono-sharpzip2.6-cil - Mono SharpZipLib library

libmono-sharpzip2.84-cil - Mono SharpZipLib library

libmono-sqlite1.0-cil - Mono Sqlite library

libmono-sqlite2.0-cil - Mono Sqlite library

libmono-system1.0-cil - Mono System libraries (1.0)

libmono-system2.0-cil - Mono System libraries (2.0)

libmono-system2.1-cil - Mono System libraries (2.1)

libmono-system-data1.0-cil - Mono System.Data library

libmono-system-data2.0-cil - Mono System.Data Library

libmono-system-ldap1.0-cil - Mono System.DirectoryServices library

libmono-system-ldap2.0-cil - Mono System.DirectoryServices library

libmono-system-messaging1.0-cil - Mono System.Messaging library

libmono-system-messaging2.0-cil - Mono System.Messaging Library

libmono-system-runtime1.0-cil - Mono System.Runtime library

libmono-system-runtime2.0-cil - Mono System.Runtime Library

libmono-system-web1.0-cil - Mono System.Web library

libmono-system-web2.0-cil - Mono System.Web Library

libmono-winforms1.0-cil - Mono System.Windows.Forms library

libmono-winforms2.0-cil - Mono System.Windows.Forms library

libmono-zeroconf1.0-cil - CLI library for multicast DNS service discovery

libmysql5.0-cil - MySQL database connector for CLI

libndesk-dbus1.0-cil - CLI implementation of D-Bus

libndesk-dbus-glib1.0-cil - CLI implementation of D-Bus (GLib mainloop integration)

libndoc-cil - Code documentation generator for .NET

libnemerle0.9-cil - Class Libraries for Nemerle

libnini1.1-cil - CLI library for managing configuration files

libnjb-cil - CLI binding for libnjb

libnunit2.2.6-cil - Unit test framework for .NET

libnunit2.2-cil - Unit test framework for .NET

libqyoto4.3-cil - CLI bindings for the Qt 4 toolkit

librsvg2.0-cil - CLI binding for RSVG 2.0

libtaglib2.0-cil - CLI library for accessing audio and video files metadata

libtapioca-cil - tapioca bindings for c#

libtelepathy0.13-cil - CLI library for Telepathy

libtelepathy-cil - CLI library for Telepathy

libuno-cil - CLI binding for OpenOffice.org

libvte2.0-cil - CLI binding for VTE 0.16

libzeroc-ice-3.2-cil - Ice for C# libraries

mono-1.0-devel - Mono development tools for CLI 1.0

mono-1.0-service - Mono service manager for CLI 1.0

mono-2.0-devel - Mono development tools for CLI 2.0

mono-2.0-service - Mono service manager for CLI 2.0

mono-apache-server - backend for mod_mono Apache module

mono-apache-server2 - backend for mod_mono2 Apache module

mono-dbg - Mono debugging symbols

mono-debugger - Debugger for Mono

monodevelop - C/C++/C#/Boo/Java/Nemerle/ILasm/ASP.NET Development Environment

monodevelop-nunit - NUnit plugin for MonoDevelop

monodevelop-versioncontrol - VersionControl plugin for MonoDevelop

monodoc-base - shared MonoDoc binaries

monodoc-browser - MonoDoc GTK+ based viewer

mono-gac - Mono GAC tool

mono-gmcs - Mono C# 2.0 and C# 3.0 compiler for CLI 2.0

mono-mcs - Mono C# compiler for CLI 1.1

mono-mjs - Mono JScript compiler

mono-smcs - Mono C# 3.0 compiler for CLI 2.1 (Moonlight / Silverlight)

mono-tools-devel - Various development tools for mono

mono-tools-gui - Various GUI tools for mono

mono-utils - Mono utilities

mono-xbuild - Mono xbuild

mono-xsp - simple web server to run ASP.NET applications

mono-xsp2 - simple web server to run ASP.NET applications

mono-xsp2-base - base libraries for XSP 2.0

mono-xsp-base - base libraries for XSP 1.1

muine - Simple playlist based music player

muine-plugin-audioscrobbler - Audioscrobbler plugin for Muine music player

muine-plugin-inotify - INotify Plugin for the Muine music player

muine-plugin-trayicon - TrayIcon Plugin for the Muine music player

mzclient - CLI library for multicast DNS service discovery (commandline tool)

nant - .NET build tool similar to Ant

ndoc-console - Code documentation generator for .NET

nemerle - Nemerle Compiler

nunit-console - Unit test framework for .NET

podsleuth - Tool to discover detailed information about Apple iPods

prj2make-sharp - Convert VS.NET solution files to Makefiles

stetic - GNOME and GTK+ GUI designer

sysinfo - Simple GTK program that shows some UNIX/Linux system information

tomboy - desktop note taking program using Wiki style links

youtranslate - Web translator

“Here is the new /etc/apt/preferences. Nuke’m from orbit. It’s the only way to be sure,” our reader adds. He wishes to remain anonymous, but there are no conflicting interests at all, just genuine concern about things which are conveniently overlooked by many.

These ‘Monopendencies’ could soon turn GNOME into MONOME, making it virtually impossible in due time to use basic applications without Mono somewhere in the dependecies tree. Moonlight is a good example of such dangers.

These dependency checks are reminiscent of the one which other people have obtained (and published) for Fedora [1, 2].

Miguel de Icaza and Jeff Waugh get vocal about this when the issue comes up. They seem to be sensitive to this issue which they are certainly aware of. Denial, promises or mitigation ensue.

Ways Forward

At least two bloggers other than ourselves occasionally criticise this direction which is increasingly chosen and then taken with little or no consultation. We need more information about the problem to be made available out there. Only yesterday, one of those fairly prolific bloggers described GNOME’s direction quite realistically:

I don’t consider XFCE as the best desktop environment, however it’s still lighter than GNOME, it’s still not under the contamination attack from the Mono guys, and it’s increasingly tempting in recent times, since GNOME seems to be a captive of Novell…

We were advised and told that contacting Fedora’s new leader might help. We was in touch with Shuttleworth on some occasions in the past, so that might help also. About Red Hat, our reader says:

Red Hat gained a lot of positive publicity way back when they gave a common theme to KDE. I think that was ground breaking in that now, people expect the theme more from the distro than from the developers of the desktop environment.

Red Hat has KDE support already, but I’m still wondering the best way to present the situation. I’m guessing that all the recent news about KDE, and the development, would be a good excuse to re-evaluate the two desktops. KDE has always been ahead in development, Gnome on the eye candy and promotion.

Besides, much of the jubilation about Ubuntu gutsy and hardy is about the window manager and that is a layer below, and independent from, the desktop environment. So if people find out that it’s not GNOME but Compiz Fusion, then they might be more likely to try other desktop environments.

One thing that we don’t have to mention explicitly is that since the formation of the KDE Free Qt Foundation, the original purpose of GNOME has been made moot. (Let people figure that out.) However, stepping around that (at least for a while) the KDE Free Qt Foundation should be mentioned and leveraged.

http://www.kde.org/whatiskde/kdefreeqtfoundation.php

Xfce is out there and gaining interest, since it’s good for low power machines that get a second life with Linux. Fluxbox is also out there and hit 1.0

Gnome has a fair amount of good things, but the direction of many projects and the positions of the leaders (e.g. Jeff and Miguel) is duplicitous at best…

[...]

The holy grail here would be to get Mark Shuttleworth and other key ubuntu people to go for KDE by default. Same for Fedora / CentOS.

If we get into a situation where function is provided only by mono-based apps, then they pave the way for Microsoft incursion. GTK+ hopefully can remain clean. That is all the more important now that Nokia’s competitors are dropping Qt / Qtopia.

[...]

I’m thinking the way to deal with this is to avoid confrontation, or at least high-profile confrontation and instead to promote the heck out of the tools Microsofters are copying. Anything that brings attention to them is free marketing, even it if is ‘bad’. The idea is to steer mindshare and thus developer interest towards the good tools.

Perhaps if we talk about how FOSS could be subverted without mentioning names, or bring up the benefits of GPLv3 and some of the discussion (against lgpl) that went on with the creation of the LGPL.

Take it as you will, dear readers. Facts are being accumulated and hope is that these will lead to responsible action; it’s not intended to achieve hostility, insults and confrontation. OOXML translators, which Novell tries to fool us with, remain Mono-dependent. It would be naive to assume that Microsoft is not aware of this. But if it spoke out, it would scare people away from the bait. █

Share in other sites/networks: These icons link to social bookmarking sites where readers can share and discover new web pages.





Permalink Send this to a friend