[prev in list] [next in list] [prev in thread] [next in thread]
List: bacula-users
Subject: Re: [Bacula-users] Request for help
From: Kern Sibbald <kern () sibbald ! com>
Date: 2015-02-13 11:32:12
Message-ID: 54DDE0BC.3050101 () sibbald ! com
[Download RAW message or body]
[Attachment #2 (text/html)]
<html>
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<div class="moz-cite-prefix">Hello,<br>
<br>
Two points: I think that what Radoslaw is saying is correct, and
he is a technical person. If someone doesn't understand or agree
with his reasoning it would not be surprising because his points
are quite technical and not everyone understands the technical
issues, but those technical points make all the difference
concerning the license (linking most often creates a derived work
under the GPL, while executing a separate program does not). By
the way, the Bacula license is quite explicit on how plugins are
to be treated because I added specific text for plugins.<br>
<br>
Radoslaw is correct, the current Bacula license is rather
restrictive concerning plugins, I made it that way on purpose,
because I was not sure what the best thing to do would be at the
beginning, so my reasoning was that it would be better to start
with a restrictive license then ease it up if there was a need
(the other way creates lots of problems with developers). I have
been thinking about making the plugin license less restrictive in
the future, and I will probably do so by the next release
(hopefully June 2015).<br>
<br>
Best regards,<br>
Kern<br>
<br>
On 12.02.2015 19:24, Radosław Korzeniewski wrote:<br>
</div>
<blockquote
cite="mid:CAF_EmoARF22oeEM909JnhE-zVCoa=s_OuNsKzXUFOKYVZcnpVA@mail.gmail.com"
type="cite">
<div dir="ltr">Hello,
<div><br>
</div>
<div>Why are you calling me Mr. Radoslaw?</div>
<div class="gmail_extra"><br>
<div class="gmail_quote">2015-02-12 12:46 GMT+01:00 Heitor
Faria <span dir="ltr"><<a moz-do-not-send="true"
href="mailto:heitor@bacula.com.br" \
target="_blank">heitor@bacula.com.br</a>></span>:<br> <blockquote \
class="gmail_quote" style="margin:0px 0px 0px \
0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<div>
<div
style="font-family:arial,helvetica,sans-serif;font-size:10pt;color:rgb(0,0,0)"><span
class="">
<blockquote
style="border-left-width:2px;border-left-style:solid;border-left-color:rgb(16,16,255); \
margin-left:5px;padding-left:5px;color:rgb(0,0,0);font-weight:normal;font-style:normal;text-decoration:none;font-family:Helvetica,Arial,sans-serif;font-size:12pt">
<div dir="ltr">
<div class="gmail_extra">
<div class="gmail_quote">
<blockquote class="gmail_quote"
style="margin:0px 0px 0px
0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<div
style="font-family:arial,helvetica,sans-serif;font-size:10pt;color:rgb(0,0,0)">
<div><span style="font-size:10pt">However,
MOST of the code developed by Bacula
Enterprise are in the form of
Plugins (Vmware, Databases, etc.)
(...) that CAN'T be considered
derivations / modifications of the
original Bacula Source code.</span><br>
</div>
</div>
</blockquote>
<div><br>
</div>
<div>
<div>Bacula plugins are derived work of
Bacula code. Please read my discussion
with Kern about 2010 when I start
developing a PostgreSQL plugin for
Bacula:</div>
<div><br>
</div>
<div>Kern Sibbald:</div>
<div>"(...)</div>
<div><span
style="font-size:12.8000001907349px">There
are varying opinions on whether or not
a </span><span
\
style="font-size:12.8000001907349px">plugin</span><span
style="font-size:12.8000001907349px"> is
a derived work or</span><br
style="font-size:12.8000001907349px">
<span
style="font-size:12.8000001907349px">not,
but it is and has always been the
opinion of the FSFE that a shared</span><br
style="font-size:12.8000001907349px">
<span
style="font-size:12.8000001907349px">object
(as is the case for Bacula </span><span
\
style="font-size:12.8000001907349px">plugins</span><span \
style="font-size:12.8000001907349px">) is a derived work, which means</span><br
style="font-size:12.8000001907349px">
<span
style="font-size:12.8000001907349px">that
it must have the same </span><span
\
style="font-size:12.8000001907349px">license</span><span
style="font-size:12.8000001907349px"> (or
at least one that is compatible).</span></div>
</div>
</div>
</div>
</div>
</blockquote>
</span>
<div><span style="font-size:13.3333330154419px">Hello
Mr. Radoslaw: </span>This is more a political
/ philosofical opinion from FSFE, but its not law
technically right.</div>
</div>
</div>
</blockquote>
<div><br>
</div>
<div>There was a huge discussion on the LKML if kernel
modules could be licensed other then GPLv2 (the main Linux
kernel license). The conclusion was they could take a
different license only when modules do not use exported
GPL licensed symbols (EXPORT_SYMBOL_GPL). Kernel modules
from technical point of view are the same as Bacula
plugins.</div>
<div>The most important is a linking which connects a GPL
licensed code with another one. To compile a plugin you
need a few include header files which define plugin API.
Without it you are unable to make a plugin. It is not a
law it is a technical issue.</div>
<div>If you are unsure, just ask Kern as I did in the 2010.
Then I've got an answer quoted above.</div>
<blockquote class="gmail_quote" style="margin:0px 0px 0px
0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<div>
<div
style="font-family:arial,helvetica,sans-serif;font-size:10pt;color:rgb(0,0,0)"><span
class="">
<blockquote
style="border-left-width:2px;border-left-style:solid;border-left-color:rgb(16,16,255); \
margin-left:5px;padding-left:5px;color:rgb(0,0,0);font-weight:normal;font-style:normal;text-decoration:none;font-family:Helvetica,Arial,sans-serif;font-size:12pt">
<div dir="ltr">
<div class="gmail_extra">
<div class="gmail_quote">
<div>
<div><span
style="font-size:12.8000001907349px">I
personally am probably a bit more open
to different possibilities, but I</span><br
style="font-size:12.8000001907349px">
<span
style="font-size:12.8000001907349px">firmly
believe that if you are extending
Bacula with a </span><span
\
style="font-size:12.8000001907349px">plugin</span><span \
style="font-size:12.8000001907349px">, you should</span><br
style="font-size:12.8000001907349px">
<span
style="font-size:12.8000001907349px">give
back to the community by providing it
with your source code.</span><br
style="font-size:12.8000001907349px">
</div>
<div>(...)"</div>
</div>
</div>
</div>
</div>
</blockquote>
</span>
<div>This was probably an option from a Bacula
community developer.</div>
</div>
</div>
</blockquote>
<div><br>
</div>
<div>:)</div>
<div><br>
</div>
<div>Quoted above are opinion of the main Bacula author and
developer - Kern Sibbald.</div>
<blockquote class="gmail_quote" style="margin:0px 0px 0px
0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<div>
<div
style="font-family:arial,helvetica,sans-serif;font-size:10pt;color:rgb(0,0,0)"><span
class="">
<blockquote
style="border-left-width:2px;border-left-style:solid;border-left-color:rgb(16,16,255); \
margin-left:5px;padding-left:5px;color:rgb(0,0,0);font-weight:normal;font-style:normal;text-decoration:none;font-family:Helvetica,Arial,sans-serif;font-size:12pt">
<div dir="ltr">
<div class="gmail_extra">
<div class="gmail_quote">
<div>
<div><span style="font-size:12pt">So, I
extended a Bacula with a plugin and
released it with AGPLv3 license.
Releasing a plugin with a different
license is a bit complicated because
Bacula allow plugins with a specific
licenses only:</span></div>
<div><br>
</div>
<div>fd_plugins.c:1160:</div>
<div><br>
</div>
<div>
<div><span
style="font-family:monospace,monospace">
if (strcmp(info->plugin_license,
"Bacula AGPLv3") != 0 &&</span></div>
<div><span
style="font-family:monospace,monospace">
strcmp(info->plugin_license,
"AGPLv3") != 0) {</span></div>
<div><span
style="font-family:monospace,monospace">
Jmsg(NULL, M_ERROR, 0, _("Plugin
license incompatible. Plugin=%s
license=%s\n"),</span></div>
<div><span
style="font-family:monospace,monospace">
plugin->file,
info->plugin_license);</span></div>
</div>
<div><br>
</div>
<div>I'm not talking here about Bacula
Enterprise because it has a different
license.</div>
<div><br>
</div>
<div>best regards</div>
</div>
</div>
-- <br>
<div>Radosław Korzeniewski</div>
</div>
</div>
</blockquote>
</span>
<div>What is the definition of derived work? They are
*transformations* from a original work, like
rearrangements, instrumentation, presentation,
translation etc. </div>
</div>
</div>
</blockquote>
<div><br>
</div>
<div>No! I disagree! To make a derived work you do not need
to transform/change/rearrange/etc. the original. I can use
100% the original code in my application which become a
derived work. </div>
<div><br>
</div>
<blockquote class="gmail_quote" style="margin:0px 0px 0px
0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<div>
<div
style="font-family:arial,helvetica,sans-serif;font-size:10pt;color:rgb(0,0,0)">
<div>We can't say that plugins are derived work, since
there is a division between Bacula core original
code and the plugin code.</div>
</div>
</div>
</blockquote>
<div><br>
</div>
<div>No! There is not! The glue code are at least a header
files and linking. Bacula uses a lot of own implementation
of a dozen of standard library functions like malloc,
snprintf, etc. When you make a plugin you are forced to
use a Bacula implementation of these functions. Without it
you will be in trouble to make things work. I know what
I'm talking about.</div>
<div><br>
</div>
<blockquote class="gmail_quote" style="margin:0px 0px 0px
0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<div>
<div
style="font-family:arial,helvetica,sans-serif;font-size:10pt;color:rgb(0,0,0)">
<div> In fact there is not even GPL plugins (that I
know) similar to the ones Bacula Enterprise provide,
so we could no even argue that they are not original
code.</div>
</div>
</div>
</blockquote>
<div><br>
</div>
<div>I do not understand what do you mean. Sorry.</div>
<div> </div>
<blockquote class="gmail_quote" style="margin:0px 0px 0px
0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<div>
<div
style="font-family:arial,helvetica,sans-serif;font-size:10pt;color:rgb(0,0,0)">
<div>A question for every one: if plugins needed to
hold the same license that the core application
code, what about the RunBefore / After job scripts?
Aren't they original work? Are they code?</div>
</div>
</div>
</blockquote>
<div><br>
</div>
<div>Are you kidding me? Any application/program/script
executed with RunBefore/After job parameter are in every
bit different from plugin. First thing plugin require
linking to the Bacula binary code but external
applications in RunBefore/After job parameters are not -
they are run with exec() system call. Plugins share an
application memory space with Bacula binary code,
exec()'uted applications own a separate address space.</div>
<div> </div>
<blockquote class="gmail_quote" style="margin:0px 0px 0px
0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<div>
<div
style="font-family:arial,helvetica,sans-serif;font-size:10pt;color:rgb(0,0,0)">
<div>IMHO the license is the *law* for the
application, and this law can't embrace every of its
accessories (3rd party libraries, plugins, scripts
etc.),because we would be going into a rights
deadlock / inferno / rights instability. Of course,
there is a limit.</div>
</div>
</div>
</blockquote>
<div><br>
</div>
<div>The law is a license - GPL do not allow to make a
derived work which is not GPL licensed. This feature make
any library usage very limited. This is a reason LGPL
comes from. LGPL in opposite to GPL allow to link and use
of the library in the same address space of non-GPL
application securing any modifications to the library
itself LGPL licensed.</div>
<div><br>
</div>
<div>And finally I do agree with you that plugins should be
available with any license and current policy is very
restrictive. But you are wrong, current Bacula code and
license do not allow to use non AGPLv3 licensed plugins.</div>
<div><br>
</div>
<div>best regards</div>
<div>-- <br>
</div>
</div>
<div class="gmail_signature">Radosław Korzeniewski<br>
<a moz-do-not-send="true"
href="mailto:radoslaw@korzeniewski.net">radoslaw@korzeniewski.net</a></div>
</div>
</div>
</blockquote>
<br>
</body>
</html>
------------------------------------------------------------------------------
Dive into the World of Parallel Programming. The Go Parallel Website,
sponsored by Intel and developed in partnership with Slashdot Media, is your
hub for all things parallel software development, from weekly thought
leadership blogs to news, videos, case studies, tutorials and more. Take a
look and join the conversation now. http://goparallel.sourceforge.net/
_______________________________________________
Bacula-users mailing list
Bacula-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bacula-users
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic