News:

MASM32 SDK Description, downloads and other helpful links
MASM32.com New Forum Link
masmforum WebSite

Open source projects in MASM32

Started by TmX, January 17, 2009, 02:35:57 PM

Previous topic - Next topic

jj2007

Quote from: hutch-- on February 26, 2011, 07:39:06 AMSame old story, ownership, try and sell GPL code without publishing the source and you will end up with a law suit./quote]

What is "the source"?
If I publish a VB snippet as GPL, do I have to supply the Visual Basic source code?
If I publish "print str$" as GPL, do I have to supply the Masm32 source code?

aker

If I publish a VB snippet as GPL, do I have to supply the Visual Basic source code?
If I publish "print str$" as GPL, do I have to supply the Masm32 source code?

Yes, you must, because you published as GPL.
So if you cann't release source code, just leave GPL alone, okay?
伟大的恐怖主义革命家拉登,因遭袭医治无效,于2011年5月1日在巴基斯坦逝世,享年54岁

jj2007

So if I use an open source assembler, do I have to publish the original Intel documentation e.g. if I use SSE instructions?

hutch--

Dunno, you would have to take that up with Intel.  :P
Download site for MASM32      New MASM Forum
https://masm32.com          https://masm32.com/board/index.php

MichaelW

Print and str$ are both macros, that to do what they are intended to do must be included in your source, as source code. They are not an external library, or an interface to a library, they are source code.
eschew obfuscation

jj2007

Quote from: MichaelW on February 26, 2011, 08:19:21 AM
Print and str$ are both macros, that to do what they are intended to do must be included in your source, as source code. They are not an external library, or an interface to a library, they are source code.

Now this is exactly the interesting point: print and str$ are not my source code. They are elements of a tool (Masm32) that I am using but have not developed myself. If I use Print and Str$ in Visual Basic, GPL surely cannot come along and demand the VB source code be published and GPL'ed.

There must be a line that separates own code and tools (VB, .Not, CRT, ...) developed by others.

(The fact that print and str$ are macros, not binaries, seems not relevant; *.lib is binary, *.asm is potentially human readable, but both require Masm to be effectively "read")

hutch--

JJ,

Put the same question to the author of MASM Basic. Someone says, "I wanna write something using MASM Basic then I want to give BOTH my code and MASM Basic to the GNU organisation so that they OWN it and control the copyright."

Whattyareckon ?
Download site for MASM32      New MASM Forum
https://masm32.com          https://masm32.com/board/index.php

jj2007

Well, that's the point: They can own somebody's source code but not the source code of the tools used. MasmBasic is a tool like Masm, Masm32, C++... you can use them for free but the copyright stays with the owner of the tool. Print "Hello" goes to GNU, the Print macro doesn't.

BogdanOntanu

Quote from: jj2007 on February 26, 2011, 03:05:32 PM
Well, that's the point: They can own somebody's source code but not the source code of the tools used. MasmBasic is a tool like Masm, Masm32, C++... you can use them for free but the copyright stays with the owner of the tool. Print "Hello" goes to GNU, the Print macro doesn't.

The idea with GPL is "simple": is you use ANY part of their source code or binary inside your code or binary (even a single line or a macro or a bitmap or whatever) THEN ALL of your code becomes "theirs". It does not matter how small is the part that you use.

For your example:

You can use the GPL licensed GNU GCC C compiler to compile your own source code and the compiled code and source DOES NOT become GPL by default. That is because you use it as an external tool.

However if you include in your source or project any kind of source or binary from GCC  THEN you must release ALL of your project source code as GPL. Even if you use a compiled GPL binary as an important part in your project you must release the source code of your project.

I think (but not sure) that special provisions are made for the headers.

If you want to use an GPL library for your project then your code becomes GPL.

In order to address this issue or using external GPL libraries the GPL crowd emerged the LGPL license (it is slightly more permissive) in order to allow linking with some of their libraries whithout requireing that your code becomes GPL.

Anyway things are complicated with using any kind of GPL and one is better off without it IMHO.

It is "free" BUT with a LOT of "strings" attached and IMHO viral in nature since anything it touches becomes GPL.

We probably need a license that is designed to keep GPL out or we will all be "assimilated"  :D

Ambition is a lame excuse for the ones not brave enough to be lazy.
http://www.oby.ro

jj2007

Quote from: BogdanOntanu on February 26, 2011, 04:31:12 PM
If you use ANY part of their source code or binary inside your code or binary (even a single line or a macro or a bitmap or whatever) THEN ALL of your code becomes "theirs".

print "Hello" is my code, print MACRO is not my code. It is copyrighted Masm32 code.

Quote
For your example:

You can use the GPL licensed GNU GCC C compiler to compile your own source code and the compiled code and source DOES NOT become GPL by default. That is because you use it as an external tool.

However if you include in your source or project any kind of source or binary from GCC  THEN you must release ALL of your project source code as GPL. Even if you use a compiled GPL binary as an important part in your project you must release the source code of your project.

The problem raised by the OP is the other way round: He wants to use non-GPL'ed tools for his code...

redskull

Quote"The "Corresponding Source" for a work in object code form means all the source code needed to generate, install, and (for an executable work) run the object code and to modify the work, including scripts to control those activities. However, it does not include the work's System Libraries, or general-purpose tools or generally available free programs which are used unmodified in performing those activities but which are not part of the work. For example, Corresponding Source includes interface definition files associated with source files for the work, and the source code for shared libraries and dynamically linked subprograms that the work is specifically designed to require, such as by intimate data communication or control flow between those subprograms and other parts of the work."

[emphasis added]

It depends on who has the better lawyer to decide whether or not it's a "System Library" or "general purpose tool".

-r

Strange women, lying in ponds, distributing swords, is no basis for a system of government

jj2007

Good quote, red, thanks - where did you find it?

"or general-purpose tools or generally available free programs which are used unmodified in performing those activities":

Masm32 (or MasmBasic) definitely fall into that category, simply because they have not been specifically developed for any given application. They are general purpose.

hutch--

This is why the MASM32 project has its own exclusive licence to protect its content from other parasitic licence systems. It protects both its binary and text to ensure that it will always be available as copyright freeware with no appended conditions that the user can use in the identical context to commercial development software. The author of software developed using MASM32 OWN their own software and may use the content of the MASMS32 libraries and examples WITHOUT having to give credit to the project or having to publish their code.

This is the difference to GPL code, once you publish code as GPL the GNU organisation OWN that code and you have no further control of that code. With code you develop using MASM32, you OWN that code and fully control it.
Download site for MASM32      New MASM Forum
https://masm32.com          https://masm32.com/board/index.php

redskull

Quote from: jj2007 on February 26, 2011, 11:31:08 PM
Good quote, red, thanks - where did you find it?

"or general-purpose tools or generally available free programs which are used unmodified in performing those activities":

Masm32 (or MasmBasic) definitely fall into that category, simply because they have not been specifically developed for any given application. They are general purpose.

That's right from the GPL itself, but I think you would have a hard time trying to convince them that a shared library is a general-purpose "tool"; most would regard a tool as a stand-alone program, like the linker/assembler/etc.  Your next project should be to turn MasmBasic into a stand-alone preprocessor, and avoid the issue altogether  :bg
Strange women, lying in ponds, distributing swords, is no basis for a system of government

jj2007

Quote from: redskull on February 27, 2011, 07:27:35 PM
Quote from: jj2007 on February 26, 2011, 11:31:08 PM
Good quote, red, thanks - where did you find it?

"or general-purpose tools or generally available free programs which are used unmodified in performing those activities":

Masm32 (or MasmBasic) definitely fall into that category, simply because they have not been specifically developed for any given application. They are general purpose.

That's right from the GPL itself, but I think you would have a hard time trying to convince them that a shared library is a general-purpose "tool"; most would regard a tool as a stand-alone program, like the linker/assembler/etc.  Your next project should be to turn MasmBasic into a stand-alone preprocessor, and avoid the issue altogether  :bg

I couldn't care less for MasmBasic, it's free but not open source. My interest is purely academic... ml.exe, link.exe, MasmBasic.lib, GeneSys, the whole Masm32 project are all general purpose tools. "Standalone" has no meaning, all these do not anything useful when standing alone other than displaying "Microsoft (R) Macro Assembler Version 9.00.21022.08". You need own code to make them useful, and if the rule of the viral GPL game is that own code must be fully made available - so be it. Let them own the print "hello", but not ml.exe or masm32.lib.