[Freedombox-discuss] Unforgivable Hacks for AGPL Compliance
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:
: ALL_BUT_GZ=$(subst $(wildcard *.tar.gz),,$(wildcard *))
: EXCLUDES=--exclude=*.tar.gz --exclude=*~ --exclude=my-private-data/
: # start hosting the project
: ./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
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Size: 835 bytes
Desc: not available