[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">&lt;<a moz-do-not-send="true"
                href="mailto:heitor@bacula.com.br" \
target="_blank">heitor@bacula.com.br</a>&gt;</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-&gt;plugin_license,
                                    "Bacula AGPLv3") != 0 &amp;&amp;</span></div>
                                <div><span
                                    style="font-family:monospace,monospace">  
                                            strcmp(info-&gt;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-&gt;file,
                                    info-&gt;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