Re: FlexiBLAS as BLAS/LAPACK manager - Fedora 33 System-Wide Change proposal

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, Jul 02, 2020 at 09:50:47AM +0200, Iñaki Ucar wrote:
> On Wed, 1 Jul 2020 at 18:39, Miro Hrončok <mhroncok@xxxxxxxxxx> wrote:
> >
> > On 01. 07. 20 16:24, Ben Cotton wrote:
> > > https://fedoraproject.org/wiki/Changes/FlexiBLAS_as_BLAS/LAPACK_manager
> > >
> > > == Summary ==
> > > BLAS/LAPACK packages will be compiled against the FlexiBLAS wrapper
> > > library, which will set OpenBLAS as system-wide default backend, and
> > > at the same time will provide a proper switching mechanism that
> > > currently Fedora lacks.
> > >
> > > ...
> > >
> > > == Scope ==
> > > * Proposal owners: Modify the SPECs of the BLAS/LAPACK-dependent
> > > packages to build against FlexiBLAS instead of the current backend
> > > they are using.
> >
> > I wonder, given FlexiBLAS is released under GPL (and not LGPL), whether this
> > means we would need to change the licenses of all non-GPL packages that will be
> > linked to FlexiBLAS to GPL.
> >
> > CCing legal.
> 
> Ok, let me recap here, because I wasn't subscribed to the legal list.
> Basically, FlexiBLAS is a wrapper for an API (BLAS/LAPACK) that is
> BSD. But to act as a wrapper, a program needs to link against the part
> of FlexiBLAS that replicates that API, and they just connect symbols
> to the appropriate backend (this is use 1). On the other hand,
> FlexiBLAS provides another API that allows programs to hook into the
> first API, profile, debug, switch the backend in real time... (this is
> use 2).
> 
> Here we are talking about use 1, and the question is whether this can
> be considered under the exception of a "system library", as defined in
> the first section of GPLv3. If not, the program must be
> GPL-compatible? Or the program needs to change the license altogether?

The "system library exception" is about allowing a GPL program to be
distributed without the source code for some of the libraries it links
to. But here we're talking about the opposite issue: whether we can
distribute *other* works linked to the GPLv3 library under their
original licenses. The "system library exception" is not relevant and
§5c says "You must license the entire work, as a whole, under this
License to anyone who comes into possession of a copy. This License
will therefore apply, along with any applicable section 7 additional
terms, to the whole of the work, and all its parts, regardless of how
they are packaged."

FSF insists that dynamically linking with a GPL-covered work is making
a combined work based on the GPL-covered part, and thus the final
product may only be distributed under the GPL, as quoted above [1].
I think this interpretation is dubious in some cases, but here, when
we're talking about compiling and linking programs against the GPLv3
headers, it seems reasonable.

If it would be possible to instead compile packages against some other
blas library, and only substitute flexiblas during dynamic linking at
users' systems, the GPLv3-covered work would only be created then and
we wouldn't need to care about licensing of other packages.

[1] https://www.gnu.org/licenses/gpl-faq.html#GPLStaticVsDynamic

> I contacted the upstream maintainer about this, and he really wants to
> permit the use case in this change proposal (I've been working with
> him 3 weeks to fix bugs and bring a suitable version to Fedora for
> this), so if this can't be considered a "system library", he is
> willing to add an exception to the license. This is what he told me:
> 
> > About the linking problem I could think of an exception, similar to the linking exception in gcc/glibc, which coincides with our "Free for free use" idea. I could add that FlexiBLAS is allowed to be linked against free software with an OSI approved license as none of the flexiblas headers are used at compile-time. In this way all open-source software can use FlexiBLAS no matter if it is BSD/MIT/APACHE/GPL code but those who want to use the special features like switching BLAS within the program or developing debug hooks like the profile hook, have to be compatible to GPL.

Would the maintainer consider switching the whole thing to LGPLv3?
This would preserve the freeness of his code and be much less hassle
for everyone involved, with no interpretation of new legal texts required.

Zbyszek
_______________________________________________
legal mailing list -- legal@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe send an email to legal-leave@xxxxxxxxxxxxxxxxxxxxxxx
Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: https://lists.fedoraproject.org/archives/list/legal@xxxxxxxxxxxxxxxxxxxxxxx




[Index of Archives]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [Gnome Users]     [KDE Users]

  Powered by Linux