[Freedombox-discuss] Unforgivable Hacks for AGPL Compliance

Nick M. Daly nick.m.daly at gmail.com
Wed Apr 24 01:51:57 UTC 2013


Thought you folks might like this one.  I'm so sorry, Bdale :)

AGPL3 compliance isn't simple, but we can make it better by making
compliance easier.  The trick seems to involve making it trivial to
publish your changes: if it's any work at all, people won't do it.
Therefore, publishing your changes must automatically be part of
publishing your project.

With that, I give you a simple makefile recipe for self-publishing both
the project's entire history and the current version of any project.
You can start the process by running:

: $ make hosting

The actual makefile juju is below.  May the gods forgive me for
inflicting recursive makefiles upon the world:

: SLEEP_TIME=300
: ALL_BUT_GZ=$(subst $(wildcard *.tar.gz),,$(wildcard *))
: EXCLUDES=--exclude=*.tar.gz --exclude=*~ --exclude=my-private-data/
:
: # start hosting the project
: hosting:
: 	  ./start.sh 8080 &
: 	  while [ 1 ]; do make current-checkout.tar.gz current-repository.tar.gz; sleep $(SLEEP_TIME); done
: 
: # publish the current version of the project
: current-checkout.tar.gz: $(ALL_BUT_GZ)
: 	  tar cz $(EXCLUDES) * > current-checkout.tar.gz
: 
: # publish the project and all the history
: current-repository.tar.gz: $(ALL_BUT_GZ)
: 	  tar cz $(EXCLUDES) * .git > current-repository.tar.gz

You'll need to modify the EXCLUDES and the included revision control
directory (on the last line) as necessary, but that's it.

It appears to be bash and dash compliant, meaning that the recipe should
be fit for including into init scripts, if something this ridiculous can
be permitted.

Nick
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 835 bytes
Desc: not available
URL: <http://lists.alioth.debian.org/pipermail/freedombox-discuss/attachments/20130423/b80919ef/attachment.pgp>


More information about the Freedombox-discuss mailing list