On Wed, Nov 29, 2017 at 9:19 AM, Thomas Huth <h...@tuxfamily.org> wrote:
> On 29.11.2017 15:17, Laurent Vivier wrote: > > Le 29/11/2017 à 15:08, Thomas Huth a écrit : > >> On 29.11.2017 14:59, Peter Maydell wrote: > >>> On 29 November 2017 at 13:42, Laurent Vivier <laur...@vivier.eu> > wrote: > >>>> these functions come from: > >>>> > >>>> http://previous.alternative-system.com/ > >>>> > >>>> http://svn.code.sf.net/p/previous/code/trunk/src/ > softfloat/softfloat.c > >>>> > >>>> This is also a modified softfloat, release 2b > >>>> which is BSD license if I'm correct. > >>> > >>> We can't use softfloat2b code (the part of the license that goes > >>> "USE OF THIS SOFTWARE IS RESTRICTED TO PERSONS > >>> AND ORGANIZATIONS [...] WHO FURTHERMORE EFFECTIVELY INDEMNIFY JOHN > >>> HAUSER AND THE INTERNATIONAL COMPUTER SCIENCE INSTITUTE" isn't > >>> GPL compatible). > >>> > >>> We can use softfloat2a code, which doesn't have that indemnity clause. > >> > >> Sigh. That's why WinUAE and Hatari immediately switched back to > >> softfloat2a (derived from QEMU) after we've identified the problem > >> there. Looks like the Previous folks forgot to do that step, too :-( > >> > >>>> This code has also been copied to WinUAE (GPL), where softfloat has > been > >>>> copied from QEMU: > >>>> https://github.com/tonioni/WinUAE/blob/master/softfloat/softfloat.cpp > >>> > >>> Yes, lots of projects used the softfloat2b code without realising > >>> it wasn't GPL compatible (including QEMU -- we had a painful job > >>> to fix things up and convert to the 2a codebase a while back). > >>> > >>>> But I think the bad news comes later: > >>>> > >>>> all the other functions (sin, cos, tan, log, exp, ...) found in > previous > >>>> (softfloat_fpsp.c) are "derived" from NeXT library FPSP: > >>>> > >>>> http://svn.code.sf.net/p/previous/code/trunk/src/ > softfloat/softfloat_fpsp.c > >>>> > >>>> /*========================================================== > ================== > >>>> > >>>> This C source file is an extension to the SoftFloat IEC/IEEE > Floating-point > >>>> Arithmetic Package, Release 2a. > >>>> > >>>> Written by Andreas Grabher for Previous, NeXT Computer Emulator. > >>>> > >>>> ============================================================ > =================*/ > >>>> ... > >>>> /*---------------------------------------------------------- > ------------------ > >>>> | Algorithms for transcendental functions supported by MC68881 and > MC68882 > >>>> | mathematical coprocessors. The functions are derived from FPSP > library. > >>>> *----------------------------------------------------------- > -----------------*/ > >>>> > >>>> FPSP library can be found: > >>>> > >>>> https://ftp.nice.ch/pub/next/developer/hardware/m68k/ > >>>> > >>>> And the assembly source code is not free at all: > >>>> > >>>> https://ftp.nice.ch/pub/next/developer/hardware/m68k/_ > libFPSP.1.p2.N.s/l_fpsp.h > >>>> > >>>> > >>>> | Copyright (C) Motorola, Inc. 1991 > >>>> | All Rights Reserved > >>>> | > >>>> | THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF MOTOROLA > >>>> | The copyright notice above does not evidence any > >>>> | actual or intended publication of such source code. > >>>> > >>>> > >>>> So I'm wondering what license apply to the C version found in > "Previous". > >>> > >>> Good question. It's clearly not copied code (since the FPSP library is > >>> all native m68k assembly), but presumably it's the same algorithms > >>> transliterated into C... > >> > >> There also seem to be other versions of that library available, e.g.: > >> > >> https://ftp.netbsd.org/pub/NetBSD/NetBSD-current/src/sys/ > arch/m68k/fpsp/l_fpsp.h > >> > >> Maybe Andreas (now on CC: ) could clarify which version he used / how > >> the C sources were developed? > > > > Thank you Thomas, > > > > This seems to be the same code re-licensed to: > > > > MOTOROLA MICROPROCESSOR & MEMORY TECHNOLOGY GROUP > > M68000 Hi-Performance Microprocessor Division > > M68040 Software Package > > > > M68040 Software Package Copyright (c) 1993, 1994 Motorola Inc. > > All rights reserved. > > > > THE SOFTWARE is provided on an "AS IS" basis and without warranty. > > To the maximum extent permitted by applicable law, > > MOTOROLA DISCLAIMS ALL WARRANTIES WHETHER EXPRESS OR IMPLIED, > > INCLUDING IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A > > PARTICULAR PURPOSE and any warranty against infringement with > > regard to the SOFTWARE (INCLUDING ANY MODIFIED VERSIONS THEREOF) > > and any accompanying written materials. > > > > To the maximum extent permitted by applicable law, > > IN NO EVENT SHALL MOTOROLA BE LIABLE FOR ANY DAMAGES WHATSOEVER > > (INCLUDING WITHOUT LIMITATION, DAMAGES FOR LOSS OF BUSINESS > > PROFITS, BUSINESS INTERRUPTION, LOSS OF BUSINESS INFORMATION, OR > > OTHER PECUNIARY LOSS) ARISING OF THE USE OR INABILITY TO USE THE > > SOFTWARE. Motorola assumes no responsibility for the maintenance > > and support of the SOFTWARE. > > > > You are hereby granted a copyright license to use, modify, and > > distribute the SOFTWARE so long as this entire notice is retained > > without alteration in any modified and/or redistributed versions, > > and that such modified versions are clearly identified as such. > > No licenses are granted by implication, estoppel or otherwise > > under any patents or trademarks of Motorola, Inc. > > IANAL, but to me that sounds like it is compatible to the GPL, so I > think there should not be a problem if the C sources are based on these > assembler sources? > > Thomas > > After looking into all these files, I noticed that the previous code: http://svn.code.sf.net/p/previous/code/trunk/src/softfloat/softfloat_fpsp.c uses SoftFloat 2b code for the helper functions: http://svn.code.sf.net/p/previous/code/trunk/src/softfloat/softfloat.h I'm not familiar with licensing but to me it appears that Andreas Grabher has his code as an extension to the wrong release of SoftFloat. >>>> /*============================================================================ >>>> >>>> This C source file is an extension to the SoftFloat IEC/IEEE >>>> Floating-point >>>> Arithmetic Package, Release 2a. >>>> >>>> Written by Andreas Grabher for Previous, NeXT Computer Emulator. >>>> >>>> =============================================================================*/ >>>> ... >>>> /*---------------------------------------------------------------------------- >>>> | Algorithms for transcendental functions supported by MC68881 and MC68882 >>>> | mathematical coprocessors. The functions are derived from FPSP library. >>>> *----------------------------------------------------------------------------*/ So we can't use these C code directly as it uses helpers from 2b. However, would it be ok to write our own set of C code along with the necessary helpers using the C and asm code as reference? (would be part of 2a) William (https://lists.gnu.org/archive/html/qemu-devel/2017-11/msg05422.html)