[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Result: Octave-UPM on Windows :-(
From: |
Ben Abbott |
Subject: |
Re: Result: Octave-UPM on Windows :-( |
Date: |
Sat, 10 Nov 2012 21:14:20 -0500 |
On Nov 10, 2012, at 6:49 PM, Ben Abbott wrote:
>
> On Nov 10, 2012, at 6:06 PM, Alexander Hansen wrote:
>
>> On 11/10/12 3:05 PM, Ben Abbott wrote:
>>>
>>> On Nov 10, 2012, at 4:39 PM, Alexander Hansen wrote:
>>>
>>>> On 11/10/12 1:59 PM, Ben Abbott wrote:
>>>>>
>>>>> On Nov 10, 2012, at 12:44 PM, Benjamin Abbott wrote:
>>>>>
>>>>>> On Nov 10, 2012, at 12:31 PM, Jordi Gutiérrez Hermoso <address@hidden>
>>>>>> wrote:
>>>>>>
>>>>>>> On 10 November 2012 12:30, Alexander Hansen <address@hidden> wrote:
>>>>>>>> On 11/10/12 10:14 AM, Jordi Gutiérrez Hermoso wrote:
>>>>>>>>> On 10 November 2012 06:03, Jacob Dawid <address@hidden> wrote:
>>>>>>>>>> The problem is that we are collecting experience with using VS and
>>>>>>>>>> by doing
>>>>>>>>>> that we promote non-free software.
>>>>>>>>>
>>>>>>>>> There's also a practical problem with distribution here, since given
>>>>>>>>> Visual Studio's non-free nature, our users have to go and chase
>>>>>>>>> additional libraries on their own, since we are not free to give them
>>>>>>>>> those libraries ourselves.
>>>>>>>>>
>>>>>>>>> A similar problem occurs with Xcode and free distribution on Mac OS X.
>>>>>>>>
>>>>>>>> Except that Xcode *doesn't install libraries*.
>>>>>>>
>>>>>>> It installs headers, right? What's in the "command line tools for
>>>>>>> Xcode" that we can't distribute freely?
>>>>>>>
>>>>>>> - Jordi G. H.
>>>>>>
>>>>>> I've been meaning look at the copyright for the headers used by Xcode,
>>>>>> but keep forgetting. Has anyone taken a peek?
>>>>>>
>>>>>> Ben
>>>>>
>>>>> I'm not sure which headers Octave uses when build on MacOS X. I looked
>>>>> through several .h files in /usr/include to see what was there. Some
>>>>> include a FSF copyright.
>>>>>
>>>>>> This file is part of GCC.
>>>>>>
>>>>>> GCC is free software; you can redistribute it and/or modify it under
>>>>>> the terms of the GNU General Public License as published by the Free
>>>>>> Software Foundation; either version 2, or (at your option) any later
>>>>>> version.
>>>>>>
>>>>>> GCC is distributed in the hope that it will be useful, but WITHOUT ANY
>>>>>> WARRANTY; without even the implied warranty of MERCHANTABILITY or
>>>>>> FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
>>>>>> for more details.
>>>>>>
>>>>>> You should have received a copy of the GNU General Public License
>>>>>> along with GCC; see the file COPYING. If not, write to the Free
>>>>>> Software Foundation, 59 Temple Place - Suite 330, Boston, MA
>>>>>> 02111-1307, USA. */
>>>>>
>>>>> Some a FreeBSD Copyright (?)
>>>>>
>>>>>> // Copyright (c) 1993 The Regents of the University of California.
>>>>>> // All rights reserved.
>>>>>> //
>>>>>> // This code is derived from software contributed to Berkeley by
>>>>>> // Kent Williams and Tom Epperly.
>>>>>> //
>>>>>> // Redistribution and use in source and binary forms, with or without
>>>>>> // modification, are permitted provided that the following conditions
>>>>>> // are met:
>>>>>>
>>>>>> // 1. Redistributions of source code must retain the above copyright
>>>>>> // notice, this list of conditions and the following disclaimer.
>>>>>> // 2. Redistributions in binary form must reproduce the above copyright
>>>>>> // notice, this list of conditions and the following disclaimer in the
>>>>>> // documentation and/or other materials provided with the distribution.
>>>>>>
>>>>>> // Neither the name of the University nor the names of its contributors
>>>>>> // may be used to endorse or promote products derived from this software
>>>>>> // without specific prior written permission.
>>>>>>
>>>>>> // THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
>>>>>> // IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
>>>>>> // WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
>>>>>> // PURPOSE.
>>>>>
>>>>> Some the Apple Public Source License (not GPL compatible)
>>>>>
>>>>>> * This file contains Original Code and/or Modifications of Original Code
>>>>>> * as defined in and that are subject to the Apple Public Source License
>>>>>> * Version 2.0 (the 'License'). You may not use this file except in
>>>>>> * compliance with the License. Please obtain a copy of the License at
>>>>>> * http://www.opensource.apple.com/apsl/ and read it before using this
>>>>>> * file.
>>>>>> *
>>>>>> * The Original Code and all software distributed under the License are
>>>>>> * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
>>>>>> * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
>>>>>> * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
>>>>>> * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
>>>>>> * Please see the License for the specific language governing rights and
>>>>>> * limitations under the License.
>>>>>
>>>>> Is there a way to determine which include files Octave uses ?
>>>>>
>>>>> Ben
>>>>
>>>> If you use --enable-dependency-tracking at configure time (I don't
>>>> remember if that's default or not), that information gets cached in
>>>> files in the build tree.
>>>
>>> Forgive my ignorance, but after the build completes, how to I determine the
>>> dependencies?
>>>
>>> Ben
>>>
>>>
>>
>> No problem
>>
>> What you're looking for is files with a ".Po" or ".Plo" extension.
>> They're just text files, and have entries like:
>>
>> main.o: main.c ../config.h ../libgnu/stdint.h \
>> /usr/bin/../lib/clang/4.1/include/stdint.h /usr/include/stdint.h \
>> ../libgnu/sys/types.h /usr/include/sys/types.h \
>> /usr/include/sys/appleapiopts.h /usr/include/sys/cdefs.h \
>> /usr/include/sys/_symbol_aliasing.h \
>> /usr/include/sys/_posix_availability.h /usr/include/machine/types.h \
>> /usr/include/i386/types.h /usr/include/i386/_types.h \
>> /usr/include/sys/_types.h /usr/include/machine/_types.h \
>> /usr/include/machine/endian.h /usr/include/i386/endian.h \
>> /usr/include/sys/_endian.h /usr/include/libkern/_OSByteOrder.h \
>> /usr/include/libkern/i386/_OSByteOrder.h /usr/include/sys/_structs.h \
>> /usr/bin/../lib/clang/4.1/include/limits.h /usr/include/limits.h \
>> /usr/include/machine/limits.h /usr/include/i386/limits.h \
>> /usr/include/i386/_limits.h /usr/include/sys/syslimits.h \
>> /usr/include/inttypes.h /usr/include/_types.h \
>> ../libcruft/misc/f77-fcn.h ../libcruft/misc/quit.h ../libgnu/stdio.h \
>> /usr/include/stdio.h /usr/include/Availability.h \
>> /usr/include/AvailabilityInternal.h /usr/include/secure/_stdio.h \
>> /usr/include/secure/_common.h \
>> /usr/bin/../lib/clang/4.1/include/stdarg.h \
>> /usr/bin/../lib/clang/4.1/include/stddef.h ../libgnu/signal.h \
>> /usr/include/signal.h /usr/include/sys/signal.h \
>> /usr/include/machine/signal.h /usr/include/i386/signal.h \
>> /usr/include/i386/_structs.h /usr/include/machine/_structs.h \
>> /usr/include/mach/i386/_structs.h /usr/include/setjmp.h \
>> ../liboctave/lo-ieee.h octave.h
>>
>> ../config.h:
>>
>> ../libgnu/stdint.h:
>>
>> /usr/bin/../lib/clang/4.1/include/stdint.h:
>>
>> <...>
>>
>> I believe the reiteration of the headers is to show what headers _they_
>> drag in.
>>
>> So it's pretty human-readable or processable via scripts.
>
> Thanks.
>
> I wrote a short script in Octave to locate the dependencies in /usr and then
> check to see if they were under the APSL, and not FreeBSD. The APSL include
> files listed in my src/.deps/octave-main.Po are ...
>
> /usr/include/Availability.h
> /usr/include/AvailabilityInternal.h
> /usr/include/AvailabilityMacros.h
> /usr/include/_structs.h
> /usr/include/_types.h
> /usr/include/architecture/i386/math.h
> /usr/include/crt_externs.h
> /usr/include/i386/_structs.h
> /usr/include/i386/_types.h
> /usr/include/i386/setjmp.h
> /usr/include/i386/signal.h
> /usr/include/libkern/_OSByteOrder.h
> /usr/include/libkern/i386/_OSByteOrder.h
> /usr/include/mach/i386/_structs.h
> /usr/include/machine/_structs.h
> /usr/include/machine/_types.h
> /usr/include/machine/endian.h
> /usr/include/machine/setjmp.h
> /usr/include/machine/signal.h
> /usr/include/machine/types.h
> /usr/include/math.h
> /usr/include/pthread.h
> /usr/include/pthread_impl.h
> /usr/include/sched.h
> /usr/include/setjmp.h
> /usr/include/sys/_posix_availability.h
> /usr/include/sys/_select.h
> /usr/include/sys/_structs.h
> /usr/include/sys/_symbol_aliasing.h
> /usr/include/sys/_types.h
> /usr/include/sys/appleapiopts.h
>
> As I'm on a MacBook with MacPorts installed this list may not be the same as
> it would be for Fink.
>
> I assume this means that distributing an Octave binary built this way is a
> violation of the GPL?
>
> Ben
From http://www.gnu.org/licenses/quick-guide-gplv3.html
> Less Source to Distribute: New System Libraries Exception
>
> Both versions of the GPL require you to provide all the source necessary to
> build the software, including supporting libraries, compilation scripts, and
> so on. They also draw the line at System Libraries: you're not required to
> provide the source for certain core components of the operating system, such
> as the C library.
>
> GPLv3 has adjusted the definition of System Library to include software that
> may not come directly with the operating system, but that all users of the
> software can reasonably be expected to have. For example, it now also
> includes the standard libraries of common programming languages such as
> Python and Ruby.
>
> The new definition also makes it clear that you can combine GPLed software
> with GPL-incompatible System Libraries, such as OpenSolaris' C library, and
> distribute them both together. These changes will make life easier for free
> software distributors who want to provide these combinations to their users.
and from http://www.gnu.org/licenses/gcc-exception-3.1.html
> When you use GCC to compile a program, GCC may combine portions of certain
> GCC header files and runtime libraries with the compiled program. The purpose
> of this Exception is to allow compilation of non-GPL (including proprietary)
> programs to use, in this way, the header files and runtime libraries covered
> by this Exception.
Sounds like a reasonable interpretation is that Apple's libraries and header
files are fair game.
Ben
- Re: Result: Octave-UPM on Windows :-(, (continued)
- Re: Result: Octave-UPM on Windows :-(, Jordi Gutiérrez Hermoso, 2012/11/10
- Re: Result: Octave-UPM on Windows :-(, Alexander Hansen, 2012/11/10
- Re: Result: Octave-UPM on Windows :-(, Benjamin Abbott, 2012/11/10
- Re: Result: Octave-UPM on Windows :-(, Benjamin Abbott, 2012/11/10
- Re: Result: Octave-UPM on Windows :-(, Alexander Hansen, 2012/11/10
- Re: Result: Octave-UPM on Windows :-(, Ben Abbott, 2012/11/10
- Re: Result: Octave-UPM on Windows :-(, Alexander Hansen, 2012/11/10
- Re: Result: Octave-UPM on Windows :-(, Ben Abbott, 2012/11/10
- Re: Result: Octave-UPM on Windows :-(, Alexander Hansen, 2012/11/10
- Re: Result: Octave-UPM on Windows :-(, Ben Abbott, 2012/11/10
- Re: Result: Octave-UPM on Windows :-(,
Ben Abbott <=
- Re: Result: Octave-UPM on Windows :-(, Pedro, 2012/11/11
- Re: Result: Octave-UPM on Windows :-(, Pedro, 2012/11/11
- Re: Result: Octave-UPM on Windows :-(, Israel Herraiz, 2012/11/11
Re: Result: Octave-UPM on Windows :-(, Philip Nienhuis, 2012/11/10