Tags

redhat
employment
ripple
interfaces
ncurses
ruby
refs
filesystems
retro gaming
raspberry pi
sinatra
3d printing
nethack
gcc
compiler
fedora
virtfs
project
gaming
vim
grep
sed
aikido
philosophy
splix
android
lvm
storage
bitcoin
projects
sig315
miq
db
polisher
meditation
hopex
conferences
omega
simulator
bundler_ext
rubygems
book review
google code in
isitfedoraruby
svn
gsoc
design patters
jsonrpc
rjr
aeolus
ohiolinuxfest
rome
europe
travel
brno
gtk
python
puppet
conference
fudcon
snap
html5
tips
ssh
linux
hardware
libvirt
virtualization
engineering expo
cloud
rpm
yum
rake
redmine
plugins
screencasting
jruby
fosscon
pidgin
gnome-shell
distros
notacon
presentation
rails
deltacloud
apache
qmf
passenger
syrlug
hackerspace
music
massive attack
crypto
backups
vnc
xsd
rxsd
x3d
mercurial
ovirt
qpid
webdev
haikus
poetry
legaleese
jquery
selenium
testing
xpath
git
sshfs
svg
ldap
autotools
pygtk
xmlrpc
slackware

Aug 13 2009 legaleese

Lesser Affero GPLv3

Before I begin, I am not a lawyer and this is NOT to be taken as legal advice. No actions should be taken based on this blog post alone and I take no responsibility for any outcomes which may result from doing so.

The Free Software Foundation (FSF) provides many great software licenses for use in FOSS projects. Some of the more popular licenses include

-GPL: forces any developer using, modifying, or linking against GPL code to also release their code as free software under the GPL license if they are releasing their code in binary form

-LGPL: Additions to the GPL exempting developers who are only linking against GPL code and do not incorporate any changes to the GPL-licensed code base, from having to license their software under the GPL. eg. If you link against a LGPL library without modifications, your code or the license that it falls under does not need to be changed

-AGPL: a newcomer, the Affero General Public License, extends the GPL to close a loophole in which proprietary software may ‘steal’ and modify open code, and only provide access via a network interface or service. Since the binary isn’t being distributed in the conventional means, the proprietary developers can make all the changes they want to GPL code and distribute it as a service over a network interface without having to release their changes. The AGPL closes this loophole and requires developers to release source code if modifying AGPL code served primarily over a network interface

Unfortunately no ‘lesser’ version of the AGPL currently exists. Eg a license permitting any code to link against an LAGPL (lesser AGPL) library and distribute binaries or access via a network interface without fuss, while at the same time restricting code that incorporates modified components of LAGPL-licensed code such that derived works must also be licensed under the LAGPL.

Based on some advice (once again none of this is legal advice and i’m not responsible for anything you do) you can essentially create your own simple ‘LAGPL’. Since the LGPL is just additional privileges ontop of the GPL, you can simply add a provision to your software license that extends the AGPL allowing developers who merely link against your code or include it without modifications (eg headers) to not have to relicense their code under the AGPL. Something like this should work for what you need:

[[project name]] is free software, you can redistribute it and/or modify
it under the terms of GNU Affero General Public License
as published by the Free Software Foundation, either version 3
of the License, or (at your option) any later version.

You should have received a copy of the the GNU Affero
General Public License, along with [[project name]]. If not, see


Additional permission under the GNU Affero GPL version 3 section 7:

If you modify this Program, or any covered work, by linking or
combining it with other code, such other code is not for that reason
alone subject to any of the requirements of the GNU Affero GPL
version 3.

The GPL and AGPL both permit any additional restrictions and permissions to be removed by developers. So for example you can take LGPL code and remove the ‘linker-friendly’ permission, changing the derived work so as to be licensed under the GPL. For that reason you want to start with a ‘strong’ / restrictive license such as the AGPL and add on the ‘linker-friendly’ permission, which if removed will result in your code being freer than it is now. If you started with the LGPL and added the ‘affero clause’ restriction, it can be subsequently removed resulting in your code being less free (eg the network loophole is still wide open).

Hope this helps!