← Back to team overview

dolfin team mailing list archive

Re: CGAL triangle compilation problems.

 

On Fri, Feb 03, 2012 at 02:25:53PM +0100, Johan Hake wrote:
> On Friday February 3 2012 14:21:51 Garth N. Wells wrote:
> > On 3 February 2012 13:15, Johan Hake <johan.hake@xxxxxxxxx> wrote:
> > > On Friday February 3 2012 13:57:12 Johannes Ring wrote:
> > >> On Fri, Feb 3, 2012 at 1:53 PM, Johan Hake <johan.hake@xxxxxxxxx> wrote:
> > >> > On Friday February 3 2012 13:40:27 Garth N. Wells wrote:
> > >> >> On 3 February 2012 11:35, Anders Logg <logg@xxxxxxxxx> wrote:
> > >> >> > On Fri, Feb 03, 2012 at 10:13:23AM +0100, Johan Hake wrote:
> > >> >> >> On Friday February 3 2012 10:11:10 Garth N. Wells wrote:
> > >> >> >> > On 3 February 2012 08:38, Garth N. Wells <gnw20@xxxxxxxxx> wrote:
> > >> >> >> > > On 2 February 2012 19:48, Johan Hake <johan.hake@xxxxxxxxx>
> wrote:
> > >> >> >> > >> I cannot compiled dolfin now. I am getting:
> > >> >> >> > >>
> > >> >> >> > >>  In file included from
> > >> >> >> > >> /home/hake/local/include/CGAL/Triangulation_data_structure_3.
> > >> >> >> > >> h:4 3:0 , from
> > >> >> >> > >> /home/hake/local/include/CGAL/Triangulation_3.h:35, from
> > >> >> >> > >> /home/hake/bzr/fenics/dolfin/work-
> > >> >> >> > >> trunk/dolfin/generation/cgal_triangulate.h:30,
> > >> >> >> > >>                 from /home/hake/bzr/fenics/dolfin/work-
> > >> >> >> > >> trunk/dolfin/generation/CGALMeshBuilder.h:32,
> > >> >> >> > >>                 from /home/hake/bzr/fenics/dolfin/work-
> > >> >> >> > >> trunk/dolfin/generation/Triangulate.cpp:28:
> > >> >> >> > >> /home/hake/local/include/CGAL/Triangulation_ds_cell_base_3.h:
> > >> >> >> > >> In constructor
> > >> >> >> > >> ‘CGAL::Triangulation_ds_cell_base_3<TDS>::Triangulation_ds_ce
> > >> >> >> > >> ll_ bas e_3(
> > >> >> >> > >> CGAL::Triangulation_ds_cell_base_3<TDS>::Vertex_handle,
> > >> >> >> > >> CGAL::Triangulation_ds_cell_base_3<TDS>::Vertex_handle,
> > >> >> >> > >> CGAL::Triangulation_ds_cell_base_3<TDS>::Vertex_handle,
> > >> >> >> > >> CGAL::Triangulation_ds_cell_base_3<TDS>::Vertex_handle)’:
> > >> >> >> > >> /home/hake/local/include/CGAL/Triangulation_ds_cell_base_3.h
> > >> >> >> > >> :50
> > >> >> >> > >>
> > >> >> >> > >> :43: error: ISO C++ forbids compound-literals
> > >> >> >> > >>
> > >> >> >> > >> I have last CGAL 3.9, g++ 4.5.2
> > >> >> >> > >
> > >> >> >> > > I'll take a look. CGAL 3.8 works, and I can reproduce the
> > >> >> >> > > error with CGAL 3.9.
> > >> >> >> >
> > >> >> >> > I've just pushed a fix. CGAL 3.9 uses a g++-specific extension
> > >> >> >> > which yields and error when using strict compiler flags. I've
> > >> >> >> > added a CGAL flag to disable use of the g++ extension.
> > >> >> >>
> > >> >> >> Cool!
> > >> >> >
> > >> >> > It works fine here.
> > >> >> >
> > >> >> > Are there any license issues regarding the CGAL mesh generation
> > >> >> > library?
> > >> >>
> > >> >> No more than we already have with the intersection code which uses
> > >> >> some of the CGAL QPL'd components.
> > >> >>
> > >> >> I'm not a lawyer and I can't find a definitive answer anywhere, but
> > >> >> my reading of the licences is that it's fine, especially since we
> > >> >> don't depend on CGAL. The CGAL license basically says that code
> > >> >> built using CGAL must be made available under an open source
> > >> >> license. We're complying with this, and if someone using DOLFIN is
> > >> >> unwilling to do this then they shouldn't enable CGAL.
> > >> >
> > >> > It actually looks like we need to explicitly ammend something to the
> > >> > GLP license we use, to be able to use CGAL.
> > >> >
> > >> > >From http://www.cgal.org/license.html:
> > >> >  The General Public License (GPL) has a viral effect which makes it
> > >> >  incompatible with the QPL. For more information, please refer to the
> > >> >  paragraph about the QPL on the licenses web page of the FSF. It is
> > >> > therefore not possible to build a program including GPL code and some
> > >> > QPL parts of CGAL. In this case, if you are the copyright owner of the
> > >> > GPL code, you can amend the license by adding an exception allowing
> > >> > the use of CGAL with it (see again the FSF web page).
> > >> >
> > >> > I couldn't find the refered pages on fsf site, as it only pointed to a
> > >> > dead link.
> > >>
> > >> I think it is only CGAL CORE which is QPL, and we don't use CORE in
> > >> DOLFIN, right?
> > >
> > > I think it is the other way around. We mostly use CGAL Core, which is
> > > LGPL, and fine. But more fancy stuff like triangulation is not part of
> > > the core and under QPL license.
> >
> > Some of the intersection code is QPL.
>
> Ok, but the main issue (or none issue) remains:
>
>   We use QPL code in DOLFIN.

My conclusion is that we don't need to worry about this issue.

Here's the interesting passage from the QPL with my comments:

6. You may develop application programs, reusable components and other
   software items that link with the original or modified versions of
   the Software. These items, when distributed, are subject to the
   following  requirements:

   [AL: here "these items" refers to DOLFIN and programs linking to
    DOLFIN and (thus) CGAL]

      a. You must ensure that all recipients of machine-executable
         forms of these items are also able to receive and use the complete
         machine-readable source code to the items without any charge
         beyond the costs of data transfer.

   [AL: check, we do this already for the LPGL]

      b. You must explicitly license all recipients of your items to
         use and re-distribute original and modified versions of the items
         in both machine-executable and source code forms. The recipients
         must be able to do so without any charges whatsoever, and they
         must be able to re-distribute to anyone they choose.

    [AL: check]

      c. If the items are not available to the general public, and the
         initial developer of the Software requests a copy of the
         items, then you must supply one.

    [AL: check, the items are available to the general public]

So the only possible problem is from the LGPL side. The LGPL does not
impose any conditions on programs linking to it, and it certainly does
not impose any conditions on other libraries linking to it. So I think
we're in the clear.

If we had used GPL, we would have needed to add a paragraph to add an
exception for linking against CGAL. Not sure if that also applies to
GPL-applications built on top of DOLFIN (CBC.Solve is one example).

--
Anders



> Johan
>
> > Garth
> >
> > > Johan
> > >
> > >> Johannes
> > >>
> > >> _______________________________________________
> > >> Mailing list: https://launchpad.net/~dolfin
> > >> Post to     : dolfin@xxxxxxxxxxxxxxxxxxx
> > >> Unsubscribe : https://launchpad.net/~dolfin
> > >> More help   : https://help.launchpad.net/ListHelp
> > >
> > > _______________________________________________
> > > Mailing list: https://launchpad.net/~dolfin
> > > Post to     : dolfin@xxxxxxxxxxxxxxxxxxx
> > > Unsubscribe : https://launchpad.net/~dolfin
> > > More help   : https://help.launchpad.net/ListHelp
> >
> > _______________________________________________
> > Mailing list: https://launchpad.net/~dolfin
> > Post to     : dolfin@xxxxxxxxxxxxxxxxxxx
> > Unsubscribe : https://launchpad.net/~dolfin
> > More help   : https://help.launchpad.net/ListHelp
>
> _______________________________________________
> Mailing list: https://launchpad.net/~dolfin
> Post to     : dolfin@xxxxxxxxxxxxxxxxxxx
> Unsubscribe : https://launchpad.net/~dolfin
> More help   : https://help.launchpad.net/ListHelp


Follow ups

References