A possible way to promote 100 percent free software online services?

From LibrePlanet
Revision as of 15:24, 15 October 2010 by Mathieug (talk | contribs) (UPDATE: Project started in mid-August 2010)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

This text attempts to argue a means of promoting the use of 100% free software online services. It was written by a free software militant who happens not to be a professional software developer. If you are a free software developer, please feel free to steal the idea and make it happen by turning it into a real project. Originally written in March 2010 by Mathieu GP.

UPDATE: Project started in mid-August 2010. see Freedom Protection Tools project on Gitorious.

100% free software services

Definition: In a nutshell, a 100% free software online service is any service that does not directly involve the execution of non-free software to deliver the service to the client.

How to verify

  1. We have on the one hand the possibility to list the executable files and runtime library files loaded into memory on a computer. (At least the GNOME system monitor seems to be able to do this, producing a complete memory map of any running process.)
  2. All major free OS distributions have a database of software packages providing software licence information on each package and the list of files to be installed by each package.

Therefore, it seems to me that it should be possible to write a program that would find the list of software licences associated with the program and library files loaded into memory.

Using that program, we should be able to generate a nice RDF document giving the full list of the software licences being used by a given computer system at a given time.

How we could use this

We could campaign to have online service providers volunteer to install our licence verification program on their servers to inform us (the public) of what software is being executed on the server side when we utilize their services. The RDF document could be updated hourly (or else) by the licence verification program.

As a proof of concept, this idea could initially take the form of a simple Firefox plugin able to read the RDF documents provided by servers running the licence verification program. The plugin could display a nice table or tree of all the software being run and their associated licences. A little status bar icon in Firefox could inform us of the number and types of licences in use and display a warning when we are entering a Web site running non-free software. Or we could shut down the computer, but that may not be all too popular I am afraid. ;-)

Even better

We could have the RDF document provide us with more than just licence information. The RDF could also contain metadata extracted from the OS's database of software packages and give us information describing the nature of the software programs being run (name, version, category and other descriptive tags). From there, we could send spiders to map (more or less automatically) the Web of online services relying solely on free software. The list of sites to explore could be generated automatically by having the licence verification program signal a server (the spiders' nest) when the result of the verification shows no sign of a non-free software license being used.

The job of pointing computer users toward these alternative online services would be that much easier.

With an automated system to help us, we could set up a Web directory to provide people with answers to questions such as:

  • What free-software online storage/backup services are available to me?
  • Web hosting services?
  • Video hosting/sharing services?
  • ISP?
  • etc.

Architecture

In reality, there will often be multiple servers involved in the delivery of a single service or set of services through suchdomain.net. It might be a good idea to build our licence verification program on a client-server architecture so as to be able to build the RFD document by collecting data from the various computers directly involved in the delivery of a service behind a given public IP address.