[odb-users] Re: Gentoo ODB package

Boris Kolpackov boris at codesynthesis.com
Wed Jan 23 07:26:42 EST 2013

Hi Hugo,

I've CC'ed the odb-users mailing list in case anyone else is interested
in ODB packages for Gentoo.

Hugo.Mildenberger at web.de <Hugo.Mildenberger at web.de> writes:

> I'm thinking about to write a Gentoo package for ODB.

That would be fantastic! I would be happy to help if you run into
any issues. Also, when you are done, please send a note to odb-users
so that we can mention your work on the website, etc.

> However, Gentoo requires the package developer to name the licences,
> which in turn are stored verbatim somewhere on disk. Hence, I checked
> http://www.codesynthesis.com/products/odb/license.xhtml and encountered
> several problems: 
>  1.) odb-2.1.1 sources are distributed with GPLv3, whereas your licence
>      page above states ODB would be licensed under GPLv2.
>  2.) The text or version of CPL is not available
>  3.) The text of NCUEL is not available
>  4.) The text of FPL is not available

Ok, let me try to explain how ODB is licensed. The important thing to
keep in mind is that ODB consists of multiple components, and they have
different licenses, specifically:

- odb

  This this the ODB compiler itself. Because it is implemented as a
  GCC plugin, we didn't have much choice other than license it under
  the GPLv3 (the same license as GCC). Note, however, that the source
  code produced by the ODB compiler is not copyrighted.

- libodb
  libodb-{mysql, sqlite, pgsql}
  libodb-{qt, boost}

  These are the common runtime, database runtimes for the open source
  databases, as well as the profile libraries for Qt and Boost,
  respectively. All of these are licensed under the GPLv2.

  Because the code produced by the ODB compiler is not copyrighted and
  these runtimes are licensed under the GPLv2, from the point of view
  of the application developer who uses ODB with one of the open source
  database, ODB is under GPLv2. Which is why we say ODB is GPLv2 in the

- libodb-{oracle, mssql}

  These are database runtimes for the commercial databases and are licensed
  under our own, non-open source Non-Commercial Use or Evaluation License
  (NCUEL). The text of NCUEL comes with the above packages and is also
  available online:


Now, some people don't want to be bound by the terms of the GPLv2/NCUEL.
In this case, there are two options:

1. If the object model is fairly small (the generated database support
   code is under 10,000 lines), then they can use ODB under the Free
   Proprietary License (FPL) which doesn't have any of the GPLv2

   We don't publish the text of FPL and every individual/company will
   need to contact us to get it.

2. Otherwise, there is the Commercial Proprietary License (CPL). Again,
   we do not publish its text.

3. For completeness, we are also open to granting license exceptions
   to other open source projects that wish to use ODB but are
   incompatible with GPLv2. For more information on this, see the blog
   post on the topic:

Also, here are my thoughts on packaging ODB for open source GNU/Linux 
distributions like Gentoo, Debian/Ubuntu, Fedora, etc.:

1. Don't package libodb-{oracle, mssql}. These are not licensed under
   the open source license and probably won't be accepted to the
   repository. Also, their prerequisites are not open source either
   (Oracle OCI, SQL Server Native Client) so they won't be in the

2. For the ODB compiler, state the license as GPLv3 and include its
   text in the package.

3. For the runtimes, state the license as GPLv2 and include its text
   in the package. You can also mentioned that other licenses are
   available and give a link to:


> Regarding FPL, I tend to solve the problem by creating a file
> referring the reader to your licence site.

Yes, that sounds good and is pretty much what I suggested in (3)


More information about the odb-users mailing list