The MASM Forum Archive 2004 to 2012

Project Support Forums => MASM32 => Topic started by: TmX on January 17, 2009, 02:35:57 PM

Title: Open source projects in MASM32
Post by: TmX on January 17, 2009, 02:35:57 PM
Sorry if this question is already asked.

The MASM32 license is one hard reading.  :dazzled:

Anyway, I still don't understand this:
QuoteThe MASM32 project cannot be used to create open source software.

Let's say I wrote a freeware in MASM32, and decided to release the source code to public.
Is that allowed?
Title: Re: Open source projects in MASM32
Post by: Jimg on January 17, 2009, 04:47:21 PM
Yes, of course you can release the source.  Yes, I also think the license is hard to interpret.

By open source, I think Hutch is referring to any licensing system, specifically like GPL, that trys to hijack all or parts of the Masm32 project code and put it under it's own license.  Basically, you can do what you want, but in any license you use to publish your code, any clause that tries to dictate what can, cannot, or must be done with any part of the actual Masm32 package is null and void.
Title: Re: Open source projects in MASM32
Post by: hutch-- on January 17, 2009, 07:16:39 PM
TmX,

What you write is actually your own so any source code you write is yours to publish as you choose but the content of the MASM32 project is protected by copyright so it cannot be stolen by other licencing systems. The MASM32 project was written for programmers, not licencing systems and it has been licenced very carefully to ensure that no-one can impose additional conditions or charges for its content or how programmers use it.

"Open Source" software is licenced in such a way that the licence controls and owns the code used in the project. The MASM32 licence specifically excludes other licencing systems to protect its contents so that any programmer can use it at no cost or extra conditions.
Title: Re: Open source projects in MASM32
Post by: oldnuke69 on November 15, 2009, 06:56:25 PM
Your restrictions are still not clear to me.  One portion of the license states: "The MASM32 project cannot be used to create open source software or any other project under any form of licence that requires the user of the MASM32 project to surrender the rights they are afforded under the MASM32 licence. In particular the MASM32 licence completely excludes projects licenced under the GNU organisation's published GPL licence and/or variants."

If someone wishes to create software that would be licensed under the GPL or similar license, it appears that your license prohibits the use of MASM32 to create such software.  Your comments indicate that you think this would somehow compromise your source code, and I am having difficulty understanding that.  Thanks for any enlightenment you can provide.
Title: Re: Open source projects in MASM32
Post by: hutch-- on November 15, 2009, 10:45:40 PM
Hi nuke,

Some people have problems with freeware because they have not read the GPL licence properly. MASM32 is copyright freeware and is protected that way to ensure that nothing else can take over any of its content. This means that it can always be downloaded at no cost and importantly it affords rights to the end user that protect them from parasitic licences like GPL and similar.

Read GPL below the itroductory waffle and term redefinitions and you will find a highly restrictive licence that owns code you write and forces you to publish your own code if you use ANY GPL code.

The MASM32 project dates from 1997 and it does not owe one byte of code to the Free Software Foundation or GPL

If you want to write freeware and supply your source code with it, thats fine, MASM32 protects your right to do this at no cost, no royalties and no forced code publication and you can sell your apps that use it, give them away or even eat them if you can find out how to do it but it cannot be stolen by competitive parasitic licencing systems.

MASM32 was written by programmers for programmers as freeware, it will never be available under the control of the corporations that fund GPL.

Quote
If someone wishes to create software that would be licensed under the GPL or similar license, it appears that your license prohibits the use of MASM32 to create such software.

The licence is specific and not negotiable, none of the enclosed software can be used to create software under any form of restricted licence and GPL and similar parasitic licencing systems.
Title: Re: Open source projects in MASM32
Post by: UtillMasm on November 16, 2009, 10:14:23 AM
 :bg
release masm assembly source code is legal,
just like someboy speak chinese to everybody.
Title: Re: Open source projects in MASM32
Post by: japheth on November 16, 2009, 10:32:39 AM
Quote from: UtillMasm on November 16, 2009, 10:14:23 AM
:bg
release masm assembly source code is legal,
just like someboy speak chinese to everybody.

Absolutely true. It will always be perfectly legal to release source code under GPL, even if the source looks like valid Masm syntax and - YES! - even if it contains a line like "include \masm32\include\windows.inc". Since the writer has the full copyright of his/her creation, no alien product's license can change this fact.

It's a different matter if precompiled binaries are distributed - if they contain parts of Masm32. However, most parts of Masm32 are NOT redistributable, so this may apply only to Masm32 modules which are statically linked into the redistributed binary.
Title: Re: Open source projects in MASM32
Post by: hutch-- on November 16, 2009, 12:14:49 PM
Its always the case that what you write is your own and you can do what you like with it but that of course goes for anyone else because the issue here is ownership.

MASM32 is licenced to ensure it is always free to the extent that its licence prohibits anyone from selling it.
The user owns their own code and can freely use any of the code from MASM32 without any form or royalties, crediting the origin or requirement to publish their code for others to use.

What the masm32 licence prohibits is anyone stealing the code and selling it or re licencing it with any other conditions.

The clash here is two different systems, GPL OWNS the code under its licence and it imposes conditions on publishing code that uses GPL code. For anyone who has any doubts, read the GPL licence down past the waffle and term redefinitions and you will find a draconian set of restrictions on what you can do with it once you are locked into their system.

MASM32 has none of those restrictions and is licenced to make sure it stays that way.

> However, most parts of Masm32 are NOT redistributable

No, ALL PARTS of masm32 are NOT redistributable.
Title: Re: Open source projects in MASM32
Post by: japheth on November 16, 2009, 02:10:30 PM
Quote from: hutch-- on November 16, 2009, 12:14:49 PM
> However, most parts of Masm32 are NOT redistributable

No, ALL PARTS of masm32 are NOT redistributable.

Thanks for clarifying! I once had the impression that Izcelion's Win32 tutorial are free to use - and redistribute - unless used commercially, but admittedly I'm not up-to-date with your project and things might have changed since 2001 A.D.  :'(
Title: Re: Open source projects in MASM32
Post by: hutch-- on November 16, 2009, 03:00:52 PM
Iczelion's tutorials were always sourced from his own site and I have the right to distribute them which I don't do any longer but they were always his property. He made them available to anyone who wanted them but never licenced them for redistribution. There may still be a site in France that distributes them as a follow on from his own site that is long gone but they were never licenced to redistribute.
Title: Re: Open source projects in MASM32
Post by: v104 on February 26, 2011, 05:07:50 AM
I know I'm responding to a very old thread but couldn't find a more recent on-point thread.

It's an awesome idea to protect the MASM32 project itself against GPL and alike. However anybody who writes software using MASM32 should be able to release their product under GPL, even if the license system sucks. After all, it's their own product, right?
Title: Re: Open source projects in MASM32
Post by: hutch-- on February 26, 2011, 05:14:59 AM
Nope,

Everyone has a theory, try and sell GPL code without publishing it and you will find out what a law suit is about. Cuts both ways, try and run any decent size open source project using tools that prohibit their use for open source and you will run into the tools owner.

Better to write your own code and use another assembler.
Title: Re: Open source projects in MASM32
Post by: jj2007 on February 26, 2011, 06:40:38 AM
Excuse my ignorance, but if I use print str$(123), publish the project under GPL, and thus have to publish alongside "the source", i.e. print str$(123), where is the problem? GPL can't force you to distribute the whole Masm32 package with it. After all, you don't have to supply the compiler and its libraries if you add a tiny little bit of C code, right?
Title: Re: Open source projects in MASM32
Post by: aker on February 26, 2011, 06:43:29 AM
Where is the source code?
Title: Re: Open source projects in MASM32
Post by: hutch-- on February 26, 2011, 07:39:06 AM
Same old story, ownership, try and sell GPL code without publishing the source and you will end up with a law suit.

What you do with your own code is your own business but what you do with other people's binaries or code is another matter, I offer GPL what I get from it, nothing. The MASM32 project is copyright to protect it from being stolen and given to the GNU organisation among others.

I still don't see why the open source brigade don't write their own code and use an open source assembler.
Title: Re: Open source projects in MASM32
Post by: jj2007 on February 26, 2011, 07:53:52 AM
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?
Title: Re: Open source projects in MASM32
Post by: aker on February 26, 2011, 08:00:32 AM
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?
Title: Re: Open source projects in MASM32
Post by: jj2007 on February 26, 2011, 08:03:17 AM
So if I use an open source assembler, do I have to publish the original Intel documentation e.g. if I use SSE instructions?
Title: Re: Open source projects in MASM32
Post by: hutch-- on February 26, 2011, 08:13:02 AM
Dunno, you would have to take that up with Intel.  :P
Title: Re: Open source projects in MASM32
Post by: 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.
Title: Re: Open source projects in MASM32
Post by: jj2007 on February 26, 2011, 08:43:41 AM
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")
Title: Re: Open source projects in MASM32
Post by: hutch-- on February 26, 2011, 12:53:30 PM
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 ?
Title: Re: Open source projects in MASM32
Post by: 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.
Title: Re: Open source projects in MASM32
Post by: BogdanOntanu on February 26, 2011, 04:31:12 PM
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

Title: Re: Open source projects in MASM32
Post by: jj2007 on February 26, 2011, 05:25:03 PM
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...
Title: Re: Open source projects in MASM32
Post by: redskull on February 26, 2011, 09:40:45 PM
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

Title: Re: Open source projects in MASM32
Post by: 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.
Title: Re: Open source projects in MASM32
Post by: hutch-- on February 27, 2011, 12:09:21 AM
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.
Title: Re: Open source projects in MASM32
Post by: 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
Title: Re: Open source projects in MASM32
Post by: jj2007 on February 27, 2011, 10:13:01 PM
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.