mbbrutman

Washington, USA, 27.05.2011, 23:47 |
mTCP Open Source release (Announce) |
I've released mTCP under GPL3 - enjoy!
http://code.google.com/p/mtcp/
Regards,
Mike |
ecm

Düsseldorf, Germany, 27.05.2011, 23:58
@ mbbrutman
|
mTCP GPL |
Interesting.
Is the license GPL v3 only or does it allow to upgrade to later versions of the license? |
mbbrutman

Washington, USA, 28.05.2011, 00:20
@ ecm
|
GPLv3 |
> Interesting.
>
> Is the license GPL v3 only or does it allow to upgrade to later versions of
> the license?
GPL licenses allow for upgrades to future versions of the license; that is a feature of the license. --- mTCP - TCP/IP apps for vintage DOS machines!
http://www.brutman.com/mTCP |
ecm

Düsseldorf, Germany, 28.05.2011, 00:55
@ mbbrutman
|
GPL: either version 3 of the license, or any later version |
> GPL licenses allow for upgrades to future versions of the license; that is
> a feature of the license.
Unless they changed that for v3 and I didn't notice, it isn't part of the license's own text. There were some issues with projects changing their licensing notices which usually read "GPL v2 or any later version" or something like that to specifically say "GPL v2" ruling out GPL v3 compatibility (because they didn't like v3).
Ah, quoting your COPYING.TXT (part of "14. Revised Versions of this License."):
> Each version is given a distinguishing version number. If the
> Program specifies that a certain numbered version of the GNU General
> Public License "or any later version" applies to it, you have the
> option of following the terms and conditions either of that numbered
> version or of any later version published by the Free Software
> Foundation. If the Program does not specify a version number of the
> GNU General Public License, you may choose any version ever published
> by the Free Software Foundation.
So while the license describes the possibility of works which can be re-licensed under later versions, you do either have to specify the "or any later version" phrasing somewhere, or you have to never mention any version at all, to allow upgrading. Therefore I would say the upgrading (still) isn't an inherent feature of the license.
I didn't find that in your documentation. For example, .\README.TXT only mentions the license file in the file list as
> COPYING.TXT The GNU General Public License, Version 3
where of course it correctly specifies that particular version because that's what the file contains. No direct statement is made about which license applies to your software.
USERDOCS\README.TXT does not appear to contain any statement on the GPL.
The other documentation files do not appear to contain any GPL statements either. (Didn't look through them in detail though.)
http://code.google.com/p/mtcp/ says "GNU GPL v3" without "or any later version".
However, I think this is all irrelevant because your source code files do appear to say (didn't check every file):
> mTCP 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 3 of the License, or
> (at your option) any later version.
As far as I'm concerned, though of course I'm not a lawyer, this properly indicates that you allow the license upgrade. (Though explicit statements in the documentation pointing this out sure wouldn't hurt.) --- l |
mbbrutman

Washington, USA, 28.05.2011, 01:09
@ ecm
|
GPL: either version 3 of the license, or any later version |
As I interpret it the text embedded within in files containing code contain the answer to the question:
mTCP 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 3 of the License, or (at your option) any later version.
Those words were taken from the Free Software Foundation "howto" on how to open source code. So while the code was released under GPL3, somebody who modifies and redistributes it can choose version 3 or a later version.
My understanding is that the documentation does not need to be GPLed explicitly. If it does I can correct that at any time. So you will find the GPL statements in the code and just one version of the license in a file that covers the entire work.
My intent isn't to get into "license" wars .. it is to share the code. I think that GPL3 does a reasonable job of ensuring that the code and modifications to it will remain free and available.
Mike --- mTCP - TCP/IP apps for vintage DOS machines!
http://www.brutman.com/mTCP |
ecm

Düsseldorf, Germany, 28.05.2011, 01:18
@ mbbrutman
|
GPL: either version 3 of the license, or any later version |
> As I interpret it the text embedded within in files containing code contain
> the answer to the question:
Yes, I agree.
> My understanding is that the documentation does not need to be GPLed
> explicitly. If it does I can correct that at any time.
I don't think that would be necessary. What I suggested was only to add a statement indicating the precise license/versions to the documentation so that users looking for that information can find it readily available in the documentation, instead of having to look into source code files.
> My intent isn't to get into "license" wars ..
Don't you remember our last? That was way larger than this 
I don't prefer GPL (2, 3, or any later version) for what I write and that is really all there is to say on the matter of software licensing preferences right now. I only wanted to point out what I have pointed out now.
> it is to share the code.
That is understood. |
mbbrutman

Washington, USA, 28.05.2011, 01:25
@ ecm
|
GPL: either version 3 of the license, or any later version |
> Don't you remember our last? That was way larger than this 
My memory is short. ;-0
> > it is to share the code.
>
> That is understood.
Then download, compile, play and enjoy ...
Mike --- mTCP - TCP/IP apps for vintage DOS machines!
http://www.brutman.com/mTCP |
ecm

Düsseldorf, Germany, 28.05.2011, 01:30
@ mbbrutman
|
download, compile, ... |
> My memory is short. ;-0
How fortunate for me 
> Then download, compile, play and enjoy ...
I only downloaded it so far, and might in fact never compile it, but I'll probably look into how the code works and enjoy that still. Thanks for this release! |
marcov
30.05.2011, 09:37
@ mbbrutman
|
GPL: either version 3 of the license, or any later version |
> My intent isn't to get into "license" wars .. it is to share the code. I
> think that GPL3 does a reasonable job of ensuring that the code and
> modifications to it will remain free and available.
Using the GPL3, the tactical nuclear weapon of licenses, is more a political statement.
For libraries, it is more ensuring that it will be unused  |
mbbrutman

Washington, USA, 30.05.2011, 15:32
@ marcov
|
GPL: either version 3 of the license, or any later version |
> > My intent isn't to get into "license" wars .. it is to share the code.
> I
> > think that GPL3 does a reasonable job of ensuring that the code and
> > modifications to it will remain free and available.
>
> Using the GPL3, the tactical nuclear weapon of licenses, is more a
> political statement.
>
> For libraries, it is more ensuring that it will be unused 
Instead of making funny little comments, please provide an example where GPL3 will be an obstacle to this code being used.
You have all of the code, including the TCP/IP code and the applications. The design of the code is such that there is no "library" - you directly compile all of the code and link it with your application. The library is not a standalone component that gets built first, so there is no obstacle to using it.
If you can show me where GPL3 makes this code unusable, do so. --- mTCP - TCP/IP apps for vintage DOS machines!
http://www.brutman.com/mTCP |
ecm

Düsseldorf, Germany, 30.05.2011, 16:08
@ mbbrutman
|
What does the GPL allow? |
> Instead of making funny little comments, please provide an example where
> GPL3 will be an obstacle to this code being used.
Shouldn't that be obvious? Or should the question rather be "Shouldn't you know what your license does and does not allow?"?
> The design of the code is such that there is no "library" - you directly
> compile all of the code and link it with your application.
Linking the code with the application makes the GPL apply to all code linked together therein.
It doesn't matter whether the libraries are dynamically linked (separate files at run-time), whether they are statically linked during linkage (separate static library/object files passed to linker), or whether they are already "linked" by being compiled at the same time (separate source code files but compiled to basically the same group of object files and treated like the application's source code).
The only exceptions for this are:
(a) GPL source code is allowed to be linked to non-GPL "system libraries" or some such, the exact definition can be found in the GPL's text, and
(b) source code that isn't actually licensed under the GPL, but under a modified GPL with additional linking exception. This modified GPL used to be called LGPL but I don't think it's formally called that with GPLv3.
If none of those exceptions apply then all of the application's source code must be provided under the GPL's terms. As you may have heard the GPL is incompatible with a number of other software licenses.
> The library is not a standalone component that gets built first,
> so there is no obstacle to using it.
Wrong. --- l |
mbbrutman

Washington, USA, 30.05.2011, 16:30 (edited by mbbrutman, 30.05.2011, 16:45)
@ ecm
|
What does the GPL allow? |
> Shouldn't that be obvious? Or should the question rather be "Shouldn't you
> know what your license does and does not allow?"?
I spent quite a bit of time comparing GPL2 and GPL3. I think I know the boundaries of the licenses quite well. (Not liking my license choice does not give you the right to infer that I don't understand the license.)
> Linking the code with the application makes the GPL apply to all code
> linked together therein.
Good - that was intentional.
> It doesn't matter whether the libraries are dynamically linked (separate
> files at run-time), whether they are statically linked during linkage
> (separate static library/object files passed to linker), or whether they
> are already "linked" by being compiled at the same time (separate source
> code files but compiled to basically the same group of object files and
> treated like the application's source code).
>
> The only exceptions for this are:
> (a) GPL source code is allowed to be linked to non-GPL "system libraries"
> or some such, the exact definition can be found in the GPL's text, and
> (b) source code that isn't actually licensed under the GPL, but under a
> modified GPL with additional linking exception. This modified GPL used to
> be called LGPL but I don't think it's formally called that with GPLv3.
Understood.
> If none of those exceptions apply then all of the application's source code
> must be provided under the GPL's terms. As you may have heard the GPL is
> incompatible with a number of other software licenses.
>
> > The library is not a standalone component that gets built first,
> > so there is no obstacle to using it.
>
> Wrong.
Ok, so the obstacle is that if you use my code you have to ship it under GPL3. I don't see that as an obstacle.
If you use mTCP I want you to use GPL3. I don't want people modifying the work and distributing it without making the modifications public and under the same license that I chose. I don't see that as a bad thing.
If you or anybody else finds a case where my choice of license is blocking creativity or the release of code good code, contact me at my email address and talk to me about it. As the original developer I have the right to release that code under GPL2 as well. I'm willing to work with people to get the right license in place.
I choose GPL3 because I believe it is a better license. It never occurred to me that after dropping 30,000 lines of code in a place where it was desperately needed that I'd have people complaining about the license instead of discussing the code. We call that "looking the gift horse in the mouth".
Mike --- mTCP - TCP/IP apps for vintage DOS machines!
http://www.brutman.com/mTCP |
ecm

Düsseldorf, Germany, 30.05.2011, 17:08
@ mbbrutman
|
GPL something |
> I think I know the boundaries of the licenses quite well.
It didn't sound like that when I read it. Sorry for misunderstanding what you wrote.
> (Not liking my license choice does
> not give you the right to infer that I don't understand the license.)
Independent of my preferences I have the right to infer whatever I want to infer.
Whether what I infer is true or at least plausible is an entirely different matter.
Whether it appears polite or rude similarly is an entirely different matter.
> > > > For libraries, it is more ensuring that it will be unused 
> > >
> > > Instead of making funny little comments, please provide an example where
> > > GPL3 will be an obstacle to this code being used.
Considering this:
> > Linking the code with the application makes the GPL apply to all code
> > linked together therein.
>
> Good - that was intentional.
it should have been obvious to you that the GPL will be an obstacle in two cases:
(a) if some source code's license is incompatible to the GPL, or
(b) if someone doesn't want to tie their source code to the GPL even if possible.
Assuming you thought of both of these when considering the license, I don't understand why you asked for examples where it will be an obstacle.
> Ok, so the obstacle is that if you use my code you have to ship it under
> GPL3. I don't see that as an obstacle.
"So the X is that Y. I don't see that as an X."
Well.
I see it as an X.
More usefully: the obstacle isn't that "if I use your code I have to ship your code under GPL3" (which I personally would often be fine with), it's that "if I use your code I have to ship both your and my code under GPL3". Your statement is ambiguous here but I'll assume you knew what you meant with "it" there.
> If you use mTCP I want you to use GPL3. I don't want people modifying the
> work and distributing it without making the modifications public and under
> the same license that I chose. I don't see that as a bad thing.
Again, "it" is ambiguous. And again if "it" meant just your code I could see myself agreeing with your views a lot more.
However, let's not forget that even a GPL release allows us to read the source code, and use it in some ways. And assuming the binary-only distribution without all the GPL appendage will still be provided on your website, you obviously didn't take away any freedoms with this release. So all in all while I do not agree with your license preference and could probably talk about that forever: It is still accommodating of you to make the source code available and I'm grateful for that. (Presumably. Haven't actually used the source code for anything yet.) --- l |
mbbrutman

Washington, USA, 30.05.2011, 18:05
@ ecm
|
GPL something |
> > I think I know the boundaries of the licenses quite well.
>
> It didn't sound like that when I read it. Sorry for misunderstanding what
> you wrote.
>
> > (Not liking my license choice does
> > not give you the right to infer that I don't understand the license.)
>
> Independent of my preferences I have the right to infer whatever I want to
> infer.
>
> Whether what I infer is true or at least plausible is an entirely different
> matter.
>
> Whether it appears polite or rude similarly is an entirely different
> matter.
In civilized society we try not to insult people unnecessarily. I believe in giving people the benefit of the doubt, and not inferring negative things unnecessarily.
> > > > > For libraries, it is more ensuring that it will be unused 
> > > >
> > > > Instead of making funny little comments, please provide an example
> where
> > > > GPL3 will be an obstacle to this code being used.
>
> Considering this:
>
> > > Linking the code with the application makes the GPL apply to all code
> > > linked together therein.
> >
> > Good - that was intentional.
>
> it should have been obvious to you that the GPL will be an obstacle in two
> cases:
>
> (a) if some source code's license is incompatible to the GPL, or
> (b) if someone doesn't want to tie their source code to the GPL even if
> possible.
>
> Assuming you thought of both of these when considering the license, I don't
> understand why you asked for examples where it will be an obstacle.
>
> > Ok, so the obstacle is that if you use my code you have to ship it under
> > GPL3. I don't see that as an obstacle.
>
> "So the X is that Y. I don't see that as an X."
>
> Well.
>
> I see it as an X.
>
> More usefully: the obstacle isn't that "if I use your code I have to ship
> your code under GPL3" (which I personally would often be fine with), it's
> that "if I use your code I have to ship both your and my code under GPL3".
> Your statement is ambiguous here but I'll assume you knew what you meant
> with "it" there.
Once again, I don't consider those conditions to be an obstacle. I gave away this code with this license. I am not inhibiting anybody from writing their own code. But as a condition of using this code you have to use my same license. I think that is more than fair. GPL2 is viral in many of the same ways. I've also left a provision that people who have a project in conflict with current license can contact me to discuss other licenses, so there is a safety valve that can be used.
If somebody really can't abide by this license then they are free to distribute their code (source or binaries) with a description or script that compiles mTCP and links it to their code. As long as they don't distribute the resulting binary they are in compliance with any version of the GPL. Remember, it is in the distribution of code where the GPL gets cumbersome to some people. This loophole is fairly large and should satisfy anybody - large corporations like IBM routinely use it.
> > If you use mTCP I want you to use GPL3. I don't want people modifying
> the
> > work and distributing it without making the modifications public and
> under
> > the same license that I chose. I don't see that as a bad thing.
>
> Again, "it" is ambiguous. And again if "it" meant just your code I could
> see myself agreeing with your views a lot more.
See above - you have remedies if you write some code and need a remedy.
>
>
>
> However, let's not forget that even a GPL release allows us to read the
> source code, and use it in some ways. And assuming the binary-only
> distribution without all the GPL appendage will still be provided on your
> website, you obviously didn't take away any freedoms with this release. So
> all in all while I do not agree with your license preference and could
> probably talk about that forever: It is still accommodating of you to make
> the source code available and I'm grateful for that. (Presumably. Haven't
> actually used the source code for anything yet.)
I think that being able to see the code, modify it for personal use, and use it in the context of other GPL3 code as a very good thing.
You are reacting to the choice of license as though I have restricted you from doing something reasonable. In the absence of any code that you actually want to use mTCP with, I'd refrain from worrying about it. Let us cross that bridge when we come upon it. --- mTCP - TCP/IP apps for vintage DOS machines!
http://www.brutman.com/mTCP |
Rugxulo

Usono, 30.05.2011, 18:14
@ mbbrutman
|
What does the GPL allow? |
> I choose GPL3 because I believe it is a better license. It never occurred
> to me that after dropping 30,000 lines of code in a place where it was
> desperately needed that I'd have people complaining about the license
> instead of discussing the code. We call that "looking the gift horse in
> the mouth".
It's fine, I'm sure. I've seen plenty of projects use GPLv3 (e.g. Desktop Cyber emulator, not that I've tried it or anything, heh). In fact, GNU/FSF pretty much upgraded everything of theirs to use it (GCC, sed, etc). There are still way more GPLv2 users, though, which is by far the #1 choice (don't ask me why), approx. 50% of the "open source" market. I know BSD and Apple dislike v3 (and thus stick to GCC 4.2.1 or older), but otherwise there's no clear consensus.
Actually, the weird part is the difference between "v2 or later" and "v2 only" (Linux kernel), and similar incompatibilities. And my vague memory (since I don't "enjoy" pretending to read boring licenses, nor am I legally inclined or skilled) says that v3 only fixed some loopholes (and incorporated LGPL), e.g. MS patent licenses w/ Novell and TiVo-ization.
Anyways, enough of this, who cares, thanks for your work! (Now if only I can figure out how to get it working under DOSEMU, heh, am I crazy for wanting that?) |
ecm

Düsseldorf, Germany, 30.05.2011, 18:28
@ mbbrutman
|
theoretical licensing problems and such |
> In civilized society we try not to insult people unnecessarily.
I wasn't addressing that; as I said, entirely different matter. What I addressed was my right to say something like that. Consequences and all, of course.
(Off-topic: And do you imply I am, or might be, uncivilized? Ha! That could almost be taken as an insult. (I don't actually care.))
> I believe
> in giving people the benefit of the doubt, and not inferring negative
> things unnecessarily.
I got that. I think I explained my wrong impression of what you wrote.
> GPL2 is viral in many of the same ways.
(Off-topic right now. I don't actually care about the GPLv2 vs. GPLv3 incompatibilities that much, I was just pointing that out earlier.)
> Once again, I don't consider those conditions to be an obstacle.
I understood that.
> I gave away this code with this license.
Yes. Did I thank you for that already?
> I am not inhibiting anybody from writing their own code.
No one stated you were.
> But as a condition of using this code you have to use my
> same license. I think that is more than fair.
You made your position clear.
> I've also left a provision that people who have a project
> in conflict with current license can contact me to discuss other licenses,
> so there is a safety valve that can be used.
(Yes, but it's inherently tied to contacting you. While that's good-willed, this won't always be possible. That's an entirely different can of worms though. (Read: off-topic.))
> If somebody really can't abide by this license then they are free to
> distribute their code (source or binaries) with a description or script
> that compiles mTCP and links it to their code. As long as they don't
> distribute the resulting binary they are in compliance with any
> version of the GPL. Remember, it is in the distribution of code where the
> GPL gets cumbersome to some people. This loophole is fairly large and
> should satisfy anybody - large corporations like IBM routinely use it.
You are right.
> > Again, "it" is ambiguous. And again if "it" meant just your code I could
> > see myself agreeing with your views a lot more.
>
> See above - you have remedies if you write some code and need a remedy.
Sorry, I like theorizing about remedies for theoretical problems. Be it software programming or software licensing problems.
> I think that being able to see the code, modify it for personal use, and
> use it in the context of other GPL3 code as a very good thing.
That is what I said. Source code under GPL is better than no source code. See, I agree with you.
> You are reacting to the choice of license as though I have restricted you
> from doing something reasonable.
Not at all, you're perceiving this wrongly. I am reacting to the choice of license as though I would have preferred another choice but am still grateful for what you offer now.
> In the absence of any code that you
> actually want to use mTCP with, I'd refrain from worrying about it. Let us
> cross that bridge when we come upon it.
Right, I should do that! I won't bother you about your software's licenses any more unless there's immediate need. |
Japheth

Germany (South), 30.05.2011, 18:47
@ mbbrutman
|
What does the GPL allow? |
> If you use mTCP I want you to use GPL3. I don't want people modifying the
> work and distributing it without making the modifications public and under
> the same license that I chose. I don't see that as a bad thing.
I fully agree.
> I choose GPL3 because I believe it is a better license. It never occurred
> to me that after dropping 30,000 lines of code in a place where it was
> desperately needed that I'd have people complaining about the license
> instead of discussing the code. We call that "looking the gift horse in
> the mouth".
Mike, don't let yourself discourage by the board's trolls.
Thanks for sharing! --- MS-DOS forever! |
ecm

Düsseldorf, Germany, 30.05.2011, 19:20
@ Japheth
|
Gift trolls and other curiosities |
> > I choose GPL3 because I believe it is a better license. It never
> occurred
> > to me that after dropping 30,000 lines of code in a place where it was
> > desperately needed that I'd have people complaining about the license
> > instead of discussing the code. We call that "looking the gift horse in
> > the mouth".
>
> Mike, don't let yourself discourage by the board's trolls.
Yep, it's us Bunch of Trolls That Ruin 
Mike edited in the part about the gift horses. However, the troll would like to complain that (a) the troll doesn't complain, and (b) the troll appreciates the gift horse very much either way. |
mbbrutman

Washington, USA, 30.05.2011, 19:54
@ ecm
|
Gift trolls and other curiosities |
> > > I choose GPL3 because I believe it is a better license. It never
> > occurred
> > > to me that after dropping 30,000 lines of code in a place where it was
> > > desperately needed that I'd have people complaining about the license
> > > instead of discussing the code. We call that "looking the gift horse
> in
> > > the mouth".
> >
> > Mike, don't let yourself discourage by the board's trolls.
>
> Yep, it's us Bunch of Trolls That Ruin 
>
> Mike edited in the part about the gift horses. However, the troll would
> like to complain that (a) the troll doesn't complain, and (b) the troll
> appreciates the gift horse very much either way.
And just for the record, the last two paragraphs (I think) of that post were added by the edit within 2 or 3 minutes of the post and before anybody else appended to the thread. (I don't want the illusion of bad behavior via editing.) --- mTCP - TCP/IP apps for vintage DOS machines!
http://www.brutman.com/mTCP |
ecm

Düsseldorf, Germany, 30.05.2011, 20:03
@ mbbrutman
|
editing |
Ah! Either I already read and quoted your post before you made that edit then, or I must have skipped that part. I'm sorry if the latter is true. |
ecm

Düsseldorf, Germany, 30.05.2011, 22:34
@ mbbrutman
|
licensing again... executables |
> > And assuming the binary-only distribution without all the GPL
> > appendage will still be provided on your website, you obviously
> > didn't take away any freedoms with this release.
> ... as though I have restricted ...
http://www.brutman.com/mTCP/ now directs one to http://code.google.com/p/mtcp/downloads/detail?name=mTCP_2011-05-30.zip&can=2&q= to download the executables. This says the programs are now licensed under the GPL in its readme and includes the GPL file. That's alright.
I do not want to cause any offence with this simple question. However you did not specifically address this point so I want to ask you: This appears to mean you do not provide non-GPL executables any longer. Is that intentional?
(Note that this isn't related to source code licensing directly; the question in itself just refers to what I'm allowed to do with the executables as "user".) |
marcov
30.05.2011, 22:35
@ mbbrutman
|
GPL: either version 3 of the license, or any later version |
>
>
> Instead of making funny little comments, please provide an example where
> GPL3 will be an obstacle to this code being used.
1) If you don't want or can put your own code under the GPL3, or one of the few compatible licenses.
2) If you get that close even, for instance when your employer won't even entertain the idea of GPL. |
marcov
30.05.2011, 22:37
@ ecm
|
What does the GPL allow? |
> (b) source code that isn't actually licensed under the GPL, but under a
> modified GPL with additional linking exception. This modified GPL used to
> be called LGPL but I don't think it's formally called that with GPLv3.
There are various GPL exceptions. Since LGPL has its own name now, GPL modified is usually used for something like LGPL, but without the mandatory dynamic linking requirement.
Typically used for libgcc and similar base libraries. |
ecm

Düsseldorf, Germany, 30.05.2011, 22:38
@ Rugxulo
|
mTCP in DOSEMU; Linux kernel developers' GPLv2-only reasons |
> Actually, the weird part is the difference between "v2 or later" and "v2
> only" (Linux kernel), and similar incompatibilities. And my vague memory
> (since I don't "enjoy" pretending to read boring licenses, nor am I legally
> inclined or skilled) says that v3 only fixed some loopholes (and
> incorporated LGPL), e.g. MS patent licenses w/ Novell and TiVo-ization.
This appears relevant, although it refers to one of the v3 drafts: http://lwn.net/Articles/200422/
> Now if only I can figure out how to get it working under DOSEMU, heh
If mTCP even works in DOSBox then you should be able to get it to work in DOSEMU. --- l |
marcov
30.05.2011, 22:38 (edited by marcov, 30.05.2011, 22:50)
@ mbbrutman
|
What does the GPL allow? |
> Ok, so the obstacle is that if you use my code you have to ship it under
> GPL3. I don't see that as an obstacle.
An intentional obstacle is still an obstacle.
If you want to use the GPL (and worse, v3), fine. But don't pretend it is a minor thing, since it isn't. |
marcov
30.05.2011, 22:49
@ Rugxulo
|
What does the GPL allow? |
> I know BSD and Apple dislike v3 (and thus stick to GCC 4.2.1 or older), >
> but otherwise there's no clear consensus.
The next release, FreeBSD 9.0 is going to be LLVM based, with the core distribution being GPLv3 free. The older versions are indeed stuck on pre GPLv3.
The other BSDs are studying and sympathetic about FreeBSD's move, and are looking at it (but afaik haven't made a decision. Which is funny, I always had OpenBSD pegged as the first to make the move)
> inclined or skilled) says that v3 only fixed some loopholes (and
> incorporated LGPL), e.g. MS patent licenses w/ Novell and TiVo-ization.
Both seriously impact employment of open source oriented professionals, that are mostly employed by hardware manufacturers or the Googles of this world.
So many believe it will hurt open source adoptation (and its financing, since contrary to popular belief, most is done by people on big business' payrol), more than it ever will solve. But it is a matter of principle for the FSF. |
mbbrutman

Washington, USA, 30.05.2011, 22:56
@ marcov
|
GPL: either version 3 of the license, or any later version |
> >
> >
> > Instead of making funny little comments, please provide an example where
> > GPL3 will be an obstacle to this code being used.
>
> 1) If you don't want or can put your own code under the GPL3, or one of the
> few compatible licenses.
>
> 2) If you get that close even, for instance when your employer won't even
> entertain the idea of GPL.
The solution to both problems was presented earlier - if you or your employer are opposed to the GPL then don't distribute the code that you produce. You can do whatever you want to in private. The GPL is just setting the rules for distribution.
In the case where you have to distribute to somebody else (a customer?) then deliver the source code of your code and instructions on how to build it and link it with the mTCP code. If those steps are performed by your end customer then you have not distributed any code and are in compliance with any license. Large corporations routinely work with open source in this way.
I released the code for use by other hobbyists. If your employer has a problem with the licensing, then they are free to convince me to use another license by supporting my hobby in some tangible way.  --- mTCP - TCP/IP apps for vintage DOS machines!
http://www.brutman.com/mTCP |
mbbrutman

Washington, USA, 31.05.2011, 03:33
@ ecm
|
licensing again... executables |
> > > And assuming the binary-only distribution without all the GPL
> > > appendage will still be provided on your website, you obviously
> > > didn't take away any freedoms with this release.
>
> > ... as though I have restricted ...
>
> http://www.brutman.com/mTCP/ now directs one to
> http://code.google.com/p/mtcp/downloads/detail?name=mTCP_2011-05-30.zip&can=2&q=
> to download the executables. This says the programs are now licensed under
> the GPL in its readme and includes the GPL file. That's alright.
>
> I do not want to cause any offence with this simple question. However you
> did not specifically address this point so I want to ask you: This appears
> to mean you do not provide non-GPL executables any longer. Is that
> intentional?
>
> (Note that this isn't related to source code licensing directly; the
> question in itself just refers to what I'm allowed to do with the
> executables as "user".)
I'm not sure I understand the question. The GPL does not prohibit you from doing anything you were doing last week.
You can't link against the current executables. None of them have a plug-in architecture that might allow you to run your own code within them. And you can't modify the binaries in a meaningful way, so there is no worry about contributing your changes back under GPLv3.
As far as I know and am concerned, noting that the binaries come from an open source code base just tells you where to find the source code and how the source code is distributed. If you choose to redistribute the binaries you may do so, but the license and the other files should go along with the distribution.
Were you thinking that GPL somehow alters the way you can use the binaries? --- mTCP - TCP/IP apps for vintage DOS machines!
http://www.brutman.com/mTCP |
mbbrutman

Washington, USA, 31.05.2011, 03:41
@ marcov
|
What does the GPL allow? |
> Both seriously impact employment of open source oriented professionals,
> that are mostly employed by hardware manufacturers or the Googles of this
> world.
>
> So many believe it will hurt open source adoptation (and its financing,
> since contrary to popular belief, most is done by people on big business'
> payrol), more than it ever will solve. But it is a matter of principle for
> the FSF.
My previous employer did not seem too upset by GPL3, and they paid me to do open source software development. (And they are one of the biggest contributors to open source.) You can get around almost any licensing requirement by using patch sets and providing instructions with build scripts.
I started with GPL3 because of the "Tivoization" argument. I also evaluated my code in the context of the license - I don't think that I'm doing anybody any serious harm by having mTCP released under GPL v3, as the code is probably not commercially interesting. If there is a sudden resurgence in interest in DOS TCP/IP for non-hobbyist purposes I will be incredibly surprised. In that context I don't think that the GPL2 vs. GPL3 decision should be making anybody upset and I'm really surprised at how much attention this has drawn. --- mTCP - TCP/IP apps for vintage DOS machines!
http://www.brutman.com/mTCP |
mbbrutman

Washington, USA, 31.05.2011, 04:18
@ Rugxulo
|
What does the GPL allow? |
> Anyways, enough of this, who cares, thanks for your work! (Now if only
> I can figure out how to get it working under DOSEMU, heh, am I crazy for
> wanting that?)
The state of the DOSEMU documentation leaves a little bit to be desired, but I see two paths:
[1] Dedicate a network card to DOSEMU. This works today in the stable release. (Documented in chapter 2 of the docs.)
[2] Use the developers release; it looks like DOSEMU can be set to emulate a packet driver. Instead of loading a packet driver in your DOS session to talk to an emulated network card this technique cuts out the emulation of the hardware and just provides the packet driver interface already built in. (Documented in chapter 15 of the docs.)
I'm not sure how stable option 2 is, but that is a promising approach. My Linux machine is woefully out of date otherwise I'd try it out.
I routinely run under DOSBox under Windows. DOSBox doesn't support networking directly, but there is a custom build of it that has NE2000 emulation. Look for the HAL-9000 "Megabuild".
Mike --- mTCP - TCP/IP apps for vintage DOS machines!
http://www.brutman.com/mTCP |
Japheth

Germany (South), 31.05.2011, 09:03
@ mbbrutman
|
mTCP and SwsVPkt |
FYI: I just tried mTCP with SwsVPkt in a Windows XP NTVDM "DOS box". It works - at least I was able to use DHCP.EXE, PING.EXE and FTP.EXE ( connect, directory listing and to download a file from ftp.openwatcom.com worked; with ftp.microsoft.com, the directory listing failed for some reason ).
Since mTCP runs natively in NTVDM, it might be a preferable option ( compared to run it in DOSBox/Qemu/VMware ) - but I didn't do any benchmarks so far. --- MS-DOS forever! |
ecm

Düsseldorf, Germany, 31.05.2011, 13:59
@ mbbrutman
|
licensing again... executables |
> The GPL does not prohibit you from doing anything you were doing last week.
Please refer to the GPL(v3)'s section 6, "Conveying Non-Source Forms". I believe that your previous executable-only releases granted users more freedoms (as long as they were not interested in the source code).
> As far as I know and am concerned, noting that the binaries come from an
> open source code base just tells you where to find the source code and how
> the source code is distributed. If you choose to redistribute the binaries
> you may do so, but the license and the other files should go along with the
> distribution.
See above. The GPL does affect the redistribution of binaries. If I choose to redistribute your GPL binaries I have to comply with the GPL, specifically section 6.
> Were you thinking that GPL somehow alters the way you can use the binaries?
To be exact, no, that's just fine. The GPL allows unrestricted usage of binaries, and source code at that. (As usual, only redistribution is restricted.) --- l |
mbbrutman

Washington, USA, 01.06.2011, 01:16
@ ecm
|
licensing again... executables |
> > Were you thinking that GPL somehow alters the way you can use the
> binaries?
>
> To be exact, no, that's just fine. The GPL allows unrestricted usage
> of binaries, and source code at that. (As usual, only redistribution is
> restricted.)
Were you planning on redistributing the binaries in a way that is not allowed by the GPL? Have you been redistributing the older binaries and has the change to GPL caused some harm? --- mTCP - TCP/IP apps for vintage DOS machines!
http://www.brutman.com/mTCP |
ecm

Düsseldorf, Germany, 01.06.2011, 01:53
@ mbbrutman
|
licensing again... executables |
> Were you planning on redistributing the binaries in a way that is not
> allowed by the GPL?
Not specifically planning, but it's definitively more convenient if you can just pass binaries along like that.
> has the change to GPL caused some harm?
The redistribution terms for your binaries are now more restricted than previously. |
mbbrutman

Washington, USA, 01.06.2011, 02:17
@ ecm
|
licensing again... executables |
> > has the change to GPL caused some harm?
>
> The redistribution terms for your binaries are now more restricted than
> previously.
Understood. But how exactly is this additional restriction affecting you? --- mTCP - TCP/IP apps for vintage DOS machines!
http://www.brutman.com/mTCP |
mbbrutman

Washington, USA, 01.06.2011, 03:11
@ Japheth
|
mTCP and SwsVPkt |
> FYI: I just tried mTCP with SwsVPkt in a Windows XP NTVDM "DOS box". It
> works - at least I was able to use DHCP.EXE, PING.EXE and FTP.EXE (
> connect, directory listing and to download a file from ftp.openwatcom.com
> worked; with ftp.microsoft.com, the directory listing failed for some
> reason ).
>
> Since mTCP runs natively in NTVDM, it might be a preferable option (
> compared to run it in DOSBox/Qemu/VMware ) - but I didn't do any benchmarks
> so far.
I just tried SwsVPkt for the first time - I was unaware that it existed. It seems to work as advertised, at least from a functional standpoint. I'm still in shock that my DOS programs are running natively in a Windows XP DOS Box.
DHCP has a slight problem. I believe that SwsVPkt is passing packets out directly on the specified interface. My router gave my DOS Box the same IP addr that is assigned to the host operating system, which is correct - that MAC address already has an IP address. A unique IP address would avoid conflicts like the one I just experienced - the IRC network that I connected to was not happy that I had two connections from the same machine. ;-0
I'm going to play around with this some more to try to break it .. if it doesn't break easily then I have four ways to run DOS networking code: [1] on native hardware, [2] in DOSBox with the NE2000 emulation, [3] using VirtualBox or VMWare and now [4] natively in an XP NTVDM using SwsVPkt. That's pretty neat!
(There is one small catch. My anti-social polling of the network adapter is making the DOS box run continuously, pegging one of my CPU cores.)
-Mike |
Japheth

Germany (South), 01.06.2011, 13:14
@ mbbrutman
|
mTCP and SwsVPkt |
> I just tried SwsVPkt for the first time - I was unaware that it existed.
That's a bit surprising for me - because SoftWare Systems (SWS) also offers SWSSock, which is kind of a "competitor" of mTCP. --- MS-DOS forever! |
mbbrutman

Washington, USA, 01.06.2011, 15:04
@ Japheth
|
mTCP and SwsVPkt |
> > I just tried SwsVPkt for the first time - I was unaware that it existed.
>
> That's a bit surprising for me - because SoftWare Systems (SWS) also offers
> SWSSock, which is kind of a "competitor" of mTCP.
When I started coding a few years ago I had been exposed to NTCPDRV (Trumpet). Trumpet worked on my favorite machine (the IBM PCjr) but the applications were horribly dated and usually crashed. It was just plain frustrating. So I started writing my own code.
I wasn't aware of WATTCP at the time. If I had known about it at the time I might be writing WATTCP applications instead. I knew about NCSA Telnet but I resisted the urge to look at their code until I couldn't figure out why their FTP was faster than mine. (It turned out to be nothing to do with TCP protocol - it was larger buffer sizes for the DOS reads and writes.)
I keep becoming more and more aware of the DOS networking world as I go. In many respects, I am a newbie ... --- mTCP - TCP/IP apps for vintage DOS machines!
http://www.brutman.com/mTCP |
ecm

Düsseldorf, Germany, 01.06.2011, 15:49
@ mbbrutman
|
licensing again... executables |
> > > has the change to GPL caused some harm?
> >
> > The redistribution terms for your binaries are now more restricted than
> > previously.
>
> Understood. But how exactly is this additional restriction affecting you?
So you appear to say it is intentional. No, my question wasn't about whether you'd make the binaries available like before, it was about whether this change was indeed intentional. |
ecm

Düsseldorf, Germany, 01.06.2011, 16:07
@ mbbrutman
|
polling |
> My anti-social polling of the network adapter
> is making the DOS box run continuously, pegging one of my CPU cores.
If it's supported (as in NTVDM) you can call Int2F.1680 every time the packet polling loop found no packet. You could default to HLT if the service isn't supported, or you could execute HLT only as an option. --- l |
Japheth

Germany (South), 01.06.2011, 17:12
@ ecm
|
polling |
> > My anti-social polling of the network adapter
> > is making the DOS box run continuously, pegging one of my CPU cores.
>
> If it's supported (as in NTVDM) you can call Int2F.1680 every time the
> packet polling loop found no packet.
From my experience I'd say that this variant of "idle call" isn't supported in NTVDM ( I am not 100% sure). Although it sounds a bit strange, probably the best option in NTVDM is to call the "keyboard status interrupt" (int 16h, ah=01) if you want to "give up" your time slice. --- MS-DOS forever! |
ecm

Düsseldorf, Germany, 01.06.2011, 17:27
@ Japheth
|
polling |
> From my experience I'd say that this variant of "idle call" isn't supported
> in NTVDM ( I am not 100% sure).
You are wrong; it is indeed supported.
D:\>debug
-a
136C:0100 mov ax, 1680
136C:0103 int 2f
136C:0105 jmp 100
136C:0107
-r
AX=0000 BX=0000 CX=0000 DX=0000 SP=FFFE BP=0000 SI=0000 DI=0000
DS=136C ES=136C SS=136C CS=136C IP=0100 NV UP EI PL ZR NA PE NC
136C:0100 B88016 mov ax, 1680
-t
AX=1680 BX=0000 CX=0000 DX=0000 SP=FFFE BP=0000 SI=0000 DI=0000
DS=136C ES=136C SS=136C CS=136C IP=0103 NV UP EI PL ZR NA PE NC
136C:0103 CD2F int 2F
-
AX=1600 BX=0000 CX=0000 DX=0000 SP=FFFE BP=0000 SI=0000 DI=0000
DS=136C ES=136C SS=136C CS=136C IP=0105 NV UP EI PL ZR NA PE NC
136C:0105 EBF9 jmp 0100
-g
After the call AL was properly set to zero, indicating the call is supported. The G command at the end hangs the VM but does so without fully loading one core. This in a MSW XP NTVDM. (I don't remember ever getting other results in MSW 2000, Vista, or 7 though.)
> Although it sounds a bit strange, probably
> the best option in NTVDM is to call the "keyboard status interrupt" (int
> 16h, ah=01) if you want to "give up" your time slice.
Are you sure? That sounds indeed strange. Isn't 16.01 supposed to return immediately? In any case mTCP's DHCP (other programs probably too) does appear to call 16.01 in each loop iteration so if that gave up enough time it wouldn't fully load a core. --- l |
Japheth

Germany (South), 01.06.2011, 17:50
@ ecm
|
polling |
> > From my experience I'd say that this variant of "idle call" isn't
> supported
> > in NTVDM ( I am not 100% sure).
>
> You are wrong; it is indeed supported.
Yes, partially. I recall the issue now: it isn't supported by NTVDM if the DOS app is in protected-mode. It's somewhat funny that the call is supported in real-mode, but not in protected-mode, because, IIRC, this API was introduced with DPMI.
> > Although it sounds a bit strange, probably
> > the best option in NTVDM is to call the "keyboard status interrupt" (int
> > 16h, ah=01) if you want to "give up" your time slice.
>
> Are you sure? That sounds indeed strange. Isn't 16.01 supposed to return
> immediately? In any case mTCP's DHCP (other programs probably too) does
> appear to call 16.01 in each loop iteration so if that gave up enough time
> it wouldn't fully load a core.
Yes, it is supposed to return immediately. I guess the NTVDM hooks this interrupt and will go idle if it is called "too often". --- MS-DOS forever! |
ecm

Düsseldorf, Germany, 01.06.2011, 17:55
@ Japheth
|
polling |
> I recall the issue now: it isn't supported by NTVDM if the
> DOS app is in protected-mode. It's somewhat funny that the call is
> supported in real-mode, but not in protected-mode, because, IIRC, this API
> was introduced with DPMI.
Ah, yes. So is 16.01 the best method to idle while in protected mode? Switching to V86 mode and calling the working 2F.1680 would probably take too long. --- l |
Japheth

Germany (South), 01.06.2011, 18:39
@ ecm
|
polling |
> Ah, yes. So is 16.01 the best method to idle while in protected mode?
> Switching to V86 mode and calling the working 2F.1680 would probably take
> too long.
I don't think this is a question of speed - both variants will have to switch to v86-mode and back. Int 16h,ah=01 is more simple to call than int 31h, ax=0300h, that's the main advantage I see.
To be sure, I just verified that calling int 2F, ax=1680h thru DPMI Int 31h, ax=0300h indeed works as expected with NTVDM. --- MS-DOS forever! |
ecm

Düsseldorf, Germany, 01.06.2011, 18:49
@ Japheth
|
polling |
> Int 16h,ah=01 is more simple to call than int
> 31h, ax=0300h, that's the main advantage I see.
>
> To be sure, I just verified that calling int 2F, ax=1680h thru DPMI Int
> 31h, ax=0300h indeed works as expected with NTVDM.
Ah, so shouldn't 2F.1680 via 31.0300 be preferred then? At least 2F.1680 is properly defined to idle, while NTVDM's implementation extends 16.01 somehow to make it idle.
Aside from preference, that means it should always be fine to call 2F.1680 via 31.0300 if direct 2F.1680 isn't supported in protected mode?
(I verified that NTVDM indeed doesn't pretend to support 2F.1680 in protected mode. Calling that service leaves AL unchanged.) --- l |
Rugxulo

Usono, 02.06.2011, 00:37
@ ecm
|
polling |
> > Int 16h,ah=01 is more simple to call than int
> > 31h, ax=0300h, that's the main advantage I see.
> >
> > To be sure, I just verified that calling int 2F, ax=1680h thru DPMI Int
> > 31h, ax=0300h indeed works as expected with NTVDM.
>
> Ah, so shouldn't 2F.1680 via 31.0300 be preferred then? At least 2F.1680 is
> properly defined to idle, while NTVDM's implementation extends 16.01
> somehow to make it idle.
>
> Aside from preference, that means it should always be fine to call 2F.1680
> via 31.0300 if direct 2F.1680 isn't supported in protected mode?
>
> (I verified that NTVDM indeed doesn't pretend to support 2F.1680 in
> protected mode. Calling that service leaves AL unchanged.)
That's pretty dopey. I know Mined/DJGPP (thanks to my wimpy suggestion) uses that DPMI call, and it works under XP. Anyways, a quick (hopefully correct) test doesn't show it supported at all under DOSEMU, which I find odd. I know DR-DOS 7.03 supports it too, as do others probably, though probably not CWSDPMI. (RBIL only mentions Win 3+, DOS 5+ [eh?], DPMI 1.0+ [who??], OS/2 2.0+.)
Yeah, I know, silly to call a DPMI 1.0 call for mTCP (real mode), but if it works, it works! But I definitely wouldn't call it ten bazillion times a second.
Oh well, it probably doesn't majorly matter anyways. |
ecm

Düsseldorf, Germany, 02.06.2011, 00:52
@ Rugxulo
|
polling |
> Anyways, a quick (hopefully correct) test doesn't show it supported
> at all under DOSEMU, which I find odd.
Maybe one can properly idle there using HLT then? And how did you test for it?
> Yeah, I know, silly to call a DPMI 1.0 call for mTCP (real mode)
Is there a better alternative?
> But I definitely wouldn't call it ten bazillion times a second.
That's how it's intended to be used though (if supported). If you spent all that time polling for packets or keystrokes instead, you'd just waste CPU time. --- l |
Japheth

Germany (South), 02.06.2011, 05:42
@ ecm
|
polling |
> Ah, so shouldn't 2F.1680 via 31.0300 be preferred then?
Yes, definitely!
> Aside from preference, that means it should always be fine to call 2F.1680
> via 31.0300 if direct 2F.1680 isn't supported in protected mode?
I just tested the variants in both XP and 9x: Int 2Fh, 1680h via int 31h, 0300h works well on both platforms. So this is indeed the most generic approach. --- MS-DOS forever! |
marcov
02.06.2011, 16:10 (edited by marcov, 02.06.2011, 20:41)
@ mbbrutman
|
GPL: either version 3 of the license, or any later version |
(snip GPL explanation for dummies)
> I released the code for use by other hobbyists. If your employer has a
> problem with the licensing, then they are free to convince me to use
> another license by supporting my hobby in some tangible way. 
I merely reacted to the "avoidance of license wars" and choice for GPLv3, something that I saw as a contradiction.
My employer, nor I have the intention to use your stack. All my comments must be seen in a general fashion, and not specific to this package.
The only minor remark left to make is that one mustn't confuse the flirtation of a few big IT giants with employers in general. Most haven't heard of the GPL, and when shown the text run for the hills.
Regardless if you agree with the GPL principles (and explanation) or not, as a programmer having to get borrowing code is such an hassle, it is usually worthwhile to simply rewrite GPLed code rather than trying to get permission. I have been in such situation with past employers (the current one couldn't care less).
Apparantly you think that some excessive protection using the GPLv3 is more important than some programmer here and there working with it and submitting fixes. That is the only thing I wanted to point out in the first place.
If that is intentional, so be it. For the rest I can say that I wish you all the best, and I hope that this form of licensing will forfill your expectation, whatever those are
Oh, and I'm not an anti GPL bigot. I couldn't be, since I spend the last 14 years working on one  |
mbbrutman

Washington, USA, 03.06.2011, 04:12
@ marcov
|
GPL: either version 3 of the license, or any later version |
Marcov,
I look at GPL3 as the latest version of one of the best open source licenses. I generally agree with the philosophy that if you pick something up for free and make it better, then you should contribute back. I think we are in a bad state when we need a license to mandate good behavior - in the end it really doesn't matter because I can't detect somebody violating the license nor do I have the means to enforce the license even if I can detect a violation.
I am inclined to think that if the only thing that might make somebody submit a fix is the license terms then that person was not going to submit a fix in the first place. And by the same reasoning, there will be people who submit fixes no matter what the license is.
In short, you can't legislate good behavior. So I chose the license that I thought matched my coding ethic and the needs of the project. GPLv3 has been heavily reviewed. Despite what people think of RMS, I think legally it is sound and the spirit of share and enjoy is preserved in it. --- mTCP - TCP/IP apps for vintage DOS machines!
http://www.brutman.com/mTCP |