IDEA: Commercial Subscription Repositiory
kfries at cctus.com
Wed Sep 17 17:21:06 UTC 2008
All this talk recently of the boneheads over at Firefox adding an EULA (they are not usually boneheads, but are this time) has me revisiting an idea that I had some time ago. My plate is extremely busy right now, so if anyone wants to steal it, feel free. As a matter of fact, I encourage someone to steal it. Enhance it all you want. I just hope somebody will see the advantages this would bring, and build it.
The idea is focused around the nearly constant, age old, arguments that erupt in the Linux community over licensed software. Arguments over fonts, codecs, etc. Newbies especially get frustrated when Linux fonts are not quite as nice as those commercial ones used on Mac and Linux, printer drivers are missing, or the ability to play certain music and videos is limited. So, why do we not provide that? Simple, licensing.
Here is my proposal --
Phase One -
In the first phase, we set up a repository to hold all the fonts and codecs and other licensed stuff. Think of this in the same exact way that Apple and Microsoft does it, only better, because in the Linux tradition, you only subscribe to it if you want it, its not forced on you like the other platforms. APT gets its updates via http, so doing a paid subscription model should be very straight forward. I am thinking that this should be easily done for say $30 per Ubuntu release. The sources.list file will simply have to have a line like:
deb http://joeuser:firstname.lastname@example.org/ubuntu intrepid licensed
Next we create a special package we can call ubuntu-desktop-licensed that will automatically include all of the licensed and commercial software to provide a Windows-esk experience (minus the viruses and constant crashing) to the Ubuntu desktop. It could even be a simple add to the install. A check box that describes all of the "features" of the commercial service with a checkbox that must be opted into to enable, and a warning that the service must already be set up to prevent errors.
This could be implemented tomorrow with no structural changes to Ubuntu or Linux. Phase two will require a few minor structural changes, and is why it is put off for later. Lets do what we can NOW, then work on the enhancements.
Phase two -
Its not the commercial software in Windows that irritates me as much as the complete duplication of services and lack of central license management. Windows does not have anything like APT (they have several bad attempts, but nothing that really compares). I would like to see a central software, license and update management that is basically an extension of Synaptic. But, there would need to be a few changes. It would work like so:
* Commercial software (Photoshop anyone?) would be placed in a special repository that will include at least 15 or 30 days of trial use. This use may be full featured or restricted use as the software vendor requires. It will operate this way without a license according to the trial period. The packages should be standard .deb packages that can be installed or uninstalled in the normal way.
* Trialware should always behave as a file viewer, and exporter. This has two positive effects: first is that software never gets in a state where the end users has moved on to another product but the files are not compatible with the new software; and documents are viewable (though probably not editable) by people that do not otherwise use that product. By having an export feature (assuming the file has not been locked as read-only with a password, and that password is not known) I should be able to move a document between different software packages. (I know, idealism, but I can dream)
* A "License Manager Service" will be written as a system daemon. I am thinking for enterprise customers, an LDAP backed option could really start going after Microsoft's Systems Management Server. The LMS would have the following interface:
- List: List all software licenses on the system
- Retrieve: Retrieve the license for a given package
- Backup: Store all license information in a backup file so the system can be easily restored from a complete re-install
- Restore: ummm duh
- Add: Software can add a new license to the database
- Renew: Software can renew its license information to extend the effective date of the license
- Disable: License info should probably never be deleted for historical purposes, but it should be able to be disabled.
- Warn: Warn the end user of any software whose license is about to expire, this should be configurable but 90 days, 60 day, 30 day, 15 day, 5 days, and 1 day would be good default periods to look for.
- Validate: check a license for validity
- Update_Validate: check if the given update would invalidate this license (see below, used for update manager)
* While all free/maintenance updates should be done via the normal APT process, commercial software imposes a new problem... not all upgrades are free and automatic. Therefore, the update process will need to be adjusted slightly. The new process would work like this:
- Check to see if there is an update, if not continue as normal
- Check to see if the package has a commercial license, if not continue as normal
- If there is a license, and there is an update, check to see if the license covers the new updated version, if so, update as normal
- If there is a license, there is an update, and an updated license is required, do not upgrade
* Once the normal upgrade has been performed, a license checker (similar to the existing update notifier) checks to see if any software has a version upgrade requiring a new license. If so, it notifies the user.
To upgrade commercial software, simply update the license and let APT upgrade and keep the software up to date (since the third criteria above is now met). The changes to the existing APT is trivial once the license manager is in place. And the license manager is not all that complicated... its just a database manager with a few key fields, and a blob to hold the binary license the software will require.
Not only would this make porting commercial software from Windows to Linux much easier, it should make developing new commercial software for Linux much easier. When boxed software can be sold in Best Buy and Circuit City that is built for, or includes support for Linux, Linux will gain so much in legitimacy in the eyes of the general public. This could be a great first step to achieving this. I only wish I had the time to do it myself.
More information about the Ubuntu-devel-discuss