summaryrefslogtreecommitdiff
path: root/blog/2017/dont-piss-in-my-beer.rst
blob: c98a5412f7e81c63dbc3440038b55cd7f51c9b7b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
.. date: 2017/04/27 22:12
.. title: Don't piss in my beer

`Twelve years ago <https://erdgeist.org/gitweb/ezjail/commit/?id=bb046d1a21058af9e2077d6b4f0418667862d46e>`_ I started a little project called `ezjail </arts/software/ezjail/>`_, an opinionated tool that helps `FreeBSD <https://www.freebsd.org>`_ admins to make compartmentalization a lot easier. Long before real virtualisation was a real thing for the rest of us, it helped me scratch my itches maintaining virtual servers I could give out to my more or less technically savvy friends without too much headaches regarding the safety of my files. Of course, this project has been released under `my favorite licence <https://erdgeist.org/posts/2011/die_beerware-lizenz.html>`_.

Keep in mind, that this licence actually doesn't ask for much. Basically it only says not to steal it and run around claiming it's yours. Now, you'll *never* guess, `what happened <https://lists.freebsd.org/pipermail/freebsd-jail/2013-March/002118.html>`_ in 2013. ;)

That's right: After apparently not reacting quickly enough to some man page rewrites submitted to me by an author from the philippines, I seem to have made an enemy for life! I've encountered an interesting version of a hostile fork named qjail: my project was copied, the fork renamed and most (`but not all <https://sourceforge.net/projects/qjail/files/qjail-1.0.tar.bz2/download>`_) of the references to the ezjail project name replaced by the fork's name.

When I reported my astonishment to the adults running the FreeBSD project, they quickly `took action <https://svnweb.freebsd.org/ports?view=revision&revision=314731>`_ and blocked the port until qjail acknowledged me being the author. `Others noticed as well <http://stafwag.github.io/blog/blog/2013/04/10/migrating-from-qjail-to-ezjail/>`_ and decided to move away from the copy cat.

The open source philosophy and some licence law details must have been lost on the guy, as becomes obvious by some later quite funny follow-ups. To quote from `emails later in that thread <https://lists.freebsd.org/pipermail/freebsd-jail/2013-March/002149.html>`_ (you have to start reading from the bottom).

  One does not have to be a lawyer to know the lack of any license
  verbiage embedded in computer programs released to the public becomes
  property of public domain forever. Putting license verbiage on your next
  port version is unenforceable because it's already property of public
  domain.

And even more hilarious

  This outburst only confirms my suspicion that your suffering from dementia
  caused by advancing age. I tried to give you a way to save face as I purposed
  in my private email to you.
  
  I understand what you are going through and forgive you for your actions. I
  pray you are under medical care for this condition. There are drugs which reduce
  these effects and prolong the periods of normalness.

While I usually try not to stand in the way of others doing stuff, I found the process annoying enough to act. In turn, ezjail became a constant `target of FUD and suggestions to switch <http://daemonforums.org/showthread.php?t=5977>`_ in all `kinds of forums <https://lists.freebsd.org/pipermail/freebsd-jail/2015-January/002742.html>`_ I never had the time to check and correct.

What made things worse is that the guy `just started <http://lists.freebsd.org/pipermail/freebsd-questions/2013-January/248558.html>`_ learning `the very language <http://lists.freebsd.org/pipermail/freebsd-questions/2013-January/247723.html>`_ ezjail was written in. Considering jails being a security mechanism, that's a very bold move.

In the end, the differences in qjail became so distinct that he could not rip off later developments like the whole zfs sub system, `contributed by a friend of mine <https://erdgeist.org/gitweb/ezjail/commit/?id=095380a8d03be3a0454626e8b150712f125d814d>`_.

Time went by and `things changed in the FreeBSD world <https://lists.freebsd.org/pipermail/freebsd-jail/2013-March/002160.html>`_ that were a little unfortunate to my project: FreeBSD jails were reorganized and the official jail management tool moved from reading a simple config language to a structured one (making it impossible to edit and parse in the rather simple scripting language sh). A legacy wrapper was added which showed a depreciation message every time ezjail would start a virtual system:

  WARNING: Per-jail configuration via jail_* variables is obsolete. Please consider to migrate to /etc/jail.conf 

Of course, this only was grist to the FUD mill, claiming ezjail was outdated. For technical reasons, while it is easy to get rid of this warning (qjail did), but unfortunately not `when doing it properly <https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=218849#c13>`_. (Tl;dr: you can reproduce the original functionality of the wrapper, but you're doomed to chase changes in the system's implementation forever. Also you keep several, possibly diverging states of your config files without a way to parse the ones that the OS considers official.)

If you zoom out `on the thread I just linked to <https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=218849>`_, you'll notice that the very guy who stole my code now lobbies to have the wrapper code removed, which would essentially break ezjail.

And to make things even more absurd: when called out on his proposal, he `approached me <https://bugs.freebsd.org/bugzilla/attachment.cgi?id=182130>`_ with a "fix" to the carnage he tries to bring upon me. You'll *never* guess if he wrote the code he asks me to copy into my project himself. ;)

In summary: I can't really lurk around in all the forums and honestly I don't have the time for fighting an unsuspected arch enemy. But if you want to understand how frustrating open source development can become, once you're up against someone with more time than ability, feel free to join me over a beer!

Update
======

As an impressive turd seasoning, I just found that qjail's current licence header reads:

  As per the international "Berne Convention" this work is
  protected and all rights reserved.
  
  Before qjail may be forked, written permission must be
  obtained from the author.

No worries mate. Not gonna fork it. Promise!